DBA Data[Home] [Help]

APPS.PO_R12_CAT_UPG_VAL_PVT SQL Statements

The following lines contain the word 'select', 'insert', 'update' or 'delete':

Line: 73

    SELECT interface_header_id
         , org_id
    FROM PO_HEADERS_INTERFACE
    WHERE batch_id = p_batch_id
      AND process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_NEW;
Line: 115

        UPDATE PO_HEADERS_INTERFACE
           SET process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
         WHERE interface_header_id = l_interface_header_ids(i)
           AND (l_org_ids(i) IS NULL
                OR l_org_ids(i) = g_OU_REQD -- where g_OU_REQD is -2 (iProc defined this value)
                OR NOT EXISTS
                  (SELECT 'ORG_ID exists'
                   FROM HR_ALL_ORGANIZATION_UNITS HAOU
                   WHERE HAOU.organization_id = l_org_ids(i)
                   ))
        RETURNING interface_header_id, org_id
        BULK COLLECT INTO l_err_interface_header_ids, l_err_org_ids;
Line: 128

      IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 173

        UPDATE PO_HEADERS_INTERFACE
           SET process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
         WHERE interface_header_id = l_interface_header_ids(i)
           -- ECO bug 5584556: Skip the validations covered above
           AND l_org_ids(i) IS NOT NULL
           AND l_org_ids(i) <> g_OU_REQD -- where g_OU_REQD is -2 (iProc defined this value)
           AND EXISTS
                   (SELECT 'ORG_ID exists'
                    FROM HR_ALL_ORGANIZATION_UNITS HAOU
                    WHERE HAOU.organization_id = l_org_ids(i)
                   )
           -- ECO bug 5584556: End
           AND (
                NOT EXISTS
                  (SELECT 'Valid Operating Unit ID'
                   FROM HR_OPERATING_UNITS HROU
                   WHERE HROU.organization_id = l_org_ids(i)
                     -- Bug 5060582: Dont need the date checks
                     --AND sysdate BETWEEN
                     --        nvl(HROU.date_from, sysdate-1)
                     --    AND nvl(HROU.date_to, sysdate+1)
                   )
                -- ECO bug 5584556: Add new messages
                -- This check is done as part of UT'ing this ECO.
                -- We found a case where the PSP row does not exist for the org_id.
                -- The migration program would die for such cases. The following query
                -- is copied from init_sys_parameters() where it was failing.
                OR
                NOT EXISTS
                ( SELECT 'Valid OU references in FSP, PSP, SOB and RCV'
                  FROM  FINANCIALS_SYSTEM_PARAMS_ALL FSPA,
                        GL_SETS_OF_BOOKS             SOB,
                        PO_SYSTEM_PARAMETERS_ALL     PSPA,
                        RCV_PARAMETERS               RCV
                  WHERE FSPA.set_of_books_id = SOB.set_of_books_id
                    AND RCV.organization_id (+) = FSPA.inventory_organization_id
                    AND PSPA.org_id = l_org_ids(i)
                    AND FSPA.org_id = l_org_ids(i)
                )
                -- ECO bug 5584556: End
               )
        RETURNING interface_header_id, org_id
        BULK COLLECT INTO l_err_interface_header_ids, l_err_org_ids;
Line: 217

      IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 226

          SELECT name
          INTO l_ou_name
          FROM HR_ALL_ORGANIZATION_UNITS_TL HAOUTL
          WHERE HAOUTL.organization_id = l_err_org_ids(i)
            AND language = userenv('LANG');
