DBA Data[Home] [Help]

PACKAGE BODY: APPS.FUN_AR_BATCH_TRANSFER

Source


1 PACKAGE BODY FUN_AR_BATCH_TRANSFER AS
2 /* $Header: funartrb.pls 120.15.12010000.4 2008/08/12 08:01:42 makansal ship $ */
3 
4   FUNCTION has_valid_conversion_rate (
5     p_from_currency IN varchar2,
6     p_to_currency   IN varchar2,
7     p_exchange_type IN varchar2,
8     p_exchange_date IN date) RETURN number
9   IS
10     l_has_rate  number;
11   BEGIN
12     IF (p_from_currency = p_to_currency) THEN
13         RETURN 1;
14     END IF;
15 
16     SELECT COUNT(conversion_rate) INTO l_has_rate
17     FROM gl_daily_rates
18     WHERE from_currency = p_from_currency AND
19           to_currency = p_to_currency AND
20           conversion_type = p_exchange_type AND
21           conversion_date = p_exchange_date;
22 
23     IF (l_has_rate = 0) THEN
24         RETURN 0;
25     END IF;
26     RETURN 1;
27   END has_valid_conversion_rate;
28 
29 
30 
31   Procedure ar_batch_transfer  (errbuf OUT NOCOPY VARCHAR2,
32                                 retcode OUT NOCOPY NUMBER,
33                                 p_org_id    IN VARCHAR2 DEFAULT NULL,
34                                 p_le_id     IN VARCHAR2 DEFAULT NULL,
35                                 p_date_low  IN VARCHAR2 DEFAULT NULL,
36                                 p_date_high IN VARCHAR2 DEFAULT NULL,
37                                 p_run_autoinvoice_import IN VARCHAR2 DEFAULT 'N'
38                                 ) is
39 
40 
41   -- AR Batch Transfer Program
42 
43      l_date_low         date;
44      l_date_high        date;
45      l_initiator_id     number;
46      l_le_id            number;
47      l_ledger_id        number;
48      l_recipient_id     number;
49      l_ap_le_id         number;
50      l_trx_type_id      number;
51      l_ou_id            number;
52      l_ap_ou_id         number;
53      l_error            number;
54      l_memo_line_name   varchar2(2000);
55      l_ar_trx_type_name varchar2(2000);
56      l_memo_line_id     number;
57      l_ar_trx_type_id   number;
58      l_default_term_id  number;
59      l_ar_period_count  number;
60      l_batch_id         number;
61      l_trx_id           number;
62      l_count            number := 0;
63      l_line             AR_INTERFACE_LINE;
64      l_dist_line        AR_INTERFACE_DIST_LINE;
65      l_success          boolean;
66      l_customer_id      number;
67      l_address_id       number;
68      l_site_use_id      number;
69      x_msg_data         varchar2(1000);
70      l_return_status    varchar2(1);
71      l_message_count    number;
72      l_message_data     varchar2(1000);
73      l_counter          number;
74      l_org_name         varchar2(240);
75      l_le_name          varchar2(240);
76      l_batch_num        varchar2(15);
77      l_trx_num          varchar2(15);
78      l_ledger_currency_code varchar2(15);
79      l_request_id    	number;
80      Request_Submission_Failure   EXCEPTION;
81      TYPE  ORG_ID_TAB_TYPE IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
82      org_id_table ORG_ID_TAB_TYPE;
83      l_previous_org_id   number;
84      l_run_autoinvoice_import varchar2(3);
85 
86 
87   -- Cursor to retrieve the line information
88   CURSOR c_line  (p_batch_id IN NUMBER,
89                   p_trx_id   IN NUMBER) IS
90      SELECT
91                  decode(ftl.init_amount_cr,0, ftl.init_amount_dr,
92                                            NULL, ftl.init_amount_dr,
93                                            (ftl.init_amount_cr * (-1))),
94                  ftl.line_id
95      FROM        FUN_TRX_LINES ftl
96      WHERE       p_trx_id   = ftl.trx_id;
97 
98       -- cursor to retrieve the initiator and recipient party / LE ID
99 
100      cursor c_info IS
101      SELECT      ftb.batch_id,
102 		 ftb.batch_number,
103                  fth.trx_id,
104 		 fth.trx_number,
105                  ftb.initiator_id,
106                  ftb.from_le_id,
107                  ftb.from_ledger_id,
108                  fth.recipient_id,
109                  fth.to_le_id,
110                  ftb.trx_type_id,
111                  ftb.exchange_rate_type,
112                  ftb.currency_code,
113                  ledgers.currency_code,
114                  ftb.description,
115                  ftb.gl_date,
116                  ftb.batch_id,
117                  fth.trx_id,
118                  ftb.from_ledger_id,
119                  ftb.batch_date
120 
121      FROM        FUN_TRX_BATCHES ftb,
122                  FUN_TRX_HEADERS fth,
123                  GL_LEDGERS ledgers
124 
125      WHERE       fth.batch_id= ftb.batch_id
126      AND         fth.status='APPROVED'
127      AND         ledgers.ledger_id = ftb.from_ledger_id
128      AND         trunc(ftb.gl_date) between trunc(nvl(l_date_low,ftb.gl_date-1))
129                              and trunc(nvl(l_date_high, ftb.gl_date+1))
130      AND         nvl(p_org_id,1) = nvl2(p_org_id,fun_tca_pkg.get_ou_id(ftb.initiator_id),1)
131      AND         ftb.from_le_id = nvl(p_le_id,ftb.from_le_id)
132      AND         fth.invoice_flag = 'Y'
133      ORDER BY    ftb.initiator_id;
134 
135       -- cursor to retrieve the distribution information
136 
137      CURSOR c_dist (p_trx_id IN NUMBER) IS
138      SELECT
139                  DECODE(FDL.dist_type_flag, 'L',
140                                             decode(fdl.amount_cr,
141                                                     0, fdl.amount_dr * (-1),
142                                                     NULL, fdl.amount_dr * (-1),
143                                                     fdl.amount_cr),
144                                        'R', NULL,
145                                             NULL),
146                  DECODE(FDL.dist_type_flag, 'L', NULL,
147                                        'R', 100,
148                                             NULL),
149                  DECODE(FDL.dist_type_flag, 'R', 'REC',
150                                             'L', 'REV',
151                                             NULL),
152                  fdl.ccid,
153                  fth.batch_id,
154                  fth.trx_id,
155                  ftl.line_id
156      FROM        FUN_TRX_HEADERS fth,
157                  FUN_TRX_LINES ftl,
158                  FUN_DIST_LINES fdl
159      WHERE       ftl.trx_id=fth.trx_id
160      AND         fth.trx_id = p_trx_id
161      AND         ftl.line_id=fdl.line_id
162      AND         fdl.party_type_flag='I';
163 
164     CURSOR period_open_csr (p_trx_date   DATE,
165                             p_ledger_id  NUMBER) IS
166         SELECT COUNT(*)
167         FROM   gl_period_statuses glps
168         WHERE  TRUNC(p_trx_date) BETWEEN glps.start_date AND glps.end_date
169         AND    glps.application_id = 222
170         AND    glps.set_of_books_id = p_ledger_id
171         AND    glps.adjustment_period_flag <> 'Y'
172         AND    glps.closing_status IN ('O','F');
173 
174 CURSOR ou_valid_csr (p_ou_id    NUMBER,
175                      p_trx_date DATE) IS
176       SELECT count(*)
177       FROM hr_operating_units ou
178       WHERE organization_id = p_ou_id
179       AND date_from <= p_trx_date
180       AND NVL(date_to, p_trx_date) >= p_trx_date;
181 
182 BEGIN
183 
184      l_error := 1;
185      l_counter := 0;
186      l_date_low := TRUNC(fnd_date.canonical_to_date(p_date_low));
187      l_date_high:= TRUNC(fnd_date.canonical_to_date(p_date_high));
188      l_previous_org_id := 0;
189      l_ou_id := 0;
190 
191      IF (p_run_autoinvoice_import = 'Y') THEN
192         l_run_autoinvoice_import := 'Yes';
193      ELSE
194         l_run_autoinvoice_import := 'No';
195      END IF;
196 
197      IF (p_org_id is not null) THEN
198         select hr.name into l_org_name from hr_operating_units hr
199         where hr.organization_id = p_org_id;
200      END IF;
201 
202      IF (p_le_id is not null) THEN
203         select xle.name into l_le_name from xle_entity_profiles xle
204         where xle.legal_entity_id = p_le_id;
205      END IF;
206 
207     FND_FILE.PUT_LINE(FND_FILE.OUTPUT, '                   Transfer Intercompany Transactions to Receivables Report        Date: '||to_char(sysdate,'DD-MON-YYYY HH:MM'));
208     FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
209     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'        Operating Unit: ' || l_org_name);
210     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'          Legal Entity: ' || l_le_name);
211     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'          GL Date From: ' || to_char(l_date_low, 'DD-MON-YYYY'));
212     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'            GL Date To: ' || to_char(l_date_high,'DD-MON-YYYY'));
213     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Submit AR Auto Invoice: ' || l_run_autoinvoice_import);
214     FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
215     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'Batch Number        Transaction Number  Transfer Status' );
216     FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'------------        ------------------  ----------------');
217 
218 
219      open c_info;
220 
221      Loop
222 
223      fetch c_info into
224       l_batch_id,
225       l_batch_num,
226       l_trx_id,
227       l_trx_num,
228       l_initiator_id,
229       l_le_id,
230       l_ledger_id,
231       l_recipient_id,
232       l_ap_le_id,
233       l_trx_type_id,
234       l_line.conversion_type,
235       l_line.currency_code,
236       l_ledger_currency_code,
237       l_line.description,
238       l_line.gl_date,
239       l_line.interface_line_attribute1,
240       l_line.interface_line_attribute2,
241       l_line.set_of_books_id,
242       l_line.trx_date;
243 
244      exit when c_info%NOTFOUND;
245      l_counter := l_counter + 1;
246 
247      -- check AR Setup for records
248 
249      -- retrieve l_ou_id and l_ap_ou_id
250      l_ou_id := FUN_TCA_PKG.get_ou_id (l_initiator_id);
251      l_ap_ou_id := FUN_TCA_PKG.get_ou_id(l_recipient_id);
252 
253      IF (l_ou_id is null)  then
254                 l_error := 2;
255                 fnd_message.set_name('FUN','FUN_XFER_AR_IOU_NULL');
256      END IF;
257 
258      IF  (l_ap_ou_id is null) then
259                 l_error := 2;
260                 fnd_message.set_name('FUN','FUN_XFER_AR_ROU_NULL');
261      END IF;
262 
263      -- Validate AR OU Id.
264      OPEN ou_valid_csr( l_ou_id, l_line.trx_date);
265      FETCH ou_valid_csr INTO l_count;
266      CLOSE ou_valid_csr;
267      IF l_count < 1
268      THEN
269          l_error := 2;
270          fnd_message.set_name('FUN','FUN_XFER_AR_IOU_NULL');
271      END IF;
272 
273      -- Retrieve memo line, ar trx type
274        fun_trx_types_pub.Get_Trx_Type_Map(l_ou_id, l_trx_type_id,
275                                        l_line.trx_date,
276                                        l_memo_line_id, l_memo_line_name,
277                                        l_ar_trx_type_id, l_ar_trx_type_name,
278                                        l_default_term_id);
279 
280      IF (l_memo_line_name IS NULL) OR (l_ar_trx_type_name IS NULL)  THEN
281                 l_error := 2;
282                 fnd_message.set_name('FUN','FUN_XFER_AR_MEMO_NULL');
283      END IF;
284 
285 
286      -- Check if AR period open
287 
288      l_ar_period_count := 0;
289 
290      OPEN period_open_csr(l_line.trx_date,
291                           l_ledger_id);
292 
293      FETCH period_open_csr INTO l_ar_period_count;
294 
295      IF l_ar_period_count < 1 THEN
296        l_error := 2;
297        fnd_message.set_name('FUN','FUN_XFER_AR_PERIOD');
298      END IF;
299 
300      CLOSE period_open_csr;
301 
302     -- Obtain the customer_id and address_id
303 
304 
305    -- For customer association, transacting LE is actually the
306    -- recipient LE.
307    l_success :=
308         FUN_TRADING_RELATION.get_customer(
309             p_source       => 'INTERCOMPANY',
310             p_trans_le_id  => l_ap_le_id,
311             p_tp_le_id     => l_le_id,
312             p_trans_org_id => l_ap_ou_id,
313             p_tp_org_id    => l_ou_id,
314             p_trans_organization_id => l_recipient_id,
315             p_tp_organization_id => l_initiator_id,
316             x_msg_data     => x_msg_data,
317             x_cust_acct_id => l_customer_id,
318             x_cust_acct_site_id  => l_address_id,
319             x_site_use_id  => l_site_use_id);
320 
321    IF (l_success<>true) OR (l_customer_id is NULL) THEN
322            l_error := 2;
323            fnd_message.set_name('FUN','FUN_XFER_AR_CST_ID_NULL');
324    END IF;
325    IF  (l_address_id is NULL) THEN
326            l_error := 2;
327            fnd_message.set_name('FUN','FUN_XFER_AR_ADD_ID_NULL');
328    END IF;
329 
330    IF (has_valid_conversion_rate(l_line.currency_code,l_ledger_currency_code,l_line.conversion_type,l_line.gl_date)=0) THEN
331            l_error := 2;
332            fnd_message.set_name('FUN', 'FUN_CONV_RATE_NOT_FOUND');
333    END IF;
334 
335       -- transfer to RA_INTERFACE_LINES
336 
337 
338   IF l_error = 1 THEN
339 
340      open c_line(l_batch_id, l_trx_id);
341 
342      LOOP
343 
344      -- Amounts Transferred to AR should be
345      -- Init Trx Amount: 1000 Cr,  AR Amount: -1000
346      -- Init Trx Amount: -1000 Cr, AR Amount: 1000
347      -- Init Trx Amount: 1000 Dr,  AR Amount: 1000
348      -- Init Trx Amount: -1000 Dr, AR Amount: -1000
349 
350      FETCH c_line INTO
351 
352       l_line.amount,
353       l_line.interface_line_attribute3;
354 
355      EXIT WHEN c_line%NOTFOUND;
356 
357       l_line.org_id:=  l_ou_id;
358       l_line.BATCH_SOURCE_NAME:= 'Global Intercompany';
359       l_line.INTERFACE_LINE_CONTEXT:='INTERNAL_ALLOCATIONS';
360       l_line.LINE_TYPE:='LINE';
361       l_line.UOM_NAME :='Each';
362       l_count:=l_count+1;
363 
364 
365   l_line.orig_system_bill_customer_id:= l_customer_id;
366   l_line.orig_system_bill_address_id := l_address_id;
367 
368 
369 
370   -- Bug: 6788142 Added PRIMARY_SALESREP_ID field in the insert query.
371   -- insert into AR Interface table
372   -- Bug: 7271703 Populating the INTERFACE_LINE_ATTRIBUTE4 with the
373   -- batch number.
374   INSERT INTO RA_INTERFACE_LINES_ALL
375    (
376      AMOUNT,
377      BATCH_SOURCE_NAME,
378      CONVERSION_TYPE,
379      CURRENCY_CODE,
380      CUST_TRX_TYPE_ID,
381      CUST_TRX_TYPE_NAME,
382      DESCRIPTION,
383      GL_DATE,
384      INTERFACE_LINE_ATTRIBUTE1,
385      INTERFACE_LINE_ATTRIBUTE2,
386      INTERFACE_LINE_ATTRIBUTE3,
387      INTERFACE_LINE_ATTRIBUTE4,
388      INTERFACE_LINE_CONTEXT,
389      LINE_TYPE,
390      MEMO_LINE_ID,
391      MEMO_LINE_NAME,
392      ORG_ID,
393      ORIG_SYSTEM_BILL_ADDRESS_ID,
394      ORIG_SYSTEM_BILL_CUSTOMER_ID,
395      SET_OF_BOOKS_ID,
396      TRX_DATE,
397      UOM_NAME,
398      TAXABLE_FLAG,
399      TERM_ID,
400      LEGAL_ENTITY_ID,
401      SOURCE_EVENT_CLASS_CODE,
402      PRIMARY_SALESREP_ID
403       )
404    VALUES
405    (
406      l_line.AMOUNT,
407      l_line.BATCH_SOURCE_NAME,
408      l_line.CONVERSION_TYPE,
409      l_line.CURRENCY_CODE,
410      l_ar_trx_type_id,
411      l_ar_trx_type_name,
412      NVL(l_line.DESCRIPTION,
413          'Transactions from Global Intercompany'),
414      l_line.GL_DATE,
415      l_line.INTERFACE_LINE_ATTRIBUTE1,
416      l_line.INTERFACE_LINE_ATTRIBUTE2,
417      l_line.INTERFACE_LINE_ATTRIBUTE3,
418      l_batch_num,
419      l_line.INTERFACE_LINE_CONTEXT,
420      l_line.LINE_TYPE,
421      l_memo_line_id,
425      l_line.ORIG_SYSTEM_BILL_CUSTOMER_ID,
422      l_memo_line_name,
423      l_line.ORG_ID,
424      l_line.ORIG_SYSTEM_BILL_ADDRESS_ID,
426      l_line.SET_OF_BOOKS_ID,
427      l_line.TRX_DATE,
428      l_line.UOM_NAME,
429      'S'  ,
430      l_default_term_id,
431      l_le_id,
432      'INTERCOMPANY_TRX',
433      '-3'
434     );
435 
436   -- Bug No. 6788142. Inserting into RA_INTERFACE_SALESCREDITS_ALL table
437 
438   INSERT INTO RA_INTERFACE_SALESCREDITS_ALL
439    (
440      INTERFACE_LINE_CONTEXT ,
441      INTERFACE_LINE_ATTRIBUTE1 ,
442      INTERFACE_LINE_ATTRIBUTE2 ,
443      INTERFACE_LINE_ATTRIBUTE3 ,
444      INTERFACE_LINE_ATTRIBUTE4 ,
445      INTERFACE_LINE_ATTRIBUTE5 ,
446      INTERFACE_LINE_ATTRIBUTE6 ,
447      INTERFACE_LINE_ATTRIBUTE7 ,
448      INTERFACE_LINE_ATTRIBUTE8 ,
449      INTERFACE_LINE_ATTRIBUTE9 ,
450      INTERFACE_LINE_ATTRIBUTE10 ,
451      INTERFACE_LINE_ATTRIBUTE11 ,
452      INTERFACE_LINE_ATTRIBUTE12 ,
453      INTERFACE_LINE_ATTRIBUTE13 ,
454      INTERFACE_LINE_ATTRIBUTE14 ,
455      INTERFACE_LINE_ATTRIBUTE15,
456      SALES_CREDIT_PERCENT_SPLIT,
457      SALES_CREDIT_TYPE_ID,
458      SALESREP_ID,
459      ORG_ID
460    )
461    VALUES
462    (
463      l_line.INTERFACE_LINE_CONTEXT,
464      l_line.INTERFACE_LINE_ATTRIBUTE1,
465      l_line.INTERFACE_LINE_ATTRIBUTE2,
466      l_line.INTERFACE_LINE_ATTRIBUTE3,
467      NULL,
468      NULL,
469      NULL,
470      NULL,
471      NULL,
472      NULL,
473      NULL,
474      NULL,
475      NULL,
476      NULL,
477      NULL,
478      NULL,
479      '100',
480      '1',
481      '-3',
482      l_line.ORG_ID
483    );
484 
485       IF  l_previous_org_id <> l_ou_id THEN
486           ORG_ID_TABLE(org_id_table.count+1) := l_ou_id;
487           l_previous_org_id := l_ou_id;
488       END IF;
489 
490       End Loop; --c_line
491       Close C_Line;
492 
493 
494 -- Insert into the AR distribution table
495 
496       -- Amounts Transferred to AR should be
497       -- Ini Dst Amount: 1000 Dr,  AR Amount: -1000
498       -- Ini Dst Amount: -1000 Dr, AR Amount: 1000
499       -- Ini Dst Amount: 1000 Cr,  AR Amount: 1000
500       -- Ini Dst Amount: -1000 Cr, AR Amount: -1000
501 
502       open c_dist(l_trx_id);
503       LOOP
504 
505       FETCH c_dist INTO
506      l_dist_line.AMOUNT,
507      l_dist_line.percent,
508      l_dist_line.account_class,
509      l_dist_line.CODE_COMBINATION_ID,
510      l_dist_line.INTERFACE_LINE_ATTRIBUTE1,
511      l_dist_line.INTERFACE_LINE_ATTRIBUTE2,
512      l_dist_line.INTERFACE_LINE_ATTRIBUTE3;
513 
514      exit when c_dist%NOTFOUND;
515 
516      l_dist_line.ORG_ID :=l_ou_id;
517      l_dist_line.INTERFACE_LINE_CONTEXT:='INTERNAL_ALLOCATIONS';
518 
519    -- Insert the value into the distribution table
520 
521     INSERT INTO RA_INTERFACE_DISTRIBUTIONS_ALL
522     (
523      ACCOUNT_CLASS,
524      AMOUNT,
525      percent,
526      CODE_COMBINATION_ID,
527      INTERFACE_LINE_ATTRIBUTE1,
528      INTERFACE_LINE_ATTRIBUTE2,
529      INTERFACE_LINE_ATTRIBUTE3,
530      INTERFACE_LINE_CONTEXT,
531      ORG_ID
532      )
533      VALUES
534      (
535      l_dist_line.ACCOUNT_CLASS,
536      l_dist_line.AMOUNT,
537      l_dist_line.percent,
538      l_dist_line.CODE_COMBINATION_ID,
539      l_dist_line.INTERFACE_LINE_ATTRIBUTE1,
540      l_dist_line.INTERFACE_LINE_ATTRIBUTE2,
541      l_dist_line.INTERFACE_LINE_ATTRIBUTE3,
542      l_dist_line.INTERFACE_LINE_CONTEXT,
543      l_dist_line.ORG_ID
544      );
545 
546       END LOOP; --c_dist
547       CLOSE c_dist;
548 
549       fnd_message.set_name('FUN','FUN_XFER_SUCCESS');
550       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rpad(substr(l_batch_num,1,15),20)||rpad(substr(l_trx_num,1,15),20)||fnd_message.get);
551 
552         -- update transaction status
553 
554         FUN_TRX_PVT.update_trx_status(p_api_version   =>1.0,
555                                   x_return_status =>l_return_status,
556                                   x_msg_count     => l_message_count,
557                                   x_msg_data      => l_message_data,
558                                   p_trx_id        => l_trx_id,
559                                   p_update_status_to => 'XFER_AR');
560 
561         -- Handle the API call return
562 
563         IF l_return_status = FND_API.G_RET_STS_ERROR   THEN
564 
565             raise FND_API.G_EXC_ERROR;
566         END IF;
567 
568 
569         IF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR   THEN
570 
571             raise FND_API.G_EXC_UNEXPECTED_ERROR;
572         END IF;
573 
574   ELSIF l_error=2 THEN
575       FND_FILE.PUT_LINE(FND_FILE.OUTPUT,rpad(substr(l_batch_num,1,15),20)||rpad(substr(l_trx_num,1,15),20)||fnd_message.get);
576   END IF; -- l_error
577   l_error := 1;
578 
579  End Loop; -- c_info
580 
581  close c_info;
582   FND_FILE.NEW_LINE(FND_FILE.OUTPUT,2 );
583   IF (l_counter = 0) THEN
584      FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'                   *****No Data Found*****');
585   ELSE
586      FND_FILE.PUT_LINE(FND_FILE.OUTPUT,'                   *****End Of Report*****');
587   END IF;
588 
589  COMMIT;
590 
591 
592  IF p_run_autoinvoice_import='Y' and org_id_table.count>0 THEN
593    FOR I in  org_id_table.First .. org_id_table.last
594    LOOP
595       FND_REQUEST.set_org_id(org_id_table(I));
596       l_request_id := FND_REQUEST.SUBMIT_REQUEST('AR', 'RAXMTR','','', FALSE,
597                  '1',org_id_table(I),22,'Global Intercompany', trunc(sysdate),
598                   '','','','','','','','','','','',
599                   '','','','','','','','','', 'YES','');
600 
601       IF l_request_id <> 0 THEN
602         fnd_file.put_line(fnd_file.log,'AR Auto Invoice Program submitted for Org ID: ' || org_id_table(I)||' with Request id: ' || l_request_id);
603         commit;
604       ELSE
605         RAISE Request_Submission_Failure;
606       END IF;
607    END LOOP;
608   END IF;
609 
610 
611  EXCEPTION
612  WHEN Request_Submission_Failure THEN
613     FND_FILE.PUT_LINE(FND_FILE.LOG,'Error in submitting AutoInovice Import Process');
614     FND_FILE.PUT_LINE(FND_FILE.LOG,'Unexpected error:' || sqlcode || sqlerrm);
615  WHEN NO_DATA_FOUND THEN
616     FND_FILE.PUT_LINE(FND_FILE.LOG,'No Data Found');
617  WHEN OTHERS THEN
618     FND_FILE.PUT_LINE(FND_FILE.LOG,'Unexpected error:' || sqlcode || sqlerrm);
619     retcode := 2;
620     end;
621 
622  END FUN_AR_BATCH_TRANSFER;
623 
624