123: -----------------------------------------------------------------------
124: --Start of Comments
125: --Name: seed_po
126: --Pre-reqs:
127: --Modifies: po_purge_po_list, po_purge_req_list
128: --Locks:
129: -- None
130: --Function: Construct po purge list for eligible pos that have not been
131: -- updated since last_activity_date. This is a version from
193: --SQL Why: This is the initial list of pos to be purged. There will
194: -- be additional rules getting applied to this table to
195: -- remove records that are actually not eligible for purge
196:
197: INSERT INTO po_purge_po_list
198: ( po_header_id,
199: purge_name,
200: double_check_flag
201: )
280: --SQL Why: This is the initial list of pos to be purged. There will
281: -- be additional rules getting applied to this table to
282: -- remove records that are actually not eligible for purge
283:
284: INSERT INTO po_purge_po_list
285: ( po_header_id,
286: purge_name,
287: double_check_flag
288: )
508: -----------------------------------------------------------------------
509: --Start of Comments
510: --Name: filter_more_referenced_po
511: --Pre-reqs:
512: --Modifies: po_purge_po_list
513: --Locks:
514: -- None
515: --Function: Exclude POs that are referenced by records that will not get
516: -- purged.
964: -----------------------------------------------------------------------
965: --Start of Comments
966: --Name: filter_req_pon_validation
967: --Pre-reqs:
968: --Modifies: po_purge_po_list
969: --Locks:
970: -- None
971: --Function: Call Sourcing API to determine whether the records in the
972: -- purge list violates the rules defined in PON if the records are
1108: -----------------------------------------------------------------------
1109: --Start of Comments
1110: --Name: filter_po_fte_validation
1111: --Pre-reqs:
1112: --Modifies: po_purge_po_list
1113: --Locks:
1114: -- None
1115: --Function: Call FTE API to determine whether the record in the purge list
1116: -- violates the rules defined in FTE if the record is purged.
1137: G_MODULE_PREFIX || l_api_name || '.';
1138:
1139: CURSOR c_po_list IS
1140: SELECT po_header_id
1141: FROM po_purge_po_list
1142: WHERE double_check_flag = 'Y';
1143:
1144: l_in_rec WSH_PO_INTG_TYPES_GRP.purge_in_rectype;
1145: l_out_rec WSH_PO_INTG_TYPES_GRP.purge_out_rectype;
1226:
1227: l_progress := '030';
1228:
1229: FORALL i IN 1..l_out_rec.purge_allowed.COUNT
1230: UPDATE po_purge_po_list PPL
1231: SET PPL.double_check_flag = 'N'
1232: WHERE PPL.po_header_id = l_in_rec.header_ids(i)
1233: AND l_out_rec.purge_allowed(i) <> 'Y';
1234:
1271: -----------------------------------------------------------------------
1272: --Start of Comments
1273: --Name: filter_po_cst_validation
1274: --Pre-reqs:
1275: --Modifies: po_purge_po_list
1276: --Locks:
1277: -- None
1278: --Function: Call Costing API to determine whether the records in the purge list
1279: -- violates the rules defined in CST if the records are purged.
1300: G_MODULE_PREFIX || l_api_name || '.';
1301:
1302: CURSOR c_po_list IS
1303: SELECT po_header_id
1304: FROM po_purge_po_list
1305: WHERE double_check_flag = 'Y';
1306:
1307:
1308: l_in_rec RCV_AccrualUtilities_GRP.purge_in_rectype;
1370:
1371: l_progress := '030';
1372:
1373: FORALL i IN 1..l_out_rec.purge_allowed.COUNT
1374: UPDATE po_purge_po_list PPL
1375: SET PPL.double_check_flag = 'N'
1376: WHERE PPL.po_header_id = l_in_rec.entity_ids(i)
1377: AND l_out_rec.purge_allowed(i) <> 'Y';
1378:
1415: -----------------------------------------------------------------------
1416: --Start of Comments
1417: --Name: filter_po_oe_validation
1418: --Pre-reqs:
1419: --Modifies: po_purge_po_list
1420: --Locks:
1421: -- None
1422: --Function: Call OE Drop Ship API to determine whether the records in the
1423: -- purge list violates the rules defined in OE if the records are
1452: l_msg_data VARCHAR2(2000);
1453:
1454: CURSOR c_po_list IS
1455: SELECT po_header_id
1456: FROM po_purge_po_list
1457: WHERE double_check_flag = 'Y';
1458:
1459: BEGIN
1460:
1539:
1540: IF (l_purge_allowed_tbl IS NOT NULL) THEN
1541:
1542: FORALL i IN 1..l_purge_allowed_tbl.COUNT
1543: UPDATE po_purge_po_list PPL
1544: SET PPL.double_check_flag = 'N'
1545: WHERE PPL.po_header_id = l_hdr_id_tbl(i)
1546: AND l_purge_allowed_tbl(i) <> 'Y';
1547:
1586: -----------------------------------------------------------------------
1587: --Start of Comments
1588: --Name: filter_po_pon_validation
1589: --Pre-reqs:
1590: --Modifies: po_purge_po_list
1591: --Locks:
1592: -- None
1593: --Function: Call Sourcing API to determine whether the records in the
1594: -- purge list violates the rules defined in PON if the records are
1623: l_msg_data VARCHAR2(2000);
1624:
1625: CURSOR c_po_list IS
1626: SELECT po_header_id
1627: FROM po_purge_po_list
1628: WHERE double_check_flag = 'Y';
1629:
1630: BEGIN
1631:
1686:
1687: l_progress := '030';
1688:
1689: FORALL i IN 1..l_out_rec.purge_allowed.COUNT
1690: UPDATE po_purge_po_list PPL
1691: SET PPL.double_check_flag = 'N'
1692: WHERE PPL.po_header_id = l_in_rec.entity_ids(i)
1693: AND l_out_rec.purge_allowed(i) <> 'Y';
1694:
1730: -----------------------------------------------------------------------
1731: --Start of Comments
1732: --Name: filter_po_hr_validation
1733: --Pre-reqs:
1734: --Modifies: po_purge_po_list
1735: --Locks:
1736: -- None
1737: --Function: Call HR API to determine whether the records in the
1738: -- purge list violates the rules defined in HR if the records are
1763: l_out_tbl HR_PO_INFO.g_table_numbers_t;
1764:
1765: CURSOR c_po_list IS
1766: SELECT po_header_id
1767: FROM po_purge_po_list
1768: WHERE double_check_flag = 'Y';
1769:
1770: BEGIN
1771:
1813:
1814: l_progress := '030';
1815:
1816: FORALL i IN 1..l_out_tbl.COUNT
1817: UPDATE po_purge_po_list PPL
1818: SET PPL.double_check_flag = 'N'
1819: WHERE PPL.po_header_id = l_out_tbl(i);
1820:
1821: END LOOP;
1917: DELETE
1918: FROM po_asl_documents PAD
1919: WHERE PAD.document_header_id IN
1920: ( SELECT PPL.po_header_id
1921: FROM po_purge_po_list PPL
1922: WHERE PPL.double_check_flag = 'Y'
1923: AND PPL.po_header_id BETWEEN p_range_low
1924: AND p_range_high);
1925:
1999: DELETE
2000: FROM po_ga_org_assignments PGOA
2001: WHERE PGOA.po_header_id IN
2002: (SELECT PPL.po_header_id
2003: FROM po_purge_po_list PPL
2004: WHERE PPL.double_check_flag = 'Y'
2005: AND PPL.po_header_id BETWEEN p_range_low
2006: AND p_range_high);
2007:
2020: DELETE
2021: FROM po_ga_org_assignments_archive PGOAA
2022: WHERE PGOAA.po_header_id IN
2023: (SELECT PPL.po_header_id
2024: FROM po_purge_po_list PPL
2025: WHERE PPL.double_check_flag = 'Y'
2026: AND PPL.po_header_id BETWEEN p_range_low
2027: AND p_range_high);
2028:
2116:
2117: SELECT PPL.po_header_id
2118: BULK COLLECT
2119: INTO l_po_hdr_tbl
2120: FROM po_purge_po_list PPL
2121: WHERE PPL.po_header_id BETWEEN p_range_low AND p_range_high
2122: AND PPL.double_check_flag = 'Y';
2123:
2124: l_progress := '010';
2258:
2259: SELECT PPL.po_header_id
2260: BULK COLLECT
2261: INTO l_fte_in_rec.header_ids
2262: FROM po_purge_po_list PPL
2263: WHERE PPL.double_check_flag = 'Y'
2264: AND PPL.po_header_id BETWEEN p_range_low AND p_range_high;
2265:
2266: l_progress := '010';
2375:
2376: SELECT PPL.po_header_id
2377: BULK COLLECT
2378: INTO l_in_rec.entity_ids
2379: FROM po_purge_po_list PPL
2380: WHERE PPL.double_check_flag = 'Y'
2381: AND PPL.po_header_id BETWEEN p_range_low AND p_range_high;
2382:
2383: l_progress := '010';
2497: 'BLANKET' , 'PA_BLANKET',
2498: 'CONTRACT', 'PA_CONTRACT') DOC_TYPE,
2499: PH.po_header_id DOC_ID
2500: FROM po_headers PH,
2501: po_purge_po_list PPL
2502: WHERE PH.po_header_id = PPL.po_header_id
2503: AND PPL.double_check_flag = 'Y'
2504: AND PPL.po_header_id BETWEEN p_range_low AND p_range_high
2505: AND PH.type_lookup_code IN ('STANDARD', 'BLANKET', 'CONTRACT')
2689: FROM po_price_differentials PPD
2690: WHERE PPD.entity_type IN ('PO LINE', 'BLANKET LINE')
2691: AND EXISTS (
2692: SELECT NULL
2693: FROM po_purge_po_list PPL,
2694: po_lines POL
2695: WHERE PPL.po_header_id = POL.po_header_id
2696: AND POL.po_line_id = PPD.entity_id
2697: AND PPL.double_check_flag = 'Y'
2714: FROM po_price_differentials_archive PPD
2715: WHERE PPD.entity_type IN ('PO LINE', 'BLANKET LINE')
2716: AND EXISTS (
2717: SELECT NULL
2718: FROM po_purge_po_list PPL,
2719: po_lines POL
2720: WHERE PPL.po_header_id = POL.po_header_id
2721: AND POL.po_line_id = PPD.entity_id
2722: AND PPL.double_check_flag = 'Y'
2739: FROM po_price_differentials PPD
2740: WHERE PPD.entity_type = 'PRICE BREAK'
2741: AND EXISTS (
2742: SELECT NULL
2743: FROM po_purge_po_list PPL,
2744: po_line_locations PLL
2745: WHERE PPL.po_header_id = PLL.po_header_id
2746: AND PLL.line_location_id = PPD.entity_id
2747: AND PPL.double_check_flag = 'Y'
2764: FROM po_price_differentials_archive PPD
2765: WHERE PPD.entity_type = 'PRICE BREAK'
2766: AND EXISTS (
2767: SELECT NULL
2768: FROM po_purge_po_list PPL,
2769: po_line_locations PLL
2770: WHERE PPL.po_header_id = PLL.po_header_id
2771: AND PLL.line_location_id = PPD.entity_id
2772: AND PPL.double_check_flag = 'Y'
2866: FROM po_price_differentials PPD
2867: WHERE PPD.entity_type IN ('PO LINE', 'BLANKET LINE')
2868: AND EXISTS (
2869: SELECT NULL
2870: FROM po_purge_po_list PPL,
2871: po_lines POL
2872: WHERE PPL.po_header_id = POL.po_header_id
2873: AND POL.po_line_id = PPD.entity_id
2874: AND PPL.double_check_flag = 'Y'
2890: DELETE
2891: FROM po_attribute_values PAV
2892: WHERE PAV.po_line_id IN
2893: ( SELECT po_line_id
2894: FROM po_purge_po_list PPL,
2895: po_lines POL
2896: WHERE PPL.po_header_id = POL.po_header_id
2897: AND PPL.double_check_flag = 'Y'
2898: AND PPL.po_header_id BETWEEN p_range_low
2913: DELETE
2914: FROM po_attribute_values_tlp PAVT
2915: WHERE PAVT.po_line_id IN
2916: ( SELECT po_line_id
2917: FROM po_purge_po_list PPL,
2918: po_lines POL
2919: WHERE PPL.po_header_id = POL.po_header_id
2920: AND PPL.double_check_flag = 'Y'
2921: AND PPL.po_header_id BETWEEN p_range_low
3115: G_MODULE_PREFIX || l_api_name || '.';
3116:
3117: CURSOR c_po_header IS
3118: SELECT PPL.po_header_id
3119: FROM po_purge_po_list PPL
3120: WHERE PPL.po_header_id BETWEEN p_range_low AND p_range_high
3121: AND PPL.double_check_flag = 'Y';
3122:
3123: CURSOR c_po_release IS
3121: AND PPL.double_check_flag = 'Y';
3122:
3123: CURSOR c_po_release IS
3124: SELECT PR.po_release_id
3125: FROM po_purge_po_list PPL,
3126: po_releases PR
3127: WHERE PPL.po_header_id BETWEEN p_range_low AND p_range_high
3128: AND PPL.double_check_flag = 'Y'
3129: AND PPL.po_header_id = PR.po_header_id;
3129: AND PPL.po_header_id = PR.po_header_id;
3130:
3131: CURSOR c_po_line IS
3132: SELECT POL.po_line_id
3133: FROM po_purge_po_list PPL,
3134: po_lines POL
3135: WHERE PPL.po_header_id BETWEEN p_range_low AND p_range_high
3136: AND PPL.double_check_flag = 'Y'
3137: AND PPL.po_header_id = POL.po_header_id;
3137: AND PPL.po_header_id = POL.po_header_id;
3138:
3139: CURSOR c_po_shipment IS
3140: SELECT POLL.line_location_id
3141: FROM po_purge_po_list PPL,
3142: po_line_locations POLL
3143: WHERE PPL.po_header_id BETWEEN p_range_low AND p_range_high
3144: AND PPL.double_check_flag = 'Y'
3145: AND PPL.po_header_id = POLL.po_header_id;
3343: SELECT DFT.draft_id
3344: BULK COLLECT
3345: INTO l_dft_id_tbl
3346: FROM po_drafts DFT,
3347: po_purge_po_list PPL
3348: WHERE DFT.document_id = PPL.po_header_id
3349: AND PPL.po_header_id BETWEEN p_range_low AND p_range_high
3350: AND PPL.double_check_flag = 'Y';
3351:
3530: --p_module
3531: -- the location where this is called from.
3532: --p_entity
3533: -- the table to report. 'REQ' for PO_PURGE_REQ_LIST
3534: -- 'PO' for PO_PURGE_PO_LIST
3535: --IN OUT:
3536: --OUT:
3537: --Returns:
3538: --Notes:
3561: ELSIF (p_entity = 'PO') THEN
3562:
3563: SELECT COUNT(*)
3564: INTO l_count
3565: FROM po_purge_po_list
3566: WHERE double_check_flag = 'Y';
3567:
3568: END IF;
3569: IF (FND_LOG.G_CURRENT_RUNTIME_LEVEL <= FND_LOG.LEVEL_STATEMENT) THEN