DBA Data[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