Line: 516

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              index_char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.currency_code(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    -- ECO bug 5584556: Start
    -- The following validation check is already done above.
    -- So adding these additional where-clauses to skip those cases.
    AND p_headers_rec.currency_code(i) IS NOT NULL
    -- ECO bug 5584556: End
    AND NOT EXISTS(SELECT 1
                   FROM FND_CURRENCIES CUR
                   WHERE p_headers_rec.currency_code(i) = CUR.currency_code
                     AND CUR.enabled_flag = 'Y'
                     AND sysdate BETWEEN
                                 nvl(CUR.start_date_active, sysdate-1)
                             AND nvl(CUR.end_date_active, sysdate+1));
Line: 540

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 546

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, index_char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_currency_code_list;
Line: 551

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 664

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.vendor_id(i)
         , p_headers_rec.vendor_name(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND (p_headers_rec.vendor_id(i) IS NULL
         OR p_headers_rec.vendor_id(i) = g_NULL_COLUMN_VALUE -- -2
         OR NOT EXISTS(SELECT 1
                       FROM PO_VENDORS PV
                       WHERE p_headers_rec.vendor_id(i) = PV.vendor_id));
Line: 683

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 689

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_vendor_id_list, l_vendor_name_list;
Line: 694

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 724

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.vendor_id(i)
         , p_headers_rec.vendor_name(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    -- ECO bug 5584556: Start
    -- The following 3 validation checks are already done above.
    -- So adding these additional where-clauses to skip those cases.
    AND p_headers_rec.vendor_id(i) IS NOT NULL
    AND p_headers_rec.vendor_id(i) <> g_NULL_COLUMN_VALUE -- -2
    AND EXISTS(SELECT 1
               FROM PO_VENDORS PV
               WHERE p_headers_rec.vendor_id(i) = PV.vendor_id)
    -- ECO bug 5584556: End
    AND NOT EXISTS(SELECT 1
                   FROM PO_SUPPLIERS_VAL_V PSV
                   WHERE p_headers_rec.vendor_id(i) = PSV.vendor_id);
Line: 750

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 756

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_vendor_id_list, l_vendor_name_list;
Line: 761

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 799

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.vendor_site_id(i)
         , p_headers_rec.vendor_site_code(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
      p_headers_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_header_create, 'UPDATE')
      AND
      (
        (
          -- Handle null Supplier Sites for Create action only
          p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create
          AND (p_headers_rec.vendor_site_id(i) IS NULL
                OR p_headers_rec.vendor_site_id(i) = g_NULL_COLUMN_VALUE)
        )
        OR
        (
          -- Handle invalid Supplier Site id for Create/update action
          p_headers_rec.vendor_site_id(i) IS NOT NULL
          AND p_headers_rec.vendor_site_id(i) <> g_NULL_COLUMN_VALUE
          AND NOT EXISTS( SELECT 1
                         FROM PO_VENDOR_SITES_ALL PVSA
                         WHERE p_headers_rec.vendor_site_id(i) = PVSA.vendor_site_id)
        )
      );
Line: 831

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 837

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids,
                    l_vendor_site_id_list, l_vendor_site_code_list;
Line: 843

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 873

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.vendor_site_id(i)
         , p_headers_rec.vendor_site_code(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
      p_headers_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_header_create, 'UPDATE')
      -- ECO bug 5584556: Start
      -- The following 3 validation checks are already done above.
      -- So adding these additional where-clauses to skip those cases.
      AND p_headers_rec.vendor_site_id(i) IS NOT NULL
      AND p_headers_rec.vendor_site_id(i) <> g_NULL_COLUMN_VALUE
      AND EXISTS(SELECT 1
                 FROM PO_VENDOR_SITES_ALL PVSA
                 WHERE p_headers_rec.vendor_site_id(i) = PVSA.vendor_site_id)
      -- ECO bug 5584556: End
      AND NOT EXISTS(SELECT 1
                     FROM PO_SUPPLIER_SITES_VAL_V PSSV
                     WHERE p_headers_rec.vendor_site_id(i) = PSSV.vendor_site_id);
Line: 899

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 905

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids,
                    l_vendor_site_id_list, l_vendor_site_code_list;
Line: 911

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 947

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.vendor_contact_id(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
      p_headers_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_header_create, 'UPDATE')
      AND p_headers_rec.vendor_id(i) IS NOT NULL
      AND p_headers_rec.vendor_site_id(i) IS NOT NULL
      AND p_headers_rec.vendor_contact_id(i) IS NOT NULL
      AND NOT EXISTS(SELECT 1
                     FROM PO_VENDOR_CONTACTS PVC
                     WHERE p_headers_rec.vendor_site_id(i) = PVC.vendor_site_id
                       AND p_headers_rec.vendor_contact_id(i) = PVC.vendor_contact_id);
Line: 966

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 972

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_vendor_contact_id_list;
Line: 977

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 1020

          p_headers_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_header_create, 'UPDATE') --AND
          --p_headers_rec.has_errors(i) = 'N'
         ) THEN

          l_progress := '180';
Line: 1108

    SELECT location_code
    INTO x_location_name
    FROM HR_LOCATIONS_ALL_TL
    WHERE location_id = p_location_id
      AND language = userenv('LANG');
Line: 1198

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.ship_to_location_id(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND   (p_headers_rec.ship_to_location_id(i) IS NULL OR
           NOT EXISTS(SELECT 1
                      FROM HR_LOCATIONS_ALL HRLA
                      WHERE p_headers_rec.ship_to_location_id(i) = HRLA.location_id));
Line: 1214

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 1220

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_ship_to_loc_id_list;
Line: 1225

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 1254

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.ship_to_location_id(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    -- ECO bug 5584556: Start
    -- The following validation checks are already done above.
    -- So adding these additional where-clauses to skip those cases.
    AND p_headers_rec.ship_to_location_id(i) IS NOT NULL
    AND EXISTS(SELECT 'ID exists'
               FROM HR_LOCATIONS_ALL HRLA
               WHERE p_headers_rec.ship_to_location_id(i) = HRLA.location_id)
    -- ECO bug 5584556: End
    AND NOT EXISTS(SELECT 'Active ship-to-location'
                   FROM HR_LOCATIONS HRL
                   WHERE HRL.ship_to_site_flag = 'Y'
                     AND p_headers_rec.ship_to_location_id(i) = HRL.location_id
                     AND SYSDATE < NVL(HRL.inactive_date, SYSDATE + 1));
Line: 1279

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 1285

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_ship_to_loc_id_list;
Line: 1290

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 1393

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.bill_to_location_id(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND   (p_headers_rec.bill_to_location_id(i) IS NULL OR
           NOT EXISTS(SELECT 1
                      FROM HR_LOCATIONS_ALL HRLA
                      WHERE p_headers_rec.bill_to_location_id(i) = HRLA.location_id));
Line: 1409

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 1415

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_bill_to_loc_id_list;
Line: 1420

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 1448

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.bill_to_location_id(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    -- ECO bug 5584556: Start
    -- The following validation checks are already done above.
    -- So adding these additional where-clauses to skip those cases.
    AND p_headers_rec.bill_to_location_id(i) IS NOT NULL
    AND EXISTS(SELECT 'ID exists'
               FROM HR_LOCATIONS_ALL HRLA
               WHERE p_headers_rec.bill_to_location_id(i) = HRLA.location_id)
    -- ECO bug 5584556: End
    AND NOT EXISTS(SELECT 1
                   FROM HR_LOCATIONS HRL
                   WHERE HRL.bill_to_site_flag = 'Y'
                     AND p_headers_rec.bill_to_location_id(i) = HRL.location_id
                     AND SYSDATE < NVL(HRL.inactive_date, SYSDATE + 1));
Line: 1473

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 1479

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_bill_to_loc_id_list;
Line: 1484

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 1569

    SELECT displayed_field
    INTO x_lookup_meaning
    FROM PO_LOOKUP_CODES
    WHERE lookup_code = p_po_lookup_code
      AND lookup_type = p_po_lookup_type;
Line: 1659

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.fob(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
          p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
      AND p_headers_rec.fob(i) IS NOT NULL
      AND NOT EXISTS(SELECT 1
                       FROM PO_LOOKUP_CODES PLC
                      WHERE p_headers_rec.fob(i) = PLC.lookup_code
                        AND PLC.lookup_type = 'FOB'
                        AND SYSDATE < NVL(PLC.inactive_date, SYSDATE + 1));
Line: 1677

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 1683

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_fob_lookup_code_list;
Line: 1688

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 1795

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.freight_carrier(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND p_headers_rec.freight_carrier(i) IS NOT NULL
    AND NOT EXISTS(SELECT 1
                   FROM ORG_FREIGHT OFR
                   WHERE p_headers_rec.freight_carrier(i) = OFR.freight_code
                   AND NVL(OFR.disable_date, SYSDATE + 1) > SYSDATE
                   AND OFR.organization_id = PO_R12_CAT_UPG_PVT.g_sys.inv_org_id);
Line: 1813

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 1819

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_ship_via_luc_list;
Line: 1824

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 1918

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.freight_terms(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND p_headers_rec.freight_terms(i) IS NOT NULL
    AND NOT EXISTS(
          SELECT 1
            FROM PO_LOOKUP_CODES PLC
           WHERE p_headers_rec.freight_terms(i) = PLC.lookup_code
             AND PLC.lookup_type = 'FREIGHT TERMS'
             AND SYSDATE < NVL(PLC.inactive_date, SYSDATE + 1));
Line: 1937

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 1943

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_freight_terms_list;
Line: 1948

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 2031

    SELECT name
    INTO x_terms_name
    FROM AP_TERMS_TL
    WHERE term_id = p_terms_id
      AND language = userenv('LANG');
Line: 2119

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.terms_id(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND p_headers_rec.terms_id(i) IS NOT NULL
    AND NOT EXISTS
          (SELECT 1
           FROM AP_TERMS APT
           WHERE p_headers_rec.terms_id(i) = APT.term_id
             AND sysdate BETWEEN
                    nvl(APT.start_date_active, sysdate - 1) AND
                    nvl(APT.end_date_active, sysdate + 1));
Line: 2139

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 2145

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_terms_id_list;
Line: 2150

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 2255

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.shipping_control(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
    p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND p_headers_rec.shipping_control(i) IS NOT NULL
    AND NOT EXISTS(
        SELECT 1
          FROM PO_LOOKUP_CODES PLC
         WHERE p_headers_rec.shipping_control(i) = PLC.lookup_code
           AND PLC.lookup_type = 'SHIPPING CONTROL'
           AND SYSDATE < NVL(PLC.inactive_date, SYSDATE + 1));
Line: 2274

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 2280

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_shipping_control_list;
Line: 2285

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 2414

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_headers_rec.interface_header_id(i)
         , p_headers_rec.rate_type_code(i)
    FROM DUAL
    WHERE --p_headers_rec.has_errors(i) = 'N'
        p_headers_rec.action(i) = PO_R12_CAT_UPG_PVT.g_action_header_create --Bug#5018883
    AND p_headers_rec.currency_code(i) <> PO_R12_CAT_UPG_PVT.g_sys.currency_code
    AND p_headers_rec.rate_type_code(i) IS NOT NULL
    AND NOT EXISTS(
        SELECT 'Rate type exists'
          FROM GL_DAILY_CONVERSION_TYPES_V GLDCT
         WHERE GLDCT.conversion_type = p_headers_rec.rate_type_code(i));
Line: 2432

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 2438

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids, l_err_rate_type_code_list;
Line: 2443

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 2526

  SELECT PO_SESSION_GT_S.nextval
  INTO l_key
  FROM DUAL;
Line: 2689

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              num4)
    SELECT p_key
         , l_subscript_array(i)
         , p_lines_rec.interface_header_id(i)
         , p_lines_rec.interface_line_id(i)
         , p_lines_rec.item_id(i)
    FROM PO_LINE_TYPES_B PLT
    WHERE --p_lines_rec.has_errors(i) = 'N'
      p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE')
      AND p_lines_rec.item_id(i) is not null
      AND p_lines_rec.line_type_id(i) is not null
      AND p_lines_rec.line_type_id(i)= PLT.line_type_id
      AND PLT.outside_operation_flag is not null
      AND NOT EXISTS (SELECT 1
               FROM MTL_SYSTEM_ITEMS MSI
               WHERE MSI.inventory_item_id = p_lines_rec.item_id(i)
               AND MSI.organization_id = PO_R12_CAT_UPG_PVT.g_sys.inv_org_id
               AND MSI.enabled_flag = 'Y'
               AND MSI.purchasing_item_flag = 'Y'
               AND MSI.purchasing_enabled_flag = 'Y'
               AND MSI.outside_operation_flag = PLT.outside_operation_flag
               AND TRUNC(nvl(MSI.start_date_active, sysdate))<= TRUNC(sysdate)
               AND TRUNC(nvl(MSI.end_date_active, sysdate)) >= TRUNC(sysdate));
Line: 2717

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 2723

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, num4
  BULK COLLECT INTO l_indexes, l_interface_header_ids,
                    l_interface_line_ids, l_item_id_list;
Line: 2729

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 2828

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_lines_rec.interface_header_id(i)
         , p_lines_rec.interface_line_id(i)
         , p_lines_rec.item_description(i)
    FROM DUAL
    WHERE --p_lines_rec.has_errors(i) = 'N'
      p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE')
      AND (p_lines_rec.item_description(i) is null OR
          (p_lines_rec.item_id(i) is not null AND
           EXISTS (SELECT 1
                  FROM MTL_SYSTEM_ITEMS MSI
                  WHERE MSI.inventory_item_id = p_lines_rec.item_id(i)
                  AND MSI.organization_id = PO_R12_CAT_UPG_PVT.g_sys.inv_org_id
                  AND MSI.allow_item_desc_update_flag = 'N'
                  AND p_lines_rec.item_description(i) <> MSI.description)));
Line: 2851

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 2857

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids,
                    l_interface_line_ids, l_item_description_list;
Line: 2863

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 2968

            (p_lines_rec.action(i) = 'UPDATE' AND
             p_lines_rec.created_by(i) = PO_R12_CAT_UPG_PVT.g_R12_UPGRADE_USER)
        )
        AND
        p_lines_rec.uom_code(i) IS NULL) THEN

      l_progress := '060';
Line: 3000

        p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE') AND
        p_lines_rec.unit_of_measure(i) IS NULL AND
        p_lines_rec.uom_code(i) IS NOT NULL) THEN

      l_progress := '030';
Line: 3008

        SELECT unit_of_measure
          INTO p_lines_rec.unit_of_measure(i)
          FROM PO_UNITS_OF_MEASURE_VAL_V
         WHERE uom_code = p_lines_rec.uom_code(i)
           -- ECO bug 5584556: This validation is already done above.
           -- So skip these cases.
           AND uom_code IS NOT NULL;
Line: 3040

            (p_lines_rec.action(i) = 'UPDATE' AND
             p_lines_rec.created_by(i) = PO_R12_CAT_UPG_PVT.g_R12_UPGRADE_USER)
        )
        AND p_lines_rec.unit_of_measure(i) IS NULL
        -- ECO bug 5584556: This validation is already done above.
        -- So skip these cases.
        AND p_lines_rec.uom_code(i) IS NOT NULL) THEN
        -- ECO bug 5584556: End

      l_progress := '060';
Line: 3078

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              char1,
                              char2)
    SELECT p_key
         , l_subscript_array(i)
         , p_lines_rec.interface_header_id(i)
         , p_lines_rec.interface_line_id(i)
         , p_lines_rec.unit_of_measure(i)
         , p_lines_rec.uom_code(i)
    FROM DUAL
    WHERE --p_lines_rec.has_errors(i) = 'N'
    p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE')
    AND p_lines_rec.unit_of_measure(i) is not null
    AND p_lines_rec.uom_code(i) is not null
    AND ( (p_lines_rec.item_id(i) is not null
           AND NOT EXISTS (SELECT 1
                             FROM MTL_ITEM_UOMS_VIEW MIUV
                            WHERE MIUV.inventory_item_id = p_lines_rec.item_id(i)
                              AND MIUV.organization_id = PO_R12_CAT_UPG_PVT.g_sys.inv_org_id
                              AND MIUV.unit_of_measure = p_lines_rec.unit_of_measure(i)))
         OR
          (p_lines_rec.item_id(i) is null
           AND NOT EXISTS (SELECT 1
                             FROM MTL_UNITS_OF_MEASURE MUOM
                            WHERE MUOM.unit_of_measure = p_lines_rec.unit_of_measure(i)
                              AND sysdate < NVL(disable_date, sysdate+1))));
Line: 3108

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 3114

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, char1, char2
  BULK COLLECT INTO l_indexes, l_interface_header_ids,
                    l_interface_line_ids, l_unit_of_measure_list, l_uom_code_list;
Line: 3120

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 3210

        p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE') AND
        p_lines_rec.item_id(i) IS NULL AND
        p_lines_rec.item_revision(i) IS NOT NULL) THEN

      l_progress := '030';
Line: 3244

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              num4,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_lines_rec.interface_header_id(i)
         , p_lines_rec.interface_line_id(i)
         , p_lines_rec.item_id(i)
         , p_lines_rec.item_revision(i)
    FROM DUAL
    WHERE --p_lines_rec.has_errors(i) = 'N'
      p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE')
      AND p_lines_rec.item_revision(i) is not null
      AND p_lines_rec.item_id(i) is not null
      AND NOT EXISTS (SELECT 1
                     FROM MTL_ITEM_REVISIONS MIR
                     WHERE MIR.inventory_item_id = p_lines_rec.item_id(i)
                       AND MIR.revision = p_lines_rec.item_revision(i));
Line: 3266

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 3272

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, num4, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids,
                    l_interface_line_ids, l_item_id_list, l_item_revision_list;
Line: 3278

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 3358

    SELECT concatenated_segments
    INTO x_category_name
    FROM MTL_CATEGORIES_B_KFV
    WHERE category_id = p_category_id;
Line: 3427

    SELECT category_name
    INTO x_ip_category_name
    FROM ICX_CAT_CATEGORIES_V
    WHERE rt_category_id = p_ip_category_id
      AND language = userenv('LANG');
Line: 3550

            (p_lines_rec.action(i) = 'UPDATE' AND
             p_lines_rec.created_by(i) = PO_R12_CAT_UPG_PVT.g_R12_UPGRADE_USER)
        )
        AND
        (p_lines_rec.category_id(i) IS NULL
         OR p_lines_rec.category_id(i) = g_NULL_COLUMN_VALUE)) -- -2
    THEN

      l_progress := '030';
