[Home] [Help]
PACKAGE BODY: APPS.XDP_OM_UTIL
Source
1 PACKAGE BODY XDP_OM_UTIL AS
2 /* $Header: XDPOMUTB.pls 120.1 2005/06/09 00:21:55 appldev $ */
3
4 /****
5 All Private Procedures for the Package
6 ****/
7
8 -- **************** SUBSCRIBE_SERVICE_FULFILLMENT_DONE *********************
9
10 PROCEDURE SUBSCRIBE_SRV_FULFILLMENT_DONE
11 (itemtype IN VARCHAR2,
12 itemkey IN VARCHAR2,
13 actid IN NUMBER,
14 resultout OUT NOCOPY VARCHAR2 ) IS
15
16 l_reference_id NUMBER ;
17 l_message_type VARCHAR2(40) := 'XDP_FULFILL_DONE';
18 l_fa_instance_id NUMBER;
19 l_workitem_instance_id NUMBER ;
20 l_order_id NUMBER;
21 l_error_code NUMBER;
22 l_error_message VARCHAR2(4000);
23 l_activity_name VARCHAR2(400);
24 l_process_reference VARCHAR2(1000);
25 x_progress VARCHAR2(4000);
26 e_subscribe_for_event EXCEPTION;
27
28 BEGIN
29
30 l_reference_id := to_number(itemkey);
31 l_activity_name := wf_engine.GETACTIVITYLABEL(actid);
32 l_process_reference := itemtype||':'||itemkey||':'||l_activity_name;
33
34 XNP_STANDARD.SUBSCRIBE_FOR_EVENT
35 (p_MESSAGE_TYPE => l_MESSAGE_TYPE
36 ,p_WORKITEM_INSTANCE_ID => l_WORKITEM_INSTANCE_ID
37 ,p_CALLBACK_REF_ID => l_REFERENCE_ID
38 ,p_PROCESS_REFERENCE => l_PROCESS_REFERENCE
39 ,p_ORDER_ID => l_ORDER_ID
40 ,p_FA_INSTANCE_ID => l_FA_INSTANCE_ID
41 ,x_ERROR_CODE => l_ERROR_CODE
42 ,x_ERROR_MESSAGE => l_ERROR_MESSAGE );
43
44 IF l_error_code <> 0 THEN
45 x_progress := 'In XDP_OM_UTIL.SUBSCRIBE_SRV_FULFILLMENT_DONE. Error while subscribing to '||
46 'XDP_FULFILLMENT_DONE Event . Error :- ' ||substr(l_error_message,1,2000) ;
47 raise e_SUBSCRIBE_FOR_EVENT;
48 END IF;
49
50 resultout := 'NOTIFIED';
51
52 EXCEPTION
53 WHEN e_subscribe_for_event THEN
54 wf_core.context('XDPCORE_OM', 'SUBSCRIBE_SRV_FULFILLMENT_DONE', itemtype, itemkey,to_char(actid), x_progress);
55 RAISE;
56 WHEN others THEN
57 x_progress := sqlcode|| ' - '||sqlerrm ;
58 wf_core.context('XDP_OM_UTIL','SUBSCRIBE_SRV_FULFILLMENT_DONE',itemtype,itemkey,actid,x_progress) ;
59 RAISE;
60 END SUBSCRIBE_SRV_FULFILLMENT_DONE ;
61
62
63 -- **************** SUBSCRIBE_XDP_LINE_DONE *********************
64
65 PROCEDURE SUBSCRIBE_XDP_LINE_DONE
66 (itemtype IN VARCHAR2,
67 itemkey IN VARCHAR2,
68 actid IN NUMBER,
69 resultout OUT NOCOPY VARCHAR2 ) IS
70
71 l_reference_id NUMBER ;
72 l_message_type VARCHAR2(40) := 'XDP_LINE_DONE';
73 l_fa_instance_id NUMBER;
74 l_workitem_instance_id NUMBER ;
75 l_order_id NUMBER;
76 l_error_code NUMBER;
77 l_error_message VARCHAR2(4000);
78 l_activity_name VARCHAR2(400);
79 l_process_reference VARCHAR2(1000);
80 x_progress VARCHAR2(4000);
81 e_subscribe_for_event EXCEPTION;
82
83 BEGIN
84
85 l_reference_id := to_number(itemkey);
86 l_activity_name := wf_engine.GETACTIVITYLABEL(actid);
87 l_process_reference := itemtype||':'||itemkey||':'||l_activity_name;
88
89 XNP_STANDARD.SUBSCRIBE_FOR_EVENT
90 (p_MESSAGE_TYPE => l_MESSAGE_TYPE
91 ,p_WORKITEM_INSTANCE_ID => l_WORKITEM_INSTANCE_ID
92 ,p_CALLBACK_REF_ID => l_REFERENCE_ID
93 ,p_PROCESS_REFERENCE => l_PROCESS_REFERENCE
94 ,p_ORDER_ID => l_ORDER_ID
95 ,p_FA_INSTANCE_ID => l_FA_INSTANCE_ID
96 ,x_ERROR_CODE => l_ERROR_CODE
97 ,x_ERROR_MESSAGE => l_ERROR_MESSAGE );
98
99 IF l_error_code <> 0 THEN
100 x_progress := 'In XDP_OM_UTIL.SUBSCRIBE_XDP_LINE_DONE. Error while subscribing to '||
101 'XDP_LINE_DONE Event . Error :- ' ||substr(l_error_message,1,2000) ;
102 raise e_SUBSCRIBE_FOR_EVENT;
103 END IF;
104
105 resultout := 'NOTIFIED';
106
107 EXCEPTION
108 WHEN e_subscribe_for_event THEN
109 wf_core.context('XDPCORE_OM', 'SUBSCRIBE_XDP_LINE_DONE', itemtype, itemkey,to_char(actid), x_progress);
110 RAISE;
111 WHEN others THEN
112 x_progress := sqlcode ||' - ' ||sqlerrm ;
113 wf_core.context('XDP_OM_UTIL','SUBSCRIBE_XDP_LINE_DONE',itemtype,itemkey,actid,x_progress ) ;
114 RAISE;
115 END SUBSCRIBE_XDP_LINE_DONE ;
116
117 -- **************** IS_ACTIVATION_REQD *********************
118
119 FUNCTION IS_ACTIVATION_REQD
120 (p_line_id IN NUMBER) RETURN BOOLEAN IS
121
122 l_inventory_item_id NUMBER ;
123 l_organization_id NUMBER ;
124 l_activation_flag VARCHAR2(1) := 'N' ;
125 x_progress VARCHAr2(4000);
126
127 BEGIN
128
129 SELECT NVL( msi.comms_activation_reqd_flag,'N')
130 INTO l_activation_flag
131 FROM oe_order_lines_all l,
132 mtl_system_items_b msi
133 WHERE l.line_id = p_line_id
134 AND msi.inventory_item_id = l.inventory_item_id
135 AND msi.organization_id = l.ship_from_org_id ;
136
137 IF l_activation_flag = 'Y' THEN
138 RETURN TRUE ;
139 ELSE
140 RETURN FALSE ;
141 END IF ;
142
143 EXCEPTION
144 WHEN others THEN
145 x_progress := sqlcode ||' - ' ||sqlerrm ;
146 wf_core.context('XDP_OM_UTIL','SUBSCRIBE_SERVICE_FULFILLMENT_DONE',null,null,null,x_progress ) ;
147 RAISE;
148
149 END IS_ACTIVATION_REQD ;
150
151
152 -- **************** HandleOtherWFFuncmode *********************
153
154
155 FUNCTION HandleOtherWFFuncmode( funcmode in varchar2) RETURN VARCHAR2 IS
156
157 resultout VARCHAR2(30);
158 x_progress VARCHAR2(4000);
159
160 BEGIN
161
162 IF (funcmode = 'CANCEL') THEN
163 resultout := 'COMPLETE';
164 END IF;
165
166 IF (funcmode = 'RESPOND') THEN
167 resultout := 'COMPLETE';
168 END IF;
169
170 IF (funcmode = 'FORWARD') THEN
171 resultout := 'COMPLETE';
172 END IF;
173
174 IF (funcmode = 'TRANSFER') THEN
175 resultout := 'COMPLETE';
176 END IF;
177
178 IF (funcmode = 'TIMEOUT') THEN
179 resultout := 'COMPLETE';
180 END IF;
181
182 IF (funcmode = 'others') THEN
183 resultout := 'COMPLETE';
184 END IF;
185
186 return resultout;
187
188 END HandleOtherWFFuncmode;
189
190
191 End XDP_OM_UTIL;