DBA Data[Home] [Help]

PACKAGE BODY: APPS.ITG_OUTBOUND_UTILS

Source


1 PACKAGE BODY itg_outbound_utils AS
2 /* ARCS: $Header: itgoutub.pls 120.1 2005/12/22 04:14:35 bsaratna noship $
3  * CVS:  itgoutub.pls,v 1.29 2003/05/29 22:22:44 klai Exp
4  */
5   l_debug_level NUMBER := to_number(nvl(fnd_profile.value('CLN_DEBUG_LEVEL'), '5'));
6 
7   c_off_ttype  CONSTANT BINARY_INTEGER :=  1;
8   c_off_tsub   CONSTANT BINARY_INTEGER :=  2;
9   c_off_id     CONSTANT BINARY_INTEGER :=  3;
10   c_off_org    CONSTANT BINARY_INTEGER :=  4;
11   c_off_doctyp CONSTANT BINARY_INTEGER :=  5;
12   c_off_clntyp CONSTANT BINARY_INTEGER :=  6;
13   c_off_doc    CONSTANT BINARY_INTEGER :=  7;
14   c_off_rel    CONSTANT BINARY_INTEGER :=  8;
15   c_off_pid    CONSTANT BINARY_INTEGER :=  9;
16   c_off_psite  CONSTANT BINARY_INTEGER := 10;
17   c_off_param1 CONSTANT BINARY_INTEGER := 11;
18   c_off_param2 CONSTANT BINARY_INTEGER := 12;
19   c_off_param3 CONSTANT BINARY_INTEGER := 13;
20   c_off_param4 CONSTANT BINARY_INTEGER := 14;
21   c_off_param5 CONSTANT BINARY_INTEGER := 15;
22 
23   FUNCTION get_parameter_list(
24         p_bsr    IN            VARCHAR2,
25         p_id     IN            NUMBER,
26         p_org    IN            NUMBER,
27         p_doctyp IN            VARCHAR2,
28         p_clntyp IN            VARCHAR2,
29         p_doc    IN            VARCHAR2 := NULL,
30         p_rel    IN            VARCHAR2 := NULL,
31         p_param1 IN            VARCHAR2 := NULL,
32         p_param2 IN            VARCHAR2 := NULL,
33         p_param3 IN            VARCHAR2 := NULL,
34         p_param4 IN            VARCHAR2 := NULL
35   ) RETURN wf_parameter_list_t AS
36   BEGIN
37         IF (l_Debug_Level <= 2) THEN
38               itg_debug_pub.Add('ENTERING get_parameter_list',2);
39         END IF;
40 
41         return wf_parameter_list_t
42         ( wf_parameter_t('ECX_TRANSACTION_TYPE',    itg_x_utils.c_app_short_name)
43         , wf_parameter_t('ECX_TRANSACTION_SUBTYPE', p_bsr)
44         , wf_parameter_t('ECX_DOCUMENT_ID',         to_char(p_id))
45         , wf_parameter_t('CLN_ORGANIZATION_ID',     p_org)
46         , wf_parameter_t('CLN_DOC_TYPE',            p_doctyp)
47         , wf_parameter_t('CLN_TYPE',                p_clntyp)
48         , wf_parameter_t('CLN_DOC_NUM',             p_doc)
49         , wf_parameter_t('CLN_REL_NUM',             p_rel)
50         , wf_parameter_t('ECX_PARTY_ID',            itg_x_utils.g_party_id)
51         , wf_parameter_t('ECX_PARTY_SITE_ID',       itg_x_utils.g_party_site_id)
52         , wf_parameter_t('ECX_PARAMETER1',          p_param1)
53         , wf_parameter_t('ECX_PARAMETER2',          p_param2)
54         , wf_parameter_t('ECX_PARAMETER3',          p_param3)
55         , wf_parameter_t('ECX_PARAMETER4',          p_param4)
56         , wf_parameter_t('ECX_PARAMETER5',          NULL)
57         );
58         /* 'CLN_ID' is added by the WF function create_outbound_collaboration() */
59 
60         IF (l_Debug_Level <= 2) THEN
61               itg_debug_pub.Add('EXITING get_parameter_list',2);
62         END IF;
63   END get_parameter_list;
64 
65   PROCEDURE change_parameter_list(
66         p_list   IN OUT NOCOPY wf_parameter_list_t,
67         p_bsr    IN            VARCHAR2 := NULL,
68         p_id     IN            NUMBER   := NULL,
69         p_org    IN            NUMBER   := NULL,
70         p_doctyp IN            VARCHAR2 := NULL,
71         p_clntyp IN            VARCHAR2 := NULL,
72         p_doc    IN            VARCHAR2 := NULL,
73         p_rel    IN            VARCHAR2 := NULL,
74         p_param1 IN            VARCHAR2 := NULL,
75         p_param2 IN            VARCHAR2 := NULL,
76         p_param3 IN            VARCHAR2 := NULL,
77         p_param4 IN            VARCHAR2 := NULL
78   ) IS
79   BEGIN
80         IF p_bsr    IS NOT NULL THEN
81                 IF p_bsr    = FND_API.G_MISS_CHAR THEN
82                      p_list(c_off_tsub).setValue(NULL);
83                 ELSE
84                      p_list(c_off_tsub).setValue(p_bsr);
85                 END IF;
86         END IF;
87 
88         IF p_id     IS NOT NULL THEN
89                 IF p_id     = FND_API.G_MISS_NUM  THEN
90                      p_list(c_off_id).setValue(NULL);
91                 ELSE
92                      p_list(c_off_id).setValue(to_char(p_id));
93                 END IF;
94         END IF;
95 
96         IF p_org    IS NOT NULL THEN
97                 IF p_org    = FND_API.G_MISS_NUM  THEN
98                      p_list(c_off_org).setValue(NULL);
99                 ELSE
100                      p_list(c_off_org).setValue(p_org);
101                 END IF;
102         END IF;
103 
104         IF p_doctyp IS NOT NULL THEN
105                 IF p_doctyp = FND_API.G_MISS_CHAR THEN
106                      p_list(c_off_doctyp).setValue(NULL);
107                 ELSE
108                      p_list(c_off_doctyp).setValue(p_doctyp);
109                 END IF;
110         END IF;
111 
112         IF p_clntyp IS NOT NULL THEN
113                 IF p_clntyp = FND_API.G_MISS_CHAR THEN
114                      p_list(c_off_clntyp).setValue(NULL);
115                 ELSE
116                      p_list(c_off_clntyp).setValue(p_clntyp);
117                 END IF;
118         END IF;
119 
120         IF p_doc    IS NOT NULL THEN
121                 IF p_doc    = FND_API.G_MISS_CHAR THEN
122                      p_list(c_off_doc).setValue(NULL);
123                 ELSE
124                      p_list(c_off_doc).setValue(p_doc);
125                 END IF;
126         END IF;
127 
128         IF p_rel    IS NOT NULL THEN
129                 IF p_rel    = FND_API.G_MISS_CHAR THEN
130                      p_list(c_off_rel).setValue(NULL);
131                 ELSE
132                      p_list(c_off_rel).setValue(p_rel);
133                 END IF;
134         END IF;
135 
136         IF p_param1 IS NOT NULL THEN
137                 IF p_param1 = FND_API.G_MISS_CHAR THEN
138                      p_list(c_off_param1).setValue(NULL);
139                 ELSE
140                      p_list(c_off_param1).setValue(p_param1);
141                 END IF;
142         END IF;
143 
144         IF p_param2 IS NOT NULL THEN
145                   IF p_param2 = FND_API.G_MISS_CHAR THEN
146                        p_list(c_off_param2).setValue(NULL);
147                   ELSE
148                        p_list(c_off_param2).setValue(p_param2);
149                   END IF;
150         END IF;
151 
152         IF p_param3 IS NOT NULL THEN
153                 IF p_param3 = FND_API.G_MISS_CHAR THEN
154                      p_list(c_off_param3).setValue(NULL);
155                 ELSE
156                      p_list(c_off_param3).setValue(p_param3);
157                 END IF;
158         END IF;
159 
160         IF p_param4 IS NOT NULL THEN
161                 IF p_param4 = FND_API.G_MISS_CHAR THEN
162                       p_list(c_off_param4).setValue(NULL);
163                 ELSE
164                       p_list(c_off_param4).setValue(p_param4);
165                 END IF;
166         END IF;
167   END change_parameter_list;
168 
169 
170   PROCEDURE raise_wf_event_params(
171         p_params        IN     wf_parameter_list_t
172   ) AS
173         l_params               wf_parameter_list_t;
174         l_event                wf_event_t;
175         l_to_agent             wf_agent_t;
176         l_event_key            VARCHAR2(60);
177 
178   BEGIN
179           IF (l_Debug_Level <= 2) THEN
180                   itg_debug_pub.Add('ENTERING raise_wf_event_params',2);
181           END IF;
182 
183           IF (l_Debug_Level <= 1) THEN
184                 itg_debug_pub.Add('Top of raise_wf_event_params' ,1);
185                 itg_debug_pub.Add('ttype  '||p_params(c_off_ttype).getValue  ,1);
186                 itg_debug_pub.Add('tsub   '||p_params(c_off_tsub).getValue   ,1);
187                 itg_debug_pub.Add('id     '||p_params(c_off_id).getValue     ,1);
188                 itg_debug_pub.Add('org    '||p_params(c_off_org).getValue    ,1);
189                 itg_debug_pub.Add('doctyp '||p_params(c_off_doctyp).getValue ,1);
190                 itg_debug_pub.Add('clntyp '||p_params(c_off_clntyp).getValue ,1);
191                 itg_debug_pub.Add('doc    '||p_params(c_off_doc).getValue    ,1);
192                 itg_debug_pub.Add('rel    '||p_params(c_off_rel).getValue    ,1);
193                 itg_debug_pub.Add('pid    '||p_params(c_off_pid).getValue    ,1);
194                 itg_debug_pub.Add('psite  '||p_params(c_off_psite).getValue  ,1);
195                 itg_debug_pub.Add('param1 '||p_params(c_off_param1).getValue ,1);
196                 itg_debug_pub.Add('param2 '||p_params(c_off_param2).getValue ,1);
197                 itg_debug_pub.Add('param3 '||p_params(c_off_param3).getValue ,1);
198                 itg_debug_pub.Add('param4 '||p_params(c_off_param4).getValue ,1);
199           END IF;
200 
201           IF NOT itg_x_utils.g_initialized THEN
202                 /* 4169685: REMOVE INSTALL DATA INSERTION FROM HR_LOCATIONS TABLE */
203                 IF (l_Debug_Level <= 1) THEN
204                         itg_debug_pub.Add('Missing Trading Partner setup and/or Connector uninitialized' ,1);
205                 END IF;
206 
207                 RETURN;
208           END IF;
209 
210     IF NOT ITG_OrgEff_PVT.Check_Effective(
211              p_organization_id => p_params(c_off_org).getValue,
212              p_cln_doc_type    => p_params(c_off_doctyp).getValue,
213              p_doc_direction   => 'P') THEN
214 
215                 IF (l_Debug_Level <= 1) THEN
216                       itg_debug_pub.Add('Triggered event is not effective.' ,1);
217                 END IF;
218                 RETURN;
219     END IF;
220 
221     l_to_agent := wf_agent_t('WF_IN', itg_x_utils.g_local_system);
222     SELECT itg_x_utils.g_event_key_pfx ||
223            to_char(itg_outbound_seq.nextval, 'FM09999999')
224     INTO   l_event_key
225     FROM   dual;
226 
227     IF (l_Debug_Level <= 1) THEN
228         itg_debug_pub.Add('l_event_key '||l_event_key ,1);
229     END IF;
230 
231     l_params := p_params;
232 
233     l_params(c_off_param5).setValue(l_event_key);
234 /*
235     wf_event_t.initialize(l_event);
236     l_event.setParameterList(l_params);
237     l_event.setEventName(itg_x_utils.c_event_name);
238     l_event.setEventKey(l_event_key);
239     l_event.setToAgent(l_to_agent);
240     l_event.setCorrelationID(itg_x_utils.c_correlation_id);
241     wf_event.Send(l_event);
242 */
243 /* Changed Send to a Raise, inorder to prevent Agent error while capturing
244    event message in workflow, More Details refer to Bug no: 3896966*/
245     wf_event.raise(
246                        p_event_name => itg_x_utils.c_event_name,
247                        p_event_key  => l_event_key,
248                        p_parameters => l_params
249                   );
250 
251     IF (l_Debug_Level <= 2) THEN
252           itg_debug_pub.Add('Message sent ', 2);
253           itg_debug_pub.Add('EXITING raise_wf_event_params ', 2);
254     END IF;
255 
256   END raise_wf_event_params;
257 
258 
259 
260   PROCEDURE raise_wf_event(
261         p_bsr           IN   VARCHAR2,
262         p_id            IN   NUMBER,
263         p_org           IN   NUMBER,
264         p_doctyp        IN   VARCHAR2,
265         p_clntyp        IN   VARCHAR2,
266         p_doc           IN   VARCHAR2 := NULL,
267         p_rel           IN   VARCHAR2 := NULL,
268         p_param1        IN   VARCHAR2 := NULL,
269         p_param2        IN   VARCHAR2 := NULL,
270         p_param3        IN   VARCHAR2 := NULL,
271         p_param4        IN   VARCHAR2 := NULL
272   ) AS
273   BEGIN
274         IF (l_Debug_Level <= 2) THEN
275                 itg_debug_pub.Add('ENTERING raise_wf_event',2);
276         END IF;
277 
278         raise_wf_event_params(
279                   get_parameter_list(
280                             p_bsr, p_id, p_org, p_doctyp, p_clntyp, p_doc, p_rel,
281                             p_param1, p_param2, p_param3, p_param4
282                   )
283         );
284 
285         IF (l_Debug_Level <= 2) THEN
286                 itg_debug_pub.Add('EXITING raise_wf_event',2);
287         END IF;
288   END raise_wf_event;
289 
290 END itg_outbound_utils;