Line: 3600

  SELECT validate_flag, category_set_id
  INTO l_validate_flag, l_category_set_id
  FROM MTL_CATEGORY_SETS_V
  WHERE category_set_id =
       (SELECT   category_set_id
        FROM     MTL_DEFAULT_CATEGORY_SETS
        WHERE    functional_area_id = 2) ; -- Purchasing
Line: 3618

    INSERT INTO PO_SESSION_GT(key,
                              num1,
                              num2,
                              num3,
                              num4,
                              num5,
                              char1)
    SELECT p_key
         , l_subscript_array(i)
         , p_lines_rec.interface_header_id(i)
         , p_lines_rec.interface_line_id(i)
         , p_lines_rec.item_id(i)
         , p_lines_rec.category_id(i)
         , p_lines_rec.category(i) -- category name
    FROM DUAL
    WHERE --p_lines_rec.has_errors(i) = 'N'
      p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE')
      AND p_lines_rec.item_id(i) is not null
      AND p_lines_rec.category_id(i) is not null
      AND p_lines_rec.category_id(i) <> g_NULL_COLUMN_VALUE -- -2
      AND NOT EXISTS (SELECT 1
                     FROM MTL_ITEM_CATEGORIES MIC,
                          MTL_CATEGORIES MCS
                     WHERE
                         MIC.category_id = MCS.category_id
                     AND MIC.category_set_id = l_category_set_id
                     AND MIC.category_id = p_lines_rec.category_id(i)
                     AND MIC.inventory_item_id = p_lines_rec.item_id(i)
                     AND MIC.organization_id = PO_R12_CAT_UPG_PVT.g_sys.inv_org_id
                     AND sysdate < nvl(MCS.disable_date, sysdate+1)
                     AND MCS.enabled_flag = 'Y');
