DBA Data[Home] [Help]

PACKAGE BODY: APPS.WSH_WF_INTERFACE

Source


1 PACKAGE BODY WSH_WF_INTERFACE AS
2 /* $Header: WSHWINTB.pls 120.5 2006/11/16 19:14:03 bsadri noship $ */
3 
4 --
5 G_PKG_NAME CONSTANT VARCHAR2(50) := 'WSH_WF_INTERFACE';
6 
7 
8 PROCEDURE SCPOD_SHIPPING_STATUS(
9                     itemtype IN VARCHAR2,
10                     itemkey IN VARCHAR2,
11                     actid IN NUMBER,
12                     funcmode IN VARCHAR2,
13                     resultout OUT NOCOPY VARCHAR2 ) IS
14 
15 l_status_code WSH_NEW_DELIVERIES.STATUS_CODE%TYPE;
16 l_del_lines_count NUMBER;
17 l_return_status  VARCHAR2(1);
18 
19 
20 CURSOR get_delivery_status IS
21 SELECT status_code
22 FROM wsh_new_deliveries
23 WHERE delivery_id = to_number(itemkey);
24 
25 CURSOR get_del_lines_count IS
26 SELECT count(*)
27 FROM wsh_delivery_assignments_v WDA,
28      WSH_DELIVERY_DETAILS WDD
29 where
30      WDA.delivery_detail_id=WDD.delivery_detail_id AND
31      WDD.CONTAINER_FLAG = 'N' AND
32      delivery_id = to_number(itemkey);
33 
34 --
35 l_debug_on BOOLEAN;
36 --
37 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_SHIPPING_STATUS';
38 BEGIN
39 
40 --
41 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
42 --
43 IF l_debug_on IS NULL THEN
44     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
45 END IF;
46 --
47 IF l_debug_on THEN
48     wsh_debug_sv.push(l_module_name);
49     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
50     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
51     wsh_debug_sv.log(l_module_name, 'actid',actid);
52     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
53 END IF;
54 
55 -- RUN mode - normal process execution
56 IF (funcmode = 'RUN') THEN
57 
58     OPEN get_delivery_status;
59     FETCH get_delivery_status into l_status_code;
60     CLOSE get_delivery_status ;
61     resultout := 'COMPLETE:SHIPPED';
62     IF (l_status_code =  'CL') THEN
63         OPEN get_del_lines_count;
64         FETCH get_del_lines_count into l_del_lines_count;
65         CLOSE get_del_lines_count ;
66         IF (l_del_lines_count = 0) THEN
67             resultout := 'COMPLETE:NOT_SHIPPED';
68         END IF;
69     END IF;
70     WF_ENGINE.SetItemAttrText(
71                 itemtype => itemtype,
72                 itemkey  => itemkey,
73                 aname    => 'NOTIFICATION_TO_ROLE',
74                 avalue   => FND_GLOBAL.USER_NAME);
75 
76     IF l_debug_on THEN
77        WSH_DEBUG_SV.pop(l_module_name);
78     END IF;
79     RETURN;
80 END IF;
81 
82 IF (funcmode = 'CANCEL') THEN
83     NULL;
84     resultout := 'COMPLETE';
85     IF l_debug_on THEN
86        WSH_DEBUG_SV.pop(l_module_name);
87     END IF;
88     RETURN;
89 END IF;
90 
91 -- Other execution modes
92 resultout := '';
93 IF l_debug_on THEN
94     WSH_DEBUG_SV.pop(l_module_name);
95 END IF;
96 RETURN;
97 EXCEPTION
98 
99 WHEN NO_DATA_FOUND THEN
100     resultout := 'COMPLETE';
101     IF l_debug_on THEN
102         WSH_DEBUG_SV.logmsg(l_module_name,'No record found for the entity.Oracle error message is '||
103 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
104         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:NO_DATA_FOUND');
105     END IF;
106     wf_core.context('WSH_WF_INTERFACE',
107                     'SCPOD_SHIPPING_STATUS',
108                     itemtype,
109                     itemkey,
110                     to_char(actid),
111                     funcmode);
112     RAISE;
113 WHEN OTHERS THEN
114     resultout := 'COMPLETE';
115     IF l_debug_on THEN
116         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
117     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
118         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
119     END IF;
120     wf_core.context('WSH_WF_INTERFACE',
121                     'SCPOD_SHIPPING_STATUS',
122                     itemtype,
123                     itemkey,
124                     to_char(actid),
125                     funcmode);
126     RAISE;
127 END SCPOD_SHIPPING_STATUS;
128 
129 
130 ----------------------------------------------------------
131 PROCEDURE SCPOD_C_MARK_INTRANSIT(
132                     itemtype IN VARCHAR2,
133                     itemkey IN VARCHAR2,
134                     actid IN NUMBER,
135                     funcmode IN VARCHAR2,
136                     resultout OUT NOCOPY VARCHAR2 ) IS
137 
138 
139 l_delivery_id NUMBER;
140 l_pickup_stop_id NUMBER;
141 l_organization_id NUMBER;
142 l_actual_date DATE;
143 
144 --l_init_msg_list VARCHAR2 := FND_API.G_FALSE;  -- fnd_api.g_true or fnd_api.g_false
145 --l_commit VARCHAR2 := FND_API.G_TRUE ;         -- fnd_api.g_true or fnd_api.g_false
146 
147 l_action_prms WSH_TRIP_STOPS_GRP.action_parameters_rectype;
148 
149 l_rec_attr_tab WSH_TRIP_STOPS_PVT.Stop_Attr_Tbl_Type;
150 l_stop_info WSH_TRIP_STOPS_PVT.trip_stop_rec_type;
151 
152 l_stop_out_rec WSH_TRIP_STOPS_GRP.stopActionOutRecType;
153 l_def_rec WSH_TRIP_STOPS_GRP.default_parameters_rectype;
154 
155 l_return_status  VARCHAR2(1);
156 l_msg_count NUMBER;
157 l_msg_data VARCHAR2(32767);
158 
159 CURSOR get_pickup_stop_id IS
160 SELECT wts.stop_id
161 FROM   wsh_trip_stops    wts,
162     wsh_delivery_legs  wdl,
163     wsh_new_deliveries wnd
164 WHERE  wnd.delivery_id    = to_number(itemkey)
165 AND   wdl.delivery_id     = wnd.delivery_id
166 AND   wts.stop_id         = wdl.pick_up_stop_id
167 AND   wts.stop_location_id = wnd.initial_pickup_location_id;
168 
169 --
170 l_debug_on BOOLEAN;
171 --
172 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_MARK_INTRANSIT';
173 
174 
175 BEGIN
176 --
177 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
178 --
179 IF l_debug_on IS NULL THEN
180     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
181 END IF;
182 --
183 IF l_debug_on THEN
184     wsh_debug_sv.push(l_module_name);
185     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
186     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
187     wsh_debug_sv.log(l_module_name, 'actid',actid);
188     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
189 END IF;
190 
191 IF (funcmode = 'RUN') THEN
192 
193     l_delivery_id := itemkey;
194     l_organization_id := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ORG_ID',FALSE);
195     l_actual_date := WF_ENGINE.GetItemAttrDate(itemtype,itemkey,'ACTUAL_DATE',FALSE);
196 
197     OPEN get_pickup_stop_id;
198     FETCH get_pickup_stop_id into l_pickup_stop_id;
199     CLOSE get_pickup_stop_id ;
200 
201     WSH_TRIP_STOPS_PVT.Populate_Record (l_pickup_stop_id,l_stop_info,l_return_status);
202     l_rec_attr_tab(l_rec_attr_tab.COUNT + 1) := l_stop_info;
203 
204     l_action_prms.caller := 'PLSQL';
205     l_action_prms.phase := NULL;
206     l_action_prms.action_code := 'UPDATE-STATUS';
207     l_action_prms.stop_action := 'CLOSE';
208     l_action_prms.organization_id := l_organization_id;
209     l_action_prms.actual_date := l_actual_date;
210     l_action_prms.defer_interface_flag := 'Y';  -- Performed as another atomic transaction
211     l_action_prms.report_set_id := NULL;
212     l_action_prms.override_flag := 'N';  -- WT-VOL specific
213 
214     UPDATE WSH_NEW_DELIVERIES
215 	    SET del_wf_intransit_attr = 'P'
216             WHERE delivery_id = l_delivery_id;
217 
218     IF l_debug_on THEN
219         WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_TRIP_STOPS_GRP.STOP_ACTION ',
220 WSH_DEBUG_SV.C_PROC_LEVEL);
221     END IF;
222 
223     WSH_TRIP_STOPS_GRP.Stop_Action (
224         p_api_version_number    => 1.0,
225         p_init_msg_list         => FND_API.G_FALSE,
226         p_commit                => FND_API.G_FALSE,
227         p_action_prms           => l_action_prms,
228         p_rec_attr_tab          => l_rec_attr_tab,
229         x_stop_out_rec          => l_stop_out_rec,
230         x_def_rec               => l_def_rec,
231         x_return_status         => l_return_status,
232         x_msg_count             => l_msg_count,
233         x_msg_data              => l_msg_data
234         );
235 
236     IF l_debug_on THEN
237         WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
238     END IF;
239 
240     IF (l_return_status <>  wsh_util_core.g_ret_sts_error
241               AND l_return_status <> wsh_util_core.G_RET_STS_UNEXP_ERROR) THEN
242         UPDATE WSH_NEW_DELIVERIES
243 	    SET del_wf_intransit_attr = 'C'
244             WHERE delivery_id = l_delivery_id;
245         resultout := 'COMPLETE:SUCCESS';
246         fnd_message.set_name('WSH', 'WSH_WF_SCPOD_INTRANSIT');
247 	l_msg_data := FND_MESSAGE.Get;
248     ELSE
249         UPDATE WSH_NEW_DELIVERIES
250 	    SET del_wf_intransit_attr = 'E'
251             WHERE delivery_id = l_delivery_id;
252         resultout := 'COMPLETE:FAILURE';
253     END IF;
254 
255     WF_ENGINE.SetItemAttrText(
256                 itemtype => itemtype,
257                 itemkey  => itemkey,
258                 aname => 'SCPOD_INTRANSIT_MSG',
259                 avalue => l_msg_data);
260 
261     IF l_debug_on THEN
262        WSH_DEBUG_SV.pop(l_module_name);
263     END IF;
264     RETURN;
265 END IF;
266 
267 IF (funcmode = 'CANCEL') THEN
268     NULL;
269     resultout := 'COMPLETE';
270     IF l_debug_on THEN
271        WSH_DEBUG_SV.pop(l_module_name);
272     END IF;
273     RETURN;
274 END IF;
275 
276 -- Other execution modes
277 IF l_debug_on THEN
278    WSH_DEBUG_SV.pop(l_module_name);
279 END IF;
280 resultout := '';
281 RETURN;
282 EXCEPTION
283 
284 WHEN NO_DATA_FOUND THEN
285     resultout := 'COMPLETE:FAILURE';
286     IF l_debug_on THEN
287         WSH_DEBUG_SV.logmsg(l_module_name,'No record found for the entity.Oracle error message is '||
288 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
289         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:NO_DATA_FOUND');
290     END IF;
291     wf_core.context('WSH_WF_INTERFACE',
292                     'SCPOD_C_MARK_INTRANSIT',
293                     itemtype,
294                     itemkey,
295                     to_char(actid),
296                     funcmode);
297     RAISE;
298 WHEN OTHERS THEN
299     resultout := 'COMPLETE:FAILURE';
300     IF l_debug_on THEN
301         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
302     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
303         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
304     END IF;
305     wf_core.context('WSH_WF_INTERFACE',
306                     'SCPOD_C_MARK_INTRANSIT',
307                     itemtype,
308                     itemkey,
309                     to_char(actid),
310                     funcmode);
311     RAISE;
312 
313 END SCPOD_C_MARK_INTRANSIT;
314 ----------------------------------------------------------
315 PROCEDURE SCPOD_C_CLOSE_TRIP(
316                     itemtype IN VARCHAR2,
317                     itemkey IN VARCHAR2,
318                     actid IN NUMBER,
319                     funcmode IN VARCHAR2,
320                     resultout OUT NOCOPY VARCHAR2 ) IS
321 
322 
323 l_delivery_id            NUMBER;
324 l_organization_id        NUMBER;
325 l_actual_date            DATE;
326 l_intransit_flag         VARCHAR2(1);
327 l_action_flag            VARCHAR2(1);
328 l_close_trip_flag        VARCHAR2(1);
329 l_stage_del_flag         VARCHAR2(1);
330 l_send_945_flag          VARCHAR2(1);
331 l_bill_of_lading_flag    VARCHAR2(1);
332 l_mc_bill_of_lading_flag VARCHAR2(1);
333 l_ship_method_code       VARCHAR2(30);
334 l_report_set_id          NUMBER;
335 l_sc_rule_id             NUMBER;
336 
337 
338 l_action_prms       WSH_DELIVERIES_GRP.action_parameters_rectype;
339 l_rec_attr_tab      WSH_NEW_DELIVERIES_PVT.delivery_attr_tbl_type;
340 l_delivery_info     WSH_NEW_DELIVERIES_PVT.Delivery_Rec_Type;
341 
342 l_delivery_out_rec  WSH_DELIVERIES_GRP.delivery_action_out_rec_type;
343 l_defaults_rec      WSH_DELIVERIES_GRP.default_parameters_rectype;
344 l_return_status     VARCHAR2(1);
345 l_msg_count         NUMBER;
346 l_msg_data          VARCHAR2(32767);
347 
348 
349 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_CLOSE_TRIP';
350 l_debug_on BOOLEAN;
351 
352 BEGIN
353 
354 --
355 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
356 --
357 IF l_debug_on IS NULL THEN
358     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
359 END IF;
360 --
361 IF l_debug_on THEN
362     wsh_debug_sv.push(l_module_name);
363     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
364     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
365     wsh_debug_sv.log(l_module_name, 'actid',actid);
366     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
367 END IF;
368 
369 -- RUN mode - normal process execution
370 IF (funcmode = 'RUN') THEN
371 
372     l_delivery_id           := itemkey;
373     l_organization_id       := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ORG_ID',FALSE);
374     l_actual_date           := WF_ENGINE.GetItemAttrDate(itemtype,itemkey,'ACTUAL_DATE',FALSE);
375     l_intransit_flag        := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'INTRANSIT_FLAG',FALSE);
376     l_action_flag           := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ACTION_FLAG',FALSE);
377     l_close_trip_flag       := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'CLOSE_TRIP_FLAG',FALSE);
378     l_stage_del_flag        := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'STAGE_DEL_FLAG',FALSE);
379     l_send_945_flag         := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'SEND_945_FLAG',FALSE);
380     l_bill_of_lading_flag   := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'CREATE_BOL_FLAG',FALSE);
381     l_mc_bill_of_lading_flag:= WF_ENGINE.GetItemAttrText(itemtype,itemkey,'CREATE_MC_BOL_FLAG',FALSE);
382     l_ship_method_code      := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'SHIP_METHOD_CODE',FALSE);
383     l_report_set_id         := WF_ENGINE.GetItemAttrNumber(itemtype,itemkey,'REPORT_SET_ID',FALSE);
384     l_sc_rule_id            := WF_ENGINE.GetItemAttrNumber(itemtype,itemkey,'SC_RULE_ID',FALSE);
385 
386 
387     WSH_NEW_DELIVERIES_PVT.Populate_Record (l_delivery_id,l_delivery_info,l_return_status);
388     l_rec_attr_tab(l_rec_attr_tab.COUNT + 1) := l_delivery_info;
389 
390     l_action_prms.caller                := 'PLSQL';
391     l_action_prms.phase                 :=  NULL;
392     l_action_prms.action_code           := 'CLOSE';
393 
394     -- initializing the action specific parameters
395     l_action_prms.trip_id               := NULL;
396     l_action_prms.trip_name             := NULL;
397     l_action_prms.pickup_stop_id        := NULL; -- p_asg_pickup_stop_id;
398     l_action_prms.pickup_loc_id         := NULL; -- p_asg_pickup_loc_id;
399     l_action_prms.pickup_stop_seq       := NULL; -- p_asg_pickup_stop_seq;
400     l_action_prms.pickup_loc_code       := NULL; -- p_asg_pickup_loc_code;
401     l_action_prms.pickup_arr_date       := NULL; -- p_asg_pickup_arr_date;
402     l_action_prms.pickup_dep_date       := NULL; -- p_asg_pickup_dep_date;
403     l_action_prms.dropoff_stop_id       := NULL; -- p_asg_dropoff_stop_id;
404     l_action_prms.pickup_stop_status    := NULL;
405     l_action_prms.dropoff_loc_id        := NULL; -- p_asg_dropoff_loc_id;
406     l_action_prms.dropoff_stop_seq      := NULL; -- p_asg_dropoff_stop_seq;
407     l_action_prms.dropoff_loc_code      := NULL; -- p_asg_dropoff_loc_code;
408     l_action_prms.dropoff_arr_date      := NULL; -- p_asg_dropoff_arr_date;
409     l_action_prms.dropoff_dep_date      := NULL; -- p_asg_dropoff_dep_date;
410     l_action_prms.dropoff_stop_status   := NULL;
411 
412     l_action_prms.action_flag           := l_action_flag;
413     l_action_prms.intransit_flag        := l_intransit_flag;
414     l_action_prms.close_trip_flag       := l_close_trip_flag;
415     l_action_prms.stage_del_flag        := l_stage_del_flag;
416     l_action_prms.bill_of_lading_flag   := l_bill_of_lading_flag;
417     l_action_prms.mc_bill_of_lading_flag:= nvl(l_mc_bill_of_lading_flag,l_bill_of_lading_flag);
418     l_action_prms.ship_method_code      := l_ship_method_code;
419     l_action_prms.actual_dep_date       := l_actual_date;
420     l_action_prms.report_set_id         := l_report_set_id;
421     l_action_prms.defer_interface_flag  :=  'Y';  -- Performed as another atomic transaction
422     l_action_prms.send_945_flag         := l_send_945_flag;
423     l_action_prms.override_flag         := 'N';  -- WT-VOL
424     l_action_prms.sc_rule_id            := l_sc_rule_id;
425     l_action_prms.organization_id       := l_organization_id;
426 
427     l_action_prms.report_set_name       := NULL;  -- the code finds it later
428     l_action_prms.sc_rule_name          := NULL;  -- the code finds it later
429     l_action_prms.action_type           := NULL;  -- Outbound-Document
430     l_action_prms.document_type         := NULL;  -- Outbound-Document(ASN,BOL,MBOL,PS)
431 
432     l_action_prms.reason_of_transport   := NULL; -- GENERATE-PACK-SLIP
433     l_action_prms.description           := NULL; -- GENERATE-PACK-SLIP
434     l_action_prms.maxDelivs             := NULL; -- Trip Consolidation
435     l_action_prms.ignore_ineligible_dels:= NULL; -- XXXXX
436     l_action_prms.event                 := NULL; --ADJUST-PLANNED-FLAG
437     l_action_prms.form_flag             := NULL; --PROCESS_CARRIER_SELECTION
438 
439     UPDATE WSH_NEW_DELIVERIES
440 	    SET del_wf_close_attr = 'P'
441             WHERE delivery_id = l_delivery_id;
442 
443     IF l_debug_on THEN
444         WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DELIVERIES_GRP.DELIVERY_ACTION',
445 WSH_DEBUG_SV.C_PROC_LEVEL);
446     END IF;
447 
448   wsh_deliveries_grp.delivery_action(
449         p_api_version_number     =>  1.0,
450         p_init_msg_list          =>  FND_API.G_FALSE,
451         p_commit                 =>  FND_API.G_FALSE,
452         p_action_prms            =>  l_action_prms,
453         p_rec_attr_tab           =>  l_rec_attr_tab,
454         x_delivery_out_rec       =>  l_delivery_out_rec,
455         x_defaults_rec           =>  l_defaults_rec,
456         x_return_status          =>  l_return_status,
457         x_msg_count              =>  l_msg_count,
458         x_msg_data               =>  l_msg_data);
459 
460     IF l_debug_on THEN
461         WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
462     END IF;
463 
464 
465 
466     IF (l_return_status <>  wsh_util_core.g_ret_sts_error
467               AND l_return_status <> wsh_util_core.G_RET_STS_UNEXP_ERROR) THEN
468         UPDATE WSH_NEW_DELIVERIES
469 	    SET del_wf_close_attr = 'C'
470             WHERE delivery_id = l_delivery_id;
471         resultout := 'COMPLETE:SUCCESS';
472         fnd_message.set_name('WSH', 'WSH_WF_SCPOD_CLOSED');
473 	l_msg_data := FND_MESSAGE.Get;
474     ELSE
475         UPDATE WSH_NEW_DELIVERIES
476 	    SET del_wf_close_attr = 'E'
477             WHERE delivery_id = l_delivery_id;
478         resultout := 'COMPLETE:FAILURE';
479     END IF;
480 
481     WF_ENGINE.SetItemAttrText(
482                 itemtype => itemtype,
483                 itemkey  => itemkey,
484                 aname => 'SCPOD_DEL_CLOSE_MSG',
485                 avalue => l_msg_data);
486 
487     IF l_debug_on THEN
488        WSH_DEBUG_SV.pop(l_module_name);
489     END IF;
490     RETURN;
491 END IF;
492 
493 IF (funcmode = 'CANCEL') THEN
494     resultout := 'COMPLETE';
495     IF l_debug_on THEN
496        WSH_DEBUG_SV.pop(l_module_name);
497     END IF;
498     RETURN;
499 END IF;
500 
501 -- Other execution modes
502 IF l_debug_on THEN
503    WSH_DEBUG_SV.pop(l_module_name);
504 END IF;
505 resultout := '';
506 RETURN;
507 
508 EXCEPTION
509 WHEN NO_DATA_FOUND THEN
510     resultout := 'COMPLETE:FAILURE';
511     IF l_debug_on THEN
512         WSH_DEBUG_SV.logmsg(l_module_name,'No record found for the entity.Oracle error message is '||
513 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
514         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:NO_DATA_FOUND');
515     END IF;
516     wf_core.context('WSH_WF_INTERFACE',
517                     'SCPOD_C_CLOSE_TRIP',
518                     itemtype,
519                     itemkey,
520                     to_char(actid),
521                     funcmode);
522     RAISE;
523 WHEN OTHERS THEN
524     resultout := 'COMPLETE:FAILURE';
525     IF l_debug_on THEN
526         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
527     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
528         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
529     END IF;
530     wf_core.context('WSH_WF_INTERFACE',
531                     'SCPOD_C_CLOSE_TRIP',
532                     itemtype,
533                     itemkey,
534                     to_char(actid),
535                     funcmode);
536     RAISE;
537 
538 END SCPOD_C_CLOSE_TRIP;
539 
540 ----------------------------------------------------------
541 PROCEDURE SCPOD_C_RUN_INTERFACE(
542                     itemtype IN VARCHAR2,
543                     itemkey IN VARCHAR2,
544                     actid IN NUMBER,
545                     funcmode IN VARCHAR2,
546                     resultout OUT NOCOPY VARCHAR2 ) IS
547 
548 
549 l_delivery_id NUMBER;
550 l_log_level   NUMBER;
551 l_request_id  NUMBER;
552 
553 l_msg_buffer  VARCHAR2(1000);
554 
555 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_RUN_INTERFACE';
556 l_debug_on    BOOLEAN;
557 
558 BEGIN
559 
560 --
561 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
562 --
563 IF l_debug_on IS NULL THEN
564     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
565 END IF;
566 --
567 IF l_debug_on THEN
568     wsh_debug_sv.push(l_module_name);
569     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
570     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
571     wsh_debug_sv.log(l_module_name, 'actid',actid);
572     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
573 END IF;
574 
575 -- RUN mode - normal process execution
576 IF (funcmode = 'RUN') THEN
577     l_delivery_id := itemkey;
578     l_log_level   := 1;
579     UPDATE WSH_NEW_DELIVERIES
580 	    SET del_wf_interface_attr = 'P'
581             WHERE delivery_id = l_delivery_id;
582 
583     l_request_id := FND_REQUEST.submit_Request('WSH', 'WSHINTERFACE', '', '', FALSE,
584 				               'ALL',               -- mode
585                                                 '',                 -- stop
586                                                 l_delivery_id,      -- delivery
587                                                 l_log_level);       -- log level
588     IF l_debug_on THEN
589         WSH_DEBUG_SV.log(l_module_name,'Request Id L_REQUEST_ID',l_request_id);
590     END IF;
591 
592     IF (l_request_id = 0) THEN
593 	UPDATE WSH_NEW_DELIVERIES
594 	    SET del_wf_interface_attr = 'E'
595             WHERE delivery_id = l_delivery_id;
596 	resultout := 'COMPLETE:FAILURE';
597         fnd_message.set_name('WSH', 'WSH_DET_INV_INT_REQ_SUBMISSION');
598         WSH_UTIL_CORE.ADD_MESSAGE(wsh_util_core.g_ret_sts_error,l_module_name);
599     ELSE
600         UPDATE WSH_NEW_DELIVERIES
601 	    SET del_wf_interface_attr = 'C'
602             WHERE delivery_id = l_delivery_id;
603 	resultout := 'COMPLETE:SUCCESS';
604         FND_MESSAGE.SET_NAME('WSH', 'WSH_DET_INV_INT_SUBMITTED');
605         FND_MESSAGE.SET_TOKEN('REQ_ID', to_char(l_request_id));
606         WSH_UTIL_CORE.ADD_MESSAGE(WSH_UTIL_CORE.G_RET_STS_SUCCESS,l_module_name);
607     END IF;
608 
609 
610     l_msg_buffer := FND_MESSAGE.Get;
611     WF_ENGINE.SetItemAttrText(
612                 itemtype => itemtype,
613                 itemkey  => itemkey,
614                 aname => 'SCPOD_INTERFACE_MSG',
615                 avalue => l_msg_buffer);
616 
617     IF l_debug_on THEN
618         WSH_DEBUG_SV.pop(l_module_name);
619     END IF;
620     RETURN;
621 
622 END IF;
623 
624 IF (funcmode = 'CANCEL') THEN
625     NULL;
626     resultout := 'COMPLETE';
627     IF l_debug_on THEN
628        WSH_DEBUG_SV.pop(l_module_name);
629     END IF;
630     RETURN;
631 END IF;
632 
633 -- Other execution modes
634 IF l_debug_on THEN
635    WSH_DEBUG_SV.pop(l_module_name);
636 END IF;
637 resultout := '';
638 RETURN;
639 EXCEPTION
640 WHEN OTHERS THEN
641     resultout := 'COMPLETE:FAILURE';
642     IF l_debug_on THEN
643         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
644     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
645         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
646     END IF;
647     wf_core.context('WSH_WF_INTERFACE',
648                     'SCPOD_C_RUN_INTERFACE',
649                     itemtype,
650                     itemkey,
651                     to_char(actid),
652                     funcmode);
653     RAISE;
654 
655 END SCPOD_C_RUN_INTERFACE;
656 
657 ----------------------------------------------------------
658 PROCEDURE SCPOD_C_PRINT_DOCSET(
659                     itemtype IN VARCHAR2,
660                     itemkey IN VARCHAR2,
661                     actid IN NUMBER,
662                     funcmode IN VARCHAR2,
663                     resultout OUT NOCOPY VARCHAR2 ) IS
664 
665 l_organization_id       NUMBER;
666 l_report_set_id         NUMBER;
667 l_dummy_doc_set         WSH_DOCUMENT_SETS.DOCUMENT_SET_TAB_TYPE;
668 l_delivery_ids          WSH_UTIL_CORE.id_tab_type;
669 l_dummy_rows1           WSH_UTIL_CORE.id_tab_type;
670 l_return_status  VARCHAR2(1);
671 
672 e_print_doc_failed EXCEPTION;
673 
674 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_PRINT_DOCSET';
675 l_debug_on BOOLEAN;
676 
677 BEGIN
678 
679 --
680 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
681 --
682 IF l_debug_on IS NULL THEN
683     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
684 END IF;
685 --
686 IF l_debug_on THEN
687     wsh_debug_sv.push(l_module_name);
688     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
689     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
690     wsh_debug_sv.log(l_module_name, 'actid',actid);
691     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
692 END IF;
693 
694 -- RUN mode - normal process execution
695 IF (funcmode = 'RUN') THEN
696 
697     l_delivery_ids(l_delivery_ids.COUNT + 1) := itemkey;
698     l_organization_id       := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ORG_ID',FALSE);
699     l_report_set_id         := WF_ENGINE.GetItemAttrNumber(itemtype,itemkey,'REPORT_SET_ID',FALSE);
700 
701     IF (l_report_set_id is not null) THEN
702 	    IF l_debug_on THEN
703 		WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_DOCUMENT_SETS.PRINT_DOCUMENT_SETS',
704 	WSH_DEBUG_SV.C_PROC_LEVEL);
705 	    END IF;
706 
707 	    wsh_document_sets.print_document_sets(
708 		p_report_set_id      => l_report_set_id ,
709 		p_organization_id    => l_organization_id,
710 		p_trip_ids           => l_dummy_rows1,
711 		p_stop_ids           => l_dummy_rows1,
712 		p_delivery_ids       => l_delivery_ids,
713 		p_document_param_info=> l_dummy_doc_set,
714 		x_return_status      => l_return_status);
715 
716 	    IF l_debug_on THEN
717 		WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
718 	    END IF;
719 
720 	    IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
721 	        raise e_print_doc_failed;
722 	    ELSE
723  	        resultout := 'COMPLETE';
724 	    END IF;
725     END IF;
726     IF l_debug_on THEN
727         WSH_DEBUG_SV.pop(l_module_name);
728     END IF;
729     RETURN;
730 
731 END IF;
732 
733 IF (funcmode = 'CANCEL') THEN
734     NULL;
735     resultout := 'COMPLETE';
736     IF l_debug_on THEN
737        WSH_DEBUG_SV.pop(l_module_name);
738     END IF;
739     RETURN;
740 END IF;
741 
742 -- Other execution modes
743 IF l_debug_on THEN
744    WSH_DEBUG_SV.pop(l_module_name);
745 END IF;
746 resultout := '';
747 RETURN;
748 EXCEPTION
749 WHEN e_print_doc_failed THEN
750     resultout := 'COMPLETE';
751     IF l_debug_on THEN
752         WSH_DEBUG_SV.logmsg(l_module_name,'Print Document Sets failed.Oracle error message is '||
753 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
754         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:E_PRINT_DOC_FAILED');
755     END IF;
756     wf_core.context('WSH_WF_INTERFACE',
757                     'SCPOD_C_PRINT_DOCSET',
758                     itemtype,
759                     itemkey,
760                     to_char(actid),
761                     funcmode);
762     RAISE;
763 WHEN OTHERS THEN
764     resultout := 'COMPLETE';
765     IF l_debug_on THEN
766         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
767     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
768         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
769     END IF;
770     wf_core.context('WSH_WF_INTERFACE',
771                     'SCPOD_C_PRINT_DOCSET',
772                     itemtype,
773                     itemkey,
774                     to_char(actid),
775                     funcmode);
776     RAISE;
777 END SCPOD_C_PRINT_DOCSET;
778 
779 
780 ----------------------------------------------------------
781 PROCEDURE SCPOD_C_INTRANSIT_CK(
782                     itemtype IN VARCHAR2,
783                     itemkey IN VARCHAR2,
784                     actid IN NUMBER,
785                     funcmode IN VARCHAR2,
786                     resultout OUT NOCOPY VARCHAR2 ) IS
787 
788 l_intransit_flag VARCHAR2(1);
789 
790 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_INTRANSIT_CK';
791 l_debug_on BOOLEAN;
792 
793 BEGIN
794 
795 --
796 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
797 --
798 IF l_debug_on IS NULL THEN
799     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
800 END IF;
801 --
802 IF l_debug_on THEN
803     wsh_debug_sv.push(l_module_name);
804     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
805     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
806     wsh_debug_sv.log(l_module_name, 'actid',actid);
807     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
808 END IF;
809 
810 -- RUN mode - normal process execution
811 IF (funcmode = 'RUN') THEN
812     l_intransit_flag := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'INTRANSIT_FLAG',TRUE);
813     IF (l_intransit_flag = 'Y') THEN
814         resultout := 'COMPLETE:Y';
815     ELSE
816         resultout := 'COMPLETE:N';
817     END IF;
818     IF l_debug_on THEN
819        WSH_DEBUG_SV.pop(l_module_name);
820     END IF;
821     RETURN;
822 END IF;
823 
824 IF (funcmode = 'CANCEL') THEN
825     NULL;
826     resultout := 'COMPLETE';
827     IF l_debug_on THEN
828        WSH_DEBUG_SV.pop(l_module_name);
829     END IF;
830     RETURN;
831 END IF;
832 
833 -- Other execution modes
834 IF l_debug_on THEN
835    WSH_DEBUG_SV.pop(l_module_name);
836 END IF;
837 resultout := '';
838 RETURN;
839 EXCEPTION
840 WHEN OTHERS THEN
841     resultout := 'COMPLETE';
842     IF l_debug_on THEN
843         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
844     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
845         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
846     END IF;
847     wf_core.context('WSH_WF_INTERFACE',
848                     'SCPOD_C_INTRANSIT_CK',
849                     itemtype,
850                     itemkey,
851                     to_char(actid),
852                     funcmode);
853     RAISE;
854 END SCPOD_C_INTRANSIT_CK;
855 
856 ----------------------------------------------------------
857 PROCEDURE SCPOD_C_INTERFACE_CK(
858                     itemtype IN VARCHAR2,
859                     itemkey IN VARCHAR2,
860                     actid IN NUMBER,
861                     funcmode IN VARCHAR2,
862                     resultout OUT NOCOPY VARCHAR2 ) IS
863 
864 l_defer_interface_flag VARCHAR2(1);
865 
866 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_INTERFACE_CK';
867 l_debug_on BOOLEAN;
868 
869 BEGIN
870 
871 --
872 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
873 --
874 IF l_debug_on IS NULL THEN
875     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
876 END IF;
877 --
878 IF l_debug_on THEN
879     wsh_debug_sv.push(l_module_name);
880     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
881     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
882     wsh_debug_sv.log(l_module_name, 'actid',actid);
883     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
884 END IF;
885 
886 -- RUN mode - normal process execution
887 IF (funcmode = 'RUN') THEN
888     l_defer_interface_flag := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'DEFER_INTERFACE_FLAG',FALSE);
889     IF (l_defer_interface_flag = 'Y') THEN
890         resultout := 'COMPLETE:Y';
891     ELSE
892         resultout := 'COMPLETE:N';
893     END IF;
894     IF l_debug_on THEN
895        WSH_DEBUG_SV.pop(l_module_name);
896     END IF;
897     RETURN;
898 END IF;
899 
900 IF (funcmode = 'CANCEL') THEN
901     NULL;
902     resultout := 'COMPLETE';
903     IF l_debug_on THEN
904        WSH_DEBUG_SV.pop(l_module_name);
905     END IF;
906     RETURN;
907 END IF;
908 
909 -- Other execution modes
910 IF l_debug_on THEN
911    WSH_DEBUG_SV.pop(l_module_name);
912 END IF;
913 resultout := '';
914 RETURN;
915 
916 EXCEPTION
917 WHEN OTHERS THEN
918     resultout := 'COMPLETE';
919     IF l_debug_on THEN
920         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
921     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
922         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
923     END IF;
924     wf_core.context('WSH_WF_INTERFACE',
925                     'SCPOD_C_INTERFACE_CK',
926                     itemtype,
927                     itemkey,
928                     to_char(actid),
929                     funcmode);
930     RAISE;
931 END SCPOD_C_INTERFACE_CK;
932 
933 ----------------------------------------------------------
934 PROCEDURE SCPOD_C_CLOSE_TRIP_CK(
935                     itemtype IN VARCHAR2,
936                     itemkey IN VARCHAR2,
937                     actid IN NUMBER,
938                     funcmode IN VARCHAR2,
939                     resultout OUT NOCOPY VARCHAR2 ) IS
940 
941 l_close_flag VARCHAR2(1);
942 
943 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_CLOSE_TRIP_CK';
944 l_debug_on BOOLEAN;
945 
946 BEGIN
947 
948 --
949 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
950 --
951 IF l_debug_on IS NULL THEN
952     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
953 END IF;
954 --
955 IF l_debug_on THEN
956     wsh_debug_sv.push(l_module_name);
957     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
958     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
959     wsh_debug_sv.log(l_module_name, 'actid',actid);
960     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
961 END IF;
962 
963 -- RUN mode - normal process execution
964 IF (funcmode = 'RUN') THEN
965     l_close_flag := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'CLOSE_TRIP_FLAG',FALSE);
966     IF (l_close_flag = 'Y') THEN
967         resultout := 'COMPLETE:Y';
968     ELSE
969         resultout := 'COMPLETE:N';
970     END IF;
971     IF l_debug_on THEN
972 	WSH_DEBUG_SV.pop(l_module_name);
973     END IF;
974     RETURN;
975 END IF;
976 
977 IF (funcmode = 'CANCEL') THEN
978     NULL;
979     resultout := 'COMPLETE';
980     IF l_debug_on THEN
981        WSH_DEBUG_SV.pop(l_module_name);
982     END IF;
983     RETURN;
984 END IF;
985 
986 -- Other execution modes
987 IF l_debug_on THEN
988    WSH_DEBUG_SV.pop(l_module_name);
989 END IF;
990 resultout := '';
991 RETURN;
992 EXCEPTION
993 WHEN OTHERS THEN
994     resultout := 'COMPLETE';
995     IF l_debug_on THEN
996         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
997     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
998         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
999     END IF;
1000     wf_core.context('WSH_WF_INTERFACE',
1001                     'SCPOD_C_CLOSE_TRIP_CK',
1002                     itemtype,
1003                     itemkey,
1004                     to_char(actid),
1005                     funcmode);
1006     RAISE;
1007 END SCPOD_C_CLOSE_TRIP_CK;
1008 
1009 ----------------------------------------------------------
1010 PROCEDURE ITM_AT_SHIP_CONFIRM(
1011                     itemtype IN VARCHAR2,
1012                     itemkey IN VARCHAR2,
1013                     actid IN NUMBER,
1014                     funcmode IN VARCHAR2,
1015                     resultout OUT NOCOPY VARCHAR2 ) IS
1016 
1017 l_screening_flag VARCHAR2(1);
1018 l_param_info WSH_SHIPPING_PARAMS_PVT.Parameter_Rec_Typ;
1019 l_organization_id NUMBER;
1020 
1021 l_return_status VARCHAR2(30);
1022 e_param_not_defined EXCEPTION;
1023 
1024 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'ITM_AT_SHIP_CONFIRM';
1025 l_debug_on BOOLEAN;
1026 
1027 BEGIN
1028 
1029 --
1030 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1031 --
1032 IF l_debug_on IS NULL THEN
1033     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1034 END IF;
1035 --
1036 IF l_debug_on THEN
1037     wsh_debug_sv.push(l_module_name);
1038     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
1039     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
1040     wsh_debug_sv.log(l_module_name, 'actid',actid);
1041     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
1042 END IF;
1043 
1044 -- RUN mode - normal process execution
1045 IF (funcmode = 'RUN') THEN
1046 
1047     l_screening_flag := 'N';
1048     IF l_debug_on THEN
1049         WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_SHIPPING_PARAMS_PVT.GET',
1050 WSH_DEBUG_SV.C_PROC_LEVEL);
1051     END IF;
1052 
1053     l_organization_id := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ORG_ID',FALSE);
1054     WSH_SHIPPING_PARAMS_PVT.Get(p_organization_id => l_organization_id,
1055 	                        x_param_info      => l_param_info,
1056                                 x_return_status   => l_return_status);
1057     IF l_debug_on THEN
1058         WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1059     END IF;
1060 
1061     IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
1062 	raise e_param_not_defined;
1063     ELSE
1064         l_screening_flag := NVL(l_param_info.EXPORT_SCREENING_FLAG,'N');
1065     END IF;
1066 
1067     IF (l_screening_flag = 'A' OR l_screening_flag = 'S') THEN	-- assuming only N,A,C,S
1068         resultout := 'COMPLETE:YES';
1069     ELSE
1070         resultout := 'COMPLETE:NO';
1071     END IF;
1072     IF l_debug_on THEN
1073        WSH_DEBUG_SV.pop(l_module_name);
1074     END IF;
1075     RETURN;
1076 END IF;
1077 
1078 IF (funcmode = 'CANCEL') THEN
1079     NULL;
1080     resultout := 'COMPLETE';
1081     IF l_debug_on THEN
1082        WSH_DEBUG_SV.pop(l_module_name);
1083     END IF;
1084     RETURN;
1085 END IF;
1086 
1087 -- Other execution modes
1088 IF l_debug_on THEN
1089    WSH_DEBUG_SV.pop(l_module_name);
1090 END IF;
1091 resultout := '';
1092 RETURN;
1093 EXCEPTION
1094 WHEN E_PARAM_NOT_DEFINED THEN
1095     resultout := 'COMPLETE:';
1096     IF l_debug_on THEN
1097         WSH_DEBUG_SV.logmsg(l_module_name,'No shipping parameters found for this organization'||
1098 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
1099         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:E_PARAM_NOT_DEFINED');
1100     END IF;
1101     wf_core.context('WSH_WF_INTERFACE',
1102                     'ITM_AT_SHIP_CONFIRM',
1103                     itemtype,
1104                     itemkey,
1105                     to_char(actid),
1106                     funcmode);
1107     RAISE;
1108 WHEN OTHERS THEN
1109     resultout := 'COMPLETE:';
1110     IF l_debug_on THEN
1111         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
1112     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1113         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1114     END IF;
1115     wf_core.context('WSH_WF_INTERFACE',
1116                     'ITM_AT_SHIP_CONFIRM',
1117                     itemtype,
1118                     itemkey,
1119                     to_char(actid),
1120                     funcmode);
1121     RAISE;
1122 
1123 END ITM_AT_SHIP_CONFIRM;
1124 ----------------------------------------------------------
1125 PROCEDURE ITM_AT_DEL_CR(
1126                     itemtype IN VARCHAR2,
1127                     itemkey IN VARCHAR2,
1128                     actid IN NUMBER,
1129                     funcmode IN VARCHAR2,
1130                     resultout OUT NOCOPY VARCHAR2 ) IS
1131 
1132 l_screening_flag VARCHAR2(1);
1133 l_param_info WSH_SHIPPING_PARAMS_PVT.Parameter_Rec_Typ;
1134 l_organization_id NUMBER;
1135 
1136 l_return_status VARCHAR2(30);
1137 e_param_not_defined EXCEPTION;
1138 
1139 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'ITM_AT_DEL_CR';
1140 l_debug_on BOOLEAN;
1141 
1142 BEGIN
1143 
1144 --
1145 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1146 --
1147 IF l_debug_on IS NULL THEN
1148     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1149 END IF;
1150 --
1151 IF l_debug_on THEN
1152     wsh_debug_sv.push(l_module_name);
1153     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
1154     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
1155     wsh_debug_sv.log(l_module_name, 'actid',actid);
1156     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
1157 END IF;
1158 
1159 -- RUN mode - normal process execution
1160 IF (funcmode = 'RUN') THEN
1161 
1162     l_screening_flag := 'N';
1163     IF l_debug_on THEN
1164         WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_SHIPPING_PARAMS_PVT.GET',
1165 WSH_DEBUG_SV.C_PROC_LEVEL);
1166     END IF;
1167 
1168     l_organization_id := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ORG_ID',FALSE);
1169     WSH_SHIPPING_PARAMS_PVT.Get(p_organization_id => l_organization_id,
1170 	                        x_param_info      => l_param_info,
1171                                 x_return_status   => l_return_status);
1172     IF l_debug_on THEN
1173         WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1174     END IF;
1175 
1176     IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS) THEN
1177 	raise e_param_not_defined;
1178     ELSE
1179         l_screening_flag := NVL(l_param_info.EXPORT_SCREENING_FLAG,'N');
1180     END IF;
1181 
1182     IF (l_screening_flag = 'A' OR l_screening_flag = 'C') THEN	-- assuming only N,A,C,S
1183         resultout := 'COMPLETE:YES';
1184     ELSE
1185         resultout := 'COMPLETE:NO';
1186     END IF;
1187     IF l_debug_on THEN
1188        WSH_DEBUG_SV.pop(l_module_name);
1189     END IF;
1190     RETURN;
1191 END IF;
1192 
1193 IF (funcmode = 'CANCEL') THEN
1194     NULL;
1195     resultout := 'COMPLETE';
1196     IF l_debug_on THEN
1197        WSH_DEBUG_SV.pop(l_module_name);
1198     END IF;
1199     RETURN;
1200 END IF;
1201 
1202 -- Other execution modes
1203 IF l_debug_on THEN
1204    WSH_DEBUG_SV.pop(l_module_name);
1205 END IF;
1206 resultout := '';
1207 RETURN;
1208 EXCEPTION
1209 WHEN E_PARAM_NOT_DEFINED THEN
1210     resultout := 'COMPLETE:NO';
1211     IF l_debug_on THEN
1212         WSH_DEBUG_SV.logmsg(l_module_name,'No shipping parameters found for this organization'||
1213 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
1214         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:E_PARAM_NOT_DEFINED');
1215     END IF;
1216     wf_core.context('WSH_WF_INTERFACE',
1217                     'ITM_AT_DEL_CR',
1218                     itemtype,
1219                     itemkey,
1220                     to_char(actid),
1221                     funcmode);
1222     RAISE;
1223 WHEN OTHERS THEN
1224     resultout := 'COMPLETE:NO';
1225     IF l_debug_on THEN
1226         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
1227     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1228         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1229     END IF;
1230     wf_core.context('WSH_WF_INTERFACE',
1231                     'ITM_AT_DEL_CR',
1232                     itemtype,
1233                     itemkey,
1234                     to_char(actid),
1235                     funcmode);
1236     RAISE;
1237 
1238 END ITM_AT_DEL_CR;
1239 
1240 ----------------------------------------------------------
1241 
1242 PROCEDURE SCPOD_C_SUBMIT_ITM(
1243                     itemtype IN VARCHAR2,
1244                     itemkey IN VARCHAR2,
1245                     actid IN NUMBER,
1246                     funcmode IN VARCHAR2,
1247                     resultout OUT NOCOPY VARCHAR2 ) IS
1248 
1249 l_delivery_id     NUMBER;
1250 l_organization_id NUMBER;
1251 l_return_status   VARCHAR2(1);
1252 --
1253 l_debug_on BOOLEAN;
1254 --
1255 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_C_SUBMIT_ITM';
1256 --
1257 BEGIN
1258 
1259 --
1260 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1261 --
1262 IF l_debug_on IS NULL THEN
1263     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1264 END IF;
1265 --
1266 IF l_debug_on THEN
1267     wsh_debug_sv.push(l_module_name);
1268     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
1269     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
1270     wsh_debug_sv.log(l_module_name, 'actid',actid);
1271     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
1272 END IF;
1273 
1274 -- RUN mode - normal process execution
1275 IF (funcmode = 'RUN') THEN
1276     l_delivery_id := itemkey;
1277     l_organization_id       := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ORG_ID',FALSE);
1278 
1279 
1280     IF l_debug_on THEN
1281         WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_ITM_EXPORT_SCREENING.SCREEN_EVENT_DELIVERIES',
1282 WSH_DEBUG_SV.C_PROC_LEVEL);
1283     END IF;
1284 
1285     WSH_ITM_EXPORT_SCREENING.Screen_Event_Deliveries (
1286                 x_return_status            => l_return_status,
1287                 p_organization_id          => l_organization_id,
1288                 p_delivery_from_id         => l_delivery_id ,
1289                 p_delivery_to_id           => l_delivery_id,
1290                 p_event_name               => 'SHIP_CONFIRM',
1291                 p_ship_method_code         => null,
1292                 p_pickup_date_from         => null,
1293                 p_pickup_date_to           => null);
1294     IF l_debug_on THEN
1295         WSH_DEBUG_SV.log(l_module_name,'l_return_status',l_return_status);
1296     END IF;
1297 
1298     IF (l_return_status <>  wsh_util_core.g_ret_sts_error
1299               AND l_return_status <> wsh_util_core.G_RET_STS_UNEXP_ERROR) THEN
1300         resultout := 'COMPLETE:';
1301     ELSE
1302         resultout := '';
1303     END IF;
1304 RETURN;
1305 END IF;
1306 
1307 IF (funcmode = 'CANCEL') THEN
1308     resultout := 'COMPLETE';
1309     IF l_debug_on THEN
1310        WSH_DEBUG_SV.pop(l_module_name);
1311     END IF;
1312     RETURN;
1313 END IF;
1314 -- Other execution modes
1315 IF l_debug_on THEN
1316    WSH_DEBUG_SV.pop(l_module_name);
1317 END IF;
1318 resultout := '';
1319 RETURN;
1320 EXCEPTION
1321 WHEN OTHERS THEN
1322 -- The line below records this function call in the error
1323 -- system in the case of an exception.
1324 wf_core.context('XX_ITEM_TYPE', 'XX_ACTIVITY_NAME',
1325 itemtype, itemkey, to_char(actid),
1326 funcmode);
1327 RAISE;
1328 END SCPOD_C_SUBMIT_ITM;
1329 
1330 ----------------------------------------------------------
1331 
1332 PROCEDURE SCPOD_SCWF_STATUS(
1333                     itemtype IN VARCHAR2,
1334                     itemkey IN VARCHAR2,
1335                     actid IN NUMBER,
1336                     funcmode IN VARCHAR2,
1337                     resultout OUT NOCOPY VARCHAR2 ) IS
1338 
1339 CURSOR get_global_parameters IS
1340 SELECT enable_sc_wf
1341 FROM WSH_GLOBAL_PARAMETERS;
1342 
1343 CURSOR get_shipping_parameters(p_org_id IN NUMBER) IS
1344 SELECT enable_sc_wf
1345 FROM WSH_SHIPPING_PARAMETERS
1346 WHERE organization_id = p_org_id;
1347 
1348 CURSOR get_org_code(p_org_id IN NUMBER) IS
1349 SELECT organization_code
1350 FROM MTL_PARAMETERS
1351 WHERE organization_id = p_org_id;
1352 
1353 l_gl_enable_sc_flag VARCHAR2(1);
1354 l_sp_enable_sc_flag VARCHAR2(1);
1355 l_organization_id   NUMBER;
1356 l_organization_code VARCHAR2(3);
1357 l_override_wf       VARCHAR2(1);
1358 l_return_status     VARCHAR2(1);
1359 l_scpod_wf_process_exists VARCHAR2(1);
1360 l_custom_process_name     VARCHAR2(30);
1361 --
1362 l_debug_on BOOLEAN;
1363 --
1364 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SCPOD_SCWF_STATUS';
1365 --
1366 BEGIN
1367 
1368 --
1369 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1370 --
1371 IF l_debug_on IS NULL THEN
1372     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1373 END IF;
1374 --
1375 IF l_debug_on THEN
1376     wsh_debug_sv.push(l_module_name);
1377     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
1378     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
1379     wsh_debug_sv.log(l_module_name, 'actid',actid);
1380     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
1381 END IF;
1382 
1383 -- RUN mode - normal process execution
1384 IF (funcmode = 'RUN') THEN
1385 
1386     l_organization_id := WF_ENGINE.GetItemAttrText(itemtype,itemkey,'ORG_ID',FALSE);
1387     OPEN get_global_parameters;
1388     FETCH get_global_parameters into l_gl_enable_sc_flag;
1389     CLOSE get_global_parameters ;
1390 
1391     OPEN get_shipping_parameters(l_organization_id);
1392     FETCH get_shipping_parameters into l_sp_enable_sc_flag;
1393     CLOSE get_shipping_parameters ;
1394 
1395     l_override_wf:= fnd_profile.value('WSH_OVERRIDE_SCPOD_WF');
1396 
1397     IF (NVL(l_gl_enable_sc_flag,'N') = 'Y' AND NVL(l_sp_enable_sc_flag,'N') = 'Y'
1398                                            AND l_override_wf = 'N') THEN
1399 
1400 	OPEN get_org_code(l_organization_id);
1401         FETCH get_org_code into l_organization_code;
1402         CLOSE get_org_code ;
1403 
1404 	IF l_debug_on THEN
1405 	    WSH_DEBUG_SV.logmsg(l_module_name,'Calling program unit WSH_WF_STD.GET_CUSTOM_WF_PROCESS', WSH_DEBUG_SV.C_PROC_LEVEL);
1406 	END IF;
1407         WSH_WF_STD.Get_Custom_Wf_Process(p_wf_process    => 'R_SCPOD_C',
1408 	                      p_org_code      => l_organization_code,
1409 			      x_wf_process    => l_custom_process_name,
1410 			      x_return_status => l_return_status);
1411 	IF l_debug_on THEN
1412 	    WSH_DEBUG_SV.log(l_module_name,'L_SCPOD_WF_PROCESS_EXISTS',l_scpod_wf_process_exists);
1413 	    WSH_DEBUG_SV.log(l_module_name,'L_RETURN_STATUS',l_return_status);
1414 	END IF;
1415 
1416 	IF (l_return_status <> WSH_UTIL_CORE.G_RET_STS_SUCCESS AND l_custom_process_name is null) THEN
1417             l_custom_process_name := 'R_SCPOD_C';
1418 	END IF;
1419 
1420 	UPDATE WSH_NEW_DELIVERIES
1421             SET delivery_scpod_wf_process=l_custom_process_name
1422             WHERE delivery_id=to_number(itemkey);
1423         resultout := 'COMPLETE:ENABLED';
1424     ELSE
1425         resultout := 'COMPLETE:DISABLED';
1426     END IF;
1427     IF l_debug_on THEN
1428        WSH_DEBUG_SV.pop(l_module_name);
1429     END IF;
1430     RETURN;
1431 END IF;
1432 IF (funcmode = 'CANCEL') THEN
1433     NULL;
1434     resultout := 'COMPLETE';
1435     IF l_debug_on THEN
1436        WSH_DEBUG_SV.pop(l_module_name);
1437     END IF;
1438     RETURN;
1439 END IF;
1440 
1441 -- Other execution modes
1442 IF l_debug_on THEN
1443    WSH_DEBUG_SV.pop(l_module_name);
1444 END IF;
1445 resultout := '';
1446 RETURN;
1447 
1448 EXCEPTION
1449 WHEN NO_DATA_FOUND THEN
1450     resultout := 'COMPLETE';
1451     IF l_debug_on THEN
1452         WSH_DEBUG_SV.logmsg(l_module_name,'No record found for the entity.Oracle error message is '||
1453 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
1454         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:NO_DATA_FOUND');
1455     END IF;
1456     wf_core.context('WSH_WF_INTERFACE',
1457                     'SCPOD_SCWF_STATUS',
1458                     itemtype,
1459                     itemkey,
1460                     to_char(actid),
1461                     funcmode);
1462     RAISE;
1463 WHEN OTHERS THEN
1464     resultout := 'COMPLETE';
1465     IF l_debug_on THEN
1466         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
1467     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1468         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1469     END IF;
1470     wf_core.context('WSH_WF_INTERFACE',
1471                     'SCPOD_SCWF_STATUS',
1472                     itemtype,
1473                     itemkey,
1474                     to_char(actid),
1475                     funcmode);
1476     RAISE;
1477 END SCPOD_SCWF_STATUS;
1478 ----------------------------------------------------------
1479 /* CURRENTLY NOT IN USE
1480 PROCEDURE Manifesting_Status(
1481                     itemtype IN VARCHAR2,
1482                     itemkey IN VARCHAR2,
1483                     actid IN NUMBER,
1484                     funcmode IN VARCHAR2,
1485                     resultout OUT NOCOPY VARCHAR2 ) IS
1486 
1487 CURSOR get_manifest_status(l_delivery_id NUMBER) IS
1488 SELECT count(wnd.delivery_id)
1489 FROM wsh_new_deliveries wnd,
1490      mtl_parameters mp,
1491      wsh_carriers wc
1492 WHERE  wnd.organization_id = mp.organization_id
1493 AND    wnd.carrier_id = wc.carrier_id
1494 AND    wc.manifesting_enabled_flag = 'Y'
1495 AND    mp.carrier_manifesting_flag = 'Y'
1496 AND    wnd.delivery_id = l_delivery_id;
1497 
1498 l_delivery_id NUMBER;
1499 l_manifest_enabled NUMBER;
1500 --
1501 l_debug_on BOOLEAN;
1502 --
1503 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'MANIFESTING_STATUS';
1504 --
1505 BEGIN
1506 
1507 --
1508 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1509 --
1510 IF l_debug_on IS NULL THEN
1511     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1512 END IF;
1513 --
1514 IF l_debug_on THEN
1515     wsh_debug_sv.push(l_module_name);
1516     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
1517     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
1518     wsh_debug_sv.log(l_module_name, 'actid',actid);
1519     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
1520 END IF;
1521 
1522 -- RUN mode - normal process execution
1523 IF (funcmode = 'RUN') THEN
1524 
1525     l_delivery_id := itemkey;
1526     OPEN get_manifest_status(l_delivery_id);
1527     FETCH get_manifest_status into l_manifest_enabled;
1528     CLOSE get_manifest_status ;
1529 
1530     IF (l_manifest_enabled = 1) THEN
1531         resultout := 'COMPLETE:ENABLED';
1532     ELSE
1533         resultout := 'COMPLETE:DISABLED';
1534     END IF;
1535     IF l_debug_on THEN
1536        WSH_DEBUG_SV.pop(l_module_name);
1537     END IF;
1538     RETURN;
1539 END IF;
1540 IF (funcmode = 'CANCEL') THEN
1541     NULL;
1542     resultout := 'COMPLETE';
1543     IF l_debug_on THEN
1544        WSH_DEBUG_SV.pop(l_module_name);
1545     END IF;
1546     RETURN;
1547 END IF;
1548 
1549 -- Other execution modes
1550 IF l_debug_on THEN
1551    WSH_DEBUG_SV.pop(l_module_name);
1552 END IF;
1553 resultout := '';
1554 RETURN;
1555 
1556 EXCEPTION
1557 WHEN NO_DATA_FOUND THEN
1558     resultout := 'COMPLETE';
1559     IF l_debug_on THEN
1560         WSH_DEBUG_SV.logmsg(l_module_name,'No record found for the entity.Oracle error message is '||
1561 SQLERRM,WSH_DEBUG_SV.C_EXCEP_LEVEL);
1562         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:NO_DATA_FOUND');
1563     END IF;
1564     wf_core.context('WSH_WF_INTERFACE',
1565                     'MANIFESTING_STATUS',
1566                     itemtype,
1567                     itemkey,
1568                     to_char(actid),
1569                     funcmode);
1570     RAISE;
1571 WHEN OTHERS THEN
1572     resultout := 'COMPLETE';
1573     IF l_debug_on THEN
1574         WSH_DEBUG_SV.logmsg(l_module_name,'Unexpected error has occured. Oracle error message is '||
1575     SQLERRM,WSH_DEBUG_SV.C_UNEXPEC_ERR_LEVEL);
1576         WSH_DEBUG_SV.pop(l_module_name,'EXCEPTION:OTHERS');
1577     END IF;
1578     wf_core.context('WSH_WF_INTERFACE',
1579                     'MANIFESTING_STATUS',
1580                     itemtype,
1581                     itemkey,
1582                     to_char(actid),
1583                     funcmode);
1584     RAISE;
1585 END Manifesting_Status;
1586 ----------------------------------------------------------
1587 */
1588 
1589 PROCEDURE Selector(
1590 		itemtype IN VARCHAR2,
1591 		itemkey IN VARCHAR2,
1592 		actid IN NUMBER,
1593 		funcmode IN VARCHAR2,
1594 		resultout OUT NOCOPY VARCHAR2) IS
1595 
1596 l_user_id             NUMBER;
1597 l_resp_id             NUMBER;
1598 l_resp_appl_id        NUMBER;
1599 l_org_id              NUMBER;
1600 l_current_org_id      NUMBER;
1601 l_client_org_id       NUMBER;
1602 
1603 --
1604 --
1605 l_debug_on BOOLEAN;
1606 --
1607 l_module_name CONSTANT VARCHAR2(100) := 'wsh.plsql.' || G_PKG_NAME || '.' || 'SELECTOR';
1608 --
1609 
1610 BEGIN
1611 
1612 --
1613 l_debug_on := WSH_DEBUG_INTERFACE.g_debug;
1614 --
1615 IF l_debug_on IS NULL THEN
1616     l_debug_on := WSH_DEBUG_SV.is_debug_enabled;
1617 END IF;
1618 --
1619 IF l_debug_on THEN
1620     wsh_debug_sv.push(l_module_name);
1621     wsh_debug_sv.log(l_module_name, 'itemtype',itemtype);
1622     wsh_debug_sv.log(l_module_name, 'itemkey',itemkey);
1623     wsh_debug_sv.log(l_module_name, 'actid',actid);
1624     wsh_debug_sv.log(l_module_name, 'funcmode',funcmode);
1625 END IF;
1626 
1627 -- Currently RUN mode is not being used. We are using the WSH_WF_STD pkg functions
1628 -- to find out the process that needs to be launched and are passing that
1629 -- process name in the createprocess call.
1630 IF (funcmode='RUN') THEN
1631 	resultout:='COMPLETE';
1632 	IF l_debug_on THEN
1633 	    WSH_DEBUG_SV.pop(l_module_name);
1634 	END IF;
1635 	RETURN;
1636 END IF;
1637 
1638 -- Engine calls SET_CTX just before activity execution
1639 -- The workflow engine calls the selector function
1640 -- in the SET_CTX mode to set the database context
1641 -- correctly for executing a function activity.
1642 IF (funcmode = 'SET_CTX') THEN
1643 -- FND_GLOBAL.Apps_Initialize(FND_GLOBAL.USER_ID,FND_GLOBAL.RESP_ID, FND_GLOBAL.RESP_APPL_ID);
1644 
1645    -- Any caller that calls the WF_ENGINE can set this to TRUE in which case
1646    -- we will reset apps context to that of the user who created the wf item.
1647    IF WSH_WF_STD.G_RESET_APPS_CONTEXT THEN
1648 	l_org_id :=  to_number(wf_engine.GetItemAttrText( itemtype,itemkey,'ORG_ID'));
1649 
1650         IF l_org_id is null THEN
1651              RAISE NO_DATA_FOUND;
1652         ELSE
1653              -- Set the database session context
1654 	     MO_GLOBAL.set_policy_context ('S', l_org_id);
1655              -- FND_GLOBAL.Apps_Initialize(l_user_id, l_resp_id, l_resp_appl_id);
1656         END IF;
1657     END IF;
1658     resultout:='COMPLETE';
1659     IF l_debug_on THEN
1660         WSH_DEBUG_SV.pop(l_module_name);
1661     END IF;
1662     RETURN;
1663 END IF;
1664 IF (funcmode = 'TEST_CTX') THEN
1665     IF WSH_WF_STD.G_RESET_APPS_CONTEXT THEN
1666 	l_org_id :=  to_number(wf_engine.GetItemAttrText( itemtype,itemkey,'ORG_ID'));
1667 	IF l_debug_on THEN
1668             wsh_debug_sv.log (l_module_name, 'l_wf_org_id', l_org_id);
1669 	END IF;
1670         IF l_org_id IS NULL THEN
1671             resultout := 'TRUE';  -- No Org to match against .. Single Org Env..
1672         ELSE -- Org Id is not null
1673              -- Fetch Current Env Org.
1674             IF l_debug_on THEN
1675                 wsh_debug_sv.log (l_module_name, 'l_current_org_id', MO_GLOBAL.get_current_org_id);
1676             END IF;
1677             IF NVL(MO_GLOBAL.get_current_org_id, -99) <> l_org_id THEN
1678                 resultout := 'FALSE';
1679             ELSE
1680                 resultout := 'TRUE';
1681             END IF;
1682         END IF; -- if org_id is null
1683     ELSE
1684 	resultout := 'TRUE';
1685     END IF;
1686 
1687     IF l_debug_on THEN
1688         WSH_DEBUG_SV.pop(l_module_name);
1689     END IF;
1690     RETURN;
1691 END IF;
1692 
1693 END Selector;
1694 
1695 END WSH_WF_INTERFACE;