1: PACKAGE BODY PO_PDOI_LINE_PROCESS_PVT AS
2: /* $Header: PO_PDOI_LINE_PROCESS_PVT.plb 120.46.12010000.4 2008/12/18 07:49:51 mugoel ship $ */
3:
4: d_pkg_name CONSTANT VARCHAR2(50) :=
5: PO_LOG.get_package_base('PO_PDOI_LINE_PROCESS_PVT');
6:
7: --------------------------------------------------------------------------
8: ---------------------- PRIVATE PROCEDURES PROTOTYPE ----------------------
9: --------------------------------------------------------------------------
323: l_count NUMBER;
324: BEGIN
325: d_position := 0;
326:
327: IF (PO_LOG.d_proc) THEN
328: PO_LOG.proc_begin(d_module);
329: END IF;
330:
331: -- first reject lines which are duplicate in txn table
324: BEGIN
325: d_position := 0;
326:
327: IF (PO_LOG.d_proc) THEN
328: PO_LOG.proc_begin(d_module);
329: END IF;
330:
331: -- first reject lines which are duplicate in txn table
332: OPEN c_dup_lines_in_txn(PO_PDOI_PARAMS.g_processing_id,
346: d_position := 20;
347:
348: l_count := l_dup_intf_line_id_tbl.COUNT;
349:
350: IF (PO_LOG.d_stmt) THEN
351: PO_LOG.stmt(d_module, d_position, 'duplicate count against txn table', l_count);
352: END IF;
353:
354: EXIT WHEN l_count = 0;
347:
348: l_count := l_dup_intf_line_id_tbl.COUNT;
349:
350: IF (PO_LOG.d_stmt) THEN
351: PO_LOG.stmt(d_module, d_position, 'duplicate count against txn table', l_count);
352: END IF;
353:
354: EXIT WHEN l_count = 0;
355:
357: FOR i IN 1..l_count
358: LOOP
359: d_position := 30;
360:
361: IF (PO_LOG.d_stmt) THEN
362: PO_LOG.stmt(d_module, d_position, 'duplicate interface line id(txn)',
363: l_dup_intf_line_id_tbl(i));
364: END IF;
365:
358: LOOP
359: d_position := 30;
360:
361: IF (PO_LOG.d_stmt) THEN
362: PO_LOG.stmt(d_module, d_position, 'duplicate interface line id(txn)',
363: l_dup_intf_line_id_tbl(i));
364: END IF;
365:
366: PO_PDOI_ERR_UTL.add_fatal_error
415: d_position := 80;
416:
417: l_count := l_dup_intf_line_id_tbl.COUNT;
418:
419: IF (PO_LOG.d_stmt) THEN
420: PO_LOG.stmt(d_module, d_position, 'duplicate count against draft table ', l_count);
421: END IF;
422:
423: EXIT WHEN l_count = 0;
416:
417: l_count := l_dup_intf_line_id_tbl.COUNT;
418:
419: IF (PO_LOG.d_stmt) THEN
420: PO_LOG.stmt(d_module, d_position, 'duplicate count against draft table ', l_count);
421: END IF;
422:
423: EXIT WHEN l_count = 0;
424:
426: FOR i IN 1..l_count
427: LOOP
428: d_position := 90;
429:
430: IF (PO_LOG.d_stmt) THEN
431: PO_LOG.stmt(d_module, d_position, 'duplicate interface line id(draft)',
432: l_dup_intf_line_id_tbl(i));
433: END IF;
434:
427: LOOP
428: d_position := 90;
429:
430: IF (PO_LOG.d_stmt) THEN
431: PO_LOG.stmt(d_module, d_position, 'duplicate interface line id(draft)',
432: l_dup_intf_line_id_tbl(i));
433: END IF;
434:
435: PO_PDOI_ERR_UTL.add_fatal_error
465: CLOSE c_dup_lines_in_draft;
466:
467: d_position := 120;
468:
469: IF (PO_LOG.d_proc) THEN
470: PO_LOG.proc_end (d_module);
471: END IF;
472:
473: EXCEPTION
466:
467: d_position := 120;
468:
469: IF (PO_LOG.d_proc) THEN
470: PO_LOG.proc_end (d_module);
471: END IF;
472:
473: EXCEPTION
474: WHEN OTHERS THEN
520:
521: BEGIN
522: d_position := 0;
523:
524: IF (PO_LOG.d_proc) THEN
525: PO_LOG.proc_begin(d_module);
526: END IF;
527:
528: -- get all invalid lines from cursor
521: BEGIN
522: d_position := 0;
523:
524: IF (PO_LOG.d_proc) THEN
525: PO_LOG.proc_begin(d_module);
526: END IF;
527:
528: -- get all invalid lines from cursor
529: OPEN c_invalid_action_lines(PO_PDOI_PARAMS.g_processing_id,
536: l_rej_intf_line_id_tbl, l_rej_intf_header_id_tbl, l_rej_line_action_tbl;
537:
538: d_position := 20;
539:
540: IF (PO_LOG.d_stmt) THEN
541: PO_LOG.stmt(d_module, d_position, 'count of lines with invalid actions',
542: l_rej_intf_line_id_tbl.COUNT);
543: END IF;
544:
537:
538: d_position := 20;
539:
540: IF (PO_LOG.d_stmt) THEN
541: PO_LOG.stmt(d_module, d_position, 'count of lines with invalid actions',
542: l_rej_intf_line_id_tbl.COUNT);
543: END IF;
544:
545: -- add error if an invalid line is found
546: FOR i IN 1..l_rej_intf_line_id_tbl.COUNT
547: LOOP
548: d_position := 30;
549:
550: IF (PO_LOG.d_stmt) THEN
551: PO_LOG.stmt(d_module, d_position, 'rejected interface line id',
552: l_rej_intf_line_id_tbl(i));
553: END IF;
554:
547: LOOP
548: d_position := 30;
549:
550: IF (PO_LOG.d_stmt) THEN
551: PO_LOG.stmt(d_module, d_position, 'rejected interface line id',
552: l_rej_intf_line_id_tbl(i));
553: END IF;
554:
555: PO_PDOI_ERR_UTL.add_fatal_error
578: d_position := 50;
579:
580: CLOSE c_invalid_action_lines;
581:
582: IF (PO_LOG.d_proc) THEN
583: PO_LOG.proc_end (d_module);
584: END IF;
585:
586: EXCEPTION
579:
580: CLOSE c_invalid_action_lines;
581:
582: IF (PO_LOG.d_proc) THEN
583: PO_LOG.proc_end (d_module);
584: END IF;
585:
586: EXCEPTION
587: WHEN OTHERS THEN
622:
623: BEGIN
624: d_position := 0;
625:
626: IF (PO_LOG.d_proc) THEN
627: PO_LOG.proc_begin(d_module, 'p_data_set_type', p_data_set_type);
628: PO_LOG.proc_begin(d_module, 'p_max_intf_line_id', p_max_intf_line_id);
629: END IF;
630:
623: BEGIN
624: d_position := 0;
625:
626: IF (PO_LOG.d_proc) THEN
627: PO_LOG.proc_begin(d_module, 'p_data_set_type', p_data_set_type);
628: PO_LOG.proc_begin(d_module, 'p_max_intf_line_id', p_max_intf_line_id);
629: END IF;
630:
631: -- bug5107324
624: d_position := 0;
625:
626: IF (PO_LOG.d_proc) THEN
627: PO_LOG.proc_begin(d_module, 'p_data_set_type', p_data_set_type);
628: PO_LOG.proc_begin(d_module, 'p_max_intf_line_id', p_max_intf_line_id);
629: END IF;
630:
631: -- bug5107324
632: -- cursor now selects NULL into allow_desc_update_flag_tbl as well
1323:
1324: NULL;
1325: END IF;
1326:
1327: IF (PO_LOG.d_proc) THEN
1328: PO_LOG.proc_end (d_module);
1329: END IF;
1330:
1331: EXCEPTION
1324: NULL;
1325: END IF;
1326:
1327: IF (PO_LOG.d_proc) THEN
1328: PO_LOG.proc_end (d_module);
1329: END IF;
1330:
1331: EXCEPTION
1332: WHEN OTHERS THEN
1364:
1365: BEGIN
1366: d_position := 0;
1367:
1368: IF (PO_LOG.d_proc) THEN
1369: PO_LOG.proc_begin(d_module);
1370: END IF;
1371:
1372: FETCH x_lines_csr BULK COLLECT INTO
1365: BEGIN
1366: d_position := 0;
1367:
1368: IF (PO_LOG.d_proc) THEN
1369: PO_LOG.proc_begin(d_module);
1370: END IF;
1371:
1372: FETCH x_lines_csr BULK COLLECT INTO
1373: x_lines.intf_line_id_tbl,
1488: x_lines.match_line_found_tbl,
1489: x_lines.allow_desc_update_flag_tbl -- bug5107324
1490: LIMIT PO_PDOI_CONSTANTS.g_DEF_BATCH_SIZE;
1491:
1492: IF (PO_LOG.d_proc) THEN
1493: PO_LOG.proc_end (d_module);
1494: END IF;
1495:
1496: EXCEPTION
1489: x_lines.allow_desc_update_flag_tbl -- bug5107324
1490: LIMIT PO_PDOI_CONSTANTS.g_DEF_BATCH_SIZE;
1491:
1492: IF (PO_LOG.d_proc) THEN
1493: PO_LOG.proc_end (d_module);
1494: END IF;
1495:
1496: EXCEPTION
1497: WHEN OTHERS THEN
1533: l_index_tbl DBMS_SQL.NUMBER_TABLE;
1534: BEGIN
1535: d_position := 0;
1536:
1537: IF (PO_LOG.d_proc) THEN
1538: PO_LOG.proc_begin(d_module, 'line counts', x_lines.rec_count);
1539: END IF;
1540:
1541: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
1534: BEGIN
1535: d_position := 0;
1536:
1537: IF (PO_LOG.d_proc) THEN
1538: PO_LOG.proc_begin(d_module, 'line counts', x_lines.rec_count);
1539: END IF;
1540:
1541: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
1542:
1703: FOR i IN 1..x_lines.rec_count
1704: LOOP
1705: d_position := 140;
1706:
1707: IF (PO_LOG.d_stmt) THEN
1708: PO_LOG.stmt(d_module, d_position, 'index', i);
1709: END IF;
1710:
1711: -- bug5684695
1704: LOOP
1705: d_position := 140;
1706:
1707: IF (PO_LOG.d_stmt) THEN
1708: PO_LOG.stmt(d_module, d_position, 'index', i);
1709: END IF;
1710:
1711: -- bug5684695
1712: -- Removed validation for po_header_id at line level. Simply copy the
1716: -- derivation error for item_id
1717: IF (x_lines.item_tbl(i) IS NOT NULL AND
1718: x_lines.item_id_tbl(i) IS NULL AND
1719: PO_PDOI_PARAMS.g_request.create_items = 'N') THEN
1720: IF (PO_LOG.d_stmt) THEN
1721: PO_LOG.stmt(d_module, d_position, 'item id derivation failed');
1722: PO_LOG.stmt(d_module, d_position, 'item', x_lines.item_tbl(i));
1723: END IF;
1724:
1717: IF (x_lines.item_tbl(i) IS NOT NULL AND
1718: x_lines.item_id_tbl(i) IS NULL AND
1719: PO_PDOI_PARAMS.g_request.create_items = 'N') THEN
1720: IF (PO_LOG.d_stmt) THEN
1721: PO_LOG.stmt(d_module, d_position, 'item id derivation failed');
1722: PO_LOG.stmt(d_module, d_position, 'item', x_lines.item_tbl(i));
1723: END IF;
1724:
1725: PO_PDOI_ERR_UTL.add_fatal_error
1718: x_lines.item_id_tbl(i) IS NULL AND
1719: PO_PDOI_PARAMS.g_request.create_items = 'N') THEN
1720: IF (PO_LOG.d_stmt) THEN
1721: PO_LOG.stmt(d_module, d_position, 'item id derivation failed');
1722: PO_LOG.stmt(d_module, d_position, 'item', x_lines.item_tbl(i));
1723: END IF;
1724:
1725: PO_PDOI_ERR_UTL.add_fatal_error
1726: (
1739:
1740: -- derivation error for job_business_group_id
1741: IF (x_lines.job_business_group_name_tbl(i) IS NOT NULL AND
1742: x_lines.job_business_group_id_tbl(i) IS NULL) THEN
1743: IF (PO_LOG.d_stmt) THEN
1744: PO_LOG.stmt(d_module, d_position, 'job business group id derivation failed');
1745: PO_LOG.stmt(d_module, d_position, 'job business group name',
1746: x_lines.job_business_group_name_tbl(i));
1747: END IF;
1740: -- derivation error for job_business_group_id
1741: IF (x_lines.job_business_group_name_tbl(i) IS NOT NULL AND
1742: x_lines.job_business_group_id_tbl(i) IS NULL) THEN
1743: IF (PO_LOG.d_stmt) THEN
1744: PO_LOG.stmt(d_module, d_position, 'job business group id derivation failed');
1745: PO_LOG.stmt(d_module, d_position, 'job business group name',
1746: x_lines.job_business_group_name_tbl(i));
1747: END IF;
1748:
1741: IF (x_lines.job_business_group_name_tbl(i) IS NOT NULL AND
1742: x_lines.job_business_group_id_tbl(i) IS NULL) THEN
1743: IF (PO_LOG.d_stmt) THEN
1744: PO_LOG.stmt(d_module, d_position, 'job business group id derivation failed');
1745: PO_LOG.stmt(d_module, d_position, 'job business group name',
1746: x_lines.job_business_group_name_tbl(i));
1747: END IF;
1748:
1749: PO_PDOI_ERR_UTL.add_fatal_error
1762:
1763: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1764: ELSIF (x_lines.job_name_tbl(i) IS NOT NULL AND -- derivation error for job_id
1765: x_lines.job_id_tbl(i) IS NULL) THEN
1766: IF (PO_LOG.d_stmt) THEN
1767: PO_LOG.stmt(d_module, d_position, 'job id derivation failed');
1768: PO_LOG.stmt(d_module, d_position, 'job name',
1769: x_lines.job_name_tbl(i));
1770: END IF;
1763: x_lines.error_flag_tbl(i) := FND_API.g_TRUE;
1764: ELSIF (x_lines.job_name_tbl(i) IS NOT NULL AND -- derivation error for job_id
1765: x_lines.job_id_tbl(i) IS NULL) THEN
1766: IF (PO_LOG.d_stmt) THEN
1767: PO_LOG.stmt(d_module, d_position, 'job id derivation failed');
1768: PO_LOG.stmt(d_module, d_position, 'job name',
1769: x_lines.job_name_tbl(i));
1770: END IF;
1771:
1764: ELSIF (x_lines.job_name_tbl(i) IS NOT NULL AND -- derivation error for job_id
1765: x_lines.job_id_tbl(i) IS NULL) THEN
1766: IF (PO_LOG.d_stmt) THEN
1767: PO_LOG.stmt(d_module, d_position, 'job id derivation failed');
1768: PO_LOG.stmt(d_module, d_position, 'job name',
1769: x_lines.job_name_tbl(i));
1770: END IF;
1771:
1772: PO_PDOI_ERR_UTL.add_fatal_error
1790:
1791: -- derivation error for category_id
1792: IF (x_lines.category_tbl(i) IS NOT NULL AND
1793: x_lines.category_id_tbl(i) IS NULL) THEN
1794: IF (PO_LOG.d_stmt) THEN
1795: PO_LOG.stmt(d_module, d_position, 'category id derivation failed');
1796: PO_LOG.stmt(d_module, d_position, 'category name',
1797: x_lines.category_tbl(i));
1798: END IF;
1791: -- derivation error for category_id
1792: IF (x_lines.category_tbl(i) IS NOT NULL AND
1793: x_lines.category_id_tbl(i) IS NULL) THEN
1794: IF (PO_LOG.d_stmt) THEN
1795: PO_LOG.stmt(d_module, d_position, 'category id derivation failed');
1796: PO_LOG.stmt(d_module, d_position, 'category name',
1797: x_lines.category_tbl(i));
1798: END IF;
1799:
1792: IF (x_lines.category_tbl(i) IS NOT NULL AND
1793: x_lines.category_id_tbl(i) IS NULL) THEN
1794: IF (PO_LOG.d_stmt) THEN
1795: PO_LOG.stmt(d_module, d_position, 'category id derivation failed');
1796: PO_LOG.stmt(d_module, d_position, 'category name',
1797: x_lines.category_tbl(i));
1798: END IF;
1799:
1800: PO_PDOI_ERR_UTL.add_fatal_error
1821: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
1822: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION)) THEN
1823: IF (x_lines.ip_category_tbl(i) IS NOT NULL AND
1824: x_lines.ip_category_id_tbl(i) IS NULL) THEN
1825: IF (PO_LOG.d_stmt) THEN
1826: PO_LOG.stmt(d_module, d_position, 'ip category id derivation failed');
1827: PO_LOG.stmt(d_module, d_position, 'ip category name',
1828: x_lines.ip_category_tbl(i));
1829: END IF;
1822: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION)) THEN
1823: IF (x_lines.ip_category_tbl(i) IS NOT NULL AND
1824: x_lines.ip_category_id_tbl(i) IS NULL) THEN
1825: IF (PO_LOG.d_stmt) THEN
1826: PO_LOG.stmt(d_module, d_position, 'ip category id derivation failed');
1827: PO_LOG.stmt(d_module, d_position, 'ip category name',
1828: x_lines.ip_category_tbl(i));
1829: END IF;
1830:
1823: IF (x_lines.ip_category_tbl(i) IS NOT NULL AND
1824: x_lines.ip_category_id_tbl(i) IS NULL) THEN
1825: IF (PO_LOG.d_stmt) THEN
1826: PO_LOG.stmt(d_module, d_position, 'ip category id derivation failed');
1827: PO_LOG.stmt(d_module, d_position, 'ip category name',
1828: x_lines.ip_category_tbl(i));
1829: END IF;
1830:
1831: PO_PDOI_ERR_UTL.add_fatal_error
1850:
1851: -- derivation error for unit_of_measure
1852: IF (x_lines.uom_code_tbl(i) IS NOT NULL AND
1853: x_lines.unit_of_measure_tbl(i) IS NULL) THEN
1854: IF (PO_LOG.d_stmt) THEN
1855: PO_LOG.stmt(d_module, d_position, 'unit of measure derivation failed');
1856: PO_LOG.stmt(d_module, d_position, 'uom code',
1857: x_lines.uom_code_tbl(i));
1858: END IF;
1851: -- derivation error for unit_of_measure
1852: IF (x_lines.uom_code_tbl(i) IS NOT NULL AND
1853: x_lines.unit_of_measure_tbl(i) IS NULL) THEN
1854: IF (PO_LOG.d_stmt) THEN
1855: PO_LOG.stmt(d_module, d_position, 'unit of measure derivation failed');
1856: PO_LOG.stmt(d_module, d_position, 'uom code',
1857: x_lines.uom_code_tbl(i));
1858: END IF;
1859:
1852: IF (x_lines.uom_code_tbl(i) IS NOT NULL AND
1853: x_lines.unit_of_measure_tbl(i) IS NULL) THEN
1854: IF (PO_LOG.d_stmt) THEN
1855: PO_LOG.stmt(d_module, d_position, 'unit of measure derivation failed');
1856: PO_LOG.stmt(d_module, d_position, 'uom code',
1857: x_lines.uom_code_tbl(i));
1858: END IF;
1859:
1860: PO_PDOI_ERR_UTL.add_fatal_error
1878:
1879: -- derivation error for line_type_id
1880: IF (x_lines.line_type_tbl(i) IS NOT NULL AND
1881: x_lines.line_type_id_tbl(i) IS NULL) THEN
1882: IF (PO_LOG.d_stmt) THEN
1883: PO_LOG.stmt(d_module, d_position, 'line type id derivation failed');
1884: PO_LOG.stmt(d_module, d_position, 'line type',
1885: x_lines.line_type_tbl(i));
1886: END IF;
1879: -- derivation error for line_type_id
1880: IF (x_lines.line_type_tbl(i) IS NOT NULL AND
1881: x_lines.line_type_id_tbl(i) IS NULL) THEN
1882: IF (PO_LOG.d_stmt) THEN
1883: PO_LOG.stmt(d_module, d_position, 'line type id derivation failed');
1884: PO_LOG.stmt(d_module, d_position, 'line type',
1885: x_lines.line_type_tbl(i));
1886: END IF;
1887:
1880: IF (x_lines.line_type_tbl(i) IS NOT NULL AND
1881: x_lines.line_type_id_tbl(i) IS NULL) THEN
1882: IF (PO_LOG.d_stmt) THEN
1883: PO_LOG.stmt(d_module, d_position, 'line type id derivation failed');
1884: PO_LOG.stmt(d_module, d_position, 'line type',
1885: x_lines.line_type_tbl(i));
1886: END IF;
1887:
1888: PO_PDOI_ERR_UTL.add_fatal_error
1906:
1907: -- derivation error for un_number_id
1908: IF (x_lines.un_number_tbl(i) IS NOT NULL AND
1909: x_lines.un_number_id_tbl(i) IS NULL) THEN
1910: IF (PO_LOG.d_stmt) THEN
1911: PO_LOG.stmt(d_module, d_position, 'un number id derivation failed');
1912: PO_LOG.stmt(d_module, d_position, 'un number',
1913: x_lines.un_number_tbl(i));
1914: END IF;
1907: -- derivation error for un_number_id
1908: IF (x_lines.un_number_tbl(i) IS NOT NULL AND
1909: x_lines.un_number_id_tbl(i) IS NULL) THEN
1910: IF (PO_LOG.d_stmt) THEN
1911: PO_LOG.stmt(d_module, d_position, 'un number id derivation failed');
1912: PO_LOG.stmt(d_module, d_position, 'un number',
1913: x_lines.un_number_tbl(i));
1914: END IF;
1915:
1908: IF (x_lines.un_number_tbl(i) IS NOT NULL AND
1909: x_lines.un_number_id_tbl(i) IS NULL) THEN
1910: IF (PO_LOG.d_stmt) THEN
1911: PO_LOG.stmt(d_module, d_position, 'un number id derivation failed');
1912: PO_LOG.stmt(d_module, d_position, 'un number',
1913: x_lines.un_number_tbl(i));
1914: END IF;
1915:
1916: PO_PDOI_ERR_UTL.add_fatal_error
1932:
1933: -- derivation error for hazard_class_id
1934: IF (x_lines.hazard_class_tbl(i) IS NOT NULL AND
1935: x_lines.hazard_class_id_tbl(i) IS NULL) THEN
1936: IF (PO_LOG.d_stmt) THEN
1937: PO_LOG.stmt(d_module, d_position, 'hazard class id derivation failed');
1938: PO_LOG.stmt(d_module, d_position, 'hazard class',
1939: x_lines.hazard_class_tbl(i));
1940: END IF;
1933: -- derivation error for hazard_class_id
1934: IF (x_lines.hazard_class_tbl(i) IS NOT NULL AND
1935: x_lines.hazard_class_id_tbl(i) IS NULL) THEN
1936: IF (PO_LOG.d_stmt) THEN
1937: PO_LOG.stmt(d_module, d_position, 'hazard class id derivation failed');
1938: PO_LOG.stmt(d_module, d_position, 'hazard class',
1939: x_lines.hazard_class_tbl(i));
1940: END IF;
1941:
1934: IF (x_lines.hazard_class_tbl(i) IS NOT NULL AND
1935: x_lines.hazard_class_id_tbl(i) IS NULL) THEN
1936: IF (PO_LOG.d_stmt) THEN
1937: PO_LOG.stmt(d_module, d_position, 'hazard class id derivation failed');
1938: PO_LOG.stmt(d_module, d_position, 'hazard class',
1939: x_lines.hazard_class_tbl(i));
1940: END IF;
1941:
1942: PO_PDOI_ERR_UTL.add_fatal_error
1958:
1959: -- derivation error for template_id
1960: IF (x_lines.template_name_tbl(i) IS NOT NULL AND
1961: x_lines.template_id_tbl(i) IS NULL) THEN
1962: IF (PO_LOG.d_stmt) THEN
1963: PO_LOG.stmt(d_module, d_position, 'template id derivation failed');
1964: PO_LOG.stmt(d_module, d_position, 'template name',
1965: x_lines.template_name_tbl(i));
1966: END IF;
1959: -- derivation error for template_id
1960: IF (x_lines.template_name_tbl(i) IS NOT NULL AND
1961: x_lines.template_id_tbl(i) IS NULL) THEN
1962: IF (PO_LOG.d_stmt) THEN
1963: PO_LOG.stmt(d_module, d_position, 'template id derivation failed');
1964: PO_LOG.stmt(d_module, d_position, 'template name',
1965: x_lines.template_name_tbl(i));
1966: END IF;
1967:
1960: IF (x_lines.template_name_tbl(i) IS NOT NULL AND
1961: x_lines.template_id_tbl(i) IS NULL) THEN
1962: IF (PO_LOG.d_stmt) THEN
1963: PO_LOG.stmt(d_module, d_position, 'template id derivation failed');
1964: PO_LOG.stmt(d_module, d_position, 'template name',
1965: x_lines.template_name_tbl(i));
1966: END IF;
1967:
1968: PO_PDOI_ERR_UTL.add_fatal_error
1984: END LOOP;
1985:
1986: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
1987:
1988: IF (PO_LOG.d_proc) THEN
1989: PO_LOG.proc_end (d_module);
1990: END IF;
1991:
1992: EXCEPTION
1985:
1986: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
1987:
1988: IF (PO_LOG.d_proc) THEN
1989: PO_LOG.proc_end (d_module);
1990: END IF;
1991:
1992: EXCEPTION
1993: WHEN OTHERS THEN
2031: l_index_tbl DBMS_SQL.NUMBER_TABLE;
2032: BEGIN
2033: d_position := 0;
2034:
2035: IF (PO_LOG.d_proc) THEN
2036: PO_LOG.proc_begin(d_module, 'line counts', x_lines.rec_count);
2037: END IF;
2038:
2039: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2032: BEGIN
2033: d_position := 0;
2034:
2035: IF (PO_LOG.d_proc) THEN
2036: PO_LOG.proc_begin(d_module, 'line counts', x_lines.rec_count);
2037: END IF;
2038:
2039: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2040:
2109: FOR i IN 1..x_lines.rec_count
2110: LOOP
2111: d_position := 50;
2112:
2113: IF (PO_LOG.d_stmt) THEN
2114: PO_LOG.stmt(d_module, d_position, 'index', i);
2115: END IF;
2116:
2117: -- derivation error for category_id
2110: LOOP
2111: d_position := 50;
2112:
2113: IF (PO_LOG.d_stmt) THEN
2114: PO_LOG.stmt(d_module, d_position, 'index', i);
2115: END IF;
2116:
2117: -- derivation error for category_id
2118: IF (x_lines.category_tbl(i) IS NOT NULL AND
2116:
2117: -- derivation error for category_id
2118: IF (x_lines.category_tbl(i) IS NOT NULL AND
2119: x_lines.category_id_tbl(i) IS NULL) THEN
2120: IF (PO_LOG.d_stmt) THEN
2121: PO_LOG.stmt(d_module, d_position, 'category id derivation failed');
2122: PO_LOG.stmt(d_module, d_position, 'category name',
2123: x_lines.category_tbl(i));
2124: END IF;
2117: -- derivation error for category_id
2118: IF (x_lines.category_tbl(i) IS NOT NULL AND
2119: x_lines.category_id_tbl(i) IS NULL) THEN
2120: IF (PO_LOG.d_stmt) THEN
2121: PO_LOG.stmt(d_module, d_position, 'category id derivation failed');
2122: PO_LOG.stmt(d_module, d_position, 'category name',
2123: x_lines.category_tbl(i));
2124: END IF;
2125:
2118: IF (x_lines.category_tbl(i) IS NOT NULL AND
2119: x_lines.category_id_tbl(i) IS NULL) THEN
2120: IF (PO_LOG.d_stmt) THEN
2121: PO_LOG.stmt(d_module, d_position, 'category id derivation failed');
2122: PO_LOG.stmt(d_module, d_position, 'category name',
2123: x_lines.category_tbl(i));
2124: END IF;
2125:
2126: PO_PDOI_ERR_UTL.add_fatal_error
2145: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
2146: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION)) THEN
2147: IF (x_lines.ip_category_tbl(i) IS NOT NULL AND
2148: x_lines.ip_category_id_tbl(i) IS NULL) THEN
2149: IF (PO_LOG.d_stmt) THEN
2150: PO_LOG.stmt(d_module, d_position, 'ip category id derivation failed');
2151: PO_LOG.stmt(d_module, d_position, 'ip category name',
2152: x_lines.ip_category_tbl(i));
2153: END IF;
2146: PO_PDOI_CONSTANTS.g_DOC_TYPE_QUOTATION)) THEN
2147: IF (x_lines.ip_category_tbl(i) IS NOT NULL AND
2148: x_lines.ip_category_id_tbl(i) IS NULL) THEN
2149: IF (PO_LOG.d_stmt) THEN
2150: PO_LOG.stmt(d_module, d_position, 'ip category id derivation failed');
2151: PO_LOG.stmt(d_module, d_position, 'ip category name',
2152: x_lines.ip_category_tbl(i));
2153: END IF;
2154:
2147: IF (x_lines.ip_category_tbl(i) IS NOT NULL AND
2148: x_lines.ip_category_id_tbl(i) IS NULL) THEN
2149: IF (PO_LOG.d_stmt) THEN
2150: PO_LOG.stmt(d_module, d_position, 'ip category id derivation failed');
2151: PO_LOG.stmt(d_module, d_position, 'ip category name',
2152: x_lines.ip_category_tbl(i));
2153: END IF;
2154:
2155: PO_PDOI_ERR_UTL.add_fatal_error
2172:
2173: -- derivation error for unit_of_measure
2174: IF (x_lines.uom_code_tbl(i) IS NOT NULL AND
2175: x_lines.unit_of_measure_tbl(i) IS NULL) THEN
2176: IF (PO_LOG.d_stmt) THEN
2177: PO_LOG.stmt(d_module, d_position, 'unit of measure derivation failed');
2178: PO_LOG.stmt(d_module, d_position, 'uom code',
2179: x_lines.uom_code_tbl(i));
2180: END IF;
2173: -- derivation error for unit_of_measure
2174: IF (x_lines.uom_code_tbl(i) IS NOT NULL AND
2175: x_lines.unit_of_measure_tbl(i) IS NULL) THEN
2176: IF (PO_LOG.d_stmt) THEN
2177: PO_LOG.stmt(d_module, d_position, 'unit of measure derivation failed');
2178: PO_LOG.stmt(d_module, d_position, 'uom code',
2179: x_lines.uom_code_tbl(i));
2180: END IF;
2181:
2174: IF (x_lines.uom_code_tbl(i) IS NOT NULL AND
2175: x_lines.unit_of_measure_tbl(i) IS NULL) THEN
2176: IF (PO_LOG.d_stmt) THEN
2177: PO_LOG.stmt(d_module, d_position, 'unit of measure derivation failed');
2178: PO_LOG.stmt(d_module, d_position, 'uom code',
2179: x_lines.uom_code_tbl(i));
2180: END IF;
2181:
2182: PO_PDOI_ERR_UTL.add_fatal_error
2198: END LOOP;
2199:
2200: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2201:
2202: IF (PO_LOG.d_proc) THEN
2203: PO_LOG.proc_end (d_module);
2204: END IF;
2205:
2206: EXCEPTION
2199:
2200: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2201:
2202: IF (PO_LOG.d_proc) THEN
2203: PO_LOG.proc_end (d_module);
2204: END IF;
2205:
2206: EXCEPTION
2207: WHEN OTHERS THEN
2266:
2267: BEGIN
2268: d_position := 0;
2269:
2270: IF (PO_LOG.d_proc) THEN
2271: PO_LOG.proc_begin(d_module);
2272: END IF;
2273:
2274: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DEFAULT);
2267: BEGIN
2268: d_position := 0;
2269:
2270: IF (PO_LOG.d_proc) THEN
2271: PO_LOG.proc_begin(d_module);
2272: END IF;
2273:
2274: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DEFAULT);
2275:
2283: d_position := 10;
2284:
2285: -- set default value for line_type_id
2286: IF (x_lines.line_type_id_tbl(i) IS NULL) THEN
2287: IF (PO_LOG.d_stmt) THEN
2288: PO_LOG.stmt(d_module, d_position, 'set default line type id on line index', i);
2289: END IF;
2290:
2291: x_lines.line_type_id_tbl(i) := PO_PDOI_PARAMS.g_sys.line_type_id;
2284:
2285: -- set default value for line_type_id
2286: IF (x_lines.line_type_id_tbl(i) IS NULL) THEN
2287: IF (PO_LOG.d_stmt) THEN
2288: PO_LOG.stmt(d_module, d_position, 'set default line type id on line index', i);
2289: END IF;
2290:
2291: x_lines.line_type_id_tbl(i) := PO_PDOI_PARAMS.g_sys.line_type_id;
2292: END IF;
2373: FOR i IN 1..x_lines.rec_count
2374: LOOP
2375: d_position := 60;
2376:
2377: IF (PO_LOG.d_stmt) THEN
2378: PO_LOG.stmt(d_module, d_position, 'index', i);
2379: END IF;
2380:
2381: -- bug5307208
2374: LOOP
2375: d_position := 60;
2376:
2377: IF (PO_LOG.d_stmt) THEN
2378: PO_LOG.stmt(d_module, d_position, 'index', i);
2379: END IF;
2380:
2381: -- bug5307208
2382: -- Effective and Expiration date should get truncated.
2399: -- 2. order_type_lookup_code is not 'FIXED PRICE' and
2400: IF (x_lines.unit_price_tbl(i) IS NULL AND
2401: x_lines.order_type_lookup_code_tbl(i) <> 'FIXED PRICE') THEN
2402: IF (x_lines.order_type_lookup_code_tbl(i) = 'AMOUNT') THEN
2403: IF (PO_LOG.d_stmt) THEN
2404: PO_LOG.stmt(d_module, d_position, 'set price when order type is AMOUNT',
2405: l_li_unit_price_tbl(i));
2406: END IF;
2407:
2400: IF (x_lines.unit_price_tbl(i) IS NULL AND
2401: x_lines.order_type_lookup_code_tbl(i) <> 'FIXED PRICE') THEN
2402: IF (x_lines.order_type_lookup_code_tbl(i) = 'AMOUNT') THEN
2403: IF (PO_LOG.d_stmt) THEN
2404: PO_LOG.stmt(d_module, d_position, 'set price when order type is AMOUNT',
2405: l_li_unit_price_tbl(i));
2406: END IF;
2407:
2408: x_lines.unit_price_tbl(i) := l_li_unit_price_tbl(i);
2407:
2408: x_lines.unit_price_tbl(i) := l_li_unit_price_tbl(i);
2409: ELSE
2410: IF (x_lines.item_id_tbl(i) IS NOT NULL) THEN
2411: IF (PO_LOG.d_stmt) THEN
2412: PO_LOG.stmt(d_module, d_position, 'set price when item id is not empty',
2413: l_it_unit_price_tbl(i));
2414: END IF;
2415:
2408: x_lines.unit_price_tbl(i) := l_li_unit_price_tbl(i);
2409: ELSE
2410: IF (x_lines.item_id_tbl(i) IS NOT NULL) THEN
2411: IF (PO_LOG.d_stmt) THEN
2412: PO_LOG.stmt(d_module, d_position, 'set price when item id is not empty',
2413: l_it_unit_price_tbl(i));
2414: END IF;
2415:
2416: x_lines.unit_price_tbl(i) := l_it_unit_price_tbl(i);
2414: END IF;
2415:
2416: x_lines.unit_price_tbl(i) := l_it_unit_price_tbl(i);
2417: ELSE
2418: IF (PO_LOG.d_stmt) THEN
2419: PO_LOG.stmt(d_module, d_position, 'set price when item id is empty',
2420: NVL(l_li_unit_price_tbl(i), 0));
2421: END IF;
2422:
2415:
2416: x_lines.unit_price_tbl(i) := l_it_unit_price_tbl(i);
2417: ELSE
2418: IF (PO_LOG.d_stmt) THEN
2419: PO_LOG.stmt(d_module, d_position, 'set price when item id is empty',
2420: NVL(l_li_unit_price_tbl(i), 0));
2421: END IF;
2422:
2423: x_lines.unit_price_tbl(i) := NVL(l_li_unit_price_tbl(i), 0);
2437: l_job_category_id_tbl(i), l_ic_category_id_tbl(i),
2438: l_li_category_id_tbl(i),
2439: PO_PDOI_PARAMS.g_sys.def_category_id);
2440:
2441: IF (PO_LOG.d_stmt) THEN
2442: PO_LOG.stmt(d_module, d_position, 'default category id',
2443: x_lines.category_id_tbl(i));
2444: END IF;
2445:
2438: l_li_category_id_tbl(i),
2439: PO_PDOI_PARAMS.g_sys.def_category_id);
2440:
2441: IF (PO_LOG.d_stmt) THEN
2442: PO_LOG.stmt(d_module, d_position, 'default category id',
2443: x_lines.category_id_tbl(i));
2444: END IF;
2445:
2446: -- default un_number_id and hazard_class_id from item
2460: (PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET,
2461: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD)) THEN
2462: d_position := 80;
2463:
2464: IF (PO_LOG.d_stmt) THEN
2465: PO_LOG.stmt(d_module, d_position, 'set default value for blanket/spo');
2466: END IF;
2467:
2468: -- default list_price_per_unit
2461: PO_PDOI_CONSTANTS.g_DOC_TYPE_STANDARD)) THEN
2462: d_position := 80;
2463:
2464: IF (PO_LOG.d_stmt) THEN
2465: PO_LOG.stmt(d_module, d_position, 'set default value for blanket/spo');
2466: END IF;
2467:
2468: -- default list_price_per_unit
2469: IF (x_lines.list_price_per_unit_tbl(i) IS NULL) THEN
2489: IF (PO_PDOI_PARAMS.g_request.document_type =
2490: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET) THEN
2491: d_position := 90;
2492:
2493: IF (PO_LOG.d_stmt) THEN
2494: PO_LOG.stmt(d_module, d_position, 'set default value for blanket');
2495: END IF;
2496:
2497: -- min_release_amount
2490: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET) THEN
2491: d_position := 90;
2492:
2493: IF (PO_LOG.d_stmt) THEN
2494: PO_LOG.stmt(d_module, d_position, 'set default value for blanket');
2495: END IF;
2496:
2497: -- min_release_amount
2498: x_lines.min_release_amount_tbl(i) :=
2609: );
2610:
2611: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DEFAULT);
2612:
2613: IF (PO_LOG.d_proc) THEN
2614: PO_LOG.proc_end (d_module);
2615: END IF;
2616:
2617: EXCEPTION
2610:
2611: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DEFAULT);
2612:
2613: IF (PO_LOG.d_proc) THEN
2614: PO_LOG.proc_end (d_module);
2615: END IF;
2616:
2617: EXCEPTION
2618: WHEN OTHERS THEN
2664: l_index NUMBER;
2665: BEGIN
2666: d_position := 0;
2667:
2668: IF (PO_LOG.d_proc) THEN
2669: PO_LOG.proc_begin(d_module, 'po_line_id', x_lines.po_line_id_tbl);
2670: PO_LOG.proc_begin(d_module, 'draft_id', x_lines.draft_id_tbl);
2671: END IF;
2672:
2665: BEGIN
2666: d_position := 0;
2667:
2668: IF (PO_LOG.d_proc) THEN
2669: PO_LOG.proc_begin(d_module, 'po_line_id', x_lines.po_line_id_tbl);
2670: PO_LOG.proc_begin(d_module, 'draft_id', x_lines.draft_id_tbl);
2671: END IF;
2672:
2673: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2666: d_position := 0;
2667:
2668: IF (PO_LOG.d_proc) THEN
2669: PO_LOG.proc_begin(d_module, 'po_line_id', x_lines.po_line_id_tbl);
2670: PO_LOG.proc_begin(d_module, 'draft_id', x_lines.draft_id_tbl);
2671: END IF;
2672:
2673: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2674:
2721: l_index_tbl, l_order_type_tbl, l_item_id_tbl, l_job_id_tbl;
2722:
2723: d_position := 40;
2724:
2725: IF (PO_LOG.d_stmt) THEN
2726: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
2727: PO_LOG.stmt(d_module, d_position, 'l_order_type_tbl', l_order_type_tbl);
2728: PO_LOG.stmt(d_module, d_position, 'l_item_id_tbl', l_item_id_tbl);
2729: PO_LOG.stmt(d_module, d_position, 'l_job_id_tbl', l_job_id_tbl);
2722:
2723: d_position := 40;
2724:
2725: IF (PO_LOG.d_stmt) THEN
2726: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
2727: PO_LOG.stmt(d_module, d_position, 'l_order_type_tbl', l_order_type_tbl);
2728: PO_LOG.stmt(d_module, d_position, 'l_item_id_tbl', l_item_id_tbl);
2729: PO_LOG.stmt(d_module, d_position, 'l_job_id_tbl', l_job_id_tbl);
2730: END IF;
2723: d_position := 40;
2724:
2725: IF (PO_LOG.d_stmt) THEN
2726: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
2727: PO_LOG.stmt(d_module, d_position, 'l_order_type_tbl', l_order_type_tbl);
2728: PO_LOG.stmt(d_module, d_position, 'l_item_id_tbl', l_item_id_tbl);
2729: PO_LOG.stmt(d_module, d_position, 'l_job_id_tbl', l_job_id_tbl);
2730: END IF;
2731:
2724:
2725: IF (PO_LOG.d_stmt) THEN
2726: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
2727: PO_LOG.stmt(d_module, d_position, 'l_order_type_tbl', l_order_type_tbl);
2728: PO_LOG.stmt(d_module, d_position, 'l_item_id_tbl', l_item_id_tbl);
2729: PO_LOG.stmt(d_module, d_position, 'l_job_id_tbl', l_job_id_tbl);
2730: END IF;
2731:
2732: FOR i IN 1..l_index_tbl.COUNT
2725: IF (PO_LOG.d_stmt) THEN
2726: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
2727: PO_LOG.stmt(d_module, d_position, 'l_order_type_tbl', l_order_type_tbl);
2728: PO_LOG.stmt(d_module, d_position, 'l_item_id_tbl', l_item_id_tbl);
2729: PO_LOG.stmt(d_module, d_position, 'l_job_id_tbl', l_job_id_tbl);
2730: END IF;
2731:
2732: FOR i IN 1..l_index_tbl.COUNT
2733: LOOP
2739: END LOOP;
2740:
2741: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2742:
2743: IF (PO_LOG.d_proc) THEN
2744: PO_LOG.proc_end (d_module);
2745: END IF;
2746:
2747: EXCEPTION
2740:
2741: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_DERIVE);
2742:
2743: IF (PO_LOG.d_proc) THEN
2744: PO_LOG.proc_end (d_module);
2745: END IF;
2746:
2747: EXCEPTION
2748: WHEN OTHERS THEN
2786: l_rej_intf_line_id_tbl PO_TBL_NUMBER := PO_TBL_NUMBER();
2787: BEGIN
2788: d_position := 0;
2789:
2790: IF (PO_LOG.d_proc) THEN
2791: PO_LOG.proc_begin(d_module);
2792: END IF;
2793:
2794: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_MATCH);
2787: BEGIN
2788: d_position := 0;
2789:
2790: IF (PO_LOG.d_proc) THEN
2791: PO_LOG.proc_begin(d_module);
2792: END IF;
2793:
2794: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_MATCH);
2795:
2801: );
2802:
2803: d_position := 10;
2804:
2805: IF (PO_LOG.d_stmt) THEN
2806: PO_LOG.stmt(d_module, d_position, 'start to match lines based on line num');
2807: END IF;
2808:
2809: -- bug5129752
2802:
2803: d_position := 10;
2804:
2805: IF (PO_LOG.d_stmt) THEN
2806: PO_LOG.stmt(d_module, d_position, 'start to match lines based on line num');
2807: END IF;
2808:
2809: -- bug5129752
2810: -- For FORCE ALL, simply set all line action to 'ADD'
2836: );
2837:
2838: d_position := 20;
2839:
2840: IF (PO_LOG.d_stmt) THEN
2841: PO_LOG.stmt(d_module, d_position, 'start to match lines based on item info');
2842: END IF;
2843:
2844: -- match lines based on item related info
2837:
2838: d_position := 20;
2839:
2840: IF (PO_LOG.d_stmt) THEN
2841: PO_LOG.stmt(d_module, d_position, 'start to match lines based on item info');
2842: END IF;
2843:
2844: -- match lines based on item related info
2845: match_lines_on_item_info
2868: x_create_lines => l_create_lines,
2869: x_update_lines => l_update_lines
2870: );
2871:
2872: IF (PO_LOG.d_stmt) THEN
2873: PO_LOG.stmt(d_module, d_position, 'num of created lines', l_create_lines.rec_count);
2874: PO_LOG.stmt(d_module, d_position, 'num of updated lines', l_update_lines.rec_count);
2875: END IF;
2876:
2869: x_update_lines => l_update_lines
2870: );
2871:
2872: IF (PO_LOG.d_stmt) THEN
2873: PO_LOG.stmt(d_module, d_position, 'num of created lines', l_create_lines.rec_count);
2874: PO_LOG.stmt(d_module, d_position, 'num of updated lines', l_update_lines.rec_count);
2875: END IF;
2876:
2877: d_position := 50;
2870: );
2871:
2872: IF (PO_LOG.d_stmt) THEN
2873: PO_LOG.stmt(d_module, d_position, 'num of created lines', l_create_lines.rec_count);
2874: PO_LOG.stmt(d_module, d_position, 'num of updated lines', l_update_lines.rec_count);
2875: END IF;
2876:
2877: d_position := 50;
2878:
2892: -- reject lines that has action=UPDATE and create_line_loc=N
2893: -- insert error message if the line is neither a po line or location
2894: FOR i IN 1..l_update_lines.rec_count
2895: LOOP
2896: IF (PO_LOG.d_stmt) THEN
2897: PO_LOG.stmt(d_module, d_position, 'index', i);
2898: PO_LOG.stmt(d_module, d_position, 'create location flag',
2899: l_update_lines.create_line_loc_tbl(i));
2900:
2893: -- insert error message if the line is neither a po line or location
2894: FOR i IN 1..l_update_lines.rec_count
2895: LOOP
2896: IF (PO_LOG.d_stmt) THEN
2897: PO_LOG.stmt(d_module, d_position, 'index', i);
2898: PO_LOG.stmt(d_module, d_position, 'create location flag',
2899: l_update_lines.create_line_loc_tbl(i));
2900:
2901: END IF;
2894: FOR i IN 1..l_update_lines.rec_count
2895: LOOP
2896: IF (PO_LOG.d_stmt) THEN
2897: PO_LOG.stmt(d_module, d_position, 'index', i);
2898: PO_LOG.stmt(d_module, d_position, 'create location flag',
2899: l_update_lines.create_line_loc_tbl(i));
2900:
2901: END IF;
2902:
2916: );
2917:
2918: l_rej_intf_line_id_tbl.EXTEND;
2919: l_rej_intf_line_id_tbl(l_rej_intf_line_id_tbl.COUNT) := l_update_lines.intf_line_id_tbl(i);
2920: IF (PO_LOG.d_stmt) THEN
2921: PO_LOG.stmt(d_module, d_position, 'to be rejected intf line id',
2922: l_update_lines.intf_line_id_tbl(i));
2923:
2924: END IF;
2917:
2918: l_rej_intf_line_id_tbl.EXTEND;
2919: l_rej_intf_line_id_tbl(l_rej_intf_line_id_tbl.COUNT) := l_update_lines.intf_line_id_tbl(i);
2920: IF (PO_LOG.d_stmt) THEN
2921: PO_LOG.stmt(d_module, d_position, 'to be rejected intf line id',
2922: l_update_lines.intf_line_id_tbl(i));
2923:
2924: END IF;
2925: END IF;
2935: );
2936:
2937: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_MATCH);
2938:
2939: IF (PO_LOG.d_proc) THEN
2940: PO_LOG.proc_end (d_module);
2941: END IF;
2942:
2943: EXCEPTION
2936:
2937: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_MATCH);
2938:
2939: IF (PO_LOG.d_proc) THEN
2940: PO_LOG.proc_end (d_module);
2941: END IF;
2942:
2943: EXCEPTION
2944: WHEN OTHERS THEN
2984:
2985: BEGIN
2986: d_position := 0;
2987:
2988: IF (PO_LOG.d_proc) THEN
2989: PO_LOG.proc_begin(d_module);
2990: END IF;
2991:
2992: l_obsoleted_loc_tbl.EXTEND(x_lines.rec_count);
2985: BEGIN
2986: d_position := 0;
2987:
2988: IF (PO_LOG.d_proc) THEN
2989: PO_LOG.proc_begin(d_module);
2990: END IF;
2991:
2992: l_obsoleted_loc_tbl.EXTEND(x_lines.rec_count);
2993:
2995: FOR i IN 1..x_lines.rec_count
2996: LOOP
2997: d_position := 10;
2998:
2999: IF (PO_LOG.d_stmt) THEN
3000: PO_LOG.stmt(d_module, d_position, 'index', i);
3001: PO_LOG.stmt(d_module, d_position, 'loc populated flag',
3002: x_lines.line_loc_populated_flag_tbl(i));
3003: END IF;
2996: LOOP
2997: d_position := 10;
2998:
2999: IF (PO_LOG.d_stmt) THEN
3000: PO_LOG.stmt(d_module, d_position, 'index', i);
3001: PO_LOG.stmt(d_module, d_position, 'loc populated flag',
3002: x_lines.line_loc_populated_flag_tbl(i));
3003: END IF;
3004:
2997: d_position := 10;
2998:
2999: IF (PO_LOG.d_stmt) THEN
3000: PO_LOG.stmt(d_module, d_position, 'index', i);
3001: PO_LOG.stmt(d_module, d_position, 'loc populated flag',
3002: x_lines.line_loc_populated_flag_tbl(i));
3003: END IF;
3004:
3005: IF (x_lines.line_loc_populated_flag_tbl(i) = 'S') THEN
3002: x_lines.line_loc_populated_flag_tbl(i));
3003: END IF;
3004:
3005: IF (x_lines.line_loc_populated_flag_tbl(i) = 'S') THEN
3006: IF (PO_LOG.d_stmt) THEN
3007: PO_LOG.stmt(d_module, d_position, 'document type',
3008: PO_PDOI_PARAMS.g_request.document_type);
3009: PO_LOG.stmt(d_module, d_position, 'order_type_lookup_code',
3010: x_lines.order_type_lookup_code_tbl(i));
3003: END IF;
3004:
3005: IF (x_lines.line_loc_populated_flag_tbl(i) = 'S') THEN
3006: IF (PO_LOG.d_stmt) THEN
3007: PO_LOG.stmt(d_module, d_position, 'document type',
3008: PO_PDOI_PARAMS.g_request.document_type);
3009: PO_LOG.stmt(d_module, d_position, 'order_type_lookup_code',
3010: x_lines.order_type_lookup_code_tbl(i));
3011: PO_LOG.stmt(d_module, d_position, 'action',
3005: IF (x_lines.line_loc_populated_flag_tbl(i) = 'S') THEN
3006: IF (PO_LOG.d_stmt) THEN
3007: PO_LOG.stmt(d_module, d_position, 'document type',
3008: PO_PDOI_PARAMS.g_request.document_type);
3009: PO_LOG.stmt(d_module, d_position, 'order_type_lookup_code',
3010: x_lines.order_type_lookup_code_tbl(i));
3011: PO_LOG.stmt(d_module, d_position, 'action',
3012: x_lines.action_tbl(i));
3013: PO_LOG.stmt(d_module, d_position, 'quantity',
3007: PO_LOG.stmt(d_module, d_position, 'document type',
3008: PO_PDOI_PARAMS.g_request.document_type);
3009: PO_LOG.stmt(d_module, d_position, 'order_type_lookup_code',
3010: x_lines.order_type_lookup_code_tbl(i));
3011: PO_LOG.stmt(d_module, d_position, 'action',
3012: x_lines.action_tbl(i));
3013: PO_LOG.stmt(d_module, d_position, 'quantity',
3014: x_lines.quantity_tbl(i));
3015: PO_LOG.stmt(d_module, d_position, 'shipment_num',
3009: PO_LOG.stmt(d_module, d_position, 'order_type_lookup_code',
3010: x_lines.order_type_lookup_code_tbl(i));
3011: PO_LOG.stmt(d_module, d_position, 'action',
3012: x_lines.action_tbl(i));
3013: PO_LOG.stmt(d_module, d_position, 'quantity',
3014: x_lines.quantity_tbl(i));
3015: PO_LOG.stmt(d_module, d_position, 'shipment_num',
3016: x_lines.shipment_num_tbl(i));
3017: END IF;
3011: PO_LOG.stmt(d_module, d_position, 'action',
3012: x_lines.action_tbl(i));
3013: PO_LOG.stmt(d_module, d_position, 'quantity',
3014: x_lines.quantity_tbl(i));
3015: PO_LOG.stmt(d_module, d_position, 'shipment_num',
3016: x_lines.shipment_num_tbl(i));
3017: END IF;
3018: -- set to TRUE in certain conditions
3019: IF (PO_PDOI_PARAMS.g_request.document_type =
3036: x_lines.create_line_loc_tbl(i) := FND_API.g_TRUE;
3037: END IF;
3038: END IF;
3039:
3040: IF (PO_LOG.d_stmt) THEN
3041: PO_LOG.stmt(d_module, d_position, 'create_line_loc',
3042: x_lines.create_line_loc_tbl(i));
3043: END IF;
3044:
3037: END IF;
3038: END IF;
3039:
3040: IF (PO_LOG.d_stmt) THEN
3041: PO_LOG.stmt(d_module, d_position, 'create_line_loc',
3042: x_lines.create_line_loc_tbl(i));
3043: END IF;
3044:
3045: d_position := 20;
3073: p_id_tbl => l_obsoleted_loc_tbl,
3074: p_cascade => FND_API.g_TRUE
3075: );
3076: */
3077: IF (PO_LOG.d_proc) THEN
3078: PO_LOG.proc_end (d_module);
3079: END IF;
3080:
3081: EXCEPTION
3074: p_cascade => FND_API.g_TRUE
3075: );
3076: */
3077: IF (PO_LOG.d_proc) THEN
3078: PO_LOG.proc_end (d_module);
3079: END IF;
3080:
3081: EXCEPTION
3082: WHEN OTHERS THEN
3112:
3113: BEGIN
3114: d_position := 0;
3115:
3116: IF (PO_LOG.d_proc) THEN
3117: PO_LOG.proc_begin(d_module);
3118: END IF;
3119:
3120: d_position := 10;
3113: BEGIN
3114: d_position := 0;
3115:
3116: IF (PO_LOG.d_proc) THEN
3117: PO_LOG.proc_begin(d_module);
3118: END IF;
3119:
3120: d_position := 10;
3121:
3132: PO_PDOI_CONSTANTS.g_PROCESS_CODE_NOTIFIED) THEN
3133:
3134: IF (x_lines.error_flag_tbl(i) = FND_API.g_FALSE AND
3135: x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE) THEN
3136: IF (PO_LOG.d_stmt) THEN
3137: PO_LOG.stmt(d_module, d_position, 'update line process code to ACCEPTED. Index = ', i);
3138: END IF;
3139:
3140: x_lines.process_code_tbl(i) := PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED;
3133:
3134: IF (x_lines.error_flag_tbl(i) = FND_API.g_FALSE AND
3135: x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE) THEN
3136: IF (PO_LOG.d_stmt) THEN
3137: PO_LOG.stmt(d_module, d_position, 'update line process code to ACCEPTED. Index = ', i);
3138: END IF;
3139:
3140: x_lines.process_code_tbl(i) := PO_PDOI_CONSTANTS.g_PROCESS_CODE_ACCEPTED;
3141: END IF;
3156: WHERE interface_line_id = x_lines.intf_line_id_tbl(i);
3157: --AND x_lines.error_flag_tbl(i) = FND_API.g_FALSE
3158: --AND x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE;
3159:
3160: IF (PO_LOG.d_proc) THEN
3161: PO_LOG.proc_end (d_module);
3162: END IF;
3163:
3164: EXCEPTION
3157: --AND x_lines.error_flag_tbl(i) = FND_API.g_FALSE
3158: --AND x_lines.need_to_reject_flag_tbl(i) = FND_API.g_FALSE;
3159:
3160: IF (PO_LOG.d_proc) THEN
3161: PO_LOG.proc_end (d_module);
3162: END IF;
3163:
3164: EXCEPTION
3165: WHEN OTHERS THEN
3222: l_count NUMBER := 0;
3223: BEGIN
3224: d_position := 0;
3225:
3226: IF (PO_LOG.d_proc) THEN
3227: PO_LOG.proc_begin(d_module, 'p_type', p_type);
3228: PO_LOG.proc_begin(d_module, 'p_group_num', p_group_num);
3229:
3230: l_index := x_processing_row_tbl.FIRST;
3223: BEGIN
3224: d_position := 0;
3225:
3226: IF (PO_LOG.d_proc) THEN
3227: PO_LOG.proc_begin(d_module, 'p_type', p_type);
3228: PO_LOG.proc_begin(d_module, 'p_group_num', p_group_num);
3229:
3230: l_index := x_processing_row_tbl.FIRST;
3231: WHILE (l_index IS NOT NULL)
3224: d_position := 0;
3225:
3226: IF (PO_LOG.d_proc) THEN
3227: PO_LOG.proc_begin(d_module, 'p_type', p_type);
3228: PO_LOG.proc_begin(d_module, 'p_group_num', p_group_num);
3229:
3230: l_index := x_processing_row_tbl.FIRST;
3231: WHILE (l_index IS NOT NULL)
3232: LOOP
3229:
3230: l_index := x_processing_row_tbl.FIRST;
3231: WHILE (l_index IS NOT NULL)
3232: LOOP
3233: PO_LOG.proc_begin(d_module, 'to be processed index', l_index);
3234: l_index := x_processing_row_tbl.NEXT(l_index);
3235: END LOOP;
3236: END IF;
3237:
3319: p_po_header_id => x_lines.hd_po_header_id_tbl(i)
3320: );
3321: x_processing_row_tbl.DELETE(i);
3322:
3323: IF (PO_LOG.d_stmt) THEN
3324: PO_LOG.stmt(d_module, d_position, 'set action to ADD '||
3325: 'since all uniqueness criteria are empty');
3326: PO_LOG.stmt(d_module, d_position, 'index', i);
3327: PO_LOG.stmt(d_module, d_position, 'new po line id',
3320: );
3321: x_processing_row_tbl.DELETE(i);
3322:
3323: IF (PO_LOG.d_stmt) THEN
3324: PO_LOG.stmt(d_module, d_position, 'set action to ADD '||
3325: 'since all uniqueness criteria are empty');
3326: PO_LOG.stmt(d_module, d_position, 'index', i);
3327: PO_LOG.stmt(d_module, d_position, 'new po line id',
3328: x_lines.po_line_id_tbl(i));
3322:
3323: IF (PO_LOG.d_stmt) THEN
3324: PO_LOG.stmt(d_module, d_position, 'set action to ADD '||
3325: 'since all uniqueness criteria are empty');
3326: PO_LOG.stmt(d_module, d_position, 'index', i);
3327: PO_LOG.stmt(d_module, d_position, 'new po line id',
3328: x_lines.po_line_id_tbl(i));
3329: PO_LOG.stmt(d_module, d_position, 'new line num',
3330: x_lines.line_num_tbl(i));
3323: IF (PO_LOG.d_stmt) THEN
3324: PO_LOG.stmt(d_module, d_position, 'set action to ADD '||
3325: 'since all uniqueness criteria are empty');
3326: PO_LOG.stmt(d_module, d_position, 'index', i);
3327: PO_LOG.stmt(d_module, d_position, 'new po line id',
3328: x_lines.po_line_id_tbl(i));
3329: PO_LOG.stmt(d_module, d_position, 'new line num',
3330: x_lines.line_num_tbl(i));
3331: END IF;
3325: 'since all uniqueness criteria are empty');
3326: PO_LOG.stmt(d_module, d_position, 'index', i);
3327: PO_LOG.stmt(d_module, d_position, 'new po line id',
3328: x_lines.po_line_id_tbl(i));
3329: PO_LOG.stmt(d_module, d_position, 'new line num',
3330: x_lines.line_num_tbl(i));
3331: END IF;
3332: END IF;
3333: END LOOP;
3387: FOR i IN 1..l_expire_line_index_tbl.COUNT
3388: LOOP
3389: l_index := l_expire_line_index_tbl(i);
3390:
3391: IF (PO_LOG.d_stmt) THEN
3392: PO_LOG.stmt(d_module, d_position, 'expire index', i);
3393: PO_LOG.stmt(d_module, d_position, 'expired line id',
3394: x_lines.po_line_id_tbl(l_index));
3395: END IF;
3388: LOOP
3389: l_index := l_expire_line_index_tbl(i);
3390:
3391: IF (PO_LOG.d_stmt) THEN
3392: PO_LOG.stmt(d_module, d_position, 'expire index', i);
3393: PO_LOG.stmt(d_module, d_position, 'expired line id',
3394: x_lines.po_line_id_tbl(l_index));
3395: END IF;
3396:
3389: l_index := l_expire_line_index_tbl(i);
3390:
3391: IF (PO_LOG.d_stmt) THEN
3392: PO_LOG.stmt(d_module, d_position, 'expire index', i);
3393: PO_LOG.stmt(d_module, d_position, 'expired line id',
3394: x_lines.po_line_id_tbl(l_index));
3395: END IF;
3396:
3397: x_lines.action_tbl(l_index) := PO_PDOI_CONSTANTS.g_ACTION_ADD;
3406: (
3407: p_po_header_id => x_lines.hd_po_header_id_tbl(i)
3408: );
3409:
3410: IF (PO_LOG.d_stmt) THEN
3411: PO_LOG.stmt(d_module, d_position, 'original line num',
3412: x_lines.origin_line_num_tbl(l_index));
3413: PO_LOG.stmt(d_module, d_position, 'if line num unique',
3414: x_lines.line_num_unique_tbl(l_index));
3407: p_po_header_id => x_lines.hd_po_header_id_tbl(i)
3408: );
3409:
3410: IF (PO_LOG.d_stmt) THEN
3411: PO_LOG.stmt(d_module, d_position, 'original line num',
3412: x_lines.origin_line_num_tbl(l_index));
3413: PO_LOG.stmt(d_module, d_position, 'if line num unique',
3414: x_lines.line_num_unique_tbl(l_index));
3415: PO_LOG.stmt(d_module, d_position, 'new line num',
3409:
3410: IF (PO_LOG.d_stmt) THEN
3411: PO_LOG.stmt(d_module, d_position, 'original line num',
3412: x_lines.origin_line_num_tbl(l_index));
3413: PO_LOG.stmt(d_module, d_position, 'if line num unique',
3414: x_lines.line_num_unique_tbl(l_index));
3415: PO_LOG.stmt(d_module, d_position, 'new line num',
3416: x_lines.line_num_tbl(l_index));
3417: END IF;
3411: PO_LOG.stmt(d_module, d_position, 'original line num',
3412: x_lines.origin_line_num_tbl(l_index));
3413: PO_LOG.stmt(d_module, d_position, 'if line num unique',
3414: x_lines.line_num_unique_tbl(l_index));
3415: PO_LOG.stmt(d_module, d_position, 'new line num',
3416: x_lines.line_num_tbl(l_index));
3417: END IF;
3418: END IF;
3419: END LOOP;
3420: END IF;
3421:
3422: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_UNIQUENESS_CHECK);
3423:
3424: IF (PO_LOG.d_proc) THEN
3425: PO_LOG.proc_end (d_module);
3426: END IF;
3427:
3428: EXCEPTION
3421:
3422: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_UNIQUENESS_CHECK);
3423:
3424: IF (PO_LOG.d_proc) THEN
3425: PO_LOG.proc_end (d_module);
3426: END IF;
3427:
3428: EXCEPTION
3429: WHEN OTHERS THEN
3470: l_update_index_tbl DBMS_SQL.NUMBER_TABLE;
3471: BEGIN
3472: d_position := 0;
3473:
3474: IF (PO_LOG.d_proc) THEN
3475: PO_LOG.proc_begin(d_module, 'p_group_num', p_group_num);
3476: PO_LOG.proc_begin(d_module, 'group_num_tbl', p_lines.group_num_tbl);
3477: PO_LOG.proc_begin(d_module, 'action_tbl', p_lines.action_tbl);
3478: END IF;
3471: BEGIN
3472: d_position := 0;
3473:
3474: IF (PO_LOG.d_proc) THEN
3475: PO_LOG.proc_begin(d_module, 'p_group_num', p_group_num);
3476: PO_LOG.proc_begin(d_module, 'group_num_tbl', p_lines.group_num_tbl);
3477: PO_LOG.proc_begin(d_module, 'action_tbl', p_lines.action_tbl);
3478: END IF;
3479:
3472: d_position := 0;
3473:
3474: IF (PO_LOG.d_proc) THEN
3475: PO_LOG.proc_begin(d_module, 'p_group_num', p_group_num);
3476: PO_LOG.proc_begin(d_module, 'group_num_tbl', p_lines.group_num_tbl);
3477: PO_LOG.proc_begin(d_module, 'action_tbl', p_lines.action_tbl);
3478: END IF;
3479:
3480: FOR i IN 1..p_lines.rec_count
3473:
3474: IF (PO_LOG.d_proc) THEN
3475: PO_LOG.proc_begin(d_module, 'p_group_num', p_group_num);
3476: PO_LOG.proc_begin(d_module, 'group_num_tbl', p_lines.group_num_tbl);
3477: PO_LOG.proc_begin(d_module, 'action_tbl', p_lines.action_tbl);
3478: END IF;
3479:
3480: FOR i IN 1..p_lines.rec_count
3481: LOOP
3482: d_position := 10;
3483:
3484: IF (p_group_num IS NULL OR p_lines.group_num_tbl(i) = p_group_num) THEN
3485: IF (p_lines.action_tbl(i) = PO_PDOI_CONSTANTS.g_ACTION_ADD) THEN
3486: IF (PO_LOG.d_stmt) THEN
3487: PO_LOG.stmt(d_module, d_position, 'lines to create', i);
3488: END IF;
3489:
3490: l_create_index_tbl(i) := i;
3483:
3484: IF (p_group_num IS NULL OR p_lines.group_num_tbl(i) = p_group_num) THEN
3485: IF (p_lines.action_tbl(i) = PO_PDOI_CONSTANTS.g_ACTION_ADD) THEN
3486: IF (PO_LOG.d_stmt) THEN
3487: PO_LOG.stmt(d_module, d_position, 'lines to create', i);
3488: END IF;
3489:
3490: l_create_index_tbl(i) := i;
3491: ELSIF (p_lines.action_tbl(i) = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
3488: END IF;
3489:
3490: l_create_index_tbl(i) := i;
3491: ELSIF (p_lines.action_tbl(i) = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
3492: IF (PO_LOG.d_stmt) THEN
3493: PO_LOG.stmt(d_module, d_position, 'lines to update', i);
3494: END IF;
3495:
3496: l_update_index_tbl(i) := i;
3489:
3490: l_create_index_tbl(i) := i;
3491: ELSIF (p_lines.action_tbl(i) = PO_PDOI_CONSTANTS.g_ACTION_UPDATE) THEN
3492: IF (PO_LOG.d_stmt) THEN
3493: PO_LOG.stmt(d_module, d_position, 'lines to update', i);
3494: END IF;
3495:
3496: l_update_index_tbl(i) := i;
3497: END IF;
3517: p_source_index_tbl => l_update_index_tbl,
3518: x_target_lines => x_update_lines
3519: );
3520:
3521: IF (PO_LOG.d_proc) THEN
3522: PO_LOG.proc_end(d_module);
3523: END IF;
3524:
3525: EXCEPTION
3518: x_target_lines => x_update_lines
3519: );
3520:
3521: IF (PO_LOG.d_proc) THEN
3522: PO_LOG.proc_end(d_module);
3523: END IF;
3524:
3525: EXCEPTION
3526: WHEN OTHERS THEN
3571:
3572: BEGIN
3573: d_position := 0;
3574:
3575: IF (PO_LOG.d_proc) THEN
3576: PO_LOG.proc_begin(d_module, 'action', p_action);
3577: END IF;
3578:
3579: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_VALIDATE);
3572: BEGIN
3573: d_position := 0;
3574:
3575: IF (PO_LOG.d_proc) THEN
3576: PO_LOG.proc_begin(d_module, 'action', p_action);
3577: END IF;
3578:
3579: PO_TIMING_UTL.start_time(PO_PDOI_CONSTANTS.g_T_LINE_VALIDATE);
3580:
3670:
3671: d_position := 40;
3672:
3673: IF (l_result_type = po_validations.c_result_type_failure) THEN
3674: IF (PO_LOG.d_stmt) THEN
3675: PO_LOG.stmt(d_module, d_position, 'vaidate lines return failure');
3676: END IF;
3677:
3678: PO_PDOI_ERR_UTL.process_val_type_errors
3671: d_position := 40;
3672:
3673: IF (l_result_type = po_validations.c_result_type_failure) THEN
3674: IF (PO_LOG.d_stmt) THEN
3675: PO_LOG.stmt(d_module, d_position, 'vaidate lines return failure');
3676: END IF;
3677:
3678: PO_PDOI_ERR_UTL.process_val_type_errors
3679: (
3693:
3694: d_position := 60;
3695:
3696: IF l_result_type = po_validations.c_result_type_fatal THEN
3697: IF (PO_LOG.d_stmt) THEN
3698: PO_LOG.stmt(d_module, d_position, 'vaidate lines return fatal');
3699: END IF;
3700:
3701: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3694: d_position := 60;
3695:
3696: IF l_result_type = po_validations.c_result_type_fatal THEN
3697: IF (PO_LOG.d_stmt) THEN
3698: PO_LOG.stmt(d_module, d_position, 'vaidate lines return fatal');
3699: END IF;
3700:
3701: RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
3702: END IF;
3704: d_position := 70;
3705:
3706: -- validate tlp table in advance for tracking of num of error lines.
3707: IF (p_action = 'CREATE') THEN
3708: IF (PO_LOG.d_stmt) THEN
3709: PO_LOG.stmt(d_module, d_position, 'start to validate attribute tlp table');
3710: END IF;
3711:
3712: d_position := 80;
3705:
3706: -- validate tlp table in advance for tracking of num of error lines.
3707: IF (p_action = 'CREATE') THEN
3708: IF (PO_LOG.d_stmt) THEN
3709: PO_LOG.stmt(d_module, d_position, 'start to validate attribute tlp table');
3710: END IF;
3711:
3712: d_position := 80;
3713:
3727: d_position := 100;
3728:
3729: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_VALIDATE);
3730:
3731: IF (PO_LOG.d_proc) THEN
3732: PO_LOG.proc_end(d_module, 'result_type', l_result_type);
3733: END IF;
3734:
3735: EXCEPTION
3728:
3729: PO_TIMING_UTL.stop_time(PO_PDOI_CONSTANTS.g_T_LINE_VALIDATE);
3730:
3731: IF (PO_LOG.d_proc) THEN
3732: PO_LOG.proc_end(d_module, 'result_type', l_result_type);
3733: END IF;
3734:
3735: EXCEPTION
3736: WHEN OTHERS THEN
3809: l_error_exist_tbl DBMS_SQL.NUMBER_TABLE;
3810: BEGIN
3811: d_position := 0;
3812:
3813: IF (PO_LOG.d_proc) THEN
3814: PO_LOG.proc_begin(d_module, 'p_vendor_id_tbl', p_vendor_id_tbl);
3815: PO_LOG.proc_begin(d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3810: BEGIN
3811: d_position := 0;
3812:
3813: IF (PO_LOG.d_proc) THEN
3814: PO_LOG.proc_begin(d_module, 'p_vendor_id_tbl', p_vendor_id_tbl);
3815: PO_LOG.proc_begin(d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3811: d_position := 0;
3812:
3813: IF (PO_LOG.d_proc) THEN
3814: PO_LOG.proc_begin(d_module, 'p_vendor_id_tbl', p_vendor_id_tbl);
3815: PO_LOG.proc_begin(d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3819: PO_LOG.proc_begin(d_module, 'p_item_tbl', p_item_tbl);
3812:
3813: IF (PO_LOG.d_proc) THEN
3814: PO_LOG.proc_begin(d_module, 'p_vendor_id_tbl', p_vendor_id_tbl);
3815: PO_LOG.proc_begin(d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3819: PO_LOG.proc_begin(d_module, 'p_item_tbl', p_item_tbl);
3820: PO_LOG.proc_begin(d_module, 'x_item_id_tbl', x_item_id_tbl);
3813: IF (PO_LOG.d_proc) THEN
3814: PO_LOG.proc_begin(d_module, 'p_vendor_id_tbl', p_vendor_id_tbl);
3815: PO_LOG.proc_begin(d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3819: PO_LOG.proc_begin(d_module, 'p_item_tbl', p_item_tbl);
3820: PO_LOG.proc_begin(d_module, 'x_item_id_tbl', x_item_id_tbl);
3821: PO_LOG.proc_begin(d_module, 'x_error_flag_tbl', x_error_flag_tbl);
3814: PO_LOG.proc_begin(d_module, 'p_vendor_id_tbl', p_vendor_id_tbl);
3815: PO_LOG.proc_begin(d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3819: PO_LOG.proc_begin(d_module, 'p_item_tbl', p_item_tbl);
3820: PO_LOG.proc_begin(d_module, 'x_item_id_tbl', x_item_id_tbl);
3821: PO_LOG.proc_begin(d_module, 'x_error_flag_tbl', x_error_flag_tbl);
3822: END IF;
3815: PO_LOG.proc_begin(d_module, 'p_intf_header_id_tbl', p_intf_header_id_tbl);
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3819: PO_LOG.proc_begin(d_module, 'p_item_tbl', p_item_tbl);
3820: PO_LOG.proc_begin(d_module, 'x_item_id_tbl', x_item_id_tbl);
3821: PO_LOG.proc_begin(d_module, 'x_error_flag_tbl', x_error_flag_tbl);
3822: END IF;
3823:
3816: PO_LOG.proc_begin(d_module, 'p_intf_line_id_tbl', p_intf_line_id_tbl);
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3819: PO_LOG.proc_begin(d_module, 'p_item_tbl', p_item_tbl);
3820: PO_LOG.proc_begin(d_module, 'x_item_id_tbl', x_item_id_tbl);
3821: PO_LOG.proc_begin(d_module, 'x_error_flag_tbl', x_error_flag_tbl);
3822: END IF;
3823:
3824: -- derive based on item_num
3817: PO_LOG.proc_begin(d_module, 'p_vendor_product_num_tbl', p_vendor_product_num_tbl);
3818: PO_LOG.proc_begin(d_module, 'p_category_id_tbl', p_category_id_tbl);
3819: PO_LOG.proc_begin(d_module, 'p_item_tbl', p_item_tbl);
3820: PO_LOG.proc_begin(d_module, 'x_item_id_tbl', x_item_id_tbl);
3821: PO_LOG.proc_begin(d_module, 'x_error_flag_tbl', x_error_flag_tbl);
3822: END IF;
3823:
3824: -- derive based on item_num
3825: FORALL i IN 1..p_index_tbl.COUNT
3872: FOR i IN 1..l_index_tbl.COUNT
3873: LOOP
3874: l_index := l_index_tbl(i);
3875:
3876: IF (PO_LOG.d_stmt) THEN
3877: PO_LOG.stmt(d_module, d_position, 'index', l_index);
3878: PO_LOG.stmt(d_module, d_position, 'result item id',
3879: l_result_tbl(i));
3880: END IF;
3873: LOOP
3874: l_index := l_index_tbl(i);
3875:
3876: IF (PO_LOG.d_stmt) THEN
3877: PO_LOG.stmt(d_module, d_position, 'index', l_index);
3878: PO_LOG.stmt(d_module, d_position, 'result item id',
3879: l_result_tbl(i));
3880: END IF;
3881:
3874: l_index := l_index_tbl(i);
3875:
3876: IF (PO_LOG.d_stmt) THEN
3877: PO_LOG.stmt(d_module, d_position, 'index', l_index);
3878: PO_LOG.stmt(d_module, d_position, 'result item id',
3879: l_result_tbl(i));
3880: END IF;
3881:
3882: IF (NOT l_error_exist_tbl.EXISTS(l_index)) THEN
3901: END IF;
3902: END IF;
3903: END LOOP;
3904:
3905: IF (PO_LOG.d_proc) THEN
3906: PO_LOG.proc_end(d_module);
3907: END IF;
3908:
3909: EXCEPTION
3902: END IF;
3903: END LOOP;
3904:
3905: IF (PO_LOG.d_proc) THEN
3906: PO_LOG.proc_end(d_module);
3907: END IF;
3908:
3909: EXCEPTION
3910: WHEN OTHERS THEN
3947:
3948: BEGIN
3949: d_position := 0;
3950:
3951: IF (PO_LOG.d_proc) THEN
3952: PO_LOG.proc_begin(d_module, 'p_item_id_tbl', p_item_id_tbl);
3953: PO_LOG.proc_begin(d_module, 'x_item_revision_tbl', x_item_revision_tbl);
3954: END IF;
3955:
3948: BEGIN
3949: d_position := 0;
3950:
3951: IF (PO_LOG.d_proc) THEN
3952: PO_LOG.proc_begin(d_module, 'p_item_id_tbl', p_item_id_tbl);
3953: PO_LOG.proc_begin(d_module, 'x_item_revision_tbl', x_item_revision_tbl);
3954: END IF;
3955:
3956: FOR i IN 1..p_item_id_tbl.COUNT
3949: d_position := 0;
3950:
3951: IF (PO_LOG.d_proc) THEN
3952: PO_LOG.proc_begin(d_module, 'p_item_id_tbl', p_item_id_tbl);
3953: PO_LOG.proc_begin(d_module, 'x_item_revision_tbl', x_item_revision_tbl);
3954: END IF;
3955:
3956: FOR i IN 1..p_item_id_tbl.COUNT
3957: LOOP
3957: LOOP
3958: IF (p_item_id_tbl(i) IS NULL AND
3959: X_item_revision_tbl(i) IS NOT NULL AND
3960: PO_PDOI_PARAMS.g_request.create_items = 'Y') THEN
3961: IF (PO_LOG.d_stmt) THEN
3962: PO_LOG.stmt(d_module, d_position, 'index', i);
3963: PO_LOG.stmt(d_module, d_position, 'new item revision set to empty');
3964: END IF;
3965:
3958: IF (p_item_id_tbl(i) IS NULL AND
3959: X_item_revision_tbl(i) IS NOT NULL AND
3960: PO_PDOI_PARAMS.g_request.create_items = 'Y') THEN
3961: IF (PO_LOG.d_stmt) THEN
3962: PO_LOG.stmt(d_module, d_position, 'index', i);
3963: PO_LOG.stmt(d_module, d_position, 'new item revision set to empty');
3964: END IF;
3965:
3966: x_item_revision_tbl(i) := NULL;
3959: X_item_revision_tbl(i) IS NOT NULL AND
3960: PO_PDOI_PARAMS.g_request.create_items = 'Y') THEN
3961: IF (PO_LOG.d_stmt) THEN
3962: PO_LOG.stmt(d_module, d_position, 'index', i);
3963: PO_LOG.stmt(d_module, d_position, 'new item revision set to empty');
3964: END IF;
3965:
3966: x_item_revision_tbl(i) := NULL;
3967: END IF;
3966: x_item_revision_tbl(i) := NULL;
3967: END IF;
3968: END LOOP;
3969:
3970: IF (PO_LOG.d_proc) THEN
3971: PO_LOG.proc_end(d_module);
3972: END IF;
3973:
3974: EXCEPTION
3967: END IF;
3968: END LOOP;
3969:
3970: IF (PO_LOG.d_proc) THEN
3971: PO_LOG.proc_end(d_module);
3972: END IF;
3973:
3974: EXCEPTION
3975: WHEN OTHERS THEN
4020: l_result_tbl PO_TBL_NUMBER;
4021: BEGIN
4022: d_position := 0;
4023:
4024: IF (PO_LOG.d_proc) THEN
4025: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4026: p_job_business_group_name_tbl);
4027: PO_LOG.proc_begin(d_module, 'x_job_business_group_id_tbl',
4028: x_job_business_group_id_tbl);
4021: BEGIN
4022: d_position := 0;
4023:
4024: IF (PO_LOG.d_proc) THEN
4025: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4026: p_job_business_group_name_tbl);
4027: PO_LOG.proc_begin(d_module, 'x_job_business_group_id_tbl',
4028: x_job_business_group_id_tbl);
4029: END IF;
4023:
4024: IF (PO_LOG.d_proc) THEN
4025: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4026: p_job_business_group_name_tbl);
4027: PO_LOG.proc_begin(d_module, 'x_job_business_group_id_tbl',
4028: x_job_business_group_id_tbl);
4029: END IF;
4030:
4031: -- derive id from name
4052:
4053: -- push the result back to x_job_business_group_id_tbl
4054: FOR i IN 1..l_index_tbl.COUNT
4055: LOOP
4056: IF (PO_LOG.d_stmt) THEN
4057: PO_LOG.stmt(d_module, d_position, 'new business group id',
4058: l_result_tbl(i));
4059: END IF;
4060:
4053: -- push the result back to x_job_business_group_id_tbl
4054: FOR i IN 1..l_index_tbl.COUNT
4055: LOOP
4056: IF (PO_LOG.d_stmt) THEN
4057: PO_LOG.stmt(d_module, d_position, 'new business group id',
4058: l_result_tbl(i));
4059: END IF;
4060:
4061: x_job_business_group_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4060:
4061: x_job_business_group_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4062: END LOOP;
4063:
4064: IF (PO_LOG.d_proc) THEN
4065: PO_LOG.proc_end(d_module);
4066: END IF;
4067:
4068: EXCEPTION
4061: x_job_business_group_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4062: END LOOP;
4063:
4064: IF (PO_LOG.d_proc) THEN
4065: PO_LOG.proc_end(d_module);
4066: END IF;
4067:
4068: EXCEPTION
4069: WHEN OTHERS THEN
4130:
4131: BEGIN
4132: d_position := 0;
4133:
4134: IF (PO_LOG.d_proc) THEN
4135: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl',
4136: p_file_line_language_tbl);
4137: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4138: p_job_business_group_name_tbl);
4131: BEGIN
4132: d_position := 0;
4133:
4134: IF (PO_LOG.d_proc) THEN
4135: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl',
4136: p_file_line_language_tbl);
4137: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4138: p_job_business_group_name_tbl);
4139: PO_LOG.proc_begin(d_module, 'p_job_name_tbl', p_job_name_tbl);
4133:
4134: IF (PO_LOG.d_proc) THEN
4135: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl',
4136: p_file_line_language_tbl);
4137: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4138: p_job_business_group_name_tbl);
4139: PO_LOG.proc_begin(d_module, 'p_job_name_tbl', p_job_name_tbl);
4140: PO_LOG.proc_begin(d_module, 'x_job_business_group_id_tbl',
4141: x_job_business_group_id_tbl);
4135: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl',
4136: p_file_line_language_tbl);
4137: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4138: p_job_business_group_name_tbl);
4139: PO_LOG.proc_begin(d_module, 'p_job_name_tbl', p_job_name_tbl);
4140: PO_LOG.proc_begin(d_module, 'x_job_business_group_id_tbl',
4141: x_job_business_group_id_tbl);
4142: PO_LOG.proc_begin(d_module, 'x_job_id_tbl', x_job_id_tbl);
4143: END IF;
4136: p_file_line_language_tbl);
4137: PO_LOG.proc_begin(d_module, 'p_job_business_group_name_tbl',
4138: p_job_business_group_name_tbl);
4139: PO_LOG.proc_begin(d_module, 'p_job_name_tbl', p_job_name_tbl);
4140: PO_LOG.proc_begin(d_module, 'x_job_business_group_id_tbl',
4141: x_job_business_group_id_tbl);
4142: PO_LOG.proc_begin(d_module, 'x_job_id_tbl', x_job_id_tbl);
4143: END IF;
4144:
4138: p_job_business_group_name_tbl);
4139: PO_LOG.proc_begin(d_module, 'p_job_name_tbl', p_job_name_tbl);
4140: PO_LOG.proc_begin(d_module, 'x_job_business_group_id_tbl',
4141: x_job_business_group_id_tbl);
4142: PO_LOG.proc_begin(d_module, 'x_job_id_tbl', x_job_id_tbl);
4143: END IF;
4144:
4145: -- execute different queries to derive job_id depending on profile and
4146: -- value of job_business_group_id
4143: END IF;
4144:
4145: -- execute different queries to derive job_id depending on profile and
4146: -- value of job_business_group_id
4147: IF (PO_LOG.d_stmt) THEN
4148: PO_LOG.stmt(d_module, d_position, 'business group profile value',
4149: PO_PDOI_PARAMS.g_profile.xbg);
4150: PO_LOG.stmt(d_module, d_position, 'fsp business_group_id',
4151: PO_PDOI_PARAMS.g_sys.def_business_group_id);
4144:
4145: -- execute different queries to derive job_id depending on profile and
4146: -- value of job_business_group_id
4147: IF (PO_LOG.d_stmt) THEN
4148: PO_LOG.stmt(d_module, d_position, 'business group profile value',
4149: PO_PDOI_PARAMS.g_profile.xbg);
4150: PO_LOG.stmt(d_module, d_position, 'fsp business_group_id',
4151: PO_PDOI_PARAMS.g_sys.def_business_group_id);
4152: END IF;
4146: -- value of job_business_group_id
4147: IF (PO_LOG.d_stmt) THEN
4148: PO_LOG.stmt(d_module, d_position, 'business group profile value',
4149: PO_PDOI_PARAMS.g_profile.xbg);
4150: PO_LOG.stmt(d_module, d_position, 'fsp business_group_id',
4151: PO_PDOI_PARAMS.g_sys.def_business_group_id);
4152: END IF;
4153:
4154: -- bug 5489942: derive job_id from job_name based on
4187: from per_jobs_vl
4188: where TRUNC(sysdate) BETWEEN TRUNC(NVL(date_from, sysdate))
4189: AND TRUNC(NVL(date_to, sysdate));
4190:
4191: IF (PO_LOG.d_stmt) THEN
4192: PO_LOG.stmt(d_module, d_position, 'debug: d_job_id_tbl',
4193: d_job_id_tbl);
4194: PO_LOG.stmt(d_module, d_position, 'debug: d_job_name_tbl',
4195: d_job_name_tbl);
4188: where TRUNC(sysdate) BETWEEN TRUNC(NVL(date_from, sysdate))
4189: AND TRUNC(NVL(date_to, sysdate));
4190:
4191: IF (PO_LOG.d_stmt) THEN
4192: PO_LOG.stmt(d_module, d_position, 'debug: d_job_id_tbl',
4193: d_job_id_tbl);
4194: PO_LOG.stmt(d_module, d_position, 'debug: d_job_name_tbl',
4195: d_job_name_tbl);
4196: PO_LOG.stmt(d_module, d_position, 'debug: d_bg_id_tbl',
4190:
4191: IF (PO_LOG.d_stmt) THEN
4192: PO_LOG.stmt(d_module, d_position, 'debug: d_job_id_tbl',
4193: d_job_id_tbl);
4194: PO_LOG.stmt(d_module, d_position, 'debug: d_job_name_tbl',
4195: d_job_name_tbl);
4196: PO_LOG.stmt(d_module, d_position, 'debug: d_bg_id_tbl',
4197: d_bg_id_tbl);
4198: PO_LOG.stmt(d_module, d_position, 'debug: default bg id',
4192: PO_LOG.stmt(d_module, d_position, 'debug: d_job_id_tbl',
4193: d_job_id_tbl);
4194: PO_LOG.stmt(d_module, d_position, 'debug: d_job_name_tbl',
4195: d_job_name_tbl);
4196: PO_LOG.stmt(d_module, d_position, 'debug: d_bg_id_tbl',
4197: d_bg_id_tbl);
4198: PO_LOG.stmt(d_module, d_position, 'debug: default bg id',
4199: PO_PDOI_PARAMS.g_sys.def_business_group_id);
4200: END IF;
4194: PO_LOG.stmt(d_module, d_position, 'debug: d_job_name_tbl',
4195: d_job_name_tbl);
4196: PO_LOG.stmt(d_module, d_position, 'debug: d_bg_id_tbl',
4197: d_bg_id_tbl);
4198: PO_LOG.stmt(d_module, d_position, 'debug: default bg id',
4199: PO_PDOI_PARAMS.g_sys.def_business_group_id);
4200: END IF;
4201:
4202: -- END OF info added for debugging purpose */
4256: RETURNING num1, num2 BULK COLLECT INTO l_index_tbl, l_result_tbl;
4257:
4258: d_position := 50;
4259:
4260: IF (PO_LOG.d_stmt) THEN
4261: PO_LOG.stmt(d_module, d_position, 'derived result: l_index_tbl',
4262: l_index_tbl);
4263: PO_LOG.stmt(d_module, d_position, 'derived result: l_result_tbl',
4264: l_result_tbl);
4257:
4258: d_position := 50;
4259:
4260: IF (PO_LOG.d_stmt) THEN
4261: PO_LOG.stmt(d_module, d_position, 'derived result: l_index_tbl',
4262: l_index_tbl);
4263: PO_LOG.stmt(d_module, d_position, 'derived result: l_result_tbl',
4264: l_result_tbl);
4265: END IF;
4259:
4260: IF (PO_LOG.d_stmt) THEN
4261: PO_LOG.stmt(d_module, d_position, 'derived result: l_index_tbl',
4262: l_index_tbl);
4263: PO_LOG.stmt(d_module, d_position, 'derived result: l_result_tbl',
4264: l_result_tbl);
4265: END IF;
4266:
4267: -- set job_business_group_id if both job_business_group_id
4281:
4282: -- set job_id from derived values
4283: FOR i IN 1..l_index_tbl.COUNT
4284: LOOP
4285: IF (PO_LOG.d_stmt) THEN
4286: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4287: PO_LOG.stmt(d_module, d_position, 'new job id', l_result_tbl(i));
4288: END IF;
4289:
4282: -- set job_id from derived values
4283: FOR i IN 1..l_index_tbl.COUNT
4284: LOOP
4285: IF (PO_LOG.d_stmt) THEN
4286: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4287: PO_LOG.stmt(d_module, d_position, 'new job id', l_result_tbl(i));
4288: END IF;
4289:
4290: x_job_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4283: FOR i IN 1..l_index_tbl.COUNT
4284: LOOP
4285: IF (PO_LOG.d_stmt) THEN
4286: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4287: PO_LOG.stmt(d_module, d_position, 'new job id', l_result_tbl(i));
4288: END IF;
4289:
4290: x_job_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4291: END LOOP;
4289:
4290: x_job_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4291: END LOOP;
4292:
4293: IF (PO_LOG.d_proc) THEN
4294: PO_LOG.proc_end(d_module);
4295: END IF;
4296:
4297: EXCEPTION
4290: x_job_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4291: END LOOP;
4292:
4293: IF (PO_LOG.d_proc) THEN
4294: PO_LOG.proc_end(d_module);
4295: END IF;
4296:
4297: EXCEPTION
4298: WHEN OTHERS THEN
4337: l_result NUMBER;
4338: BEGIN
4339: d_position := 0;
4340:
4341: IF (PO_LOG.d_proc) THEN
4342: PO_LOG.proc_begin(d_module, 'p_category_tbl', p_category_tbl);
4343: PO_LOG.proc_begin(d_module, 'x_category_id_tbl', x_category_id_tbl);
4344: END IF;
4345:
4338: BEGIN
4339: d_position := 0;
4340:
4341: IF (PO_LOG.d_proc) THEN
4342: PO_LOG.proc_begin(d_module, 'p_category_tbl', p_category_tbl);
4343: PO_LOG.proc_begin(d_module, 'x_category_id_tbl', x_category_id_tbl);
4344: END IF;
4345:
4346: -- category id is derived by an API provided by FND.
4339: d_position := 0;
4340:
4341: IF (PO_LOG.d_proc) THEN
4342: PO_LOG.proc_begin(d_module, 'p_category_tbl', p_category_tbl);
4343: PO_LOG.proc_begin(d_module, 'x_category_id_tbl', x_category_id_tbl);
4344: END IF;
4345:
4346: -- category id is derived by an API provided by FND.
4347: -- so we have to call the APPI multiple times
4356: PO_PDOI_PARAMS.g_sys.def_structure_id,
4357: to_char(sysdate,'YYYY/MM/DD HH24:MI:SS'),
4358: p_category_tbl(i));
4359:
4360: IF (PO_LOG.d_stmt) THEN
4361: PO_LOG.stmt(d_module, d_position, 'index', i);
4362: PO_LOG.stmt(d_module, d_position, 'result', l_result);
4363: END IF;
4364:
4357: to_char(sysdate,'YYYY/MM/DD HH24:MI:SS'),
4358: p_category_tbl(i));
4359:
4360: IF (PO_LOG.d_stmt) THEN
4361: PO_LOG.stmt(d_module, d_position, 'index', i);
4362: PO_LOG.stmt(d_module, d_position, 'result', l_result);
4363: END IF;
4364:
4365: IF (l_result IS NOT NULL AND l_result <> 0) THEN
4358: p_category_tbl(i));
4359:
4360: IF (PO_LOG.d_stmt) THEN
4361: PO_LOG.stmt(d_module, d_position, 'index', i);
4362: PO_LOG.stmt(d_module, d_position, 'result', l_result);
4363: END IF;
4364:
4365: IF (l_result IS NOT NULL AND l_result <> 0) THEN
4366: x_category_id_tbl(i) := l_result;
4367: END IF;
4368: END IF;
4369: END LOOP;
4370:
4371: IF (PO_LOG.d_proc) THEN
4372: PO_LOG.proc_end(d_module);
4373: END IF;
4374:
4375: EXCEPTION
4368: END IF;
4369: END LOOP;
4370:
4371: IF (PO_LOG.d_proc) THEN
4372: PO_LOG.proc_end(d_module);
4373: END IF;
4374:
4375: EXCEPTION
4376: WHEN OTHERS THEN
4423: l_result_tbl PO_TBL_NUMBER;
4424: BEGIN
4425: d_position := 0;
4426:
4427: IF (PO_LOG.d_proc) THEN
4428: PO_LOG.proc_begin(d_module, 'p_ip_category_tbl', p_ip_category_tbl);
4429: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4430: PO_LOG.proc_begin(d_module, 'x_ip_category_id_tbl', x_ip_category_id_tbl);
4431: END IF;
4424: BEGIN
4425: d_position := 0;
4426:
4427: IF (PO_LOG.d_proc) THEN
4428: PO_LOG.proc_begin(d_module, 'p_ip_category_tbl', p_ip_category_tbl);
4429: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4430: PO_LOG.proc_begin(d_module, 'x_ip_category_id_tbl', x_ip_category_id_tbl);
4431: END IF;
4432:
4425: d_position := 0;
4426:
4427: IF (PO_LOG.d_proc) THEN
4428: PO_LOG.proc_begin(d_module, 'p_ip_category_tbl', p_ip_category_tbl);
4429: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4430: PO_LOG.proc_begin(d_module, 'x_ip_category_id_tbl', x_ip_category_id_tbl);
4431: END IF;
4432:
4433: -- 1. derive ip_category_id based on category key
4426:
4427: IF (PO_LOG.d_proc) THEN
4428: PO_LOG.proc_begin(d_module, 'p_ip_category_tbl', p_ip_category_tbl);
4429: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4430: PO_LOG.proc_begin(d_module, 'x_ip_category_id_tbl', x_ip_category_id_tbl);
4431: END IF;
4432:
4433: -- 1. derive ip_category_id based on category key
4434: FORALL i IN 1.. p_index_tbl.COUNT
4452:
4453: -- push the result back to x_unit_of_measure_tbl
4454: FOR i IN 1..l_index_tbl.COUNT
4455: LOOP
4456: IF (PO_LOG.d_stmt) THEN
4457: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4458: PO_LOG.stmt(d_module, d_position, 'new ip category id',
4459: l_result_tbl(i));
4460: END IF;
4453: -- push the result back to x_unit_of_measure_tbl
4454: FOR i IN 1..l_index_tbl.COUNT
4455: LOOP
4456: IF (PO_LOG.d_stmt) THEN
4457: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4458: PO_LOG.stmt(d_module, d_position, 'new ip category id',
4459: l_result_tbl(i));
4460: END IF;
4461:
4454: FOR i IN 1..l_index_tbl.COUNT
4455: LOOP
4456: IF (PO_LOG.d_stmt) THEN
4457: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4458: PO_LOG.stmt(d_module, d_position, 'new ip category id',
4459: l_result_tbl(i));
4460: END IF;
4461:
4462: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4490:
4491: -- push the result back to x_unit_of_measure_tbl
4492: FOR i IN 1..l_index_tbl.COUNT
4493: LOOP
4494: IF (PO_LOG.d_stmt) THEN
4495: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4496: PO_LOG.stmt(d_module, d_position, 'new ip category id',
4497: l_result_tbl(i));
4498: END IF;
4491: -- push the result back to x_unit_of_measure_tbl
4492: FOR i IN 1..l_index_tbl.COUNT
4493: LOOP
4494: IF (PO_LOG.d_stmt) THEN
4495: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4496: PO_LOG.stmt(d_module, d_position, 'new ip category id',
4497: l_result_tbl(i));
4498: END IF;
4499:
4492: FOR i IN 1..l_index_tbl.COUNT
4493: LOOP
4494: IF (PO_LOG.d_stmt) THEN
4495: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4496: PO_LOG.stmt(d_module, d_position, 'new ip category id',
4497: l_result_tbl(i));
4498: END IF;
4499:
4500: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4499:
4500: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4501: END LOOP;
4502:
4503: IF (PO_LOG.d_proc) THEN
4504: PO_LOG.proc_end(d_module);
4505: END IF;
4506:
4507: EXCEPTION
4500: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4501: END LOOP;
4502:
4503: IF (PO_LOG.d_proc) THEN
4504: PO_LOG.proc_end(d_module);
4505: END IF;
4506:
4507: EXCEPTION
4508: WHEN OTHERS THEN
4552: l_result_tbl PO_TBL_VARCHAR30;
4553: BEGIN
4554: d_position := 0;
4555:
4556: IF (PO_LOG.d_proc) THEN
4557: PO_LOG.proc_begin(d_module, 'p_uom_code_tbl', p_uom_code_tbl);
4558: PO_LOG.proc_begin(d_module, 'x_unit_of_measure_tbl', x_unit_of_measure_tbl);
4559: END IF;
4560:
4553: BEGIN
4554: d_position := 0;
4555:
4556: IF (PO_LOG.d_proc) THEN
4557: PO_LOG.proc_begin(d_module, 'p_uom_code_tbl', p_uom_code_tbl);
4558: PO_LOG.proc_begin(d_module, 'x_unit_of_measure_tbl', x_unit_of_measure_tbl);
4559: END IF;
4560:
4561: -- derive unit_of_measure from uom_code
4554: d_position := 0;
4555:
4556: IF (PO_LOG.d_proc) THEN
4557: PO_LOG.proc_begin(d_module, 'p_uom_code_tbl', p_uom_code_tbl);
4558: PO_LOG.proc_begin(d_module, 'x_unit_of_measure_tbl', x_unit_of_measure_tbl);
4559: END IF;
4560:
4561: -- derive unit_of_measure from uom_code
4562: FORALL i IN 1.. p_index_tbl.COUNT
4580:
4581: -- push the result back to x_unit_of_measure_tbl
4582: FOR i IN 1..l_index_tbl.COUNT
4583: LOOP
4584: IF (PO_LOG.d_stmt) THEN
4585: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4586: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
4587: l_result_tbl(i));
4588: END IF;
4581: -- push the result back to x_unit_of_measure_tbl
4582: FOR i IN 1..l_index_tbl.COUNT
4583: LOOP
4584: IF (PO_LOG.d_stmt) THEN
4585: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4586: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
4587: l_result_tbl(i));
4588: END IF;
4589:
4582: FOR i IN 1..l_index_tbl.COUNT
4583: LOOP
4584: IF (PO_LOG.d_stmt) THEN
4585: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4586: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
4587: l_result_tbl(i));
4588: END IF;
4589:
4590: x_unit_of_measure_tbl(l_index_tbl(i)) := l_result_tbl(i);
4589:
4590: x_unit_of_measure_tbl(l_index_tbl(i)) := l_result_tbl(i);
4591: END LOOP;
4592:
4593: IF (PO_LOG.d_proc) THEN
4594: PO_LOG.proc_end(d_module);
4595: END IF;
4596:
4597: EXCEPTION
4590: x_unit_of_measure_tbl(l_index_tbl(i)) := l_result_tbl(i);
4591: END LOOP;
4592:
4593: IF (PO_LOG.d_proc) THEN
4594: PO_LOG.proc_end(d_module);
4595: END IF;
4596:
4597: EXCEPTION
4598: WHEN OTHERS THEN
4645: l_result_tbl PO_TBL_NUMBER;
4646: BEGIN
4647: d_position := 0;
4648:
4649: IF (PO_LOG.d_proc) THEN
4650: PO_LOG.proc_begin(d_module, 'p_line_type_tbl', p_line_type_tbl);
4651: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4652: PO_LOG.proc_begin(d_module, 'x_line_type_id_tbl', x_line_type_id_tbl);
4653: END IF;
4646: BEGIN
4647: d_position := 0;
4648:
4649: IF (PO_LOG.d_proc) THEN
4650: PO_LOG.proc_begin(d_module, 'p_line_type_tbl', p_line_type_tbl);
4651: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4652: PO_LOG.proc_begin(d_module, 'x_line_type_id_tbl', x_line_type_id_tbl);
4653: END IF;
4654:
4647: d_position := 0;
4648:
4649: IF (PO_LOG.d_proc) THEN
4650: PO_LOG.proc_begin(d_module, 'p_line_type_tbl', p_line_type_tbl);
4651: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4652: PO_LOG.proc_begin(d_module, 'x_line_type_id_tbl', x_line_type_id_tbl);
4653: END IF;
4654:
4655: -- bug 5489942: derivation is based on line level language
4648:
4649: IF (PO_LOG.d_proc) THEN
4650: PO_LOG.proc_begin(d_module, 'p_line_type_tbl', p_line_type_tbl);
4651: PO_LOG.proc_begin(d_module, 'p_file_line_language_tbl', p_file_line_language_tbl);
4652: PO_LOG.proc_begin(d_module, 'x_line_type_id_tbl', x_line_type_id_tbl);
4653: END IF;
4654:
4655: -- bug 5489942: derivation is based on line level language
4656: -- derive line_type_id from line_type
4680:
4681: -- push the result back to x_line_type_ids
4682: FOR i IN 1..l_index_tbl.COUNT
4683: LOOP
4684: IF (PO_LOG.d_stmt) THEN
4685: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4686: PO_LOG.stmt(d_module, d_position, 'new line type id', l_result_tbl(i));
4687: END IF;
4688:
4681: -- push the result back to x_line_type_ids
4682: FOR i IN 1..l_index_tbl.COUNT
4683: LOOP
4684: IF (PO_LOG.d_stmt) THEN
4685: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4686: PO_LOG.stmt(d_module, d_position, 'new line type id', l_result_tbl(i));
4687: END IF;
4688:
4689: x_line_type_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4682: FOR i IN 1..l_index_tbl.COUNT
4683: LOOP
4684: IF (PO_LOG.d_stmt) THEN
4685: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4686: PO_LOG.stmt(d_module, d_position, 'new line type id', l_result_tbl(i));
4687: END IF;
4688:
4689: x_line_type_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4690: END LOOP;
4688:
4689: x_line_type_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4690: END LOOP;
4691:
4692: IF (PO_LOG.d_proc) THEN
4693: PO_LOG.proc_end(d_module);
4694: END IF;
4695:
4696: EXCEPTION
4689: x_line_type_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4690: END LOOP;
4691:
4692: IF (PO_LOG.d_proc) THEN
4693: PO_LOG.proc_end(d_module);
4694: END IF;
4695:
4696: EXCEPTION
4697: WHEN OTHERS THEN
4741: l_result_tbl PO_TBL_NUMBER;
4742: BEGIN
4743: d_position := 0;
4744:
4745: IF (PO_LOG.d_proc) THEN
4746: PO_LOG.proc_begin(d_module, 'p_un_number_tbl', p_un_number_tbl);
4747: PO_LOG.proc_begin(d_module, 'x_un_number_id_tbl', x_un_number_id_tbl);
4748: END IF;
4749:
4742: BEGIN
4743: d_position := 0;
4744:
4745: IF (PO_LOG.d_proc) THEN
4746: PO_LOG.proc_begin(d_module, 'p_un_number_tbl', p_un_number_tbl);
4747: PO_LOG.proc_begin(d_module, 'x_un_number_id_tbl', x_un_number_id_tbl);
4748: END IF;
4749:
4750: -- derive un_number_id from un_number
4743: d_position := 0;
4744:
4745: IF (PO_LOG.d_proc) THEN
4746: PO_LOG.proc_begin(d_module, 'p_un_number_tbl', p_un_number_tbl);
4747: PO_LOG.proc_begin(d_module, 'x_un_number_id_tbl', x_un_number_id_tbl);
4748: END IF;
4749:
4750: -- derive un_number_id from un_number
4751: FORALL i IN 1.. p_index_tbl.COUNT
4770:
4771: -- push the result back to x_lines
4772: FOR i IN 1..l_index_tbl.COUNT
4773: LOOP
4774: IF (PO_LOG.d_stmt) THEN
4775: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4776: PO_LOG.stmt(d_module, d_position, 'new un number id', l_result_tbl(i));
4777: END IF;
4778:
4771: -- push the result back to x_lines
4772: FOR i IN 1..l_index_tbl.COUNT
4773: LOOP
4774: IF (PO_LOG.d_stmt) THEN
4775: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4776: PO_LOG.stmt(d_module, d_position, 'new un number id', l_result_tbl(i));
4777: END IF;
4778:
4779: x_un_number_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4772: FOR i IN 1..l_index_tbl.COUNT
4773: LOOP
4774: IF (PO_LOG.d_stmt) THEN
4775: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4776: PO_LOG.stmt(d_module, d_position, 'new un number id', l_result_tbl(i));
4777: END IF;
4778:
4779: x_un_number_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4780: END LOOP;
4778:
4779: x_un_number_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4780: END LOOP;
4781:
4782: IF (PO_LOG.d_proc) THEN
4783: PO_LOG.proc_end(d_module);
4784: END IF;
4785:
4786: EXCEPTION
4779: x_un_number_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4780: END LOOP;
4781:
4782: IF (PO_LOG.d_proc) THEN
4783: PO_LOG.proc_end(d_module);
4784: END IF;
4785:
4786: EXCEPTION
4787: WHEN OTHERS THEN
4831: l_result_tbl PO_TBL_NUMBER;
4832: BEGIN
4833: d_position := 0;
4834:
4835: IF (PO_LOG.d_proc) THEN
4836: PO_LOG.proc_begin(d_module, 'p_hazard_class_tbl', p_hazard_class_tbl);
4837: PO_LOG.proc_begin(d_module, 'x_hazard_class_id_tbl', x_hazard_class_id_tbl);
4838: END IF;
4839:
4832: BEGIN
4833: d_position := 0;
4834:
4835: IF (PO_LOG.d_proc) THEN
4836: PO_LOG.proc_begin(d_module, 'p_hazard_class_tbl', p_hazard_class_tbl);
4837: PO_LOG.proc_begin(d_module, 'x_hazard_class_id_tbl', x_hazard_class_id_tbl);
4838: END IF;
4839:
4840: -- derive hazard_class_id from hazard_class
4833: d_position := 0;
4834:
4835: IF (PO_LOG.d_proc) THEN
4836: PO_LOG.proc_begin(d_module, 'p_hazard_class_tbl', p_hazard_class_tbl);
4837: PO_LOG.proc_begin(d_module, 'x_hazard_class_id_tbl', x_hazard_class_id_tbl);
4838: END IF;
4839:
4840: -- derive hazard_class_id from hazard_class
4841: FORALL i IN 1..p_index_tbl.COUNT
4859:
4860: -- push the result back to x_hazard_class_ids
4861: FOR i IN 1..l_index_tbl.COUNT
4862: LOOP
4863: IF (PO_LOG.d_stmt) THEN
4864: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4865: PO_LOG.stmt(d_module, d_position, 'new hazard class id', l_result_tbl(i));
4866: END IF;
4867:
4860: -- push the result back to x_hazard_class_ids
4861: FOR i IN 1..l_index_tbl.COUNT
4862: LOOP
4863: IF (PO_LOG.d_stmt) THEN
4864: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4865: PO_LOG.stmt(d_module, d_position, 'new hazard class id', l_result_tbl(i));
4866: END IF;
4867:
4868: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4861: FOR i IN 1..l_index_tbl.COUNT
4862: LOOP
4863: IF (PO_LOG.d_stmt) THEN
4864: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4865: PO_LOG.stmt(d_module, d_position, 'new hazard class id', l_result_tbl(i));
4866: END IF;
4867:
4868: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4869: END LOOP;
4867:
4868: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4869: END LOOP;
4870:
4871: IF (PO_LOG.d_proc) THEN
4872: PO_LOG.proc_end(d_module);
4873: END IF;
4874:
4875: EXCEPTION
4868: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4869: END LOOP;
4870:
4871: IF (PO_LOG.d_proc) THEN
4872: PO_LOG.proc_end(d_module);
4873: END IF;
4874:
4875: EXCEPTION
4876: WHEN OTHERS THEN
4920: l_result_tbl PO_TBL_NUMBER;
4921: BEGIN
4922: d_position := 0;
4923:
4924: IF (PO_LOG.d_proc) THEN
4925: PO_LOG.proc_begin(d_module, 'p_template_name_tbl', p_template_name_tbl);
4926: PO_LOG.proc_begin(d_module, 'x_template_id_tbl', x_template_id_tbl);
4927: END IF;
4928:
4921: BEGIN
4922: d_position := 0;
4923:
4924: IF (PO_LOG.d_proc) THEN
4925: PO_LOG.proc_begin(d_module, 'p_template_name_tbl', p_template_name_tbl);
4926: PO_LOG.proc_begin(d_module, 'x_template_id_tbl', x_template_id_tbl);
4927: END IF;
4928:
4929: -- derive template_id from template_name
4922: d_position := 0;
4923:
4924: IF (PO_LOG.d_proc) THEN
4925: PO_LOG.proc_begin(d_module, 'p_template_name_tbl', p_template_name_tbl);
4926: PO_LOG.proc_begin(d_module, 'x_template_id_tbl', x_template_id_tbl);
4927: END IF;
4928:
4929: -- derive template_id from template_name
4930: FORALL i IN 1..p_index_tbl.COUNT
4951:
4952: -- push the result back to x_lines
4953: FOR i IN 1..l_index_tbl.COUNT
4954: LOOP
4955: IF (PO_LOG.d_stmt) THEN
4956: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4957: PO_LOG.stmt(d_module, d_position, 'new template id', l_result_tbl(i));
4958: END IF;
4959:
4952: -- push the result back to x_lines
4953: FOR i IN 1..l_index_tbl.COUNT
4954: LOOP
4955: IF (PO_LOG.d_stmt) THEN
4956: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4957: PO_LOG.stmt(d_module, d_position, 'new template id', l_result_tbl(i));
4958: END IF;
4959:
4960: x_template_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4953: FOR i IN 1..l_index_tbl.COUNT
4954: LOOP
4955: IF (PO_LOG.d_stmt) THEN
4956: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
4957: PO_LOG.stmt(d_module, d_position, 'new template id', l_result_tbl(i));
4958: END IF;
4959:
4960: x_template_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4961: END LOOP;
4959:
4960: x_template_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4961: END LOOP;
4962:
4963: IF (PO_LOG.d_proc) THEN
4964: PO_LOG.proc_end(d_module);
4965: END IF;
4966:
4967: EXCEPTION
4960: x_template_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
4961: END LOOP;
4962:
4963: IF (PO_LOG.d_proc) THEN
4964: PO_LOG.proc_end(d_module);
4965: END IF;
4966:
4967: EXCEPTION
4968: WHEN OTHERS THEN
5039: l_index NUMBER;
5040: BEGIN
5041: d_position := 0;
5042:
5043: IF (PO_LOG.d_proc) THEN
5044: PO_LOG.proc_begin(d_module);
5045: END IF;
5046:
5047: x_category_id_tbl := PO_TBL_NUMBER();
5040: BEGIN
5041: d_position := 0;
5042:
5043: IF (PO_LOG.d_proc) THEN
5044: PO_LOG.proc_begin(d_module);
5045: END IF;
5046:
5047: x_category_id_tbl := PO_TBL_NUMBER();
5048: x_unit_of_measure_tbl := PO_TBL_VARCHAR30();
5087: FOR i IN 1..l_index_tbl.COUNT
5088: LOOP
5089: l_index := l_index_tbl(i);
5090:
5091: IF (PO_LOG.d_stmt) THEN
5092: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5093: PO_LOG.stmt(d_module, d_position, 'new order type',
5094: l_order_type_lookup_code_tbl(i));
5095: PO_LOG.stmt(d_module, d_position, 'new purchase basis',
5088: LOOP
5089: l_index := l_index_tbl(i);
5090:
5091: IF (PO_LOG.d_stmt) THEN
5092: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5093: PO_LOG.stmt(d_module, d_position, 'new order type',
5094: l_order_type_lookup_code_tbl(i));
5095: PO_LOG.stmt(d_module, d_position, 'new purchase basis',
5096: l_purchase_basis_tbl(i));
5089: l_index := l_index_tbl(i);
5090:
5091: IF (PO_LOG.d_stmt) THEN
5092: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5093: PO_LOG.stmt(d_module, d_position, 'new order type',
5094: l_order_type_lookup_code_tbl(i));
5095: PO_LOG.stmt(d_module, d_position, 'new purchase basis',
5096: l_purchase_basis_tbl(i));
5097: PO_LOG.stmt(d_module, d_position, 'new matching basis',
5091: IF (PO_LOG.d_stmt) THEN
5092: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5093: PO_LOG.stmt(d_module, d_position, 'new order type',
5094: l_order_type_lookup_code_tbl(i));
5095: PO_LOG.stmt(d_module, d_position, 'new purchase basis',
5096: l_purchase_basis_tbl(i));
5097: PO_LOG.stmt(d_module, d_position, 'new matching basis',
5098: l_matching_basis_tbl(i));
5099: PO_LOG.stmt(d_module, d_position, 'new category id',
5093: PO_LOG.stmt(d_module, d_position, 'new order type',
5094: l_order_type_lookup_code_tbl(i));
5095: PO_LOG.stmt(d_module, d_position, 'new purchase basis',
5096: l_purchase_basis_tbl(i));
5097: PO_LOG.stmt(d_module, d_position, 'new matching basis',
5098: l_matching_basis_tbl(i));
5099: PO_LOG.stmt(d_module, d_position, 'new category id',
5100: l_category_id_tbl(i));
5101: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5095: PO_LOG.stmt(d_module, d_position, 'new purchase basis',
5096: l_purchase_basis_tbl(i));
5097: PO_LOG.stmt(d_module, d_position, 'new matching basis',
5098: l_matching_basis_tbl(i));
5099: PO_LOG.stmt(d_module, d_position, 'new category id',
5100: l_category_id_tbl(i));
5101: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5102: l_unit_of_measure_tbl(i));
5103: PO_LOG.stmt(d_module, d_position, 'new unit price',
5097: PO_LOG.stmt(d_module, d_position, 'new matching basis',
5098: l_matching_basis_tbl(i));
5099: PO_LOG.stmt(d_module, d_position, 'new category id',
5100: l_category_id_tbl(i));
5101: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5102: l_unit_of_measure_tbl(i));
5103: PO_LOG.stmt(d_module, d_position, 'new unit price',
5104: l_unit_price_tbl(i));
5105: END IF;
5099: PO_LOG.stmt(d_module, d_position, 'new category id',
5100: l_category_id_tbl(i));
5101: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5102: l_unit_of_measure_tbl(i));
5103: PO_LOG.stmt(d_module, d_position, 'new unit price',
5104: l_unit_price_tbl(i));
5105: END IF;
5106:
5107: x_order_type_lookup_code_tbl(l_index) := l_order_type_lookup_code_tbl(i);
5111: x_unit_of_measure_tbl(l_index) := l_unit_of_measure_tbl(i);
5112: x_unit_price_tbl(l_index) := l_unit_price_tbl(i);
5113: END LOOP;
5114:
5115: IF (PO_LOG.d_proc) THEN
5116: PO_LOG.proc_end(d_module);
5117: END IF;
5118:
5119: EXCEPTION
5112: x_unit_price_tbl(l_index) := l_unit_price_tbl(i);
5113: END LOOP;
5114:
5115: IF (PO_LOG.d_proc) THEN
5116: PO_LOG.proc_end(d_module);
5117: END IF;
5118:
5119: EXCEPTION
5120: WHEN OTHERS THEN
5202: l_index NUMBER;
5203: BEGIN
5204: d_position := 0;
5205:
5206: IF (PO_LOG.d_proc) THEN
5207: PO_LOG.proc_begin(d_module);
5208: END IF;
5209:
5210: x_item_desc_tbl := PO_TBL_VARCHAR2000();
5203: BEGIN
5204: d_position := 0;
5205:
5206: IF (PO_LOG.d_proc) THEN
5207: PO_LOG.proc_begin(d_module);
5208: END IF;
5209:
5210: x_item_desc_tbl := PO_TBL_VARCHAR2000();
5211: x_unit_of_measure_tbl := PO_TBL_VARCHAR30();
5278: FOR i IN 1..l_index_tbl.COUNT
5279: LOOP
5280: l_index := l_index_tbl(i);
5281:
5282: IF (PO_LOG.d_stmt) THEN
5283: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5284: PO_LOG.stmt(d_module, d_position, 'new item desc',
5285: l_item_desc_tbl(i));
5286: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5279: LOOP
5280: l_index := l_index_tbl(i);
5281:
5282: IF (PO_LOG.d_stmt) THEN
5283: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5284: PO_LOG.stmt(d_module, d_position, 'new item desc',
5285: l_item_desc_tbl(i));
5286: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5287: l_unit_of_measure_tbl(i));
5280: l_index := l_index_tbl(i);
5281:
5282: IF (PO_LOG.d_stmt) THEN
5283: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5284: PO_LOG.stmt(d_module, d_position, 'new item desc',
5285: l_item_desc_tbl(i));
5286: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5287: l_unit_of_measure_tbl(i));
5288: PO_LOG.stmt(d_module, d_position, 'new unit price',
5282: IF (PO_LOG.d_stmt) THEN
5283: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5284: PO_LOG.stmt(d_module, d_position, 'new item desc',
5285: l_item_desc_tbl(i));
5286: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5287: l_unit_of_measure_tbl(i));
5288: PO_LOG.stmt(d_module, d_position, 'new unit price',
5289: l_unit_price_tbl(i));
5290: PO_LOG.stmt(d_module, d_position, 'new category id',
5284: PO_LOG.stmt(d_module, d_position, 'new item desc',
5285: l_item_desc_tbl(i));
5286: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5287: l_unit_of_measure_tbl(i));
5288: PO_LOG.stmt(d_module, d_position, 'new unit price',
5289: l_unit_price_tbl(i));
5290: PO_LOG.stmt(d_module, d_position, 'new category id',
5291: l_category_id_tbl(i));
5292: PO_LOG.stmt(d_module, d_position, 'new un number id',
5286: PO_LOG.stmt(d_module, d_position, 'new unit of measure',
5287: l_unit_of_measure_tbl(i));
5288: PO_LOG.stmt(d_module, d_position, 'new unit price',
5289: l_unit_price_tbl(i));
5290: PO_LOG.stmt(d_module, d_position, 'new category id',
5291: l_category_id_tbl(i));
5292: PO_LOG.stmt(d_module, d_position, 'new un number id',
5293: l_un_number_id_tbl(i));
5294: PO_LOG.stmt(d_module, d_position, 'new hazard class id',
5288: PO_LOG.stmt(d_module, d_position, 'new unit price',
5289: l_unit_price_tbl(i));
5290: PO_LOG.stmt(d_module, d_position, 'new category id',
5291: l_category_id_tbl(i));
5292: PO_LOG.stmt(d_module, d_position, 'new un number id',
5293: l_un_number_id_tbl(i));
5294: PO_LOG.stmt(d_module, d_position, 'new hazard class id',
5295: l_hazard_class_id_tbl(i));
5296: PO_LOG.stmt(d_module, d_position, 'new market price',
5290: PO_LOG.stmt(d_module, d_position, 'new category id',
5291: l_category_id_tbl(i));
5292: PO_LOG.stmt(d_module, d_position, 'new un number id',
5293: l_un_number_id_tbl(i));
5294: PO_LOG.stmt(d_module, d_position, 'new hazard class id',
5295: l_hazard_class_id_tbl(i));
5296: PO_LOG.stmt(d_module, d_position, 'new market price',
5297: l_market_price_tbl(i));
5298: PO_LOG.stmt(d_module, d_position, 'new secondary unit of measure',
5292: PO_LOG.stmt(d_module, d_position, 'new un number id',
5293: l_un_number_id_tbl(i));
5294: PO_LOG.stmt(d_module, d_position, 'new hazard class id',
5295: l_hazard_class_id_tbl(i));
5296: PO_LOG.stmt(d_module, d_position, 'new market price',
5297: l_market_price_tbl(i));
5298: PO_LOG.stmt(d_module, d_position, 'new secondary unit of measure',
5299: l_secondary_unit_of_meas_tbl(i));
5300: END IF;
5294: PO_LOG.stmt(d_module, d_position, 'new hazard class id',
5295: l_hazard_class_id_tbl(i));
5296: PO_LOG.stmt(d_module, d_position, 'new market price',
5297: l_market_price_tbl(i));
5298: PO_LOG.stmt(d_module, d_position, 'new secondary unit of measure',
5299: l_secondary_unit_of_meas_tbl(i));
5300: END IF;
5301:
5302: x_item_desc_tbl(l_index) := l_item_desc_tbl(i);
5308: x_market_price_tbl(l_index) := l_market_price_tbl(i);
5309: x_secondary_unit_of_meas_tbl(l_index) := l_secondary_unit_of_meas_tbl(i);
5310: END LOOP;
5311:
5312: IF (PO_LOG.d_proc) THEN
5313: PO_LOG.proc_end(d_module);
5314: END IF;
5315:
5316: EXCEPTION
5309: x_secondary_unit_of_meas_tbl(l_index) := l_secondary_unit_of_meas_tbl(i);
5310: END LOOP;
5311:
5312: IF (PO_LOG.d_proc) THEN
5313: PO_LOG.proc_end(d_module);
5314: END IF;
5315:
5316: EXCEPTION
5317: WHEN OTHERS THEN
5368: l_category_id_tbl PO_TBL_NUMBER;
5369: BEGIN
5370: d_position := 0;
5371:
5372: IF (PO_LOG.d_proc) THEN
5373: PO_LOG.proc_begin(d_module);
5374: END IF;
5375:
5376: x_item_desc_tbl := PO_TBL_VARCHAR2000();
5369: BEGIN
5370: d_position := 0;
5371:
5372: IF (PO_LOG.d_proc) THEN
5373: PO_LOG.proc_begin(d_module);
5374: END IF;
5375:
5376: x_item_desc_tbl := PO_TBL_VARCHAR2000();
5377: x_category_id_tbl := PO_TBL_NUMBER();
5411: FOR i IN 1..l_index_tbl.COUNT
5412: LOOP
5413: l_index := l_index_tbl(i);
5414:
5415: IF (PO_LOG.d_stmt) THEN
5416: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5417: PO_LOG.stmt(d_module, d_position, 'new item desc', l_item_desc_tbl(i));
5418: PO_LOG.stmt(d_module, d_position, 'new category id', l_category_id_tbl(i));
5419: END IF;
5412: LOOP
5413: l_index := l_index_tbl(i);
5414:
5415: IF (PO_LOG.d_stmt) THEN
5416: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5417: PO_LOG.stmt(d_module, d_position, 'new item desc', l_item_desc_tbl(i));
5418: PO_LOG.stmt(d_module, d_position, 'new category id', l_category_id_tbl(i));
5419: END IF;
5420:
5413: l_index := l_index_tbl(i);
5414:
5415: IF (PO_LOG.d_stmt) THEN
5416: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5417: PO_LOG.stmt(d_module, d_position, 'new item desc', l_item_desc_tbl(i));
5418: PO_LOG.stmt(d_module, d_position, 'new category id', l_category_id_tbl(i));
5419: END IF;
5420:
5421: x_item_desc_tbl(l_index) := l_item_desc_tbl(i);
5414:
5415: IF (PO_LOG.d_stmt) THEN
5416: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5417: PO_LOG.stmt(d_module, d_position, 'new item desc', l_item_desc_tbl(i));
5418: PO_LOG.stmt(d_module, d_position, 'new category id', l_category_id_tbl(i));
5419: END IF;
5420:
5421: x_item_desc_tbl(l_index) := l_item_desc_tbl(i);
5422: x_category_id_tbl(l_index) := l_category_id_tbl(i);
5421: x_item_desc_tbl(l_index) := l_item_desc_tbl(i);
5422: x_category_id_tbl(l_index) := l_category_id_tbl(i);
5423: END LOOP;
5424:
5425: IF (PO_LOG.d_proc) THEN
5426: PO_LOG.proc_end(d_module);
5427: END IF;
5428:
5429: EXCEPTION
5422: x_category_id_tbl(l_index) := l_category_id_tbl(i);
5423: END LOOP;
5424:
5425: IF (PO_LOG.d_proc) THEN
5426: PO_LOG.proc_end(d_module);
5427: END IF;
5428:
5429: EXCEPTION
5430: WHEN OTHERS THEN
5471: l_result_tbl PO_TBL_NUMBER;
5472: BEGIN
5473: d_position := 0;
5474:
5475: IF (PO_LOG.d_proc) THEN
5476: PO_LOG.proc_begin(d_module, 'p_ip_category_id_tbl', p_ip_category_id_tbl);
5477: PO_LOG.proc_begin(d_module, 'x_po_category_id_tbl',
5478: x_po_category_id_tbl);
5479: END IF;
5472: BEGIN
5473: d_position := 0;
5474:
5475: IF (PO_LOG.d_proc) THEN
5476: PO_LOG.proc_begin(d_module, 'p_ip_category_id_tbl', p_ip_category_id_tbl);
5477: PO_LOG.proc_begin(d_module, 'x_po_category_id_tbl',
5478: x_po_category_id_tbl);
5479: END IF;
5480:
5473: d_position := 0;
5474:
5475: IF (PO_LOG.d_proc) THEN
5476: PO_LOG.proc_begin(d_module, 'p_ip_category_id_tbl', p_ip_category_id_tbl);
5477: PO_LOG.proc_begin(d_module, 'x_po_category_id_tbl',
5478: x_po_category_id_tbl);
5479: END IF;
5480:
5481: -- retrieve the values based on ip category id
5501:
5502: -- set the result in OUT parameters
5503: FOR i IN 1..l_index_tbl.COUNT
5504: LOOP
5505: IF (PO_LOG.d_stmt) THEN
5506: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5507: PO_LOG.stmt(d_module, d_position, 'new po category id', l_result_tbl(i));
5508: END IF;
5509:
5502: -- set the result in OUT parameters
5503: FOR i IN 1..l_index_tbl.COUNT
5504: LOOP
5505: IF (PO_LOG.d_stmt) THEN
5506: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5507: PO_LOG.stmt(d_module, d_position, 'new po category id', l_result_tbl(i));
5508: END IF;
5509:
5510: x_po_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5503: FOR i IN 1..l_index_tbl.COUNT
5504: LOOP
5505: IF (PO_LOG.d_stmt) THEN
5506: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5507: PO_LOG.stmt(d_module, d_position, 'new po category id', l_result_tbl(i));
5508: END IF;
5509:
5510: x_po_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5511: END LOOP;
5509:
5510: x_po_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5511: END LOOP;
5512:
5513: IF (PO_LOG.d_proc) THEN
5514: PO_LOG.proc_end(d_module);
5515: END IF;
5516:
5517: EXCEPTION
5510: x_po_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5511: END LOOP;
5512:
5513: IF (PO_LOG.d_proc) THEN
5514: PO_LOG.proc_end(d_module);
5515: END IF;
5516:
5517: EXCEPTION
5518: WHEN OTHERS THEN
5559: l_result_tbl PO_TBL_NUMBER;
5560: BEGIN
5561: d_position := 0;
5562:
5563: IF (PO_LOG.d_proc) THEN
5564: PO_LOG.proc_begin(d_module, 'p_po_category_id_tbl', p_po_category_id_tbl);
5565: PO_LOG.proc_begin(d_module, 'x_ip_category_id_tbl',
5566: x_ip_category_id_tbl);
5567: END IF;
5560: BEGIN
5561: d_position := 0;
5562:
5563: IF (PO_LOG.d_proc) THEN
5564: PO_LOG.proc_begin(d_module, 'p_po_category_id_tbl', p_po_category_id_tbl);
5565: PO_LOG.proc_begin(d_module, 'x_ip_category_id_tbl',
5566: x_ip_category_id_tbl);
5567: END IF;
5568:
5561: d_position := 0;
5562:
5563: IF (PO_LOG.d_proc) THEN
5564: PO_LOG.proc_begin(d_module, 'p_po_category_id_tbl', p_po_category_id_tbl);
5565: PO_LOG.proc_begin(d_module, 'x_ip_category_id_tbl',
5566: x_ip_category_id_tbl);
5567: END IF;
5568:
5569: -- retrieve the values based on po category id
5589:
5590: -- set the result in OUT parameters
5591: FOR i IN 1..l_index_tbl.COUNT
5592: LOOP
5593: IF (PO_LOG.d_stmt) THEN
5594: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5595: PO_LOG.stmt(d_module, d_position, 'new ip category id', l_result_tbl(i));
5596: END IF;
5597:
5590: -- set the result in OUT parameters
5591: FOR i IN 1..l_index_tbl.COUNT
5592: LOOP
5593: IF (PO_LOG.d_stmt) THEN
5594: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5595: PO_LOG.stmt(d_module, d_position, 'new ip category id', l_result_tbl(i));
5596: END IF;
5597:
5598: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5591: FOR i IN 1..l_index_tbl.COUNT
5592: LOOP
5593: IF (PO_LOG.d_stmt) THEN
5594: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5595: PO_LOG.stmt(d_module, d_position, 'new ip category id', l_result_tbl(i));
5596: END IF;
5597:
5598: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5599: END LOOP;
5597:
5598: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5599: END LOOP;
5600:
5601: IF (PO_LOG.d_proc) THEN
5602: PO_LOG.proc_end(d_module);
5603: END IF;
5604:
5605: EXCEPTION
5598: x_ip_category_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5599: END LOOP;
5600:
5601: IF (PO_LOG.d_proc) THEN
5602: PO_LOG.proc_end(d_module);
5603: END IF;
5604:
5605: EXCEPTION
5606: WHEN OTHERS THEN
5647: l_result_tbl PO_TBL_NUMBER;
5648: BEGIN
5649: d_position := 0;
5650:
5651: IF (PO_LOG.d_proc) THEN
5652: PO_LOG.proc_begin(d_module, 'p_un_number_tbl', p_un_number_tbl);
5653: PO_LOG.proc_begin(d_module, 'x_hazard_class_id_tbl',
5654: x_hazard_class_id_tbl);
5655: END IF;
5648: BEGIN
5649: d_position := 0;
5650:
5651: IF (PO_LOG.d_proc) THEN
5652: PO_LOG.proc_begin(d_module, 'p_un_number_tbl', p_un_number_tbl);
5653: PO_LOG.proc_begin(d_module, 'x_hazard_class_id_tbl',
5654: x_hazard_class_id_tbl);
5655: END IF;
5656:
5649: d_position := 0;
5650:
5651: IF (PO_LOG.d_proc) THEN
5652: PO_LOG.proc_begin(d_module, 'p_un_number_tbl', p_un_number_tbl);
5653: PO_LOG.proc_begin(d_module, 'x_hazard_class_id_tbl',
5654: x_hazard_class_id_tbl);
5655: END IF;
5656:
5657: -- retrieve the values based on line type id
5678:
5679: -- set the result in OUT parameters
5680: FOR i IN 1..l_index_tbl.COUNT
5681: LOOP
5682: IF (PO_LOG.d_stmt) THEN
5683: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5684: PO_LOG.stmt(d_module, d_position, 'new hazard class id', l_result_tbl(i));
5685: END IF;
5686:
5679: -- set the result in OUT parameters
5680: FOR i IN 1..l_index_tbl.COUNT
5681: LOOP
5682: IF (PO_LOG.d_stmt) THEN
5683: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5684: PO_LOG.stmt(d_module, d_position, 'new hazard class id', l_result_tbl(i));
5685: END IF;
5686:
5687: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5680: FOR i IN 1..l_index_tbl.COUNT
5681: LOOP
5682: IF (PO_LOG.d_stmt) THEN
5683: PO_LOG.stmt(d_module, d_position, 'index', l_index_tbl(i));
5684: PO_LOG.stmt(d_module, d_position, 'new hazard class id', l_result_tbl(i));
5685: END IF;
5686:
5687: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5688: END LOOP;
5686:
5687: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5688: END LOOP;
5689:
5690: IF (PO_LOG.d_proc) THEN
5691: PO_LOG.proc_end(d_module);
5692: END IF;
5693:
5694: EXCEPTION
5687: x_hazard_class_id_tbl(l_index_tbl(i)) := l_result_tbl(i);
5688: END LOOP;
5689:
5690: IF (PO_LOG.d_proc) THEN
5691: PO_LOG.proc_end(d_module);
5692: END IF;
5693:
5694: EXCEPTION
5695: WHEN OTHERS THEN
5747: l_match_index NUMBER;
5748: BEGIN
5749: d_position := 0;
5750:
5751: IF (PO_LOG.d_proc) THEN
5752: PO_LOG.proc_begin(d_module);
5753: END IF;
5754:
5755: -- get new key value for po_session_gt table
5748: BEGIN
5749: d_position := 0;
5750:
5751: IF (PO_LOG.d_proc) THEN
5752: PO_LOG.proc_begin(d_module);
5753: END IF;
5754:
5755: -- get new key value for po_session_gt table
5756: l_key := PO_CORE_S.get_session_gt_nextval;
5778: FOR i IN 1..l_index_tbl.COUNT
5779: LOOP
5780: l_index := l_index_tbl(i);
5781:
5782: IF (PO_LOG.d_stmt) THEN
5783: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5784: PO_LOG.stmt(d_module, d_position, 'matched po line id', l_result_tbl(i));
5785: END IF;
5786:
5779: LOOP
5780: l_index := l_index_tbl(i);
5781:
5782: IF (PO_LOG.d_stmt) THEN
5783: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5784: PO_LOG.stmt(d_module, d_position, 'matched po line id', l_result_tbl(i));
5785: END IF;
5786:
5787: x_lines.po_line_id_tbl(l_index) := l_result_tbl(i);
5780: l_index := l_index_tbl(i);
5781:
5782: IF (PO_LOG.d_stmt) THEN
5783: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5784: PO_LOG.stmt(d_module, d_position, 'matched po line id', l_result_tbl(i));
5785: END IF;
5786:
5787: x_lines.po_line_id_tbl(l_index) := l_result_tbl(i);
5788: x_lines.action_tbl(l_index) := PO_PDOI_CONSTANTS.g_ACTION_UPDATE;
5797: x_lines.po_line_id_tbl(i) IS NULL) THEN
5798: l_po_header_id := x_lines.hd_po_header_id_tbl(i);
5799: l_line_num := x_lines.line_num_tbl(i);
5800:
5801: IF (PO_LOG.d_stmt) THEN
5802: PO_LOG.stmt(d_module, d_position, 'index', i);
5803: PO_LOG.stmt(d_module, d_position, 'po header id', l_po_header_id);
5804: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num);
5805: END IF;
5798: l_po_header_id := x_lines.hd_po_header_id_tbl(i);
5799: l_line_num := x_lines.line_num_tbl(i);
5800:
5801: IF (PO_LOG.d_stmt) THEN
5802: PO_LOG.stmt(d_module, d_position, 'index', i);
5803: PO_LOG.stmt(d_module, d_position, 'po header id', l_po_header_id);
5804: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num);
5805: END IF;
5806:
5799: l_line_num := x_lines.line_num_tbl(i);
5800:
5801: IF (PO_LOG.d_stmt) THEN
5802: PO_LOG.stmt(d_module, d_position, 'index', i);
5803: PO_LOG.stmt(d_module, d_position, 'po header id', l_po_header_id);
5804: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num);
5805: END IF;
5806:
5807: IF (l_line_reference_tbl.EXISTS(l_po_header_id) AND
5800:
5801: IF (PO_LOG.d_stmt) THEN
5802: PO_LOG.stmt(d_module, d_position, 'index', i);
5803: PO_LOG.stmt(d_module, d_position, 'po header id', l_po_header_id);
5804: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num);
5805: END IF;
5806:
5807: IF (l_line_reference_tbl.EXISTS(l_po_header_id) AND
5808: l_line_reference_tbl(l_po_header_id).EXISTS(l_line_num)) THEN
5811: x_lines.po_line_id_tbl(i) :=
5812: l_line_reference_tbl(l_po_header_id)(l_line_num);
5813: x_lines.action_tbl(i) := PO_PDOI_CONSTANTS.g_ACTION_UPDATE;
5814:
5815: IF (PO_LOG.d_stmt) THEN
5816: PO_LOG.stmt(d_module, d_position, 'match found for line num');
5817: PO_LOG.stmt(d_module, d_position, 'new po line id',
5818: x_lines.po_line_id_tbl(i));
5819: END IF;
5812: l_line_reference_tbl(l_po_header_id)(l_line_num);
5813: x_lines.action_tbl(i) := PO_PDOI_CONSTANTS.g_ACTION_UPDATE;
5814:
5815: IF (PO_LOG.d_stmt) THEN
5816: PO_LOG.stmt(d_module, d_position, 'match found for line num');
5817: PO_LOG.stmt(d_module, d_position, 'new po line id',
5818: x_lines.po_line_id_tbl(i));
5819: END IF;
5820: ELSE
5813: x_lines.action_tbl(i) := PO_PDOI_CONSTANTS.g_ACTION_UPDATE;
5814:
5815: IF (PO_LOG.d_stmt) THEN
5816: PO_LOG.stmt(d_module, d_position, 'match found for line num');
5817: PO_LOG.stmt(d_module, d_position, 'new po line id',
5818: x_lines.po_line_id_tbl(i));
5819: END IF;
5820: ELSE
5821: d_position := 40;
5826:
5827: l_line_reference_tbl(l_po_header_id)(l_line_num) :=
5828: x_lines.po_line_id_tbl(i);
5829:
5830: IF (PO_LOG.d_stmt) THEN
5831: PO_LOG.stmt(d_module, d_position, 'match not found for line num');
5832: PO_LOG.stmt(d_module, d_position, 'new po line id',
5833: x_lines.po_line_id_tbl(i));
5834: END IF;
5827: l_line_reference_tbl(l_po_header_id)(l_line_num) :=
5828: x_lines.po_line_id_tbl(i);
5829:
5830: IF (PO_LOG.d_stmt) THEN
5831: PO_LOG.stmt(d_module, d_position, 'match not found for line num');
5832: PO_LOG.stmt(d_module, d_position, 'new po line id',
5833: x_lines.po_line_id_tbl(i));
5834: END IF;
5835: END IF;
5828: x_lines.po_line_id_tbl(i);
5829:
5830: IF (PO_LOG.d_stmt) THEN
5831: PO_LOG.stmt(d_module, d_position, 'match not found for line num');
5832: PO_LOG.stmt(d_module, d_position, 'new po line id',
5833: x_lines.po_line_id_tbl(i));
5834: END IF;
5835: END IF;
5836: END IF;
5835: END IF;
5836: END IF;
5837: END LOOP;
5838:
5839: IF (PO_LOG.d_proc) THEN
5840: PO_LOG.proc_end(d_module);
5841: END IF;
5842:
5843: EXCEPTION
5836: END IF;
5837: END LOOP;
5838:
5839: IF (PO_LOG.d_proc) THEN
5840: PO_LOG.proc_end(d_module);
5841: END IF;
5842:
5843: EXCEPTION
5844: WHEN OTHERS THEN
5895: l_match_index NUMBER;
5896: BEGIN
5897: d_position := 0;
5898:
5899: IF (PO_LOG.d_proc) THEN
5900: PO_LOG.proc_begin(d_module);
5901: END IF;
5902:
5903: -- get key value for po_session_gt table
5896: BEGIN
5897: d_position := 0;
5898:
5899: IF (PO_LOG.d_proc) THEN
5900: PO_LOG.proc_begin(d_module);
5901: END IF;
5902:
5903: -- get key value for po_session_gt table
5904: l_key := PO_CORE_S.get_session_gt_nextval;
5915: x_lines.error_flag_tbl(i) = FND_API.g_FALSE AND
5916: NOT (x_lines.order_type_lookup_code_tbl(i) = 'AMOUNT' AND
5917: PO_PDOI_PARAMS.g_request.document_type =
5918: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET)) THEN
5919: IF (PO_LOG.d_stmt) THEN
5920: PO_LOG.stmt(d_module, d_position, 'processing index', i);
5921: END IF;
5922:
5923: l_processing_line_tbl(i) := i;
5916: NOT (x_lines.order_type_lookup_code_tbl(i) = 'AMOUNT' AND
5917: PO_PDOI_PARAMS.g_request.document_type =
5918: PO_PDOI_CONSTANTS.g_DOC_TYPE_BLANKET)) THEN
5919: IF (PO_LOG.d_stmt) THEN
5920: PO_LOG.stmt(d_module, d_position, 'processing index', i);
5921: END IF;
5922:
5923: l_processing_line_tbl(i) := i;
5924: ELSE
5927: x_lines.line_num_tbl(i) :=
5928: PO_PDOI_MAINPROC_UTL_PVT.get_next_line_num(x_lines.po_header_id_tbl(i));
5929: x_lines.action_tbl(i) := PO_PDOI_CONSTANTS.g_ACTION_ADD;
5930:
5931: IF (PO_LOG.d_stmt) THEN
5932: PO_LOG.stmt(d_module, d_position, 'new po line id', x_lines.po_line_id_tbl(i));
5933: PO_LOG.stmt(d_module, d_position, 'new line num', x_lines.line_num_tbl(i));
5934: END IF;
5935: END IF;
5928: PO_PDOI_MAINPROC_UTL_PVT.get_next_line_num(x_lines.po_header_id_tbl(i));
5929: x_lines.action_tbl(i) := PO_PDOI_CONSTANTS.g_ACTION_ADD;
5930:
5931: IF (PO_LOG.d_stmt) THEN
5932: PO_LOG.stmt(d_module, d_position, 'new po line id', x_lines.po_line_id_tbl(i));
5933: PO_LOG.stmt(d_module, d_position, 'new line num', x_lines.line_num_tbl(i));
5934: END IF;
5935: END IF;
5936: END IF;
5929: x_lines.action_tbl(i) := PO_PDOI_CONSTANTS.g_ACTION_ADD;
5930:
5931: IF (PO_LOG.d_stmt) THEN
5932: PO_LOG.stmt(d_module, d_position, 'new po line id', x_lines.po_line_id_tbl(i));
5933: PO_LOG.stmt(d_module, d_position, 'new line num', x_lines.line_num_tbl(i));
5934: END IF;
5935: END IF;
5936: END IF;
5937: END LOOP;
5992: FOR i IN 1..l_index_tbl.COUNT
5993: LOOP
5994: l_index := l_index_tbl(i);
5995:
5996: IF (PO_LOG.d_stmt) THEN
5997: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5998: PO_LOG.stmt(d_module, d_position, 'matched po line id', l_po_line_id_tbl(i));
5999: PO_LOG.stmt(d_module, d_position, 'matched line num', l_line_num_tbl(i));
6000: END IF;
5993: LOOP
5994: l_index := l_index_tbl(i);
5995:
5996: IF (PO_LOG.d_stmt) THEN
5997: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5998: PO_LOG.stmt(d_module, d_position, 'matched po line id', l_po_line_id_tbl(i));
5999: PO_LOG.stmt(d_module, d_position, 'matched line num', l_line_num_tbl(i));
6000: END IF;
6001:
5994: l_index := l_index_tbl(i);
5995:
5996: IF (PO_LOG.d_stmt) THEN
5997: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5998: PO_LOG.stmt(d_module, d_position, 'matched po line id', l_po_line_id_tbl(i));
5999: PO_LOG.stmt(d_module, d_position, 'matched line num', l_line_num_tbl(i));
6000: END IF;
6001:
6002: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
5995:
5996: IF (PO_LOG.d_stmt) THEN
5997: PO_LOG.stmt(d_module, d_position, 'index', l_index);
5998: PO_LOG.stmt(d_module, d_position, 'matched po line id', l_po_line_id_tbl(i));
5999: PO_LOG.stmt(d_module, d_position, 'matched line num', l_line_num_tbl(i));
6000: END IF;
6001:
6002: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
6003: x_lines.line_num_tbl(l_index) := l_line_num_tbl(i);
6094: x_lines.line_num_tbl(l_index) := PO_PDOI_MAINPROC_UTL_PVT.get_next_line_num(x_lines.po_header_id_tbl(i));
6095: -- delete the corresponding node so the line won't be matched within batch
6096: l_processing_line_tbl.DELETE(i);
6097:
6098: IF (PO_LOG.d_stmt) THEN
6099: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6100: PO_LOG.stmt(d_module, d_position, 'assigned po line id',
6101: x_lines.po_line_id_tbl(l_index));
6102: PO_LOG.stmt(d_module, d_position, 'assigned line num', x_lines.line_num_tbl(l_index));
6095: -- delete the corresponding node so the line won't be matched within batch
6096: l_processing_line_tbl.DELETE(i);
6097:
6098: IF (PO_LOG.d_stmt) THEN
6099: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6100: PO_LOG.stmt(d_module, d_position, 'assigned po line id',
6101: x_lines.po_line_id_tbl(l_index));
6102: PO_LOG.stmt(d_module, d_position, 'assigned line num', x_lines.line_num_tbl(l_index));
6103: END IF;
6096: l_processing_line_tbl.DELETE(i);
6097:
6098: IF (PO_LOG.d_stmt) THEN
6099: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6100: PO_LOG.stmt(d_module, d_position, 'assigned po line id',
6101: x_lines.po_line_id_tbl(l_index));
6102: PO_LOG.stmt(d_module, d_position, 'assigned line num', x_lines.line_num_tbl(l_index));
6103: END IF;
6104: END LOOP;
6098: IF (PO_LOG.d_stmt) THEN
6099: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6100: PO_LOG.stmt(d_module, d_position, 'assigned po line id',
6101: x_lines.po_line_id_tbl(l_index));
6102: PO_LOG.stmt(d_module, d_position, 'assigned line num', x_lines.line_num_tbl(l_index));
6103: END IF;
6104: END LOOP;
6105:
6106: d_position := 80;
6149: DELETE FROM po_session_gt
6150: WHERE key = l_key
6151: RETURNING num1, num2 BULK COLLECT INTO l_index_tbl, l_match_index_tbl;
6152:
6153: IF (PO_LOG.d_stmt) THEN
6154: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
6155: PO_LOG.stmt(d_module, d_position, 'l_match_index_tbl', l_match_index_tbl);
6156: END IF;
6157:
6150: WHERE key = l_key
6151: RETURNING num1, num2 BULK COLLECT INTO l_index_tbl, l_match_index_tbl;
6152:
6153: IF (PO_LOG.d_stmt) THEN
6154: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
6155: PO_LOG.stmt(d_module, d_position, 'l_match_index_tbl', l_match_index_tbl);
6156: END IF;
6157:
6158: FOR i IN 1..l_index_tbl.COUNT
6151: RETURNING num1, num2 BULK COLLECT INTO l_index_tbl, l_match_index_tbl;
6152:
6153: IF (PO_LOG.d_stmt) THEN
6154: PO_LOG.stmt(d_module, d_position, 'l_index_tbl', l_index_tbl);
6155: PO_LOG.stmt(d_module, d_position, 'l_match_index_tbl', l_match_index_tbl);
6156: END IF;
6157:
6158: FOR i IN 1..l_index_tbl.COUNT
6159: LOOP
6163: x_lines.po_line_id_tbl(l_index) := x_lines.po_line_id_tbl(l_match_index);
6164: x_lines.line_num_tbl(l_index) := x_lines.line_num_tbl(l_match_index);
6165: x_lines.action_tbl(l_index) := PO_PDOI_CONSTANTS.g_ACTION_UPDATE;
6166:
6167: IF (PO_LOG.d_stmt) THEN
6168: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6169: PO_LOG.stmt(d_module, d_position, 'match index', l_match_index);
6170: PO_LOG.stmt(d_module, d_position, 'matched po line id',
6171: x_lines.po_line_id_tbl(l_index));
6164: x_lines.line_num_tbl(l_index) := x_lines.line_num_tbl(l_match_index);
6165: x_lines.action_tbl(l_index) := PO_PDOI_CONSTANTS.g_ACTION_UPDATE;
6166:
6167: IF (PO_LOG.d_stmt) THEN
6168: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6169: PO_LOG.stmt(d_module, d_position, 'match index', l_match_index);
6170: PO_LOG.stmt(d_module, d_position, 'matched po line id',
6171: x_lines.po_line_id_tbl(l_index));
6172: PO_LOG.stmt(d_module, d_position, 'matched line num', x_lines.line_num_tbl(l_index));
6165: x_lines.action_tbl(l_index) := PO_PDOI_CONSTANTS.g_ACTION_UPDATE;
6166:
6167: IF (PO_LOG.d_stmt) THEN
6168: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6169: PO_LOG.stmt(d_module, d_position, 'match index', l_match_index);
6170: PO_LOG.stmt(d_module, d_position, 'matched po line id',
6171: x_lines.po_line_id_tbl(l_index));
6172: PO_LOG.stmt(d_module, d_position, 'matched line num', x_lines.line_num_tbl(l_index));
6173: END IF;
6166:
6167: IF (PO_LOG.d_stmt) THEN
6168: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6169: PO_LOG.stmt(d_module, d_position, 'match index', l_match_index);
6170: PO_LOG.stmt(d_module, d_position, 'matched po line id',
6171: x_lines.po_line_id_tbl(l_index));
6172: PO_LOG.stmt(d_module, d_position, 'matched line num', x_lines.line_num_tbl(l_index));
6173: END IF;
6174: END LOOP;
6168: PO_LOG.stmt(d_module, d_position, 'index', l_index);
6169: PO_LOG.stmt(d_module, d_position, 'match index', l_match_index);
6170: PO_LOG.stmt(d_module, d_position, 'matched po line id',
6171: x_lines.po_line_id_tbl(l_index));
6172: PO_LOG.stmt(d_module, d_position, 'matched line num', x_lines.line_num_tbl(l_index));
6173: END IF;
6174: END LOOP;
6175:
6176: d_position := 110;
6179: PO_PDOI_UTL.remove_session_gt_records
6180: ( p_key => l_data_key
6181: );
6182:
6183: IF (PO_LOG.d_proc) THEN
6184: PO_LOG.proc_end(d_module);
6185: END IF;
6186:
6187: EXCEPTION
6180: ( p_key => l_data_key
6181: );
6182:
6183: IF (PO_LOG.d_proc) THEN
6184: PO_LOG.proc_end(d_module);
6185: END IF;
6186:
6187: EXCEPTION
6188: WHEN OTHERS THEN
6226: l_target_index NUMBER :=0;
6227: BEGIN
6228: d_position := 0;
6229:
6230: IF (PO_LOG.d_proc) THEN
6231: PO_LOG.proc_begin(d_module);
6232: END IF;
6233:
6234: -- bug5107324
6227: BEGIN
6228: d_position := 0;
6229:
6230: IF (PO_LOG.d_proc) THEN
6231: PO_LOG.proc_begin(d_module);
6232: END IF;
6233:
6234: -- bug5107324
6235: -- Refactored the code as PO_PDOI_TYPES.fill_all_lines_attr already does
6245: );
6246:
6247: IF (p_source_index_tbl.COUNT = 0) THEN
6248:
6249: IF (PO_LOG.d_proc) THEN
6250: PO_LOG.proc_end(d_module, 'no line is copied', p_source_index_tbl.COUNT);
6251: END IF;
6252:
6253: RETURN;
6246:
6247: IF (p_source_index_tbl.COUNT = 0) THEN
6248:
6249: IF (PO_LOG.d_proc) THEN
6250: PO_LOG.proc_end(d_module, 'no line is copied', p_source_index_tbl.COUNT);
6251: END IF;
6252:
6253: RETURN;
6254: END IF;
6390: LOOP
6391: x_target_lines.intf_id_index_tbl(x_target_lines.intf_line_id_tbl(i)) := i;
6392: END LOOP;
6393:
6394: IF (PO_LOG.d_proc) THEN
6395: PO_LOG.proc_end(d_module, 'number of copied lines', l_target_index);
6396: END IF;
6397:
6398: EXCEPTION
6391: x_target_lines.intf_id_index_tbl(x_target_lines.intf_line_id_tbl(i)) := i;
6392: END LOOP;
6393:
6394: IF (PO_LOG.d_proc) THEN
6395: PO_LOG.proc_end(d_module, 'number of copied lines', l_target_index);
6396: END IF;
6397:
6398: EXCEPTION
6399: WHEN OTHERS THEN
6447:
6448: BEGIN
6449: d_position := 0;
6450:
6451: IF (PO_LOG.d_proc) THEN
6452: PO_LOG.proc_begin(d_module);
6453: END IF;
6454:
6455: -- check matchings on draft table
6448: BEGIN
6449: d_position := 0;
6450:
6451: IF (PO_LOG.d_proc) THEN
6452: PO_LOG.proc_begin(d_module);
6453: END IF;
6454:
6455: -- check matchings on draft table
6456: FORALL i IN INDICES OF x_processing_row_tbl
6525: LOOP
6526: l_index := l_index_tbl(i);
6527:
6528: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6529: IF (PO_LOG.d_stmt) THEN
6530: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6531: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6532: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6533: END IF;
6526: l_index := l_index_tbl(i);
6527:
6528: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6529: IF (PO_LOG.d_stmt) THEN
6530: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6531: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6532: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6533: END IF;
6534:
6527:
6528: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6529: IF (PO_LOG.d_stmt) THEN
6530: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6531: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6532: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6533: END IF;
6534:
6535: -- first match found
6528: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6529: IF (PO_LOG.d_stmt) THEN
6530: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6531: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6532: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6533: END IF;
6534:
6535: -- first match found
6536: x_lines.origin_line_num_tbl(l_index) := x_lines.line_num_tbl(l_index);
6542: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
6543: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6544: END IF;
6545: ELSE
6546: IF (PO_LOG.d_stmt) THEN
6547: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6548: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6549: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6550: PO_LOG.stmt(d_module, d_position, 'original line num',
6543: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6544: END IF;
6545: ELSE
6546: IF (PO_LOG.d_stmt) THEN
6547: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6548: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6549: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6550: PO_LOG.stmt(d_module, d_position, 'original line num',
6551: x_lines.origin_line_num_tbl(l_index));
6544: END IF;
6545: ELSE
6546: IF (PO_LOG.d_stmt) THEN
6547: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6548: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6549: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6550: PO_LOG.stmt(d_module, d_position, 'original line num',
6551: x_lines.origin_line_num_tbl(l_index));
6552: PO_LOG.stmt(d_module, d_position, 'match line found',
6545: ELSE
6546: IF (PO_LOG.d_stmt) THEN
6547: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6548: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6549: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6550: PO_LOG.stmt(d_module, d_position, 'original line num',
6551: x_lines.origin_line_num_tbl(l_index));
6552: PO_LOG.stmt(d_module, d_position, 'match line found',
6553: x_lines.match_line_found_tbl(l_index));
6546: IF (PO_LOG.d_stmt) THEN
6547: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6548: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6549: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6550: PO_LOG.stmt(d_module, d_position, 'original line num',
6551: x_lines.origin_line_num_tbl(l_index));
6552: PO_LOG.stmt(d_module, d_position, 'match line found',
6553: x_lines.match_line_found_tbl(l_index));
6554: PO_LOG.stmt(d_module, d_position, 'current line num',
6548: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6549: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6550: PO_LOG.stmt(d_module, d_position, 'original line num',
6551: x_lines.origin_line_num_tbl(l_index));
6552: PO_LOG.stmt(d_module, d_position, 'match line found',
6553: x_lines.match_line_found_tbl(l_index));
6554: PO_LOG.stmt(d_module, d_position, 'current line num',
6555: x_lines.line_num_tbl(l_index));
6556: END IF;
6550: PO_LOG.stmt(d_module, d_position, 'original line num',
6551: x_lines.origin_line_num_tbl(l_index));
6552: PO_LOG.stmt(d_module, d_position, 'match line found',
6553: x_lines.match_line_found_tbl(l_index));
6554: PO_LOG.stmt(d_module, d_position, 'current line num',
6555: x_lines.line_num_tbl(l_index));
6556: END IF;
6557:
6558: -- multiple matches found
6643: PO_PDOI_UTL.remove_session_gt_records
6644: ( p_key => l_data_key
6645: );
6646:
6647: IF (PO_LOG.d_proc) THEN
6648: PO_LOG.proc_end(d_module);
6649: END IF;
6650:
6651: EXCEPTION
6644: ( p_key => l_data_key
6645: );
6646:
6647: IF (PO_LOG.d_proc) THEN
6648: PO_LOG.proc_end(d_module);
6649: END IF;
6650:
6651: EXCEPTION
6652: WHEN OTHERS THEN
6703:
6704: BEGIN
6705: d_position := 0;
6706:
6707: IF (PO_LOG.d_proc) THEN
6708: PO_LOG.proc_begin(d_module);
6709: END IF;
6710:
6711: -- get default master org id
6704: BEGIN
6705: d_position := 0;
6706:
6707: IF (PO_LOG.d_proc) THEN
6708: PO_LOG.proc_begin(d_module);
6709: END IF;
6710:
6711: -- get default master org id
6712: l_def_master_org_id := PO_PDOI_PARAMS.g_sys.master_inv_org_id;
6710:
6711: -- get default master org id
6712: l_def_master_org_id := PO_PDOI_PARAMS.g_sys.master_inv_org_id;
6713:
6714: IF (PO_LOG.d_stmt) THEN
6715: PO_LOG.stmt(d_module, d_position, 'l_def_master_org_id',
6716: l_def_master_org_id);
6717: PO_LOG.stmt(d_module, d_position, 'item_tbl', x_lines.item_tbl);
6718: PO_LOG.stmt(d_module, d_position, 'po_header_id_tbl',
6711: -- get default master org id
6712: l_def_master_org_id := PO_PDOI_PARAMS.g_sys.master_inv_org_id;
6713:
6714: IF (PO_LOG.d_stmt) THEN
6715: PO_LOG.stmt(d_module, d_position, 'l_def_master_org_id',
6716: l_def_master_org_id);
6717: PO_LOG.stmt(d_module, d_position, 'item_tbl', x_lines.item_tbl);
6718: PO_LOG.stmt(d_module, d_position, 'po_header_id_tbl',
6719: x_lines.hd_po_header_id_tbl);
6713:
6714: IF (PO_LOG.d_stmt) THEN
6715: PO_LOG.stmt(d_module, d_position, 'l_def_master_org_id',
6716: l_def_master_org_id);
6717: PO_LOG.stmt(d_module, d_position, 'item_tbl', x_lines.item_tbl);
6718: PO_LOG.stmt(d_module, d_position, 'po_header_id_tbl',
6719: x_lines.hd_po_header_id_tbl);
6720: PO_LOG.stmt(d_module, d_position, 'draft_id_tbl', x_lines.draft_id_tbl);
6721: PO_LOG.stmt(d_module, d_position, 'item_revision_tbl',
6714: IF (PO_LOG.d_stmt) THEN
6715: PO_LOG.stmt(d_module, d_position, 'l_def_master_org_id',
6716: l_def_master_org_id);
6717: PO_LOG.stmt(d_module, d_position, 'item_tbl', x_lines.item_tbl);
6718: PO_LOG.stmt(d_module, d_position, 'po_header_id_tbl',
6719: x_lines.hd_po_header_id_tbl);
6720: PO_LOG.stmt(d_module, d_position, 'draft_id_tbl', x_lines.draft_id_tbl);
6721: PO_LOG.stmt(d_module, d_position, 'item_revision_tbl',
6722: x_lines.item_revision_tbl);
6716: l_def_master_org_id);
6717: PO_LOG.stmt(d_module, d_position, 'item_tbl', x_lines.item_tbl);
6718: PO_LOG.stmt(d_module, d_position, 'po_header_id_tbl',
6719: x_lines.hd_po_header_id_tbl);
6720: PO_LOG.stmt(d_module, d_position, 'draft_id_tbl', x_lines.draft_id_tbl);
6721: PO_LOG.stmt(d_module, d_position, 'item_revision_tbl',
6722: x_lines.item_revision_tbl);
6723: PO_LOG.stmt(d_module, d_position, 'vendor_product_num_tbl',
6724: x_lines.vendor_product_num_tbl);
6717: PO_LOG.stmt(d_module, d_position, 'item_tbl', x_lines.item_tbl);
6718: PO_LOG.stmt(d_module, d_position, 'po_header_id_tbl',
6719: x_lines.hd_po_header_id_tbl);
6720: PO_LOG.stmt(d_module, d_position, 'draft_id_tbl', x_lines.draft_id_tbl);
6721: PO_LOG.stmt(d_module, d_position, 'item_revision_tbl',
6722: x_lines.item_revision_tbl);
6723: PO_LOG.stmt(d_module, d_position, 'vendor_product_num_tbl',
6724: x_lines.vendor_product_num_tbl);
6725: PO_LOG.stmt(d_module, d_position, 'supplier_part_auxid_tbl',
6719: x_lines.hd_po_header_id_tbl);
6720: PO_LOG.stmt(d_module, d_position, 'draft_id_tbl', x_lines.draft_id_tbl);
6721: PO_LOG.stmt(d_module, d_position, 'item_revision_tbl',
6722: x_lines.item_revision_tbl);
6723: PO_LOG.stmt(d_module, d_position, 'vendor_product_num_tbl',
6724: x_lines.vendor_product_num_tbl);
6725: PO_LOG.stmt(d_module, d_position, 'supplier_part_auxid_tbl',
6726: x_lines.supplier_part_auxid_tbl);
6727: END IF;
6721: PO_LOG.stmt(d_module, d_position, 'item_revision_tbl',
6722: x_lines.item_revision_tbl);
6723: PO_LOG.stmt(d_module, d_position, 'vendor_product_num_tbl',
6724: x_lines.vendor_product_num_tbl);
6725: PO_LOG.stmt(d_module, d_position, 'supplier_part_auxid_tbl',
6726: x_lines.supplier_part_auxid_tbl);
6727: END IF;
6728:
6729: -- check matching on draft table
6815: LOOP
6816: l_index := l_index_tbl(i);
6817:
6818: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6819: IF (PO_LOG.d_stmt) THEN
6820: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6821: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6822: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6823: END IF;
6816: l_index := l_index_tbl(i);
6817:
6818: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6819: IF (PO_LOG.d_stmt) THEN
6820: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6821: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6822: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6823: END IF;
6824:
6817:
6818: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6819: IF (PO_LOG.d_stmt) THEN
6820: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6821: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6822: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6823: END IF;
6824:
6825: -- first match found
6818: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
6819: IF (PO_LOG.d_stmt) THEN
6820: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
6821: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6822: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6823: END IF;
6824:
6825: -- first match found
6826: x_lines.origin_line_num_tbl(l_index) := x_lines.line_num_tbl(l_index);
6832: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
6833: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6834: END IF;
6835: ELSE
6836: IF (PO_LOG.d_stmt) THEN
6837: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6838: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6839: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6840: PO_LOG.stmt(d_module, d_position, 'original line num',
6833: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
6834: END IF;
6835: ELSE
6836: IF (PO_LOG.d_stmt) THEN
6837: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6838: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6839: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6840: PO_LOG.stmt(d_module, d_position, 'original line num',
6841: x_lines.origin_line_num_tbl(l_index));
6834: END IF;
6835: ELSE
6836: IF (PO_LOG.d_stmt) THEN
6837: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6838: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6839: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6840: PO_LOG.stmt(d_module, d_position, 'original line num',
6841: x_lines.origin_line_num_tbl(l_index));
6842: PO_LOG.stmt(d_module, d_position, 'match line found',
6835: ELSE
6836: IF (PO_LOG.d_stmt) THEN
6837: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6838: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6839: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6840: PO_LOG.stmt(d_module, d_position, 'original line num',
6841: x_lines.origin_line_num_tbl(l_index));
6842: PO_LOG.stmt(d_module, d_position, 'match line found',
6843: x_lines.match_line_found_tbl(l_index));
6836: IF (PO_LOG.d_stmt) THEN
6837: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
6838: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6839: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6840: PO_LOG.stmt(d_module, d_position, 'original line num',
6841: x_lines.origin_line_num_tbl(l_index));
6842: PO_LOG.stmt(d_module, d_position, 'match line found',
6843: x_lines.match_line_found_tbl(l_index));
6844: PO_LOG.stmt(d_module, d_position, 'current line num',
6838: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
6839: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
6840: PO_LOG.stmt(d_module, d_position, 'original line num',
6841: x_lines.origin_line_num_tbl(l_index));
6842: PO_LOG.stmt(d_module, d_position, 'match line found',
6843: x_lines.match_line_found_tbl(l_index));
6844: PO_LOG.stmt(d_module, d_position, 'current line num',
6845: x_lines.line_num_tbl(l_index));
6846: END IF;
6840: PO_LOG.stmt(d_module, d_position, 'original line num',
6841: x_lines.origin_line_num_tbl(l_index));
6842: PO_LOG.stmt(d_module, d_position, 'match line found',
6843: x_lines.match_line_found_tbl(l_index));
6844: PO_LOG.stmt(d_module, d_position, 'current line num',
6845: x_lines.line_num_tbl(l_index));
6846: END IF;
6847:
6848: -- multiple matches found
6946: PO_PDOI_UTL.remove_session_gt_records
6947: ( p_key => l_data_key
6948: );
6949:
6950: IF (PO_LOG.d_proc) THEN
6951: PO_LOG.proc_end(d_module);
6952: END IF;
6953:
6954: EXCEPTION
6947: ( p_key => l_data_key
6948: );
6949:
6950: IF (PO_LOG.d_proc) THEN
6951: PO_LOG.proc_end(d_module);
6952: END IF;
6953:
6954: EXCEPTION
6955: WHEN OTHERS THEN
7003:
7004: BEGIN
7005: d_position := 0;
7006:
7007: IF (PO_LOG.d_proc) THEN
7008: PO_LOG.proc_begin(d_module);
7009: END IF;
7010:
7011: -- check matchings on draft table
7004: BEGIN
7005: d_position := 0;
7006:
7007: IF (PO_LOG.d_proc) THEN
7008: PO_LOG.proc_begin(d_module);
7009: END IF;
7010:
7011: -- check matchings on draft table
7012: FORALL i IN INDICES OF x_processing_row_tbl
7081: LOOP
7082: l_index := l_index_tbl(i);
7083:
7084: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7085: IF (PO_LOG.d_stmt) THEN
7086: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7087: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7088: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7089: END IF;
7082: l_index := l_index_tbl(i);
7083:
7084: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7085: IF (PO_LOG.d_stmt) THEN
7086: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7087: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7088: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7089: END IF;
7090:
7083:
7084: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7085: IF (PO_LOG.d_stmt) THEN
7086: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7087: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7088: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7089: END IF;
7090:
7091: -- first match found
7084: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7085: IF (PO_LOG.d_stmt) THEN
7086: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7087: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7088: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7089: END IF;
7090:
7091: -- first match found
7092: x_lines.origin_line_num_tbl(l_index) := x_lines.line_num_tbl(l_index);
7098: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
7099: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7100: END IF;
7101: ELSE
7102: IF (PO_LOG.d_stmt) THEN
7103: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7104: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7105: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7106: PO_LOG.stmt(d_module, d_position, 'original line num',
7099: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7100: END IF;
7101: ELSE
7102: IF (PO_LOG.d_stmt) THEN
7103: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7104: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7105: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7106: PO_LOG.stmt(d_module, d_position, 'original line num',
7107: x_lines.origin_line_num_tbl(l_index));
7100: END IF;
7101: ELSE
7102: IF (PO_LOG.d_stmt) THEN
7103: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7104: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7105: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7106: PO_LOG.stmt(d_module, d_position, 'original line num',
7107: x_lines.origin_line_num_tbl(l_index));
7108: PO_LOG.stmt(d_module, d_position, 'match line found',
7101: ELSE
7102: IF (PO_LOG.d_stmt) THEN
7103: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7104: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7105: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7106: PO_LOG.stmt(d_module, d_position, 'original line num',
7107: x_lines.origin_line_num_tbl(l_index));
7108: PO_LOG.stmt(d_module, d_position, 'match line found',
7109: x_lines.match_line_found_tbl(l_index));
7102: IF (PO_LOG.d_stmt) THEN
7103: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7104: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7105: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7106: PO_LOG.stmt(d_module, d_position, 'original line num',
7107: x_lines.origin_line_num_tbl(l_index));
7108: PO_LOG.stmt(d_module, d_position, 'match line found',
7109: x_lines.match_line_found_tbl(l_index));
7110: PO_LOG.stmt(d_module, d_position, 'current line num',
7104: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7105: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7106: PO_LOG.stmt(d_module, d_position, 'original line num',
7107: x_lines.origin_line_num_tbl(l_index));
7108: PO_LOG.stmt(d_module, d_position, 'match line found',
7109: x_lines.match_line_found_tbl(l_index));
7110: PO_LOG.stmt(d_module, d_position, 'current line num',
7111: x_lines.line_num_tbl(l_index));
7112: END IF;
7106: PO_LOG.stmt(d_module, d_position, 'original line num',
7107: x_lines.origin_line_num_tbl(l_index));
7108: PO_LOG.stmt(d_module, d_position, 'match line found',
7109: x_lines.match_line_found_tbl(l_index));
7110: PO_LOG.stmt(d_module, d_position, 'current line num',
7111: x_lines.line_num_tbl(l_index));
7112: END IF;
7113:
7114: -- multiple matches found
7204: PO_PDOI_UTL.remove_session_gt_records
7205: ( p_key => l_data_key
7206: );
7207:
7208: IF (PO_LOG.d_proc) THEN
7209: PO_LOG.proc_end(d_module);
7210: END IF;
7211:
7212: EXCEPTION
7205: ( p_key => l_data_key
7206: );
7207:
7208: IF (PO_LOG.d_proc) THEN
7209: PO_LOG.proc_end(d_module);
7210: END IF;
7211:
7212: EXCEPTION
7213: WHEN OTHERS THEN
7261:
7262: BEGIN
7263: d_position := 0;
7264:
7265: IF (PO_LOG.d_proc) THEN
7266: PO_LOG.proc_begin(d_module);
7267: END IF;
7268:
7269: -- check matchings on draft table
7262: BEGIN
7263: d_position := 0;
7264:
7265: IF (PO_LOG.d_proc) THEN
7266: PO_LOG.proc_begin(d_module);
7267: END IF;
7268:
7269: -- check matchings on draft table
7270: FORALL i IN INDICES OF x_processing_row_tbl
7342: LOOP
7343: l_index := l_index_tbl(i);
7344:
7345: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7346: IF (PO_LOG.d_stmt) THEN
7347: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7348: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7349: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7350: END IF;
7343: l_index := l_index_tbl(i);
7344:
7345: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7346: IF (PO_LOG.d_stmt) THEN
7347: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7348: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7349: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7350: END IF;
7351:
7344:
7345: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7346: IF (PO_LOG.d_stmt) THEN
7347: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7348: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7349: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7350: END IF;
7351:
7352: -- first match found
7345: IF (x_lines.po_line_id_tbl(l_index) IS NULL) THEN
7346: IF (PO_LOG.d_stmt) THEN
7347: PO_LOG.stmt(d_module, d_position, 'first match index', l_index);
7348: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7349: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7350: END IF;
7351:
7352: -- first match found
7353: x_lines.origin_line_num_tbl(l_index) := x_lines.line_num_tbl(l_index);
7359: IF (l_line_num_tbl(i) = x_lines.origin_line_num_tbl(l_index)) THEN
7360: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7361: END IF;
7362: ELSE
7363: IF (PO_LOG.d_stmt) THEN
7364: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7365: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7366: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7367: PO_LOG.stmt(d_module, d_position, 'original line num',
7360: x_lines.match_line_found_tbl(l_index) := FND_API.g_TRUE;
7361: END IF;
7362: ELSE
7363: IF (PO_LOG.d_stmt) THEN
7364: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7365: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7366: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7367: PO_LOG.stmt(d_module, d_position, 'original line num',
7368: x_lines.origin_line_num_tbl(l_index));
7361: END IF;
7362: ELSE
7363: IF (PO_LOG.d_stmt) THEN
7364: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7365: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7366: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7367: PO_LOG.stmt(d_module, d_position, 'original line num',
7368: x_lines.origin_line_num_tbl(l_index));
7369: PO_LOG.stmt(d_module, d_position, 'match line found',
7362: ELSE
7363: IF (PO_LOG.d_stmt) THEN
7364: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7365: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7366: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7367: PO_LOG.stmt(d_module, d_position, 'original line num',
7368: x_lines.origin_line_num_tbl(l_index));
7369: PO_LOG.stmt(d_module, d_position, 'match line found',
7370: x_lines.match_line_found_tbl(l_index));
7363: IF (PO_LOG.d_stmt) THEN
7364: PO_LOG.stmt(d_module, d_position, 'multi match index', l_index);
7365: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7366: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7367: PO_LOG.stmt(d_module, d_position, 'original line num',
7368: x_lines.origin_line_num_tbl(l_index));
7369: PO_LOG.stmt(d_module, d_position, 'match line found',
7370: x_lines.match_line_found_tbl(l_index));
7371: PO_LOG.stmt(d_module, d_position, 'current line num',
7365: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7366: PO_LOG.stmt(d_module, d_position, 'line num', l_line_num_tbl(i));
7367: PO_LOG.stmt(d_module, d_position, 'original line num',
7368: x_lines.origin_line_num_tbl(l_index));
7369: PO_LOG.stmt(d_module, d_position, 'match line found',
7370: x_lines.match_line_found_tbl(l_index));
7371: PO_LOG.stmt(d_module, d_position, 'current line num',
7372: x_lines.line_num_tbl(l_index));
7373: END IF;
7367: PO_LOG.stmt(d_module, d_position, 'original line num',
7368: x_lines.origin_line_num_tbl(l_index));
7369: PO_LOG.stmt(d_module, d_position, 'match line found',
7370: x_lines.match_line_found_tbl(l_index));
7371: PO_LOG.stmt(d_module, d_position, 'current line num',
7372: x_lines.line_num_tbl(l_index));
7373: END IF;
7374:
7375: -- multiple matches found
7459: PO_PDOI_UTL.remove_session_gt_records
7460: ( p_key => l_data_key
7461: );
7462:
7463: IF (PO_LOG.d_proc) THEN
7464: PO_LOG.proc_end(d_module);
7465: END IF;
7466:
7467: EXCEPTION
7460: ( p_key => l_data_key
7461: );
7462:
7463: IF (PO_LOG.d_proc) THEN
7464: PO_LOG.proc_end(d_module);
7465: END IF;
7466:
7467: EXCEPTION
7468: WHEN OTHERS THEN
7516:
7517: BEGIN
7518: d_position := 0;
7519:
7520: IF (PO_LOG.d_proc) THEN
7521: PO_LOG.proc_begin(d_module);
7522: END IF;
7523:
7524: -- check matchings on draft table
7517: BEGIN
7518: d_position := 0;
7519:
7520: IF (PO_LOG.d_proc) THEN
7521: PO_LOG.proc_begin(d_module);
7522: END IF;
7523:
7524: -- check matchings on draft table
7525: FORALL i IN INDICES OF x_processing_row_tbl
7594: x_lines.group_num_tbl(l_index) := p_group_num;
7595: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7596: x_processing_row_tbl.DELETE(l_index);
7597:
7598: IF (PO_LOG.d_stmt) THEN
7599: PO_LOG.stmt(d_module, d_position, 'match index', l_index);
7600: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7601: PO_LOG.stmt(d_module, d_position, 'current line num',
7602: x_lines.line_num_tbl(l_index));
7595: x_lines.po_line_id_tbl(l_index) := l_po_line_id_tbl(i);
7596: x_processing_row_tbl.DELETE(l_index);
7597:
7598: IF (PO_LOG.d_stmt) THEN
7599: PO_LOG.stmt(d_module, d_position, 'match index', l_index);
7600: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7601: PO_LOG.stmt(d_module, d_position, 'current line num',
7602: x_lines.line_num_tbl(l_index));
7603: END IF;
7596: x_processing_row_tbl.DELETE(l_index);
7597:
7598: IF (PO_LOG.d_stmt) THEN
7599: PO_LOG.stmt(d_module, d_position, 'match index', l_index);
7600: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7601: PO_LOG.stmt(d_module, d_position, 'current line num',
7602: x_lines.line_num_tbl(l_index));
7603: END IF;
7604: END LOOP;
7597:
7598: IF (PO_LOG.d_stmt) THEN
7599: PO_LOG.stmt(d_module, d_position, 'match index', l_index);
7600: PO_LOG.stmt(d_module, d_position, 'po line id', l_po_line_id_tbl(i));
7601: PO_LOG.stmt(d_module, d_position, 'current line num',
7602: x_lines.line_num_tbl(l_index));
7603: END IF;
7604: END LOOP;
7605:
7669: PO_PDOI_UTL.remove_session_gt_records
7670: ( p_key => l_data_key
7671: );
7672:
7673: IF (PO_LOG.d_proc) THEN
7674: PO_LOG.proc_end(d_module);
7675: END IF;
7676:
7677: EXCEPTION
7670: ( p_key => l_data_key
7671: );
7672:
7673: IF (PO_LOG.d_proc) THEN
7674: PO_LOG.proc_end(d_module);
7675: END IF;
7676:
7677: EXCEPTION
7678: WHEN OTHERS THEN
7732: l_index NUMBER;
7733: BEGIN
7734: d_position := 0;
7735:
7736: IF (PO_LOG.d_proc) THEN
7737: PO_LOG.proc_begin(d_module);
7738: END IF;
7739:
7740: -- mark all lines as to be created
7733: BEGIN
7734: d_position := 0;
7735:
7736: IF (PO_LOG.d_proc) THEN
7737: PO_LOG.proc_begin(d_module);
7738: END IF;
7739:
7740: -- mark all lines as to be created
7741: FOR i IN 1..p_target_lines_index_tbl.COUNT
7761: (
7762: p_po_header_id => x_lines.hd_po_header_id_tbl(l_index)
7763: );
7764:
7765: IF (PO_LOG.d_stmt) THEN
7766: PO_LOG.stmt(d_module, d_position, 'assign new line num', x_lines.line_num_tbl(l_index));
7767: END IF;
7768:
7769: END IF;
7762: p_po_header_id => x_lines.hd_po_header_id_tbl(l_index)
7763: );
7764:
7765: IF (PO_LOG.d_stmt) THEN
7766: PO_LOG.stmt(d_module, d_position, 'assign new line num', x_lines.line_num_tbl(l_index));
7767: END IF;
7768:
7769: END IF;
7770:
7774:
7775: -- action is determined. No longer need to process it
7776: x_processing_row_tbl.DELETE(l_index);
7777:
7778: IF (PO_LOG.d_stmt) THEN
7779: PO_LOG.stmt(d_module, d_position, 'match index', l_index);
7780: PO_LOG.stmt(d_module, d_position, 'po line id',
7781: x_lines.po_line_id_tbl(l_index));
7782: END IF;
7775: -- action is determined. No longer need to process it
7776: x_processing_row_tbl.DELETE(l_index);
7777:
7778: IF (PO_LOG.d_stmt) THEN
7779: PO_LOG.stmt(d_module, d_position, 'match index', l_index);
7780: PO_LOG.stmt(d_module, d_position, 'po line id',
7781: x_lines.po_line_id_tbl(l_index));
7782: END IF;
7783:
7776: x_processing_row_tbl.DELETE(l_index);
7777:
7778: IF (PO_LOG.d_stmt) THEN
7779: PO_LOG.stmt(d_module, d_position, 'match index', l_index);
7780: PO_LOG.stmt(d_module, d_position, 'po line id',
7781: x_lines.po_line_id_tbl(l_index));
7782: END IF;
7783:
7784: END LOOP;
7782: END IF;
7783:
7784: END LOOP;
7785:
7786: IF (PO_LOG.d_proc) THEN
7787: PO_LOG.proc_end(d_module);
7788: END IF;
7789:
7790: EXCEPTION
7783:
7784: END LOOP;
7785:
7786: IF (PO_LOG.d_proc) THEN
7787: PO_LOG.proc_end(d_module);
7788: END IF;
7789:
7790: EXCEPTION
7791: WHEN OTHERS THEN
7834: l_index NUMBER;
7835: BEGIN
7836: d_position := 0;
7837:
7838: IF (PO_LOG.d_proc) THEN
7839: PO_LOG.proc_begin(d_module);
7840: END IF;
7841:
7842: -- assign a new key used in temporary table
7835: BEGIN
7836: d_position := 0;
7837:
7838: IF (PO_LOG.d_proc) THEN
7839: PO_LOG.proc_begin(d_module);
7840: END IF;
7841:
7842: -- assign a new key used in temporary table
7843: l_key := PO_CORE_S.get_session_gt_nextval;
7885: FOR i IN 1..l_index_tbl.COUNT
7886: LOOP
7887: l_index := l_index_tbl(i);
7888:
7889: IF (PO_LOG.d_stmt) THEN
7890: PO_LOG.stmt(d_module, d_position, 'error on index', l_index);
7891: END IF;
7892:
7893: PO_PDOI_ERR_UTL.add_fatal_error
7886: LOOP
7887: l_index := l_index_tbl(i);
7888:
7889: IF (PO_LOG.d_stmt) THEN
7890: PO_LOG.stmt(d_module, d_position, 'error on index', l_index);
7891: END IF;
7892:
7893: PO_PDOI_ERR_UTL.add_fatal_error
7894: (
7904:
7905: x_lines.error_flag_tbl(l_index) := FND_API.g_TRUE;
7906: END LOOP;
7907:
7908: IF (PO_LOG.d_proc) THEN
7909: PO_LOG.proc_end(d_module);
7910: END IF;
7911:
7912: EXCEPTION
7905: x_lines.error_flag_tbl(l_index) := FND_API.g_TRUE;
7906: END LOOP;
7907:
7908: IF (PO_LOG.d_proc) THEN
7909: PO_LOG.proc_end(d_module);
7910: END IF;
7911:
7912: EXCEPTION
7913: WHEN OTHERS THEN
7951:
7952: BEGIN
7953: d_position := 0;
7954:
7955: IF (PO_LOG.d_proc) THEN
7956: PO_LOG.proc_begin(d_module);
7957: END IF;
7958:
7959: d_position := 10;
7952: BEGIN
7953: d_position := 0;
7954:
7955: IF (PO_LOG.d_proc) THEN
7956: PO_LOG.proc_begin(d_module);
7957: END IF;
7958:
7959: d_position := 10;
7960:
7965: d_position := 20;
7966:
7967: FOR i IN 1 .. x_results.entity_id.COUNT LOOP
7968: IF x_results.result_type(i) = po_validations.c_result_type_failure THEN
7969: IF (PO_LOG.d_stmt) THEN
7970: PO_LOG.stmt(d_module, d_position, 'error on index',
7971: l_index_tbl(x_results.entity_id(i)));
7972: END IF;
7973:
7966:
7967: FOR i IN 1 .. x_results.entity_id.COUNT LOOP
7968: IF x_results.result_type(i) = po_validations.c_result_type_failure THEN
7969: IF (PO_LOG.d_stmt) THEN
7970: PO_LOG.stmt(d_module, d_position, 'error on index',
7971: l_index_tbl(x_results.entity_id(i)));
7972: END IF;
7973:
7974: x_lines.error_flag_tbl(l_index_tbl(x_results.entity_id(i))) := FND_API.g_TRUE;
7974: x_lines.error_flag_tbl(l_index_tbl(x_results.entity_id(i))) := FND_API.g_TRUE;
7975: END IF;
7976: END LOOP;
7977:
7978: IF (PO_LOG.d_proc) THEN
7979: PO_LOG.proc_end(d_module);
7980: END IF;
7981:
7982: EXCEPTION
7975: END IF;
7976: END LOOP;
7977:
7978: IF (PO_LOG.d_proc) THEN
7979: PO_LOG.proc_end(d_module);
7980: END IF;
7981:
7982: EXCEPTION
7983: WHEN OTHERS THEN
8032: BEGIN
8033:
8034: d_position := 0;
8035:
8036: IF (PO_LOG.d_proc) THEN
8037: PO_LOG.proc_begin(d_module, 'err_lines_tolerance', l_err_lines_tolerance);
8038: END IF;
8039:
8040: FOR i IN 1 .. x_lines.rec_count
8033:
8034: d_position := 0;
8035:
8036: IF (PO_LOG.d_proc) THEN
8037: PO_LOG.proc_begin(d_module, 'err_lines_tolerance', l_err_lines_tolerance);
8038: END IF;
8039:
8040: FOR i IN 1 .. x_lines.rec_count
8041: LOOP
8040: FOR i IN 1 .. x_lines.rec_count
8041: LOOP
8042: l_intf_header_id := x_lines.intf_header_id_tbl(i);
8043:
8044: IF (PO_LOG.d_stmt) THEN
8045: PO_LOG.stmt(d_module, d_position, 'index', i);
8046: PO_LOG.stmt(d_module, d_position, 'intf header id', l_intf_header_id);
8047: END IF;
8048:
8041: LOOP
8042: l_intf_header_id := x_lines.intf_header_id_tbl(i);
8043:
8044: IF (PO_LOG.d_stmt) THEN
8045: PO_LOG.stmt(d_module, d_position, 'index', i);
8046: PO_LOG.stmt(d_module, d_position, 'intf header id', l_intf_header_id);
8047: END IF;
8048:
8049: d_position := 10;
8042: l_intf_header_id := x_lines.intf_header_id_tbl(i);
8043:
8044: IF (PO_LOG.d_stmt) THEN
8045: PO_LOG.stmt(d_module, d_position, 'index', i);
8046: PO_LOG.stmt(d_module, d_position, 'intf header id', l_intf_header_id);
8047: END IF;
8048:
8049: d_position := 10;
8050:
8060: ELSE
8061: l_num_processed_lines := PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).number_of_processed_lines + 1;
8062: PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).number_of_processed_lines := l_num_processed_lines;
8063:
8064: IF (PO_LOG.d_stmt) THEN
8065: PO_LOG.stmt(d_module, d_position, 'num_processed_lines', l_num_processed_lines);
8066: END IF;
8067:
8068: d_position := 20;
8061: l_num_processed_lines := PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).number_of_processed_lines + 1;
8062: PO_PDOI_PARAMS.g_docs_info(l_intf_header_id).number_of_processed_lines := l_num_processed_lines;
8063:
8064: IF (PO_LOG.d_stmt) THEN
8065: PO_LOG.stmt(d_module, d_position, 'num_processed_lines', l_num_processed_lines);
8066: END IF;
8067:
8068: d_position := 20;
8069:
8073:
8074: -- set corresponding line to ERROR
8075: PO_PDOI_PARAMS.g_errored_lines(x_lines.intf_line_id_tbl(i)) := 'Y';
8076:
8077: IF (PO_LOG.d_stmt) THEN
8078: PO_LOG.stmt(d_module, d_position, 'num_errored_lines', l_num_errored_lines);
8079: END IF;
8080:
8081: d_position := 30;
8074: -- set corresponding line to ERROR
8075: PO_PDOI_PARAMS.g_errored_lines(x_lines.intf_line_id_tbl(i)) := 'Y';
8076:
8077: IF (PO_LOG.d_stmt) THEN
8078: PO_LOG.stmt(d_module, d_position, 'num_errored_lines', l_num_errored_lines);
8079: END IF;
8080:
8081: d_position := 30;
8082:
8112: WHERE interface_line_id = l_remove_err_line_tbl(i);
8113:
8114: d_position := 70;
8115:
8116: IF (PO_LOG.d_proc) THEN
8117: PO_LOG.proc_end(d_module, 'num_processed_lines', l_num_processed_lines);
8118: PO_LOG.proc_end(d_module, 'num_errored_lines', l_num_errored_lines);
8119: END IF;
8120:
8113:
8114: d_position := 70;
8115:
8116: IF (PO_LOG.d_proc) THEN
8117: PO_LOG.proc_end(d_module, 'num_processed_lines', l_num_processed_lines);
8118: PO_LOG.proc_end(d_module, 'num_errored_lines', l_num_errored_lines);
8119: END IF;
8120:
8121: EXCEPTION
8114: d_position := 70;
8115:
8116: IF (PO_LOG.d_proc) THEN
8117: PO_LOG.proc_end(d_module, 'num_processed_lines', l_num_processed_lines);
8118: PO_LOG.proc_end(d_module, 'num_errored_lines', l_num_errored_lines);
8119: END IF;
8120:
8121: EXCEPTION
8122: WHEN OTHERS THEN