336: d_api_name CONSTANT VARCHAR2(30) := 'construct_item_records';
337: d_module CONSTANT VARCHAR2(255) := d_pkg_name || d_api_name || '.';
338: d_position NUMBER;
339:
340: l_key PO_SESSION_GT.key%TYPE;
341: l_index_tbl DBMS_SQL.NUMBER_TABLE;
342: l_line_index NUMBER;
343: BEGIN
344: d_position := 0;
363: PO_LOG.stmt(d_module, d_position, 'item', p_lines.item_tbl);
364: PO_LOG.stmt(d_module, d_position, 'item id', p_lines.item_id_tbl);
365: END IF;
366:
367: -- insert interface_line_ids within the batch in po_session_gt table;
368: -- Thus it can be used to bulk select location rows
369: FORALL i IN 1..p_lines.rec_count
370: INSERT INTO po_session_gt
371: (
366:
367: -- insert interface_line_ids within the batch in po_session_gt table;
368: -- Thus it can be used to bulk select location rows
369: FORALL i IN 1..p_lines.rec_count
370: INSERT INTO po_session_gt
371: (
372: key,
373: num1, -- index
374: num2, -- interface_line_id
391: d_position := 10;
392:
393: -- read location rows and put into x_items
394: /* Bug 6926550 modified the where clause to select
395: only matched key records from po_session_gt*/
396: SELECT
397: -- attributes from headers
398: NVL(draft_headers.ship_to_location_id, txn_headers.ship_to_location_id),
399: NVL(draft_headers.vendor_id, txn_headers.vendor_id),
567: FROM po_line_locations_interface intf_locs,
568: po_lines_interface intf_lines,
569: po_headers_draft_all draft_headers,
570: po_headers_all txn_headers,
571: po_session_gt gt
572: WHERE gt.num2 = intf_lines.interface_line_id
573: AND intf_lines.interface_line_id = intf_locs.interface_line_id
574: AND intf_locs.processing_id = PO_PDOI_PARAMS.g_processing_id
575: AND gt.num3 = draft_headers.po_header_id(+)
734: d_module CONSTANT VARCHAR2(255) := d_pkg_name || d_api_name || '.';
735: d_position NUMBER;
736:
737: l_index NUMBER;
738: l_key PO_SESSION_GT.key%TYPE;
739:
740: -- variables used to read result from po_session_gt table
741: l_index_tbl PO_TBL_NUMBER;
742: l_org_id_tbl PO_TBL_NUMBER;
736:
737: l_index NUMBER;
738: l_key PO_SESSION_GT.key%TYPE;
739:
740: -- variables used to read result from po_session_gt table
741: l_index_tbl PO_TBL_NUMBER;
742: l_org_id_tbl PO_TBL_NUMBER;
743: l_item_id_tbl PO_TBL_NUMBER;
744:
806: l_key := PO_CORE_S.get_session_gt_nextval;
807: -- check whether item exists in default inv org, default master
808: -- org or ship_to org
809: FORALL i IN INDICES OF x_proc_row_in_round_tbl
810: INSERT INTO po_session_gt
811: (
812: key,
813: num1,
814: num2,
831: --concatenated_segments = x_items.ln_item_tbl(i);
832:
833: d_position := 30;
834:
835: DELETE FROM po_session_gt
836: WHERE key = l_key
837: RETURNING num1, num2, num3 BULK COLLECT INTO
838: l_index_tbl, l_org_id_tbl, l_item_id_tbl;
839:
963:
964: l_set_process_id_tbl PO_TBL_NUMBER := PO_TBL_NUMBER();
965: l_index NUMBER;
966:
967: -- key value used to identify records in po_session_gt
968: l_key PO_SESSION_GT.key%TYPE;
969:
970: -- variables used to call Inventory API
971: l_org_id NUMBER;
964: l_set_process_id_tbl PO_TBL_NUMBER := PO_TBL_NUMBER();
965: l_index NUMBER;
966:
967: -- key value used to identify records in po_session_gt
968: l_key PO_SESSION_GT.key%TYPE;
969:
970: -- variables used to call Inventory API
971: l_org_id NUMBER;
972: l_err_text VARCHAR2(3000);
1177:
1178: l_key := PO_CORE_S.get_session_gt_nextval;
1179: -- get processed result
1180: FORALL i IN INDICES OF p_index_tbl
1181: INSERT INTO po_session_gt
1182: (
1183: key,
1184: num1,
1185: num2,
1202: WHERE set_process_id = l_set_process_id_tbl(i);
1203:
1204: d_position := 40;
1205:
1206: DELETE FROM po_session_gt
1207: WHERE key = l_key
1208: RETURNING num1, num2, num3, num4, num5, num6, char1
1209: BULK COLLECT INTO
1210: l_index_tbl,
1290:
1291: -- handle the errors thrown by item creation
1292: -- 1. read errors from item error interface table
1293: FORALL i IN INDICES OF l_error_index_tbl
1294: INSERT INTO po_session_gt
1295: (
1296: key,
1297: num1,
1298: char1,
1320: AND revision = l_revision_tbl(i));
1321:
1322: d_position := 100;
1323:
1324: DELETE FROM po_session_gt
1325: WHERE key = l_key
1326: RETURNING num1, char1, char2, char3 BULK COLLECT INTO
1327: l_error_index_tbl,
1328: l_table_name_tbl,
1401: d_module CONSTANT VARCHAR2(255) := d_pkg_name || d_api_name || '.';
1402: d_position NUMBER;
1403:
1404: l_index NUMBER;
1405: l_key po_session_gt.key%TYPE;
1406:
1407: -- variables to store results of original values defined in item
1408: l_index_tbl PO_TBL_NUMBER;
1409: l_orig_desc_tbl PO_TBL_VARCHAR2000;
1429: l_key := PO_CORE_S.get_session_gt_nextval;
1430: l_update_index_tbl := p_index_tbl;
1431:
1432: FORALL i IN INDICES OF l_update_index_tbl
1433: INSERT INTO po_session_gt(key, num1, char1, num2)
1434: SELECT l_key,
1435: l_update_index_tbl(i),
1436: description,
1437: list_price_per_unit
1440: AND organization_id = PO_PDOI_PARAMS.g_sys.def_inv_org_id;
1441:
1442: d_position := 10;
1443:
1444: DELETE FROM po_session_gt
1445: WHERE key = l_key
1446: RETURNING num1, char1, num2 BULK COLLECT INTO
1447: l_index_tbl, l_orig_desc_tbl, l_orig_list_price_tbl;
1448: