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