[Home] [Help]
PACKAGE BODY: APPS.CS_CHG_WF_EVENT_PKG
Source
1 PACKAGE BODY CS_CHG_WF_EVENT_PKG AS
2 /* $Header: cswfchgb.pls 115.0 2003/08/25 22:53:42 cnemalik noship $ */
3
4
5 PROCEDURE Raise_SubmitCharges_Event(
6 p_api_version IN NUMBER,
7 p_init_msg_list IN VARCHAR2 DEFAULT fnd_api.g_false,
8 p_commit IN VARCHAR2 DEFAULT fnd_api.g_false,
9 p_validation_level IN NUMBER DEFAULT fnd_api.g_valid_level_full,
10 p_Event_Code IN VARCHAR2,
11 p_estimate_detail_id IN VARCHAR2,
12 p_USER_ID IN NUMBER DEFAULT FND_GLOBAL.USER_ID,
13 p_RESP_ID IN NUMBER,
14 p_RESP_APPL_ID IN NUMBER,
15 p_est_detail_rec IN CS_Charge_Details_PUB.Charges_Rec_Type,
16 p_wf_process_id IN NUMBER,
17 p_owner_id IN NUMBER,
18 p_wf_manual_launch IN VARCHAR2 ,
19 x_wf_process_id OUT NOCOPY NUMBER,
20 x_return_status OUT NOCOPY VARCHAR2,
21 x_msg_count OUT NOCOPY NUMBER,
22 x_msg_data OUT NOCOPY VARCHAR2) IS
23
24 l_dummy VARCHAR2(240);
25 l_initiator_role VARCHAR2(100);
26 l_param_list wf_parameter_list_t;
27 l_event_key VARCHAR2(240);
28 l_event_id NUMBER;
29 l_return_status VARCHAR2(1);
30 l_msg_count NUMBER;
31 l_msg_data VARCHAR2(2000);
32 out_wf_process_id NUMBER;
33 l_INVALID_EVENT_ARGS EXCEPTION;
34 l_INVALID_EVENT_CODE EXCEPTION;
35 l_API_ERROR EXCEPTION;
36
37
38 BEGIN
39
40
41 -- Initialize return status to SUCCESS
42 x_return_status := FND_API.G_RET_STS_SUCCESS;
43
44 IF ( p_estimate_detail_id IS NULL) THEN
45
46 RAISE l_INVALID_EVENT_ARGS;
47
48 ELSIF (p_wf_process_id IS NOT NULL) THEN
49 --Do NOTHING. WE DON't HAVE TO RAISE a business event since this
50 --is just a recursive call to update
51 --the workflow process id when a workflow is launched.
52 null;
53
54 ELSE
55
56 -- Derive Role from User ID
57 IF (p_USER_ID IS NOT NULL) THEN
58 CS_WF_AUTO_NTFY_UPDATE_PKG.get_fnd_user_role
59 ( p_fnd_user_id => p_USER_ID,
60 x_role_name => l_initiator_role,
61 x_role_display_name => l_dummy );
62 END IF;
63
64
65 /******************************************************************
66 This section sets the Event Parameter List. These parameters are
67 converted to workflow item attributes.
68 *******************************************************************/
69
70 wf_event.AddParameterToList(p_name => 'ESTIMATE_DETAIL_ID',
71 p_value => p_est_detail_rec.Estimate_Detail_Id,
72 p_parameterlist => l_param_list);
73
74 wf_event.AddParameterToList(p_name => 'INCIDENT_ID',
75 p_value => p_est_detail_rec.Incident_ID,
76 p_parameterlist => l_param_list);
77
78 wf_event.AddParameterToList(p_name => 'USER_ID',
79 p_value => p_USER_ID,
80 p_parameterlist => l_param_list);
81
82 wf_event.AddParameterToList(p_name => 'RESP_ID',
83 p_value => p_RESP_ID,
84 p_parameterlist => l_param_list);
85
86 wf_event.AddParameterToList(p_name => 'RESP_APPL_ID',
87 p_value => p_RESP_APPL_ID,
88 p_parameterlist => l_param_list);
89
90 wf_event.AddParameterToList(p_name => 'INITIATOR_ROLE',
91 p_value => l_initiator_role,
92 p_parameterlist => l_param_list);
93
94 wf_event.AddParameterToList(p_name => 'MANUAL_LAUNCH',
95 p_value => p_wf_manual_launch,
96 p_parameterlist => l_param_list);
97
98 wf_event.AddParameterToList(p_name => 'ORG_ID',
99 p_value => p_est_detail_rec.org_id,
100 p_parameterlist => l_param_list);
101
102 wf_event.AddParameterToList(p_name => 'ORDER_HEADER_ID',
103 p_value => p_est_detail_rec.order_header_id,
104 p_parameterlist => l_param_list);
105
106 wf_event.AddParameterToList(p_name => 'ORDER_LINE_ID',
107 p_value => p_est_detail_rec.order_line_id,
108 p_parameterlist => l_param_list);
109
110 wf_event.AddParameterToList(p_name => 'ORDER_LINE_TYPE_ID',
111 p_value => p_est_detail_rec.line_type_id,
112 p_parameterlist => l_param_list);
113
114 wf_event.AddParameterToList(p_name => 'ORIGINAL_SOURCE_CODE',
115 p_value => p_est_detail_rec.original_source_code,
116 p_parameterlist => l_param_list);
117
118 wf_event.AddParameterToList(p_name => 'SOURCE_CODE',
119 p_value => p_est_detail_rec.source_code,
120 p_parameterlist => l_param_list);
121
122
123 BEGIN
124
125 wf_event.AddParameterToList(p_name => 'WF_ADMINISTRATOR',
126 p_value => l_initiator_role,
127 p_parameterlist => l_param_list);
128 EXCEPTION
129 WHEN NO_DATA_FOUND THEN
130 null;
131 END;
132
133 END IF;
134
135
136 IF (p_Event_Code = 'SUBMIT_CHARGES') THEN
137
138 SELECT cs_wf_process_id_s.nextval
139 INTO l_event_id
140 FROM dual;
141 -- Construct the unique event key
142 l_event_key := p_Estimate_Detail_Id ||'-'||to_char(l_event_id) || '-EVT';
143
144 --RAISE the WF Business event.
145
146 wf_event.raise(p_event_name => 'oracle.apps.cs.chg.Charges.submitted',
147 p_event_key => l_event_key,
148 p_parameters => l_param_list);
149 l_param_list.DELETE;
150
151 ELSE
152
153 RAISE l_INVALID_EVENT_CODE;
154
155 END IF;
156
157 -- Standard check of p_commit
158 IF FND_API.To_Boolean(p_commit) THEN
159 COMMIT WORK;
160 END IF;
161
162 END Raise_SubmitCharges_Event;
163
164
165
166
167 END CS_CHG_WF_EVENT_PKG;