Line: 3650

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 3656

  DELETE FROM PO_SESSION_GT
  WHERE  key = p_key
  RETURNING num1, num2, num3, num4, num5, char1
  BULK COLLECT INTO l_indexes, l_interface_header_ids,
                    l_interface_line_ids, l_item_id_list,
                    l_category_id_list, l_category_name_list;
Line: 3663

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 3710

      INSERT INTO PO_SESSION_GT(key,
                                num1,
                                num2,
                                num3,
                                num4,
                                char1)
      SELECT p_key
           , l_subscript_array(i)
           , p_lines_rec.interface_header_id(i)
           , p_lines_rec.interface_line_id(i)
           , p_lines_rec.category_id(i)
           , p_lines_rec.category(i) -- category name
      FROM DUAL
      WHERE --p_lines_rec.has_errors(i) = 'N'
      p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE')
      AND p_lines_rec.item_id(i) is null
      AND p_lines_rec.category_id(i) is not null
      AND p_lines_rec.category_id(i) <> g_NULL_COLUMN_VALUE -- -2
      AND NOT EXISTS
          (SELECT 'Y'
           FROM MTL_CATEGORIES_VL MCS,
                MTL_CATEGORY_SET_VALID_CATS MCSVC
          WHERE MCS.category_id = p_lines_rec.category_id(i)
            AND MCS.category_id = MCSVC.category_id
            AND MCSVC.category_set_id = l_category_set_id
            AND sysdate < nvl(MCS.disable_date, sysdate+1)
            AND MCS.enabled_flag = 'Y');
