DBA Data[Home] [Help]

PACKAGE BODY: APPS.ITG_BOAPI_WRAPPERS

Source


1 PACKAGE BODY ITG_BOAPI_Wrappers AS
2 /* ARCS: $Header: itgwrapb.pls 120.7 2006/08/24 06:06:01 pvaddana noship $
3  * CVS:  itgwrapb.pls,v 1.52 2003/05/30 00:49:39 klai Exp
4  */
5   l_debug_level                 NUMBER := to_number(nvl(fnd_profile.value('CLN_DEBUG_LEVEL'), '5'));
6 
7   g_collaboration_id            NUMBER;
8   g_return_status               VARCHAR2(1);
9   g_return_message              VARCHAR2(2000);
10   g_doctyp                      VARCHAR2(100);
11   g_org                         NUMBER;
12   g_clntyp                      VARCHAR2(100);
13   g_process_vendor_contact      BOOLEAN;
14 
15   g_vinfo_rec                   ITG_SyncSupplierInbound_PVT.vinfo_rec_type;
16 
17   FUNCTION describe_return_status(
18         p_rstat                 IN VARCHAR2
19   ) RETURN VARCHAR2 IS
20   BEGIN
21         IF p_rstat = FND_API.G_RET_STS_SUCCESS  THEN
22                 RETURN 'Success';
23         ELSIF p_rstat = FND_API.G_RET_STS_ERROR THEN
24                 RETURN 'Error';
25         ELSE /*everything else is unexpected!*/
26                 RETURN 'Un-expected error';
27         END IF;
28   END describe_return_status;
29 
30 
31   PROCEDURE check_return_status(
32         p_name                  IN VARCHAR2,
33         p_rstat                 IN VARCHAR2
34   )
35   IS
36   BEGIN
37         IF  p_rstat <> FND_API.G_RET_STS_SUCCESS     AND
38             p_rstat <> FND_API.G_RET_STS_ERROR       THEN
39                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
40         ELSE
41                 g_return_status := p_rstat;
42         END IF;
43   EXCEPTION
44         WHEN OTHERS THEN
45              null;
46   END check_return_status;
47 
48   /* PUBLIC calls. */
49 
50   PROCEDURE Begin_Wrapper(
51         p_refid                 IN  VARCHAR2,
52         p_org                   IN  NUMBER,
53         p_xmlg_xtype            IN  VARCHAR2,
54         p_xmlg_xstyp            IN  VARCHAR2,
55         p_xmlg_docid            IN  VARCHAR2,
56         p_doctyp                IN  VARCHAR2,
57         p_clntyp                IN  VARCHAR2,
58         p_doc                   IN  VARCHAR2,
59         p_rel                   IN  VARCHAR2,
60         p_cdate                 IN  DATE
61   )
62   IS
63         l_return_status         VARCHAR2(1);
64         l_msg_buff              VARCHAR2(2000);
65         l_session_id            NUMBER;
66   BEGIN
67         g_active                := 1;
68         g_return_status         := FND_API.G_RET_STS_SUCCESS;
69         g_doctyp                := p_doctyp;
70         g_clntyp                := p_clntyp;
71         g_org                   := p_org;
72 
73         FND_PROFILE.put('FND_AS_MSG_LEVEL_THRESHOLD', 0);
74 
75         IF (l_Debug_Level <= 2) THEN
76               itg_debug_pub.Add('--- Entering Begin_Wrapper ---' ,2);
77         END IF;
78 
79 
80         /* 4169685: REMOVE INSTALL DATA INSERTION FROM HR_LOCATIONS TABLE */
81         IF NOT itg_x_utils.g_initialized THEN
82                 g_return_status := FND_API.G_RET_STS_ERROR;
83                 itg_msg.incorrect_setup;
84 
85                 IF (l_Debug_Level <= 1) THEN
86                         itg_debug_pub.Add('Missing Trading Partner setup and/or Connector uninitialized.' ,1);
87                 END IF;
88                 RETURN;
89         END IF;
90 
91         -- Remove FND_MSG from every package. Do it once per transaction here.
92         FND_MSG_PUB.INITIALIZE;
93 
94 	  /*
95         FND_GLOBAL.apps_initialize(
96                 user_id      => nvl(fnd_profile.value('ITG_XML_USER'),itg_x_utils.c_user_id),
97                 resp_id      => itg_x_utils.c_resp_id,
98                 resp_appl_id => itg_x_utils.c_resp_appl_id
99         );*/
100 
101 	  -- po_acctions.close_po api checks for value of fnd_global.login_id
102         -- fnd_global.apps_initialize sets it to -1,
103         -- hence calling FND_GLOBAl.INITIALIZE as a workaround.
104         -- this resolves the issue with the close_PO API failue
105         FND_GLOBAl.INITIALIZE(l_session_id,
106                    nvl(fnd_profile.value('ITG_XML_USER'),itg_x_utils.c_user_id),
107                    itg_x_utils.c_resp_id,
108                    itg_x_utils.c_resp_appl_id,
109                    0, -1, 1, -1, -1, -1, -1, null,null,null,null,null,null,-1);
110 
111         MO_GLOBAL.init('PO');
112 
113         IF p_org IS NOT NULL THEN
114                 BEGIN
115                         FND_Client_Info.set_org_context(p_org);
116 	 			MO_GLOBAL.set_policy_context('S', p_org); -- MOAC
117                 EXCEPTION
118                         WHEN OTHERS THEN
119                                 itg_msg.invalid_org(p_org);
120                                 g_return_status := FND_API.G_RET_STS_ERROR;
121                                 RAISE FND_API.G_EXC_ERROR;
122                 END;
123         END IF;
124 
125         BEGIN
126                 IF (l_Debug_Level <= 1) THEN
127                       itg_debug_pub.Add('Calling create_collaboration ...' ,1);
128                 END IF;
129 
130                 CLN_CH_COLLABORATION_PKG.create_collaboration(
131                         x_return_status             => l_return_status,
132                         x_msg_data                  => l_msg_buff,
133                         p_app_id                    => itg_x_utils.c_application_id,
134                         p_ref_id                    => p_refid,
135                         p_org_id                    => p_org,
136                         p_rel_no                    => p_rel,
137                         p_doc_no                    => p_doc,
138                         p_doc_rev_no                => NULL,          /* NOTE: ??? */
139                         p_xmlg_transaction_type     => p_xmlg_xtype,
140                         p_xmlg_transaction_subtype  => p_xmlg_xstyp,
141                         p_xmlg_document_id          => p_xmlg_docid,
142                         p_partner_doc_no            => NULL,          /* NOTE: ??? */
143                         p_coll_type                 => p_clntyp,
144                         p_tr_partner_type           => itg_x_utils.c_party_type,
145                         p_tr_partner_id             => itg_x_utils.g_party_id,
146                         p_tr_partner_site           => itg_x_utils.g_party_site_id,
147                         p_resend_flag               => 'N',
148                         p_resend_count              => 0,
149                         p_doc_owner                 => FND_GLOBAL.USER_ID,
150                         p_init_date                 => SYSDATE,
151                         p_doc_creation_date         => p_cdate,
152                         p_doc_revision_date         => NULL,
153                         p_doc_type                  => p_doctyp,
154                         p_doc_dir                   => 'IN',
155                         p_coll_pt                   => itg_x_utils.c_xmlg_coll_pt,
156                         p_xmlg_msg_id               => NULL,
157                         p_unique1                   => NULL,
158                         p_unique2                   => NULL,
159                         p_unique3                   => NULL,
160                         p_unique4                   => NULL,
161                         p_unique5                   => NULL,
162                         p_sender_component          => NULL,
163                         p_rosettanet_check_required => FALSE,
164                         p_xmlg_internal_control_number => p_refid,
165                         x_coll_id                   => g_collaboration_id
166                 );
167 
168                 IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
169                         IF (l_Debug_Level <= 5) THEN
170                                 itg_debug_pub.Add('Create CLN : ' || l_return_status || l_msg_buff , 5);
171                         END IF;
172 
173                         itg_msg.cln_failure(substr(l_msg_buff,1,255));
174                         g_collaboration_id := 0;
175                         itg_msg.unexpected_error('CLN collaboration creation');
176                 END IF;
177         EXCEPTION
178                 WHEN OTHERS THEN
179                         g_collaboration_id := 0;
180                         IF (l_Debug_Level <= 6) THEN
181                                 itg_debug_pub.Add(substr(SQLERRM,1,255), 6);
182                         END IF;
183 
184                         itg_msg.cln_failure(substr(SQLERRM,1,255));
185                         itg_msg.unexpected_error('CLN collaboration creation');
186         END;
187 
188         check_return_status('Begin_Wrapper', l_return_status);
189 
190         IF (l_Debug_Level <= 2) THEN
191               itg_debug_pub.Add('--- Exiting Begin_Wrapper ---' ,2);
192         END IF;
193   EXCEPTION
194         WHEN OTHERS THEN
195                 check_return_status('Begin_Wrapper', FND_API.G_RET_STS_UNEXP_ERROR );
196                 IF (l_Debug_Level <= 6) THEN
197                         itg_debug_pub.Add('BeginWrapper ' || SQLERRM ,6);
198                 END IF;
199 
200                 g_collaboration_id := 0;
201                 itg_msg.unexpected_error('CLN collaboration creation');
202   END Begin_Wrapper;
203 
204 
205 
206 
207   PROCEDURE End_Wrapper(
208         p_refid                 IN  VARCHAR2 := NULL,
209         p_doc                   IN  VARCHAR2 := NULL,
210         p_cdate                 IN  DATE := SYSDATE,
211         x_cln_id                OUT NOCOPY NUMBER,
212         x_return_status         OUT NOCOPY VARCHAR2,
213         x_return_message        OUT NOCOPY VARCHAR2
214   ) IS
215   BEGIN
216         IF (l_Debug_Level <= 2) THEN
217               itg_debug_pub.Add('--- Entering End_Wrapper ---' ,2);
218         END IF;
219 
220         IF (l_Debug_Level <= 1) THEN
221               itg_debug_pub.Add('g_collaboration_id '||g_collaboration_id ,1);
222               itg_debug_pub.Add('g_return_status '   ||g_return_status,1);
223         END IF;
224 
225         x_cln_id           := g_collaboration_id;
226 
227         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
228                 x_return_status := '00';
229                 itg_msg.document_success;
230         ELSE
231                 x_return_status := '99';
232         END IF;
233 
234         x_return_message   := itg_x_utils.getCBODDescMsg(true);
235 
236         Reap_Messages(
237                 p_refid     => p_refid,
238                 p_doc       => p_doc,
239                 p_cdate     => p_cdate
240         );
241 
242         g_collaboration_id := NULL;
243         g_return_status    := NULL;
244         g_return_message   := NULL;
245         g_org              := NULL; -- don't let org of prev. txn to remain in session state!
246 
247         IF (l_Debug_Level <= 2) THEN
248               itg_debug_pub.Add('--- Exiting End_Wrapper ---' ,2);
249         END IF;
250   EXCEPTION
251         WHEN OTHERS THEN
252                 g_collaboration_id := NULL;
253                 g_return_status    := NULL;
254                 g_return_message   := NULL;
255                 g_org              := NULL;
256                 IF (l_Debug_Level <= 2) THEN
257                       itg_debug_pub.Add('--- Exiting End_Wrapper : ERROR---' ,2);
258                 END IF;
259   END End_Wrapper;
260 
261 
262 
263 
264   PROCEDURE Reap_Messages(
265         p_refid                 IN  VARCHAR2 := NULL,
266         p_doc                   IN  VARCHAR2 := NULL,
267         p_cdate                 IN  DATE := SYSDATE
268   ) IS
269         l_inxout                NUMBER;
270         l_dtl_id                NUMBER;
271 
272         l_status                VARCHAR2(1);
273         l_cln_status            VARCHAR2(30);
274         l_doc_status            VARCHAR2(30);
275         l_message               VARCHAR2(400);
276         l_text                  VARCHAR2(4000);
277         l_msg_data              VARCHAR2(2000);
278   BEGIN
279         IF (l_Debug_Level <= 2) THEN
280                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Reap_Messages', 2);
281         END IF;
282 
283         /* g_return_message is not obtained from the FND stack */
284         /* It is based on itg_x_utils.getCBODDesc              */
285         /* Removed batch management specifi code               */
286 
287         IF nvl(g_collaboration_id,0) > 0 THEN
288                 IF nvl(g_return_status,'x') <> FND_API.G_RET_STS_SUCCESS THEN
289                         l_cln_status := 'ERROR';
290                         l_doc_status := 'ERROR';
291                         l_message    := 'Failure in processing document';
292                 ELSE
293                         l_cln_status := 'COMPLETED';
294                         l_doc_status := 'SUCCESS';
295                         l_message    := 'Document processed successfully';
296                 END IF;
297 
298                 IF (l_Debug_Level <= 1) THEN
299                         itg_debug_pub.Add('l_coll_id            => '||to_char(g_collaboration_id), 1);
300                         itg_debug_pub.Add('l_doctyp             => '||g_doctyp,  1);
301                         itg_debug_pub.Add('l_cln_status         => '||NVL(l_cln_status, 'NULL'), 1);
302                         itg_debug_pub.Add('l_doc_status         => '||NVL(l_doc_status, 'NULL'), 1);
303                 END IF;
304 
305                 l_status := FND_API.G_RET_STS_SUCCESS;
306                 l_msg_data := 'Success';
307 
308                 CLN_CH_COLLABORATION_PKG.UPDATE_COLLABORATION(
309                         x_return_status             => l_status,
310                         x_msg_data                  => l_msg_data,
311                         p_coll_id                   => g_collaboration_id,
312                         p_app_id                    => NULL,
313                         p_ref_id                    => p_refid,
314                         p_rel_no                    => NULL,
315                         p_doc_no                    => p_doc,
316                         p_doc_rev_no                => NULL,
317                         p_xmlg_transaction_type     => NULL,
318                         p_xmlg_transaction_subtype  => NULL,
319                         p_xmlg_document_id          => NULL,
320                         p_resend_flag               => NULL,
321                         p_resend_count              => NULL,
322                         p_disposition               => NULL,
323                         p_coll_status               => l_cln_status,
324                         p_doc_type                  => g_doctyp,
325                         p_doc_dir                   => 'IN',
326                         p_coll_pt                   => itg_x_utils.c_coll_pt,
327                         p_org_ref                   => NULL,
328                         p_doc_status                => l_doc_status,
329                         p_notification_id           => NULL,
330                         p_msg_text                  => l_message,
331                         p_xmlg_msg_id               => NULL,
332                         p_tr_partner_type           => itg_x_utils.c_party_type,
333                         p_tr_partner_id             => itg_x_utils.g_party_id,
334                         p_tr_partner_site           => itg_x_utils.g_party_site_id,
335                         p_sender_component          => NULL,
336                         p_rosettanet_check_required => FALSE,
337                         x_dtl_coll_id               => l_dtl_id,
338                         p_xmlg_internal_control_number => p_refid,
339                         p_doc_creation_date         => p_cdate,
340                         p_doc_revision_date         => SYSDATE,
341                         p_org_id                    => g_org
342                 );
343 
344                 IF nvl(l_status,'x') <> FND_API.G_RET_STS_SUCCESS THEN
345                      IF (l_Debug_Level <= 6) THEN
346                         itg_debug_pub.Add('CLN update_collaboration retsts> ' || l_status,6);
347                         itg_debug_pub.Add('CLN update_collaboration retmsg> ' || l_msg_data,6);
348                      END IF;
349                      RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
350                 ELSE
351                      IF (l_Debug_Level <= 1) THEN
352                         itg_debug_pub.Add('l_dtl_id  => '||NVL(to_char(l_dtl_id),  'NULL'), 1);
353                      END IF;
354                 END IF;
355 
356                 /* Now loop through FND messages and add collaboration details*/
357                 FND_MSG_PUB.get(
358                         p_msg_index     => FND_MSG_PUB.G_FIRST,
359                         p_encoded       => FND_API.G_FALSE,
360                         p_data          => l_text,
361                         p_msg_index_out => l_inxout);
362 
363                 WHILE l_text IS NOT NULL LOOP
364                         l_text  := substrb(l_text,1,2000);
365 
366                         IF (l_Debug_Level <= 1) THEN
367                                 itg_debug_pub.Add('l_text               => '|| l_text ,1);
368                         END IF;
369 
370                         IF l_text IS NOT NULL THEN
371                                 l_status        := FND_API.G_RET_STS_SUCCESS;
372                                 CLN_CH_COLLABORATION_PKG.add_collaboration_messages
373                                 (
374                                         x_return_status   => l_status,
375                                         x_msg_data        => l_msg_data,
376                                         p_dtl_coll_id     => l_dtl_id,
377                                         p_ref1            => NULL,
378                                         p_ref2            => NULL,
379                                         p_ref3            => NULL,
380                                         p_ref4            => NULL,
381                                         p_ref5            => NULL,
382                                         p_dtl_msg         => l_text
383                                 );
384 
385                                 IF nvl(l_status,'x') <> FND_API.G_RET_STS_SUCCESS THEN
386                                         IF (l_Debug_Level <= 6) THEN
387                                                 itg_debug_pub.Add('CLN add_collab_msg retsts> ' || l_status ,6);
388                                                 itg_debug_pub.Add('CLN add_collab_msg retmsg> ' || l_msg_data ,6);
389                                         END IF;
390                                 END IF;
391                         END IF;
392 
393                         FND_MSG_PUB.get(
394                                 p_msg_index     => FND_MSG_PUB.G_NEXT,
395                                 p_encoded       => FND_API.G_FALSE,
396                                 p_data          => l_text,
397                                 p_msg_index_out => l_inxout);
398                 END LOOP;
399         END IF;
400         /* Delete global message table*/
401         FND_MSG_PUB.Delete_Msg;
402 
403         IF (l_Debug_Level <= 2) THEN
404                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Reap_Messages', 2);
405         END IF;
406   EXCEPTION
407         WHEN OTHERS THEN
408                 IF (l_Debug_Level <= 6) THEN
409                         itg_debug_pub.Add('Unexpceted error in reap messages - ' || SUBSTRB(SQLERRM,1,1000),6);
410                 END IF;
411                 null;
412   END Reap_Messages;
413 
414 
415 
416 
417   /* Wrap ITG_SyncCOAInbound_PVT from itgvsci?.pls */
418   PROCEDURE Sync_FlexValue(
419         p_syncind               IN  VARCHAR2,
420         p_flex_value            IN  VARCHAR2,
421         p_vset_id               IN  NUMBER,
422         p_flex_desc             IN  VARCHAR2,
423         p_action_date           IN  DATE,
424         p_effective_date        IN  DATE,
425         p_expiration_date       IN  DATE,
426         p_acct_type             IN  VARCHAR2,
427         p_enabled_flag          IN  VARCHAR2
428   ) IS
429         l_return_status         VARCHAR2(1);
430         l_msg_count             NUMBER;
431         l_msg_data              VARCHAR2(2000);
432   BEGIN
433         IF (l_Debug_Level <= 2) THEN
434                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Sync_FlexValue', 2);
435         END IF;
436 
437         IF g_return_status = FND_API.G_RET_STS_SUCCESS AND
438                 NOT ITG_OrgEff_PVT.Check_Effective(
439                                 p_organization_id => g_org,
440                                 p_cln_doc_type    => g_clntyp,
441                                 p_doc_direction   => 'S') THEN
442                 g_return_status := FND_API.G_RET_STS_ERROR;
443                 ITG_MSG.orgeff_check_failed;
444         END IF;
445 
446         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
447                 IF (l_Debug_Level <= 1) THEN
448                         itg_debug_pub.Add('wSFV - Calling ITG_SyncCOAInbound_PVT.Sync_FlexValue API' ,1);
449                 END IF;
450 
451                 ITG_SyncCOAInbound_PVT.Sync_FlexValue(
452                         x_return_status    => l_return_status,
453                         x_msg_count        => l_msg_count,
454                         x_msg_data         => l_msg_data,
455                         p_syncind          => p_syncind,
456                         p_flex_value       => p_flex_value,
457                         p_vset_id          => p_vset_id,
458                         p_flex_desc        => p_flex_desc,
459                         p_action_date      => p_action_date,
460                         p_effective_date   => p_effective_date,
461                         p_expiration_date  => p_expiration_date,
462                         p_acct_type        => p_acct_type,
463                         p_enabled_flag     => p_enabled_flag
464                 );
465                 check_return_status('Sync_FlexValue', l_return_status);
466         ELSE
467                 IF (l_Debug_Level <= 1) THEN
468                         itg_debug_pub.Add('wSFV', 'Skipping ITG_SyncCOAInbound_PVT.Sync_FlexValue API');
469                 END IF;
470         END IF;
471 
472         IF (l_Debug_Level <= 2) THEN
473                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_FlexValue', 2);
474         END IF;
475   EXCEPTION
476           WHEN OTHERS THEN
477                 ITG_Debug.msg('Unexpected error in wrapper(Flex-value sync) - ' || substr(SQLERRM,1,255),true);
478                 itg_msg.unexpected_error('Flex-value sync');
479                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
480                 IF (l_Debug_Level <= 6) THEN
481                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_FlexValue :OTHER ERROR', 6);
482                 END IF;
483 
484   END Sync_FlexValue;
485 
486 
487 
488   /* Wrap ITG_SyncExchInbound_PVT from itgvsei?.pls */
489   PROCEDURE Process_ExchangeRate(
490         p_syncind               IN  VARCHAR2,
491         p_quantity              IN  NUMBER,
492         p_currency_from         IN  VARCHAR2,
493         p_currency_to           IN  VARCHAR2,
494         p_factor                IN  VARCHAR2,
495         p_sob                   IN  VARCHAR2,
496         p_ratetype              IN  VARCHAR2,
497         p_creation_date         IN  DATE,
498         p_effective_date        IN  DATE
499   ) IS
500         l_return_status         VARCHAR2(1);
501         l_msg_count             NUMBER;
502         l_msg_data              VARCHAR2(2000);
503   BEGIN
504         IF (l_Debug_Level <= 2) THEN
505                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Process_ExchangeRate', 2);
506         END IF;
507 
508         IF g_return_status = FND_API.G_RET_STS_SUCCESS AND
509                         NOT ITG_OrgEff_PVT.Check_Effective(
510                                 p_organization_id => g_org,
511                                 p_cln_doc_type    => g_clntyp,
512                                 p_doc_direction   => 'S') THEN
513                 g_return_status := FND_API.G_RET_STS_ERROR;
514                 ITG_MSG.orgeff_check_failed;
515         END IF;
516 
517         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
518                 IF (l_Debug_Level <= 1) THEN
519                         itg_debug_pub.Add('wPER - Calling ITG_SyncExchInbound_PVT.Process_ExchangeRate API');
520                 END IF;
521 
522                 ITG_SyncExchInbound_PVT.Process_ExchangeRate(
523                         x_return_status    => l_return_status,
524                         x_msg_count        => l_msg_count,
525                         x_msg_data         => l_msg_data,
526                         p_syncind          => p_syncind,
527                         p_quantity         => p_quantity,
528                         p_currency_from    => p_currency_from,
529                         p_currency_to      => p_currency_to,
530                         p_factor           => p_factor,
531                         p_sob              => p_sob,
532                         p_ratetype         => p_ratetype,
533                         p_creation_date    => p_creation_date,
534                         p_effective_date   => p_effective_date
535                 );
536                 check_return_status('Process_ExchangeRate', l_return_status);
537         ELSE
538                 IF (l_Debug_Level <= 1) THEN
539                         itg_debug_pub.Add('wPER - Skipping API' ,1);
540                 END IF;
541         END IF;
542 
543         IF (l_Debug_Level <= 2) THEN
544                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Process_ExchangeRate', 2);
545         END IF;
546   EXCEPTION
547           WHEN OTHERS THEN
548                 ITG_Debug.msg('Unexpected error in wrapper(Exchange-rate sync) - ' || substr(SQLERRM,1,255),true);
549                 itg_msg.unexpected_error('Exchange-rate sync');
550                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
551                 IF (l_Debug_Level <= 6) THEN
552                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Process_ExchangeRate : OTHER ERROR', 6);
553                 END IF;
554 
555   END Process_ExchangeRate;
556 
557 
558 
559   PROCEDURE Update_PoLine(
560         p_api_version           IN         NUMBER,
561         p_init_msg_list         IN         VARCHAR2,
562         p_commit                IN         VARCHAR2,
563         p_validation_level      IN         NUMBER,
564         x_return_status         OUT NOCOPY VARCHAR2,
565         x_msg_count             OUT NOCOPY NUMBER,
566         x_msg_data              OUT NOCOPY VARCHAR2,
567         p_po_code               IN         VARCHAR2,
568         p_org_id                IN         VARCHAR2,
569         p_release_id            IN         VARCHAR2,
570         p_line_num              IN         NUMBER,
571         p_doc_type              IN         VARCHAR2,
572         p_quantity              IN         NUMBER,
573         p_amount                IN         NUMBER
574   ) IS
575   BEGIN
576         IF (l_Debug_Level <= 2) THEN
577                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Update_PoLine', 2);
578         END IF;
579 
580         g_org := TO_NUMBER(p_org_id);
581 
582         IF NOT ITG_OrgEff_PVT.Check_Effective(
583                      p_organization_id => g_org,
584                      p_cln_doc_type    => g_clntyp,
585                      p_doc_direction   => 'S') THEN
586                 g_return_status := FND_API.G_RET_STS_ERROR;
587                 ITG_MSG.orgeff_check_failed;
588         END IF;
589 
590         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
591                 IF (l_Debug_Level <= 1) THEN
592                         itg_debug_pub.Add('wUPL - Calling ITG_SyncPoInbound_PVT.Update_PoLine API' ,1);
593                 END IF;
594 
595 
596                 ITG_SyncPoInbound_PVT.Update_PoLine(
597                         x_return_status    => x_return_status,
598                         x_msg_count        => x_msg_count,
599                         x_msg_data         => x_msg_data,
600                         p_po_code          => p_po_code,
601                         p_org_id           => p_org_id,
602                         p_release_id       => p_release_id,
603                         p_line_num         => p_line_num,
604                         p_doc_type         => p_doc_type,
605                         p_quantity         => p_quantity,
606                         p_amount           => p_amount
607                 );
608                 check_return_status('Update_PoLine2', x_return_status);
609         ELSE
610                 IF (l_Debug_Level <= 1) THEN
611                         itg_debug_pub.Add('wUPL - Skipping API' ,1);
612                 END IF;
613         END IF;
614 
615         IF (l_Debug_Level <= 2) THEN
616                  itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Update_PoLine', 2);
617         END IF;
618 
619   EXCEPTION
620           WHEN OTHERS THEN
621                 ITG_Debug.msg('Unexpected error in wrapper(Purchase order sync) - ' || substr(SQLERRM,1,255),true);
622                 itg_msg.unexpected_error('Purchase order sync');
623                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
624                 IF (l_Debug_Level <= 6) THEN
625                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Update_PoLine : OTHER ERROR', 6);
626                 END IF;
627 
628   END Update_PoLine;
629 
630 
631 
632   /* Wrap ITG_SyncSupplierInbound_PVT from itgvssi?.pls (3 procs) */
633   PROCEDURE Sync_Vendor(
634         p_syncind               IN  VARCHAR2,
635         p_name                  IN  VARCHAR2,
636         p_onetime               IN  VARCHAR2,
637         p_partnerid             IN  VARCHAR2,
638         p_active                IN  NUMBER,
639         p_currency              IN  VARCHAR2,
640         p_dunsnumber            IN  VARCHAR2,
641         p_parentid              IN  NUMBER,
642         p_paymethod             IN  VARCHAR2,
643         p_taxid                 IN  VARCHAR2,
644         p_termid                IN  VARCHAR2,
645         p_us_flag               IN  VARCHAR2,
646         p_date                  IN  DATE,
647         p_org			  IN  VARCHAR2 --MOAC
648   ) IS
649         l_return_status         VARCHAR2(1);
650         l_msg_count             NUMBER;
651         l_msg_data              VARCHAR2(2000);
652   BEGIN
653         IF (l_Debug_Level <= 2) THEN
654                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Sync_Vendor', 2);
655         END IF;
656 
657         IF g_return_status = FND_API.G_RET_STS_SUCCESS AND
658                 NOT ITG_OrgEff_PVT.Check_Effective(
659                         p_organization_id => g_org,
660                         p_cln_doc_type    => g_clntyp,
661                         p_doc_direction   => 'S') THEN
662                 g_return_status := FND_API.G_RET_STS_ERROR;
663                 ITG_MSG.orgeff_check_failed;
664         END IF;
665 
666         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
667                 IF (l_Debug_Level <= 1) THEN
668                         itg_debug_pub.Add('wSV - Calling ITG_SyncSupplierInbound_PVT.Sync_Vendor API' ,1);
669                 END IF;
670 
671                 g_vinfo_rec := ITG_SyncSupplierInbound_PVT.G_MISS_VINFO_REC;
672 
673                 ITG_SyncSupplierInbound_PVT.Sync_Vendor(
674                         x_return_status    => l_return_status,
675                         x_msg_count        => l_msg_count,
676                         x_msg_data         => l_msg_data,
677                         p_syncind          => p_syncind,
678                         p_name             => p_name,
679                         p_onetime          => p_onetime,
680                         p_partnerid        => p_partnerid,
681                         p_active           => p_active,
682                         p_currency         => p_currency,
683                         p_dunsnumber       => p_dunsnumber,
684                         p_parentid         => p_parentid,
685                         p_paymethod        => p_paymethod,
686                         p_taxid            => p_taxid,
687                         p_termid           => p_termid,
688                         p_us_flag          => p_us_flag,
689                         p_date             => p_date,
690                         p_org              => p_org, -- MOAC
691                         x_vinfo_rec        => g_vinfo_rec
692                 );
693                 check_return_status('Sync_Vendor', l_return_status);
694         ELSE
695                 IF (l_Debug_Level <= 1) THEN
696                         itg_debug_pub.Add('wSV - Skipping API' ,1);
697                 END IF;
698         END IF;
699 
700         IF (l_Debug_Level <= 2) THEN
701                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_Vendor', 2);
702         END IF;
703 
704   EXCEPTION
705           WHEN OTHERS THEN
706                 ITG_Debug.msg('Unexpected error in wrapper(Vendor sync) - ' || substr(SQLERRM,1,255),true);
707                 itg_msg.unexpected_error('Vendor sync');
708                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
709                 IF (l_Debug_Level <= 6) THEN
710                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_Vendor : OTHER ERROR', 6);
711                 END IF;
712 
713   END Sync_Vendor;
714 
715 
716 
717   PROCEDURE Sync_VendorSite(
718         p_addrline1             IN  VARCHAR2,
719         p_addrline2             IN  VARCHAR2,
720         p_addrline3             IN  VARCHAR2,
721         p_addrline4             IN  VARCHAR2,
722         p_city                  IN  VARCHAR2,
723         p_country               IN  VARCHAR2,
724         p_county                IN  VARCHAR2,
725         p_site_code             IN  VARCHAR2,
726         p_fax                   IN  VARCHAR2,
727         p_zip                   IN  VARCHAR2,
728         p_state                 IN  VARCHAR2,
729         p_phone                 IN  VARCHAR2,
730         p_org                   IN  VARCHAR2,
731         p_purch_site            IN  VARCHAR2,
732         p_pay_site              IN  VARCHAR2,
733         p_rfq_site              IN  VARCHAR2,
734         p_pc_site               IN  VARCHAR2,
735         p_vat_code              IN  VARCHAR2
736   ) IS
737         l_return_status         VARCHAR2(1);
738         l_msg_count             NUMBER;
739         l_msg_data              VARCHAR2(2000);
740   BEGIN
741         IF (l_Debug_Level <= 2) THEN
742                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Sync_VendorSite', 2);
743         END IF;
744 
745         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
746                 IF (l_Debug_Level <= 1) THEN
747                         itg_debug_pub.Add('wSVS - Calling ITG_SyncSupplierInbound_PVT.Sync_VendorSite API',1);
748                 END IF;
749 
750                 ITG_SyncSupplierInbound_PVT.Sync_VendorSite(
751                         x_return_status    => l_return_status,
752                         x_msg_count        => l_msg_count,
753                         x_msg_data         => l_msg_data,
754                         p_addrline1        => p_addrline1,
755                         p_addrline2        => p_addrline2,
756                         p_addrline3        => p_addrline3,
757                         p_addrline4        => p_addrline4,
758                         p_city             => p_city,
759                         p_country          => p_country,
760                         p_county           => p_county,
761                         p_site_code        => p_site_code,
762                         p_fax              => p_fax,
763                         p_zip              => p_zip,
764                         p_state            => p_state,
765                         p_phone            => p_phone,
766                         p_org              => p_org,
767                         p_purch_site       => p_purch_site,
768                         p_pay_site         => p_pay_site,
769                         p_rfq_site         => p_rfq_site,
770                         p_pc_site          => p_pc_site,
771                         p_vat_code         => p_vat_code,
772                         p_vinfo_rec        => g_vinfo_rec
773                 );
774 
775                 --do not check return status since vendor sync is success
776                 g_process_vendor_contact := false;
777                 IF l_return_status = FND_API.G_RET_STS_SUCCESS THEN
778                         g_process_vendor_contact := true;
779                 END IF;
780         ELSE
781                 IF (l_Debug_Level <= 1) THEN
782                         itg_debug_pub.Add('wSVS - Skipping API', 1);
783                 END IF;
784         END IF;
785 
786         IF (l_Debug_Level <= 2) THEN
787                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_VendorSite', 2);
788         END IF;
789 
790   EXCEPTION
791         WHEN OTHERS THEN
792                 ITG_Debug.msg('Unexpected error in wrapper(Vendor-site sync) - ' || substr(SQLERRM,1,255),true);
793                 itg_msg.unexpected_error('Vendor-site sync');
794                 g_process_vendor_contact := false;
795 
796                 IF (l_Debug_Level <= 6) THEN
797                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_VendorSite : OTHER ERROR', 6);
798                 END IF;
799 
800   END Sync_VendorSite;
801 
802 
803 
804 
805   PROCEDURE Sync_VendorContact(
806         p_title                 IN  VARCHAR2,
807         p_first_name            IN  VARCHAR2,
808         p_middle_name           IN  VARCHAR2,
809         p_last_name             IN  VARCHAR2,
810         p_phone                 IN  VARCHAR2,
811         p_site_code             IN  VARCHAR2
812   ) IS
813         l_return_status         VARCHAR2(1);
814         l_msg_count             NUMBER;
815         l_msg_data              VARCHAR2(2000);
816   BEGIN
817         IF (l_Debug_Level <= 2) THEN
818                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Sync_VendorContact', 2);
819         END IF;
820 
821         IF g_return_status = FND_API.G_RET_STS_SUCCESS and g_process_vendor_contact THEN
822                 IF (l_Debug_Level <= 1) THEN
823                         itg_debug_pub.Add('wSVC - Calling ITG_SyncSupplierInbound_PVT.Sync_VendorContact API', 1);
824                 END IF;
825 
826                 ITG_SyncSupplierInbound_PVT.Sync_VendorContact(
827                         x_return_status    => l_return_status,
828                         x_msg_count        => l_msg_count,
829                         x_msg_data         => l_msg_data,
830                         p_title            => p_title,
831                         p_first_name       => p_first_name,
832                         p_middle_name      => p_middle_name,
833                         p_last_name        => p_last_name,
834                         p_phone            => p_phone,
835                         p_site_code        => p_site_code,
836                         p_vinfo_rec        => g_vinfo_rec
837                 );
838 
839                 --do not check return status since vendor sync is success
840         ELSE
841                 IF (l_Debug_Level <= 1) THEN
842                         itg_debug_pub.Add('wSVC - Skipping ITG_SyncSupplierInbound_PVT.Sync_VendorContact API' ,1);
843                 END IF;
844         END IF;
845 
846         IF (l_Debug_Level <= 2) THEN
847                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_VendorContact', 2);
848         END IF;
849 
850   EXCEPTION
851         WHEN OTHERS THEN
852                 ITG_Debug.msg('Unexpected error in wrapper(Vendor-contact sync) - ' || substr(SQLERRM,1,255),true);
853                 itg_msg.unexpected_error('Vendor-contact sync');
854                 g_process_vendor_contact := false;
855 
856                 IF (l_Debug_Level <= 6) THEN
857                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_VendorContact : OTHER ERROR', 6);
858                 END IF;
859 
860   END Sync_VendorContact;
861 
862 
863 
864   /* Wrap ITG_SyncItemInbound_PVT from itgvsii?.pls */
865   PROCEDURE Sync_Item(
866         p_syncind               IN  VARCHAR2,
867         p_org_id                IN  NUMBER,
868         p_hazrdmatl             IN  VARCHAR2,
869         p_create_date           IN  DATE,
870         p_item                  IN  VARCHAR2,
871         p_uom                   IN  VARCHAR2,
872         p_itemdesc              IN  VARCHAR2,
873         p_itemstatus            IN  VARCHAR2,
874         p_itemtype              IN  VARCHAR2,
875         p_rctrout               IN  VARCHAR2,
876         p_commodity1            IN  VARCHAR2,
877         p_commodity2            IN  VARCHAR2
878   ) IS
879         l_return_status         VARCHAR2(1);
880         l_msg_count             NUMBER;
881         l_msg_data              VARCHAR2(2000);
882   BEGIN
883         IF (l_Debug_Level <= 2) THEN
884                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Sync_Item', 2);
885         END IF;
886 
887         g_org := p_org_id;
888         IF g_return_status = FND_API.G_RET_STS_SUCCESS AND
889                 NOT ITG_OrgEff_PVT.Check_Effective(
890                          p_organization_id => g_org,
891                          p_cln_doc_type    => g_clntyp,
892                          p_doc_direction   => 'S') THEN
893                   g_return_status := FND_API.G_RET_STS_ERROR;
894                   ITG_MSG.orgeff_check_failed;
895         END IF;
896 
897         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
898                 IF (l_Debug_Level <= 1) THEN
899                         itg_debug_pub.Add('wSI - Calling ITG_SyncItemInbound_PVT.Sync_Item API' ,1);
900                 END IF;
901 
902 
903                 ITG_SyncItemInbound_PVT.Sync_Item(
904                         x_return_status    => l_return_status,
905                         x_msg_count        => l_msg_count,
906                         x_msg_data         => l_msg_data,
907                         p_syncind          => p_syncind,
908                         p_org_id           => p_org_id,
909                         p_hazrdmatl        => p_hazrdmatl,
910                         p_create_date      => p_create_date,
911                         p_item             => p_item,
912                         p_uom              => p_uom,
913                         p_itemdesc         => p_itemdesc,
914                         p_itemstatus       => p_itemstatus,
915                         p_itemtype         => p_itemtype,
916                         p_rctrout          => p_rctrout,
917                         p_commodity1       => p_commodity1,
918                         p_commodity2       => p_commodity2
919                 );
920                 check_return_status('Sync_Item', l_return_status);
921         ELSE
922                 IF (l_Debug_Level <= 1) THEN
923                         itg_debug_pub.Add('wSI - Skipping API' ,1);
924                 END IF;
925         END IF;
926 
927         IF (l_Debug_Level <= 2) THEN
928                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_Item', 2);
929         END IF;
930 
931   EXCEPTION
932           WHEN OTHERS THEN
933                 ITG_Debug.msg('Unexpected error in wrapper(Item sync) - ' || substr(SQLERRM,1,255),true);
934                 itg_msg.unexpected_error('Item sync');
935                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
936 
937                 IF (l_Debug_Level <= 6) THEN
938                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_Item : OTHER ERROR', 6);
939                 END IF;
940   END Sync_Item;
941 
942 
943   PROCEDURE Process_PoNumber(
944         p_reqid            IN  NUMBER,
945         p_reqlinenum       IN  NUMBER,
946         p_poid             IN  NUMBER,
947         p_org              IN  NUMBER
948   ) IS
949         l_return_status    VARCHAR2(1);
950         l_msg_count        NUMBER;
951         l_msg_data         VARCHAR2(2000);
952   BEGIN
953         IF (l_Debug_Level <= 2) THEN
954                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Process_PoNumber', 2);
955         END IF;
956 
957         g_org := p_org;
958         IF g_return_status = FND_API.G_RET_STS_SUCCESS AND
959                 NOT ITG_OrgEff_PVT.Check_Effective(
960                                 p_organization_id => g_org,
961                                 p_cln_doc_type    => g_clntyp,
962                                 p_doc_direction   => 'S') THEN
963                g_return_status := FND_API.G_RET_STS_ERROR;
964                ITG_MSG.orgeff_check_failed;
965         END IF;
966 
967 
968         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
969                 IF (l_Debug_Level <= 1) THEN
970                         itg_debug_pub.Add('wPPN - Calling API' ,1);
971                 END IF;
972 
973                 ITG_SyncFieldInbound_PVT.Process_PoNumber(
974                         x_return_status    => l_return_status,
975                         x_msg_count        => l_msg_count,
976                         x_msg_data         => l_msg_data,
977 
978                         p_reqid            => p_reqid,
979                         p_reqlinenum       => p_reqlinenum,
980                         p_poid             => p_poid,
981                         p_org              => p_org
982                 );
983                 check_return_status('Process_PoNumber', l_return_status);
984         ELSE
985                 IF (l_Debug_Level <= 1) THEN
986                         itg_debug_pub.Add('wPPN - Skipping API' ,1);
987                 END IF;
988         END IF;
989 
990         IF (l_Debug_Level <= 2) THEN
991                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Process_PoNumber', 2);
992         END IF;
993   EXCEPTION
994           WHEN OTHERS THEN
995                 ITG_Debug.msg('Unexpected error in wrapper(Field sync) - ' || substr(SQLERRM,1,255),true);
996                 itg_msg.unexpected_error('Field sync');
997                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
998 
999                 IF (l_Debug_Level <= 6) THEN
1000                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Process_PoNumber : OTHER ERROR', 6);
1001                 END IF;
1002   END Process_PoNumber;
1003 
1004 
1005 
1006   /* Wrap ITG_SyncUOMInbound_PVT from itgvsui?.pls */
1007   PROCEDURE Sync_UOM_ALL(
1008         p_task                  IN  VARCHAR2,
1009         p_syncind               IN  VARCHAR2,
1010         p_uom                   IN  VARCHAR2,
1011         p_uomcode               IN  VARCHAR2,
1012         p_uomclass              IN  VARCHAR2,
1013         p_buomflag              IN  VARCHAR2,
1014         p_description           IN  VARCHAR2,
1015         p_defconflg             IN  VARCHAR2,
1016         p_fromcode              IN  VARCHAR2,
1017         p_touomcode             IN  VARCHAR2,
1018         p_itemid                IN  NUMBER,
1019         p_fromfactor            IN  VARCHAR2,
1020         p_tofactor              IN  VARCHAR2,
1021         p_dt_creation           IN  DATE,
1022         p_dt_expiration         IN  DATE
1023   ) IS
1024         l_return_status         VARCHAR2(1);
1025         l_msg_count             NUMBER;
1026         l_msg_data              VARCHAR2(2000);
1027 
1028   BEGIN
1029         IF (l_Debug_Level <= 2) THEN
1030                itg_debug_pub.Add('Entering ITG_BOAPI_Wrappers.Sync_UOM_ALL', 2);
1031         END IF;
1032 
1033         IF NOT ITG_OrgEff_PVT.Check_Effective(
1034                 p_organization_id => g_org,
1035                 p_cln_doc_type    => g_clntyp,
1036                 p_doc_direction   => 'S') THEN
1037 
1038                 g_return_status := FND_API.G_RET_STS_ERROR;
1039                 ITG_MSG.orgeff_check_failed;
1040         END IF;
1041 
1042         IF g_return_status = FND_API.G_RET_STS_SUCCESS THEN
1043                 IF (l_Debug_Level <= 1) THEN
1044                         itg_debug_pub.Add('wSUA - Calling ITG_SyncUOMInbound_PVT.Sync_UOM_All API' ,1);
1045                 END IF;
1046 
1047                 ITG_SyncUOMInbound_PVT.Sync_UOM_All(
1048                         x_return_status    => l_return_status,
1049                         x_msg_count        => l_msg_count,
1050                         x_msg_data         => l_msg_data,
1051                         p_task             => p_task,
1052                         p_syncind          => p_syncind,
1053                         p_uom              => p_uom,
1054                         p_uomcode          => p_uomcode,
1055                         p_uomclass         => p_uomclass,
1056                         p_buomflag         => p_buomflag,
1057                         p_description      => p_description,
1058                         p_defconflg        => p_defconflg,
1059                         p_fromcode         => p_fromcode,
1060                         p_touomcode        => p_touomcode,
1061                         p_itemid           => p_itemid,
1062                         p_fromfactor       => p_fromfactor,
1063                         p_tofactor         => p_tofactor,
1064                         p_dt_creation      => p_dt_creation,
1065                         p_dt_expiration    => p_dt_expiration
1066                 );
1067                 check_return_status('Sync_UOM_ALL', l_return_status);
1068         ELSE
1069                 IF (l_Debug_Level <= 1) THEN
1070                         itg_debug_pub.Add('wSUA - Skipping ITG_SyncUOMInbound_PVT.Sync_UOM_All API' ,1);
1071                 END IF;
1072         END IF;
1073 
1074         IF (l_Debug_Level <= 2) THEN
1075                itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_UOM_ALL', 2);
1076         END IF;
1077   EXCEPTION
1078         WHEN OTHERS THEN
1079                 ITG_Debug.msg('Unexpected error in wrapper(UOM sync) - ' || substr(SQLERRM,1,255),true);
1080                 itg_msg.unexpected_error('UOM sync');
1081                 g_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1082 
1083                 IF (l_Debug_Level <= 6) THEN
1084                        itg_debug_pub.Add('Exiting ITG_BOAPI_Wrappers.Sync_UOM_ALL : OTHER ERROR', 6);
1085                 END IF;
1086   END Sync_UOM_ALL;
1087 
1088 BEGIN
1089         g_active := 0;
1090 END ITG_BOAPI_Wrappers;