[Home] [Help]
PACKAGE BODY: APPS.JTF_FM_PROCESS_REQUEST_WF
Source
1 PACKAGE BODY jtf_fm_process_request_wf AS
2 /* $Header: jtffmwfb.pls 120.0 2005/05/11 08:14:28 appldev ship $ $*/
3 /*PROCEDURE start_fulfillment_request(item_type IN VARCHAR2,
4 item_key IN VARCHAR2,
5 content_xml IN VARCHAR2,
6 item_user_key IN VARCHAR2,
7 content_id IN NUMBER,
8 Request_id IN NUMBER,
9 msg_count IN VARCHAR2,
10 msg_data IN VARCHAR2,
11 user_id IN VARCHAR2,
12 Result IN OUT VARCHAR2,
13 status OUT VARCHAR2) is
14 x_return_status varchar2(10);*/
15 PROCEDURE start_fulfillment_request(item_type IN VARCHAR2,
16 item_key IN VARCHAR2,
17 item_user_key IN VARCHAR2,
18 p_content_xml IN VARCHAR2,
19 p_content_id IN NUMBER,
20 p_Request_id IN NUMBER,
21 p_template_id IN NUMBER ,
22 p_subject IN VARCHAR2,
23 p_party_id IN NUMBER ,
24 p_party_name IN VARCHAR2 ,
25 p_user_id IN VARCHAR2,
26 p_priority IN NUMBER ,
27 p_source_code_id IN NUMBER,
28 p_source_code IN VARCHAR2,
29 p_object_type IN VARCHAR2 ,
30 p_object_id IN NUMBER ,
31 p_order_id IN NUMBER ,
32 p_doc_id IN NUMBER ,
33 p_doc_ref IN VARCHAR2 ,
34 p_server_id IN NUMBER ,
35 p_queue_response IN VARCHAR2,
36 p_extended_header IN VARCHAR2 ,
37 p_api_version IN NUMBER,
38 p_init_msg_list IN VARCHAR2,
39 p_commit IN VARCHAR2,
40 p_validation_level IN NUMBER ,
41 x_Result IN OUT NOCOPY VARCHAR2,
42 x_msg_count IN OUT NOCOPY VARCHAR2,
43 x_msg_data IN OUT NOCOPY VARCHAR2,
44 x_return_status IN OUT NOCOPY VARCHAR2) is
45 begin
46 --intialise the workflow attributes
47 wf_engine.SetItemUserKey ( ItemType => Item_Type,
48 ItemKey => Item_Key,
49 UserKey => Item_User_Key);
50 wf_engine.SetItemAttrText ( itemtype => Item_Type,
51 itemkey => Item_Key,
52 aname => 'CONTENT_XML',
53 avalue => p_content_xml);
54 wf_engine.SetItemAttrText ( itemtype => Item_Type,
55 itemkey => Item_Key,
56 aname => 'API_VERSION',
57 avalue => p_api_version);
58 wf_engine.SetItemAttrText ( itemtype => Item_Type,
59 itemkey => Item_Key,
60 aname => 'INIT_MSG_LIST',
61 avalue => p_init_msg_list);
62 wf_engine.SetItemAttrText ( itemtype => Item_Type,
63 itemkey => Item_Key,
64 aname => 'COMMIT',
65 avalue => p_commit);
66 wf_engine.SetItemAttrText ( itemtype => Item_Type,
67 itemkey => Item_Key,
68 aname => 'VALIDATION_LEVEL',
69 avalue => p_validation_level);
70 wf_engine.SetItemAttrText ( itemtype => Item_Type,
71 itemkey => Item_Key,
72 aname => 'TEMPLATE_ID',
73 avalue => p_template_id);
74 wf_engine.SetItemAttrText ( itemtype => Item_Type,
75 itemkey => Item_Key,
76 aname => 'SUBJECT',
77 avalue => p_subject);
78 wf_engine.SetItemAttrText ( itemtype => Item_Type,
79 itemkey => Item_Key,
80 aname => 'PARTY_ID',
81 avalue => p_party_id);
82 wf_engine.SetItemAttrText ( itemtype => Item_Type,
83 itemkey => Item_Key,
84 aname => 'PARTY_NAME',
85 avalue => p_party_name);
86 wf_engine.SetItemAttrText ( itemtype => Item_Type,
87 itemkey => Item_Key,
88 aname => 'PRIORITY',
89 avalue => p_priority);
90 wf_engine.SetItemAttrText ( itemtype => Item_Type,
91 itemkey => Item_Key,
92 aname => 'SOURCE_CODE_ID',
93 avalue => p_source_code_id);
94 wf_engine.SetItemAttrText ( itemtype => Item_Type,
95 itemkey => Item_Key,
96 aname => 'SOURCE_CODE',
97 avalue => p_source_code);
98 wf_engine.SetItemAttrText ( itemtype => Item_Type,
99 itemkey => Item_Key,
100 aname => 'OBJECT_TYPE',
101 avalue => p_object_type);
102 wf_engine.SetItemAttrText ( itemtype => Item_Type,
103 itemkey => Item_Key,
104 aname => 'OBJECT_ID',
105 avalue => p_object_id);
106 wf_engine.SetItemAttrText ( itemtype => Item_Type,
107 itemkey => Item_Key,
108 aname => 'ORDER_ID',
109 avalue => p_order_id);
110 wf_engine.SetItemAttrText ( itemtype => Item_Type,
111 itemkey => Item_Key,
112 aname => 'DOC_ID',
113 avalue => p_doc_id);
114 wf_engine.SetItemAttrText ( itemtype => Item_Type,
115 itemkey => Item_Key,
116 aname => 'DOC_REF',
117 avalue => p_doc_ref);
118 wf_engine.SetItemAttrText ( itemtype => Item_Type,
119 itemkey => Item_Key,
120 aname => 'SERVER_ID',
121 avalue => p_server_id);
122 wf_engine.SetItemAttrText ( itemtype => Item_Type,
123 itemkey => Item_Key,
124 aname => 'QUEUE_RESPONSE',
125 avalue => p_queue_response);
126 wf_engine.SetItemAttrText ( itemtype => Item_Type,
127 itemkey => Item_Key,
128 aname => 'EXTENDED_HEADER',
129 avalue => p_extended_header);
130 wf_engine.SetItemAttrText ( itemtype => Item_Type,
131 itemkey => Item_Key,
132 aname => 'CONTENT_ID',
133 avalue => p_content_id);
134 wf_engine.SetItemAttrText ( itemtype => Item_Type,
135 itemkey => Item_Key,
136 aname => 'REQUEST_ID',
137 avalue => p_request_id);
138 wf_engine.SetItemAttrText ( itemtype => Item_Type,
139 itemkey => Item_Key,
140 aname => 'RESULT',
141 avalue => x_result);
142 wf_engine.SetItemAttrText ( itemtype => Item_Type,
143 itemkey => Item_Key,
144 aname => 'MSG_COUNT',
145 avalue => x_msg_count);
146 wf_engine.SetItemAttrText ( itemtype => Item_Type,
147 itemkey => Item_Key,
148 aname => 'MSG_DATA',
149 avalue => x_msg_data);
150 wf_engine.SetItemAttrText ( itemtype => Item_Type,
151 itemkey => Item_Key,
152 aname => 'USER_ID',
153 avalue => p_user_id);
154 /*wf_engine.SetItemAttrText ( itemtype => Item_Type,
155 itemkey => Item_Key,
156 aname => 'RETURN_STATUS',
157 avalue => x_return_status);*/
158 wf_engine.StartProcess ( itemtype => Item_Type,
159 itemkey => Item_Key );
160 wf_engine.ItemStatus (itemtype => Item_Type,
161 itemkey => Item_Key,
162 status => x_return_status,
163 result => x_result);
164 --dbms_output.put_line('after item status status '||x_return_status||' '||'result->'||x_result);
165 If x_result = 'SUCCESS' and x_return_status ='COMPLETE' then
166 --or x_result ='SUCCESS' and x_return_status='ACTIVE' then
167 x_return_status := 'S' ;
168 else
169 x_return_status := 'F';
170 end if ;
171 --dbms_output.put_line('about to leave start_fulfillment_request Item Status->'||' '||x_return_status||'item status result->'||' '||x_result);
172 end start_fulfillment_request;
173 PROCEDURE submit_fulfillment_request (itemtype in VARCHAR2,
174 itemkey in VARCHAR2,
175 actid in NUMBER,
176 funcmode in VARCHAR2,
177 resultout out nocopy VARCHAR2 ) is
178 l_init_msg_list varchar2(100);
179 l_subject varchar2(100);
180 l_api_version number :=1.0;
181 l_commit VARCHAR2(5) := FND_API.G_TRUE;
182 l_msg_data varchar2(1000);
183 l_msg_count number;
184 l_request_id number;
185 l_validation_level number;
186 l_template_id number;
187 l_party_id number;
188 l_party_name varchar2(100);
189 l_priority number;
190 l_source_code_id number;
191 l_source_code number;
192 l_content_xml varchar2(1000);
193 l_return_status varchar2(10);
194 l_object_type varchar2(100);
195 l_object_id number;
196 l_order_id number;
197 l_doc_id number;
198 l_doc_ref varchar2(100);
199 l_extended_header varchar2(100);
200 l_server_id number;
201 result varchar2(10);
202 l_result varchar2(300);
203 l_user_id varchar2(30);
204 l_msg_index_out number;
205 begin
206 IF funcmode = 'RUN' then
207 --dbms_output.put_line('Submit_fulfillment_request(JTFFMWF1) ' || itemkey);
208 l_api_version := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'API_VERSION' );
209 l_init_msg_list := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'INIT_MSG_LIST' );
210 l_commit := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'COMMIT' );
211 l_validation_level := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'VALIDATION_LEVEL' );
212 l_subject := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'SUBJECT' );
213 l_template_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'TEMPLATE_ID' );
214 l_party_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'PARTY_ID' );
215 l_party_name := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'PARTY_NAME' );
216 l_priority := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'PRIORITY' );
217 l_source_code_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'SOURCE_CODE_ID' );
218 l_source_code := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'SOURCE_CODE' );
219 l_object_type := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'OBJECT_TYPE' );
220 l_object_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'OBJECT_ID' );
221 l_order_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'ORDER_ID' );
222 l_doc_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'DOC_ID' );
223 l_doc_ref := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'DOC_REF' );
224 l_server_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'SERVER_ID' );
225 l_request_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'QUEUE_RESPONSE' );
226 l_extended_header := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'EXTENDED_HEADER' );
227 l_request_id := wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'REQUEST_ID' );
228 l_content_xml :=wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'CONTENT_XML' );
229 l_msg_count :=wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'MSG_COUNT' );
230 l_msg_data :=wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'MSG_DATA' );
231 l_user_id :=wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'USER_ID' );
232 l_result :=wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'RESULT' );
233 --l_return_status :=wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'RETURN_STATUS' );
234 --dbms_output.put_line('before Submitting request'||'Result'||l_result|| 'return status '||l_return_status);
235 --if l_return_status ='S' and l_result = 'SUCCESS' then
236 if l_result = 'SUCCESS' then
237 --dbms_output.put_line('entering submit request api');
238 JTF_FM_REQUEST_GRP.Submit_Request
239 ( p_api_version => l_api_version,
240 p_commit => l_commit,
241 x_return_status => l_return_status,
242 x_msg_count => l_msg_count,
243 x_msg_data => l_msg_data,
244 p_subject => l_subject,
245 p_user_id => l_user_id,
246 p_content_xml => l_content_xml,
247 p_request_id => l_request_id
248 );
249 ---------------------------------------------
250 IF (l_msg_count >= 1) and l_return_status <>'S' THEN
251 FOR j in 1..l_msg_count LOOP
252 FND_MSG_PUB.Get ( p_msg_index => j,
253 p_encoded => FND_API.G_FALSE,
254 p_data => l_msg_data ,
255 p_msg_index_out => l_msg_index_out);
256 --DBMS_OUTPUT.PUT_LINE(l_msg_data);
257 END LOOP;
258 end if ;
259 ------------------------------------------------
260 --dbms_output.put_line('return status after submit request api is->'||' '||l_return_status);
261 IF l_return_status = 'S' THEN
262 resultout := 'COMPLETE:SUCCESS';
263 ELSE
264 resultout := 'COMPLETE:FAIL';
265 END IF;
266 end if ;
267 wf_engine.SetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'RESULT',avalue => resultout );
268 --dbms_output.put_line('Result out from submit_fulfill_request->'||resultout);
269 end if;
270 exception
271 when others then
272 --
273 wf_core.context('JTFFMWF','Submit_fulfillment_request',itemtype, itemkey, to_char(actid), funcmode);
274 raise;
275 end submit_fulfillment_request;
276 PROCEDURE Check_request_result (itemtype in VARCHAR2,
277 itemkey in VARCHAR2,
278 actid in NUMBER,
279 funcmode in VARCHAR2,
280 resultout out nocopy VARCHAR2 ) is
281 l_result varchar2(100);
282 begin
283 IF funcmode = 'RUN' then
284 --dbms_output.put_line('Entered into check result node');
285 l_result :=wf_engine.GetItemAttrText( itemtype => itemtype, itemkey => itemkey, aname => 'RESULT' );
286 --dbms_output.put_line(l_result);
287 if l_result = 'COMPLETE:SUCCESS' then
288 resultout :='COMPLETE:SUCCESS';
289 else
290 resultout :='COMPLETE:FAIL';
291 end if;
292 --dbms_output.put_line('Result in check result-> '||' '||resultout);
293 end if;
294 end check_request_result;
295 ---------------------------
296 PROCEDURE schedule_Callback (itemtype in VARCHAR2,
297 itemkey in VARCHAR2,
298 actid in NUMBER,
299 funcmode in VARCHAR2,
300 result out nocopy VARCHAR2 ) is
301 Begin
302 -- dbms_output.put_line('Schedule Callback (JTFFMWF) ' || itemkey); --FOR TEST ONLY
303 If funcmode = 'RUN' then
304 result := 'COMPLETE:';
305 --dbms_output.put_line('in schedule callback');
306 end if ;
307 exception
308 when others then
309 --
310 wf_core.context('JTFFMWF','Schedule Callback',itemtype, itemkey, to_char(actid), funcmode);
311 raise;
312 end schedule_Callback;
313 ----------------------------
314 PROCEDURE check_if_Callback_required (itemtype in VARCHAR2,
315 itemkey in VARCHAR2,
316 actid in NUMBER,
317 funcmode in VARCHAR2,
318 result out nocopy VARCHAR2 ) is
319 Begin
320 -- dbms_output.put_line('schedule Callback (JTFFMWF) ' || itemkey); --FOR TEST ONLY
321 If funcmode = 'RUN' then
322 result := 'COMPLETE:YES';
323 --dbms_output.put_line('in check if callback required');
324 end if ;
325 exception
326 when others then
327 --
328 wf_core.context('JTFFMWF','Check if callback required',itemtype, itemkey, to_char(actid), funcmode);
329 raise;
330 end check_if_callback_required;
331 --------------------------
332 PROCEDURE verify_external (itemtype in VARCHAR2,
333 itemkey in VARCHAR2,
334 actid in NUMBER,
335 funcmode in VARCHAR2,
336 result out nocopy VARCHAR2 ) is
337 Begin
338 -- dbms_output.put_line('schedule Callback (JTFFMWF) ' || itemkey); --FOR TEST ONLY
339 If funcmode = 'RUN' then
340 result := 'COMPLETE:TRUE';
341 --dbms_output.put_line('in verify external'||result);
342 end if ;
343 exception
344 when others then
345 --
346 wf_core.context('JTFFMWF','verify external',itemtype, itemkey, to_char(actid), funcmode);
347 raise;
348 end verify_external;
349 --------------------------------
350 PROCEDURE verification_failed (itemtype in VARCHAR2,
351 itemkey in VARCHAR2,
352 actid in NUMBER,
353 funcmode in VARCHAR2,
354 result out nocopy VARCHAR2 ) is
355 Begin
356 -- dbms_output.put_line('schedule Callback (JTFFMWF) ' || itemkey); --FOR TEST ONLY
357 If funcmode = 'RUN' then
358 result := 'ERROR:';
359 --dbms_output.put_line('in verification failed');
360 end if ;
361 exception
362 when others then
363 --
364 wf_core.context('JTFFMWF','verification failed',itemtype, itemkey, to_char(actid), funcmode);
365 raise;
366 end verification_failed;
367 end jtf_fm_process_request_wf;
368