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