DBA Data[Home] [Help]

PACKAGE BODY: APPS.ENG_CHANGE_BES_UTIL

Source


1 PACKAGE BODY ENG_CHANGE_BES_UTIL AS
2 /* $Header: ENGUBESB.pls 120.6 2011/06/01 07:35:57 evwang ship $ */
3 
4   -- ---------------------------------------------------------------------------
5   -- Global variables and constants
6   -- ---------------------------------------------------------------------------
7   G_PKG_NAME                VARCHAR2(30) := 'ENG_CHANGE_BES_UTIL';
8 
9 
10 
11   /********************************************************************
12   * API Type      : Private Local APIs
13   * Purpose       : Those APIs are private
14   *********************************************************************/
15   FUNCTION GetChangeMgmtTypeCode
16   ( p_change_id         IN     NUMBER)
17   RETURN VARCHAR2
18   IS
19     l_cm_code VARCHAR2(30) ;
20 
21     CURSOR  c_cm_code(c_change_id NUMBER)
22     IS
23         -- Select cm category code
24         SELECT ec.change_mgmt_type_code
25         FROM eng_engineering_changes ec
26         WHERE ec.change_id = p_change_id ;
27 
28   BEGIN
29     FOR l_rec IN c_cm_code  (c_change_id => p_change_id)
30     LOOP
31         l_cm_code :=  l_rec.CHANGE_MGMT_TYPE_CODE  ;
32     END LOOP ;
33 
34     RETURN l_cm_code ;
35 
36   END  GetChangeMgmtTypeCode ;
37 
38 
39   FUNCTION GetBaseChangeMgmtTypeCode
40   ( p_change_id         IN     NUMBER)
41     RETURN VARCHAR2
42   IS
43        -- return SUMMARY or DETAIL
44       l_base_cm_code VARCHAR2(30) ;
45 
46       CURSOR  c_base_cm_code(p_change_id NUMBER)
47       IS
48           SELECT ChangeCategory.BASE_CHANGE_MGMT_TYPE_CODE
49           FROM ENG_ENGINEERING_CHANGES EngineeringChangeEO,
50                ENG_CHANGE_ORDER_TYPES ChangeCategory
51           WHERE  ChangeCategory.type_classification = 'CATEGORY'
52           AND ChangeCategory.change_mgmt_type_code = EngineeringChangeEO.change_mgmt_type_code
53           AND EngineeringChangeEO.change_id = p_change_id  ;
54 
55   BEGIN
56       FOR l_rec IN c_base_cm_code  (p_change_id => p_change_id)
57       LOOP
58         l_base_cm_code :=  l_rec.BASE_CHANGE_MGMT_TYPE_CODE  ;
59       END LOOP ;
60 
61       RETURN l_base_cm_code ;
62 
63   END  GetBaseChangeMgmtTypeCode ;
64 
65 
66 
67 
68   /********************************************************************
69   * API Type      : Local APIs
70   * Purpose       : Those APIs are private
71   *********************************************************************/
72   PROCEDURE Raise_Status_Change_Event
73   ( p_change_id                 IN   NUMBER
74    ,p_status_code               IN   NUMBER
75    ,p_action_type               IN   VARCHAR2
76    ,p_action_id                 IN   NUMBER
77    )
78   IS
79 
80     l_param_list                WF_PARAMETER_LIST_T := WF_PARAMETER_LIST_T();
81     l_base_cm_code              VARCHAR2(30) ;
82 
83   BEGIN
84 
85 
86     l_base_cm_code := GetBaseChangeMgmtTypeCode (p_change_id) ;
87 
88     IF ENG_DOCUMENT_UTIL.G_DOM_DOCUMENT_LIFECYCLE = l_base_cm_code
89     THEN
90         RETURN ;
91     END IF ;
92 
93     -- Adding event parameters to the list
94     WF_EVENT.AddParameterToList
95     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_CHANGE_ID
96      ,p_value         => to_char(p_change_id)
97      ,p_parameterList => l_param_list
98      );
99 
100     WF_EVENT.AddParameterToList
101     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_BASE_CM_TYPE_CODE
102      ,p_value         => l_base_cm_code
103      ,p_parameterList => l_param_list
104      );
105 
106     WF_EVENT.AddParameterToList
107     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_STATUS_CODE
108      ,p_value         => to_char(p_status_code)
109      ,p_parameterList => l_param_list
110      );
111 
112     WF_EVENT.AddParameterToList
113     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_ACT_TYPE_CODE
114      ,p_value         => p_action_type
115      ,p_parameterList => l_param_list
116      );
117 
118 
119     WF_EVENT.AddParameterToList
120     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_ACTION_ID
121      ,p_value         => to_char(p_action_id)
122      ,p_parameterList => l_param_list
123      );
124 
125     -- Raise event
126     WF_EVENT.RAISE
127     ( p_event_name    => ENG_CHANGE_BES_UTIL.G_CMBE_HEADER_CHG_STATUS
128      ,p_event_key     => p_change_id
129      ,p_parameters    => l_param_list
130      );
131     l_param_list.DELETE;
132 
133   EXCEPTION
134     WHEN OTHERS THEN
135       NULL;
136   END Raise_Status_Change_Event;
137 
138 
139   PROCEDURE Raise_Appr_Status_Change_Event
140   ( p_change_id                 IN   NUMBER
141    ,p_appr_status               IN   NUMBER
142    ,p_wf_route_status           IN   VARCHAR2
143    )
144   IS
145 
146     l_param_list                WF_PARAMETER_LIST_T := WF_PARAMETER_LIST_T();
147     l_base_cm_code              VARCHAR2(30) ;
148 
149   BEGIN
150 
151     l_base_cm_code := GetBaseChangeMgmtTypeCode (p_change_id) ;
152 
153     IF ENG_DOCUMENT_UTIL.G_DOM_DOCUMENT_LIFECYCLE = l_base_cm_code
154     THEN
155         RETURN ;
156     END IF ;
157 
158 
159     WF_EVENT.AddParameterToList
160     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_CHANGE_ID
161      ,p_value         => to_char(p_change_id)
162      ,p_parameterList => l_param_list
163      );
164     WF_EVENT.AddParameterToList
165     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_BASE_CM_TYPE_CODE
166      ,p_value         => l_base_cm_code
167      ,p_parameterList => l_param_list
168      );
169     WF_EVENT.AddParameterToList
170     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_NEW_APPR_STS_CODE
171      ,p_value         => p_appr_status
172      ,p_parameterList => l_param_list
173      );
174     WF_EVENT.AddParameterToList
175     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_WF_STATUS_CODE
176      ,p_value         => p_wf_route_status
177      ,p_parameterList => l_param_list
178      );
179 
180     BEGIN
181     -- Raise event
182     WF_EVENT.RAISE
183     ( p_event_name    => ENG_CHANGE_BES_UTIL.G_CMBE_HEADER_CHG_APPR_STATUS
184      ,p_event_key     => p_change_id
185      ,p_parameters    => l_param_list
186      );
187     l_param_list.DELETE;
188 
189     EXCEPTION
190              --Added for bug 10128347
191        WHEN OTHERS THEN
192           ERROR_HANDLER.Add_Error_Message(
193              p_message_name              => 'EGO_EVENT_SUBSCR'
194             ,p_application_id            => 'EGO'
195             ,p_message_type              => FND_API.G_RET_STS_ERROR
196             ,p_addto_fnd_stack           => 'Y');
197           raise EGO_USER_ATTRS_COMMON_PVT.G_SUBSCRIPTION_EXC;
198     End;
199   EXCEPTION
200     WHEN EGO_USER_ATTRS_COMMON_PVT.G_SUBSCRIPTION_EXC then  --Added for bug 10128347
201          raise EGO_USER_ATTRS_COMMON_PVT.G_SUBSCRIPTION_EXC;
202     WHEN OTHERS THEN
203       NULL;
204   END Raise_Appr_Status_Change_Event;
205 
206 
207 
208   PROCEDURE Raise_Post_Comment_Event
209   ( p_change_id                 IN   NUMBER
210    ,p_action_type               IN   VARCHAR2
211    ,p_action_id                 IN   NUMBER
212   )
213   IS
214     l_param_list                WF_PARAMETER_LIST_T := WF_PARAMETER_LIST_T();
215     l_base_cm_code              VARCHAR2(30) ;
216 
217   BEGIN
218 
219     l_base_cm_code := GetBaseChangeMgmtTypeCode (p_change_id) ;
220 
221     IF ENG_DOCUMENT_UTIL.G_DOM_DOCUMENT_LIFECYCLE = l_base_cm_code
222     THEN
223         RETURN ;
224     END IF ;
225 
226 
227     -- Adding event parameters to the list
228     WF_EVENT.AddParameterToList
229     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_CHANGE_ID
230      ,p_value         => to_char(p_change_id)
231      ,p_parameterList => l_param_list
232      );
233 
234     WF_EVENT.AddParameterToList
235     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_BASE_CM_TYPE_CODE
236      ,p_value         => l_base_cm_code
237      ,p_parameterList => l_param_list
238      );
239 
240 
241     WF_EVENT.AddParameterToList
242     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_ACT_TYPE_CODE
243      ,p_value         => p_action_type
244      ,p_parameterList => l_param_list
245      );
246 
247     WF_EVENT.AddParameterToList
248     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_ACTION_ID
249      ,p_value         => to_char(p_action_id)
250      ,p_parameterList => l_param_list
251      );
252 
253     -- Raise event
254     WF_EVENT.RAISE
255     ( p_event_name    => ENG_CHANGE_BES_UTIL.G_CMBE_HEADER_POST_COMMENT
256      ,p_event_key     => p_change_id
257      ,p_parameters    => l_param_list
258      );
259 
260     l_param_list.DELETE;
261 
262   EXCEPTION
263     WHEN OTHERS THEN
264       NULL;
265 
266   END Raise_Post_Comment_Event ;
267 
268 
269   PROCEDURE Raise_Create_Change_Event
270   ( p_change_id                 IN   NUMBER
271   )
272   IS
273 
274     l_param_list                WF_PARAMETER_LIST_T := WF_PARAMETER_LIST_T();
275     l_base_cm_code              VARCHAR2(30) ;
276 
277   BEGIN
278 
279     l_base_cm_code := GetBaseChangeMgmtTypeCode (p_change_id) ;
280 
281     IF ENG_DOCUMENT_UTIL.G_DOM_DOCUMENT_LIFECYCLE = l_base_cm_code
282     THEN
283         RETURN ;
284     END IF ;
285 
286 
287     -- Adding event parameters to the list
288     WF_EVENT.AddParameterToList
289     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_CHANGE_ID
290      ,p_value         => to_char(p_change_id)
291      ,p_parameterList => l_param_list
292      );
293 
294     WF_EVENT.AddParameterToList
295     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_BASE_CM_TYPE_CODE
296      ,p_value         => l_base_cm_code
297      ,p_parameterList => l_param_list
298      );
299 
300     -- Raise event
301     WF_EVENT.RAISE
302     ( p_event_name    => ENG_CHANGE_BES_UTIL.G_CMBE_HEADER_CREATE
303      ,p_event_key     => p_change_id
304      ,p_parameters    => l_param_list
305      );
306 
307     l_param_list.DELETE;
308 
309   EXCEPTION
310     WHEN OTHERS THEN
311       NULL;
312 
313   END Raise_Create_Change_Event ;
314 
315 
316   PROCEDURE Raise_Update_Change_Event
317   ( p_change_id                 IN   NUMBER
318   )
319   IS
320 
321     l_param_list                WF_PARAMETER_LIST_T := WF_PARAMETER_LIST_T();
322     l_base_cm_code              VARCHAR2(30) ;
323 
324   BEGIN
325 
326     l_base_cm_code := GetBaseChangeMgmtTypeCode (p_change_id) ;
327 
328     IF ENG_DOCUMENT_UTIL.G_DOM_DOCUMENT_LIFECYCLE = l_base_cm_code
329     THEN
330         RETURN ;
331     END IF ;
332 
333     -- Adding event parameters to the list
334     WF_EVENT.AddParameterToList
335     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_CHANGE_ID
336      ,p_value         => to_char(p_change_id)
337      ,p_parameterList => l_param_list
338      );
339 
340     WF_EVENT.AddParameterToList
341     ( p_name          => ENG_CHANGE_BES_UTIL.G_BES_PARAM_BASE_CM_TYPE_CODE
342      ,p_value         => l_base_cm_code
343      ,p_parameterList => l_param_list
344      );
345 
346     -- Raise event
347     WF_EVENT.RAISE
348     ( p_event_name    => ENG_CHANGE_BES_UTIL.G_CMBE_HEADER_UPDATE
349      ,p_event_key     => p_change_id
350      ,p_parameters    => l_param_list
351      );
352 
353     l_param_list.DELETE;
354 
355   EXCEPTION
356     WHEN OTHERS THEN
357       NULL;
358 
359   END Raise_Update_Change_Event ;
360 
361 
362 END ENG_CHANGE_BES_UTIL;
363