Line: 3738

    IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 3744

    DELETE FROM PO_SESSION_GT
    WHERE  key = p_key
    RETURNING num1, num2, num3, num4, char1
    BULK COLLECT INTO l_indexes, l_interface_header_ids,
                      l_interface_line_ids,
                      l_category_id_list, l_category_name_list;
Line: 3751

    IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 3798

      INSERT INTO PO_SESSION_GT(key,
                                num1,
                                num2,
                                num3,
                                num4,
                                char1)
      SELECT p_key
           , l_subscript_array(i)
           , p_lines_rec.interface_header_id(i)
           , p_lines_rec.interface_line_id(i)
           , p_lines_rec.category_id(i)
           , p_lines_rec.category(i) -- category name
      FROM DUAL
      WHERE --p_lines_rec.has_errors(i) = 'N'
      p_lines_rec.action(i) IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE')
      AND p_lines_rec.item_id(i) is null
      AND p_lines_rec.category_id(i) is not null
      AND p_lines_rec.category_id(i) <> g_NULL_COLUMN_VALUE -- -2
      AND NOT EXISTS
          (SELECT 1
           FROM MTL_CATEGORIES_VL MCS
           WHERE MCS.category_id = p_lines_rec.category_id(i)
             AND sysdate < nvl(MCS.disable_date, sysdate+1)
             AND MCS.enabled_flag = 'Y');
Line: 3823

    IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows insert into GT table='||SQL%rowcount); END IF;
Line: 3829

    DELETE FROM PO_SESSION_GT
    WHERE  key = p_key
    RETURNING num1, num2, num3, num4, char1
    BULK COLLECT INTO l_indexes, l_interface_header_ids,
                      l_interface_line_ids,
                      l_category_id_list, l_category_name_list;
Line: 3836

    IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of rows deleted from GT table='||SQL%rowcount); END IF;
Line: 3934

            (p_lines_rec.action(i) = 'UPDATE' AND
             p_lines_rec.created_by(i) = PO_R12_CAT_UPG_PVT.g_R12_UPGRADE_USER)
        )
        AND
        (p_lines_rec.unit_price(i) IS NULL OR
         p_lines_rec.unit_price(i) < 0)) THEN

      l_progress := '030';
Line: 4024

  SELECT PO_SESSION_GT_S.nextval
  INTO l_key
  FROM DUAL;
Line: 4156

  UPDATE PO_LINES_INTERFACE POLI
  SET POLI.processing_id = -POLI.processing_id,
      POLI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POLI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POLI.action = 'ORIGINAL'
  RETURNING POLI.interface_line_id, POLI.interface_header_id
  BULK COLLECT INTO l_err_line_ids, l_err_header_ids;
Line: 4198

  l_err_attr_values_ids.DELETE;
Line: 4199

  l_err_line_ids.DELETE;
Line: 4200

  l_err_header_ids.DELETE;
Line: 4209

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = PO_R12_CAT_UPG_PVT.g_action_attr_create
    AND (
           POAI.interface_line_id IS NULL
         OR
            -- the following are NOT NULL columns in the TXN table, so they must
            -- have a not null value in the INTF table as well.
           (
            --POAI.po_line_id IS NULL OR
            POAI.req_template_name IS NULL OR
            POAI.req_template_line_num IS NULL OR
            POAI.org_id IS NULL OR
            POAI.inventory_item_id IS NULL OR
            POAI.ip_category_id IS NULL
           )
        )
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 4260

  l_err_attr_values_ids.DELETE;
Line: 4261

  l_err_line_ids.DELETE;
Line: 4262

  l_err_header_ids.DELETE;
Line: 4265

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = PO_R12_CAT_UPG_PVT.g_action_attr_create
    AND (EXISTS
              (SELECT 'Invalid relationship with Line Level'
               FROM PO_LINES_INTERFACE POLI
               WHERE POLI.interface_line_id = POAI.interface_line_id
                 AND (  -- Attribute Row for GBPA must have appr action at line level
                        (POAI.req_template_name = g_NOT_REQUIRED_REQ_TEMPLATE AND
                         POAI.req_template_line_num = g_NOT_REQUIRED_ID AND
                         POLI.action NOT IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE', 'DELETE'))
        )))
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 4303

  l_err_attr_values_ids.DELETE;
Line: 4304

  l_err_line_ids.DELETE;
Line: 4305

  l_err_header_ids.DELETE;
Line: 4313

  l_err_attr_values_ids.DELETE;
Line: 4314

  l_err_line_ids.DELETE;
Line: 4315

  l_err_header_ids.DELETE;
Line: 4318

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = PO_R12_CAT_UPG_PVT.g_action_attr_create
    AND (EXISTS
              (SELECT 'Invalid relationship with Line Level'
               FROM PO_LINES_INTERFACE POLI
               WHERE POLI.interface_line_id = POAI.interface_line_id
                 AND (  -- Attribute Row for ReqTemplate must have action as REQTEMPALTE at line level
                        ((POAI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE OR
                          POAI.req_template_line_num <> g_NOT_REQUIRED_ID) AND
                          POLI.action NOT IN ('REQTEMPLATE'))
        )))
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 4356

  l_err_attr_values_ids.DELETE;
Line: 4357

  l_err_line_ids.DELETE;
Line: 4358

  l_err_header_ids.DELETE;
Line: 4361

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = PO_R12_CAT_UPG_PVT.g_action_attr_create
    AND (
           ( -- For ReqTemplates, ALL the 3 columns must be given
             (POAI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE AND
              (POAI.req_template_line_num = g_NOT_REQUIRED_ID OR
               POAI.org_id = g_NOT_REQUIRED_ID))
             OR
             (POAI.req_template_line_num <> g_NOT_REQUIRED_ID AND
              (POAI.req_template_name = g_NOT_REQUIRED_REQ_TEMPLATE OR
               POAI.org_id = g_NOT_REQUIRED_ID))
           )
        )
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 4401

  l_err_attr_values_ids.DELETE;
Line: 4402

  l_err_line_ids.DELETE;
Line: 4403

  l_err_header_ids.DELETE;
Line: 4406

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = PO_R12_CAT_UPG_PVT.g_action_attr_create
    AND (
           (-- For ReqTemplates, the ReqTemplate Line must exist in Txn tables
            POAI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE AND
            POAI.req_template_line_num <> g_NOT_REQUIRED_ID AND
            POAI.org_id <> g_NOT_REQUIRED_ID AND
            NOT EXISTS
              (SELECT 'ReqTemplate Line in txn tables'
               FROM PO_REQEXPRESS_LINES_ALL PORT
               WHERE PORT.express_name = POAI.req_template_name
                 AND PORT.sequence_num = POAI.req_template_line_num
                 AND PORT.org_id = POAI.org_id)
           )
        )
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 4475

  l_err_attr_values_ids.DELETE;
Line: 4476

  l_err_attr_values_tlp_ids.DELETE;
Line: 4477

  l_err_line_ids.DELETE;
Line: 4478

  l_err_header_ids.DELETE;
Line: 4487

  UPDATE PO_ATTR_VALUES_TLP_INTERFACE POATI
  SET POATI.processing_id = -POATI.processing_id,
      POATI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POATI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POATI.action = PO_R12_CAT_UPG_PVT.g_action_tlp_create
    AND (
           POATI.language IS NULL
         OR
           POATI.interface_line_id IS NULL
         OR
            -- the following are NOT NULL columns in the TXN table, so they must
            -- have a not null value in the INTF table as well.
           (
            --POATI.po_line_id IS NULL OR
            POATI.req_template_name IS NULL OR
            POATI.req_template_line_num IS NULL OR
            POATI.org_id IS NULL OR
            POATI.inventory_item_id IS NULL OR
            POATI.ip_category_id IS NULL OR
            POATI.description IS NULL
           )
         OR
           (EXISTS
              (SELECT 'Invalid relationship with Line Level'
               FROM PO_LINES_INTERFACE POLI
               WHERE POLI.interface_line_id = POATI.interface_line_id
                 AND (  -- Attribute Row for GBPA must have appr action at line level
                        (POATI.req_template_name = g_NOT_REQUIRED_REQ_TEMPLATE AND
                         POATI.req_template_line_num = g_NOT_REQUIRED_ID AND
                         POLI.action NOT IN (PO_R12_CAT_UPG_PVT.g_action_line_create, 'UPDATE', 'DELETE'))
                      OR
                        -- Attribute Row for ReqTemplate must have action as REQTEMPALTE at line level
                        ((POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE OR
                          POATI.req_template_line_num <> g_NOT_REQUIRED_ID) AND
                         POLI.action NOT IN ('REQTEMPLATE'))
                     )
              )
           )
         OR
           ( -- For ReqTemplates, ALL the 3 columns must be given
             (POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE AND
              (POATI.req_template_line_num = g_NOT_REQUIRED_ID OR
               POATI.org_id = g_NOT_REQUIRED_ID))
             OR
             (POATI.req_template_line_num <> g_NOT_REQUIRED_ID AND
              (POATI.req_template_name = g_NOT_REQUIRED_REQ_TEMPLATE OR
               POATI.org_id = g_NOT_REQUIRED_ID))
           )
         OR
           (-- For ReqTemplates, the ReqTemplate Line must exist in Txn tables
            POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE AND
            POATI.req_template_line_num <> g_NOT_REQUIRED_ID AND
            POATI.org_id <> g_NOT_REQUIRED_ID AND
            NOT EXISTS
              (SELECT 'ReqTemplate Line in txn tables'
               FROM PO_REQEXPRESS_LINES_ALL PORT
               WHERE PORT.express_name = POATI.req_template_name
                 AND PORT.sequence_num = POATI.req_template_line_num
                 AND PORT.org_id = POATI.org_id)
           )
        )
  RETURNING POATI.interface_attr_values_tlp_id, POATI.interface_line_id, POATI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_tlp_ids, l_err_line_ids, l_err_header_ids;
Line: 4640

  UPDATE PO_HEADERS_INTERFACE POHI
  SET POHI.processing_id = -POHI.processing_id,
      POHI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POHI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POHI.action = 'ADD'
  RETURNING POHI.interface_header_id
  BULK COLLECT INTO l_err_header_ids;
Line: 4681

  UPDATE PO_LINES_INTERFACE POLI
  SET POLI.processing_id = -POLI.processing_id,
      POLI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POLI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POLI.action = PO_R12_CAT_UPG_PVT.g_action_line_create -- ADD
    AND (POLI.interface_header_id IS NULL OR
         (POLI.po_header_id IS NOT NULL AND
          NOT EXISTS
           (SELECT 'PO_HEADER_ID points to valid doc'
            FROM PO_HEADERS_ALL POH
            WHERE POH.po_header_id = POLI.po_header_id)))
  RETURNING POLI.interface_line_id, POLI.interface_header_id
  BULK COLLECT INTO l_err_line_ids, l_err_header_ids;
Line: 4729

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = 'ORIGINAL'
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 4773

  UPDATE PO_ATTR_VALUES_TLP_INTERFACE POATI
  SET POATI.processing_id = -POATI.processing_id,
      POATI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POATI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POATI.action = 'ORIGINAL'
  RETURNING POATI.interface_attr_values_tlp_id, POATI.interface_line_id, POATI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_tlp_ids, l_err_line_ids, l_err_header_ids;
Line: 4844

PROCEDURE validate_update_action
(
  p_validate_only_mode           IN VARCHAR2 default FND_API.G_FALSE
)
IS
  l_api_name      CONSTANT VARCHAR2(30) := 'validate_update_action';
Line: 4872

  UPDATE PO_HEADERS_INTERFACE POHI
  SET POHI.processing_id = -POHI.processing_id,
      POHI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POHI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POHI.action = 'UPDATE'
    AND (POHI.po_header_id is null
         OR NOT EXISTS
           (SELECT 'document exists'
            FROM PO_HEADERS_ALL POH
            WHERE POH.po_header_id = POHI.po_header_id))
  RETURNING POHI.interface_header_id
  BULK COLLECT INTO l_err_header_ids;
Line: 4885

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid UPDATE action at Header level='||SQL%rowcount); END IF;
Line: 4919

  UPDATE PO_LINES_INTERFACE POLI
  SET POLI.processing_id = -POLI.processing_id,
      POLI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POLI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POLI.action = 'UPDATE'
    AND (POLI.po_line_id is null
         OR NOT EXISTS
           (SELECT 'line exists'
            FROM PO_LINES_ALL POL
            WHERE POL.po_line_id = POLI.po_line_id))
  RETURNING POLI.interface_line_id, POLI.interface_header_id
  BULK COLLECT INTO l_err_line_ids, l_err_header_ids;
Line: 4932

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid UPDATE action at Line level='||SQL%rowcount); END IF;
Line: 4970

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = 'UPDATE'
    AND (
            -- the following are NOT NULL columns in the TXN table, so they must
            -- have a not null value in the INTF table as well.
           (
            POAI.po_line_id IS NULL OR
            POAI.req_template_name IS NULL OR
            POAI.req_template_line_num IS NULL OR
            POAI.org_id IS NULL OR
            POAI.inventory_item_id IS NULL
            --OR POAI.ip_category_id IS NULL
           )
         OR
          -- If all 3 Primary Keys are -2, its an error
          -- We need at least one PK reference to update in txn tables
           (POAI.po_line_id = g_NOT_REQUIRED_ID
            AND (POAI.req_template_name = g_NOT_REQUIRED_REQ_TEMPLATE
                 OR POAI.req_template_line_num = g_NOT_REQUIRED_ID))

         ---------------------------------------------------
         -- If PO_LINE_ID is given then RT keys must be null
         OR
           (POAI.po_line_id <> g_NOT_REQUIRED_ID
            AND (POAI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE
                 OR POAI.req_template_line_num <> g_NOT_REQUIRED_ID))
         ---------------------------------------------------

         -- IF PO_LINE_ID is given, then Attr for line must exist
         OR
           (POAI.po_line_id <> g_NOT_REQUIRED_ID
            AND NOT EXISTS
              (SELECT 'Attribute row exists for PO Line'
               FROM PO_ATTRIBUTE_VALUES POAV
               WHERE POAV.po_line_id = POAI.po_line_id))
         -- IF RT keys is given, then Attr for RT line must exist
         OR
           (POAI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE
            AND POAI.req_template_line_num <> g_NOT_REQUIRED_ID
            AND NOT EXISTS
              (SELECT 'Attribute row exists for Req Template Line'
               FROM PO_ATTRIBUTE_VALUES POAV
               WHERE POAV.req_template_name = POAI.req_template_name
                 AND POAV.req_template_line_num = POAI.req_template_line_num))
        )
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 5021

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid UPDATE action at Attr level='||SQL%rowcount); END IF;
Line: 5060

  UPDATE PO_ATTR_VALUES_TLP_INTERFACE POATI
  SET POATI.processing_id = -POATI.processing_id,
      POATI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POATI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POATI.action = 'UPDATE'
    AND (
            -- the following are NOT NULL columns in the TXN table, so they must
            -- have a not null value in the INTF table as well.
           (
            POATI.po_line_id IS NULL OR
            POATI.req_template_name IS NULL OR
            POATI.req_template_line_num IS NULL OR
            POATI.org_id IS NULL OR
            POATI.inventory_item_id IS NULL OR
            POATI.ip_category_id IS NULL --OR
            --POATI.description IS NULL
           )

         OR POATI.language IS NULL

         OR
         -- If all 3 Primary Keys are NULL, its an error
         -- We need at least one PK reference to update in txn tables
           (POATI.po_line_id = g_NOT_REQUIRED_ID
            AND (POATI.req_template_name = g_NOT_REQUIRED_REQ_TEMPLATE
                 OR POATI.req_template_line_num = g_NOT_REQUIRED_ID))

         ---------------------------------------------------
         -- If PO_LINE_ID is given then RT keys must be null
         OR
           (POATI.po_line_id <> g_NOT_REQUIRED_ID
            AND (POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE
                 OR POATI.req_template_line_num <> g_NOT_REQUIRED_ID))
         ---------------------------------------------------

         -- IF PO_LINE_ID is given, then Attr for line must exist
         OR
           (POATI.po_line_id <> g_NOT_REQUIRED_ID
            AND NOT EXISTS
              (SELECT 'Attribute TLP row exists for PO Line'
               FROM PO_ATTRIBUTE_VALUES_TLP POTLP
               WHERE POTLP.po_line_id = POATI.po_line_id
                 AND POTLP.language = POATI.language))
         -- IF RT keys is given, then:
         --   1. ORG_ID must be given
         --   2. TLP row for RT line must exist
         OR
           (POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE
            AND POATI.req_template_line_num <> g_NOT_REQUIRED_ID
            AND (POATI.org_id = g_NOT_REQUIRED_ID OR
                 NOT EXISTS
                  (SELECT 'Attribute row exists for Req Template Line'
                   FROM PO_ATTRIBUTE_VALUES_TLP POTLP
                   WHERE POTLP.req_template_name = POATI.req_template_name
                     AND POTLP.req_template_line_num = POATI.req_template_line_num
                     AND POTLP.org_id = POATI.org_id
                     AND POTLP.language = POATI.language)))
        )
  RETURNING POATI.interface_attr_values_tlp_id, POATI.interface_line_id, POATI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_tlp_ids, l_err_line_ids, l_err_header_ids;
Line: 5121

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid UPDATE action at TLP level='||SQL%rowcount); END IF;
Line: 5142

END validate_update_action;
Line: 5180

PROCEDURE validate_delete_action
(
  p_validate_only_mode           IN VARCHAR2 default FND_API.G_FALSE
)
IS
  l_api_name      CONSTANT VARCHAR2(30) := 'validate_delete_action';
Line: 5210

  UPDATE PO_HEADERS_INTERFACE POHI
  SET POHI.processing_id = -POHI.processing_id,
      POHI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POHI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POHI.action = 'DELETE'
    AND (POHI.po_header_id is null
         OR EXISTS
           (SELECT 'document not created by migration program'
            FROM PO_HEADERS_ALL POH
            WHERE POH.po_header_id = POHI.po_header_id
              AND POH.created_by <> PO_R12_CAT_UPG_PVT.g_R12_UPGRADE_USER))
  RETURNING POHI.interface_header_id
  BULK COLLECT INTO l_err_header_ids;
Line: 5224

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid DELETE action at Header level='||SQL%rowcount); END IF;
Line: 5258

  UPDATE PO_LINES_INTERFACE POLI
  SET POLI.processing_id = -POLI.processing_id,
      POLI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POLI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POLI.action = 'DELETE'
    AND (POLI.po_line_id is null
         OR EXISTS
           (SELECT 'line not created by migration program'
            FROM PO_LINES_ALL POL
            WHERE POL.po_line_id = POLI.po_line_id
              AND POL.created_by <> PO_R12_CAT_UPG_PVT.g_R12_UPGRADE_USER))
  RETURNING POLI.interface_line_id, POLI.interface_header_id
  BULK COLLECT INTO l_err_line_ids, l_err_header_ids;
Line: 5272

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid DELETE action at Line level='||SQL%rowcount); END IF;
Line: 5310

  UPDATE PO_ATTR_VALUES_INTERFACE POAI
  SET POAI.processing_id = -POAI.processing_id,
      POAI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POAI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POAI.action = 'DELETE'
  RETURNING POAI.interface_attr_values_id, POAI.interface_line_id, POAI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_ids, l_err_line_ids, l_err_header_ids;
Line: 5318

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid DELETE action at Attr level='||SQL%rowcount); END IF;
Line: 5373

  UPDATE PO_ATTR_VALUES_TLP_INTERFACE POATI
  SET POATI.processing_id = -POATI.processing_id,
      POATI.process_code = PO_R12_CAT_UPG_PVT.g_PROCESS_CODE_REJECTED
  WHERE POATI.processing_id = PO_R12_CAT_UPG_PVT.g_processing_id
    AND POATI.action = 'DELETE'
    AND (
            -- the following are NOT NULL columns in the TXN table, so they must
            -- have a not null value in the INTF table as well.
           (
            POATI.po_line_id IS NULL OR
            POATI.req_template_name IS NULL OR
            POATI.req_template_line_num IS NULL OR
            POATI.org_id IS NULL
           )

         OR POATI.language IS NULL

         OR
         -- If all 3 Primary Keys are NULL, its an error
         -- We need at least one PK reference to update in txn tables
           (POATI.po_line_id = g_NOT_REQUIRED_ID
            AND (POATI.req_template_name = g_NOT_REQUIRED_REQ_TEMPLATE
                 OR POATI.req_template_line_num = g_NOT_REQUIRED_ID))

         ---------------------------------------------------
         -- If PO_LINE_ID is given then RT keys must be null
         OR
           (POATI.po_line_id <> g_NOT_REQUIRED_ID
            AND (POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE
                 OR POATI.req_template_line_num <> g_NOT_REQUIRED_ID))
         ---------------------------------------------------

         -- IF PO_LINE_ID is given, then Attr for line must exist
         OR
           (POATI.po_line_id <> g_NOT_REQUIRED_ID
            AND NOT EXISTS
              (SELECT 'Attribute TLP row exists for PO Line'
               FROM PO_ATTRIBUTE_VALUES_TLP POTLP
               WHERE POTLP.po_line_id = POATI.po_line_id
                 AND POTLP.language = POATI.language))
         -- IF RT keys is given, then:
         --    1. ORG_ID must be given
         --    2. TLP row for RT line must exist
         OR
           (POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE
            AND POATI.req_template_line_num <> g_NOT_REQUIRED_ID
            AND (POATI.org_id = g_NOT_REQUIRED_ID OR
                 NOT EXISTS
                  (SELECT 'Attribute row exists for Req Template Line'
                   FROM PO_ATTRIBUTE_VALUES_TLP POTLP
                   WHERE POTLP.req_template_name = POATI.req_template_name
                     AND POTLP.req_template_line_num = POATI.req_template_line_num
                     AND POTLP.org_id = POATI.org_id
                     AND POTLP.language = POATI.language)))
         ---------------------------------------------------

         -- For GBPA/BPA/Quotations, you can not delete TLP row for created_language
         OR (POATI.po_line_id <> g_NOT_REQUIRED_ID
             AND EXISTS
              (SELECT 'TLP row for deletion is specified for created_lang'
               FROM PO_LINES_ALL POL,
                    PO_HEADERS_ALL POH
               WHERE POL.po_line_id = POATI.po_line_id
                 AND POH.po_header_id = POL.po_header_id
                 AND POH.created_language = POATI.language))
         -- For ReqTemplates, you can not delete TLP row for base_language
         OR (POATI.req_template_name <> g_NOT_REQUIRED_REQ_TEMPLATE AND
             POATI.req_template_line_num <> g_NOT_REQUIRED_ID AND
             POATI.language = l_base_language)
        )
  RETURNING POATI.interface_attr_values_tlp_id, POATI.interface_line_id, POATI.interface_header_id
  BULK COLLECT INTO l_err_attr_values_tlp_ids, l_err_line_ids, l_err_header_ids;
Line: 5446

  IF g_debug THEN PO_R12_CAT_UPG_DEBUG.log_stmt(l_log_head,l_progress,'Number of invalid DELETE action at TLP level='||SQL%rowcount); END IF;
Line: 5467

END validate_delete_action;