Monday, 13 June 2016

SCIENTIFIC NO CONVERSION FOR IN EXCEL SHOWING (653258741+) USE THIS

<?xdofx:PR_NO||'   '?>


To display numbers completely in the Excel output of BI publisher

<fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?CHAISE_NUMBER?></fo:b idi-override>

<fo:bidi-override direction="ltr" unicode-bidi="bidi-override"><?STRING_AGG_RECEIPT_NUMBER_?></fo:b idi-override>

Thursday, 28 January 2016

Autonomous Transactions

CREATE TABLE at_test (
  id           NUMBER       NOT NULL,
  description  VARCHAR2(50) NOT NULL
);

INSERT INTO at_test (id, description) VALUES (1, 'Description for 1');
INSERT INTO at_test (id, description) VALUES (2, 'Description for 2');

SELECT * FROM at_test;

        ID DESCRIPTION
---------- --------------------------------------------------
         1 Description for 1
         2 Description for 2

2 rows selected.

SQL>
Next, we insert another 8 rows using an anonymous block declared as an autonomous transaction, which contains a commit statement.
DECLARE
  PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  FOR i IN 3 .. 10 LOOP
    INSERT INTO at_test (id, description)
    VALUES (i, 'Description for ' || i);
  END LOOP;
  COMMIT;
END;
/

PL/SQL procedure successfully completed.

SELECT * FROM at_test;

        ID DESCRIPTION
---------- --------------------------------------------------
         1 Description for 1
         2 Description for 2
         3 Description for 3
         4 Description for 4
         5 Description for 5
         6 Description for 6
         7 Description for 7
         8 Description for 8
         9 Description for 9
        10 Description for 10

10 rows selected.

SQL>
As expected, we now have 10 rows in the table. If we now issue a rollback statement we get the following result.
ROLLBACK;
SELECT * FROM at_test;

        ID DESCRIPTION
---------- --------------------------------------------------
         3 Description for 3
         4 Description for 4
         5 Description for 5
         6 Description for 6
         7 Description for 7
         8 Description for 8
         9 Description for 9
        10 Description for 10

8 rows selected.

SQL>
The 2 rows inserted by our current session (transaction) have been rolled back, while the rows inserted by the autonomous transactions remain. The presence of the PRAGMA AUTONOMOUS_TRANSACTION compiler directive made the anonymous block run in its own transaction, so the internal commit statement did not affect the calling session. As a result rollback was still able to affect the DML issued by the current statement.
Autonomous transactions are commonly used by error logging routines, where the error messages must be preserved, regardless of the the commit/rollback status of the transaction. For example, the following table holds basic error messages.
CREATE TABLE error_logs (
  id             NUMBER(10)     NOT NULL,
  log_timestamp  TIMESTAMP      NOT NULL,
  error_message  VARCHAR2(4000),
  CONSTRAINT error_logs_pk PRIMARY KEY (id)
);

CREATE SEQUENCE error_logs_seq;
We define a procedure to log error messages as an autonomous transaction.
CREATE OR REPLACE PROCEDURE log_errors (p_error_message  IN  VARCHAR2) AS
  PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
  INSERT INTO error_logs (id, log_timestamp, error_message)
  VALUES (error_logs_seq.NEXTVAL, SYSTIMESTAMP, p_error_message);
  COMMIT;
END;
/
The following code forces an error, which is trapped and logged.
BEGIN
  INSERT INTO at_test (id, description)
  VALUES (998, 'Description for 998');

  -- Force invalid insert.
  INSERT INTO at_test (id, description)
  VALUES (999, NULL);
EXCEPTION
  WHEN OTHERS THEN
    log_errors (p_error_message => SQLERRM);
    ROLLBACK;
END;
/

PL/SQL procedure successfully completed.

SELECT * FROM at_test WHERE id >= 998;

no rows selected

SELECT * FROM error_logs;

        ID LOG_TIMESTAMP
---------- ---------------------------------------------------------------------------
ERROR_MESSAGE
----------------------------------------------------------------------------------------------------
         1 28-FEB-2006 11:10:10.107625
ORA-01400: cannot insert NULL into ("TIM_HALL"."AT_TEST"."DESCRIPTION")


1 row selected.

PL/SQL Table Using Bulk Collect


/* Formatted on 2016/01/28 14:22 (Formatter Plus v4.8.8) */
DECLARE
   TYPE amresh IS TABLE OF emp_test%ROWTYPE;

   objecttable   amresh;

   CURSOR cur
   IS
      SELECT *
        FROM emp_test;
BEGIN
   OPEN cur;

   LOOP
      FETCH cur
      BULK COLLECT INTO objecttable;

      FORALL i IN 1 .. objecttable.COUNT
         INSERT INTO emp_test_t
              VALUES objecttable (i);
      EXIT WHEN cur%NOTFOUND;
   END LOOP;

   CLOSE cur;
END;




CREATE TABLE EMP_TEST
(
  EMP_ID     NUMBER,
  ORG_CODE   VARCHAR2(50 BYTE),
  ITEM_CODE  VARCHAR2(250 BYTE),
  E_NUMBER   VARCHAR2(100 BYTE)
)


CREATE TABLE EMP_TEST_T
(
  EMP_ID     NUMBER,
  ORG_CODE   VARCHAR2(50 BYTE),
  ITEM_CODE  VARCHAR2(250 BYTE),
  E_NUMBER   VARCHAR2(100 BYTE)
)



/* Formatted on 2016/01/28 14:22 (Formatter Plus v4.8.8) */
DECLARE
   TYPE amresh IS TABLE OF emp_test%ROWTYPE;  -- THIS IS CALLED PL/SQL TABLE - OBJECT OF TYPE IS KNOW AS PL/SQL TABLE

   L_DATA   amresh;           ---- FROM TABLE IM GETTING DATA THROUGH AMRESH , FOR AMRESH IM DECLARING THE VARIABLE

   CURSOR cur
   IS
      SELECT *
        FROM emp_test;
BEGIN
   OPEN cur;

   LOOP
      FETCH cur
      BULK COLLECT INTO L_DATA;

      FORALL i IN 1 .. L_DATA.COUNT
         INSERT INTO emp_test_t
              VALUES L_DATA (i);
      EXIT WHEN cur%NOTFOUND;
   END LOOP;

   CLOSE cur;
END;

Tuesday, 21 July 2015

PO without PR not allowed

Trigger Event : WHEN-VALIDATE-RECORD
Triggr object : PO_HEADERS
Condition :
(:PO_HEADERS.DOC_TYPE_NAME ='Standard Purchase Order'
and ${item.po_headers.po_header_id.value} is null
and ((:system.block_status = 'NEW' AND :system.record_status = 'NEW')
OR (:system.block_status<> 'QUERY' AND :system.record_status <>'INSERT')
OR (:system.block_status<> 'QUERY' AND :system.record_status <> 'CHANGED'))
)

Actions:
Seq : 10
Type = Message
Message Type = Error
Message Text = 'PO without PR not allowed'


Seq : 20
Type = BuiltIn
Builtin Type = RAISE FORM_TRIGGER_FAILURE

Thursday, 9 July 2015

Intransit Query

SELECT
      ABC.SEGMENT1,
      ABC.FROM_ORG                              FROM_ORG,
      ABC.TO_ORG                            TO_ORG,
      BCD.INVOICE_NO                        INVOICE_NO,
      BCD.INVOICE_DATE                        INVOICE_DATE,
      BCD.ORDERED_DATE,
      ABC.ITEM_CODE                            ITEM_CODE,
      ABC.ITEM_NAME                            ITEM_NAME,
      ABC.ITEM_CAT                            ITEM_CAT,
      ABC.SEGMENT1                            REQ_NO,
      ABC.QTY_RECEIVED                        QTY,
      BCD.UNIT_PRICE                        UNIT_PRICE,
      ABC.QTY_RECEIVED*BCD.UNIT_PRICE        BASIC,
      BCD.TAX                                TAX,
      (ABC.QTY_RECEIVED*BCD.UNIT_PRICE)+BCD.TAX TOTAL,
      BCD.ORDER_NUMBER,
      BCD.LINE_ID,
      ABC.OU_NAME,
     abc.prod_cat,
     abc.org_id,
     abc.FROM_ORG_ID,
     abc.TO_ORG_ID,
     abc.item_id,
     abc.category_id,
     abc.need_by_date,
     abc.shipment_header_id,
       abc.shipment_line_id
FROM
      (SELECT
              PRHA.SEGMENT1                                                     SEGMENT1,
              RSL.ITEM_ID                                                    ITEM_ID,
              RSL.FROM_ORGANIZATION_ID                                        FROM_ORG_ID,
              RSL.TO_ORGANIZATION_ID                                        TO_ORG_ID,
              HLA1.LOCATION_CODE                                               FROM_ORG,
              HLA2.LOCATION_CODE                                               TO_ORG,
              RTRIM(LTRIM(msi.segment1||'-'||msi.segment2||'-'||msi.segment3||'-'||msi.segment4||'-'||msi.segment5||'-'||msi.segment6||'-'||msi.segment7||'-'||msi.segment8||'-'||msi.segment9)) ITEM_CODE,
              MSI.DESCRIPTION                                                ITEM_NAME,
              (SELECT X.DESCRIPTION
                 FROM MTL_ITEM_CATEGORIES Z,
                            MTL_CATEGORIES_tl X
               WHERE Z.CATEGORY_ID=X.CATEGORY_ID
                     AND Z.INVENTORY_ITEM_ID=MSI.INVENTORY_ITEM_ID
                     AND Z.ORGANIZATION_ID=(SELECT ORGANIZATION_ID
                                                                         FROM MTL_PARAMETERS Y
                                                                      WHERE Y.ORGANIZATION_CODE='001'))  ITEM_CAT,
              SUM(RSL.QUANTITY_SHIPPED - RSL.QUANTITY_RECEIVED)            QTY_RECEIVED,
              (SELECT name FROM hr_operating_units hou WHERE hou.organization_id = prla.org_id) ou_name,
              (SELECT ffv.description
                FROM FND_FLEX_VALUES_VL FFV
               WHERE flex_value_set_id =  1014898
                 AND flex_value = msi.SEGMENT1) prod_cat,
              prla.org_id,
              rsl.category_id ,
              prla.need_by_date,
              rsl.shipment_header_id,
              rsl.shipment_line_id
       FROM
               RCV_SHIPMENT_LINES RSL,
               MTL_SYSTEM_ITEMS_B MSI,
               HR_LOCATIONS_ALL HLA1,
               HR_LOCATIONS_ALL HLA2,
               PO_REQUISITION_LINES_ALL PRLA,
               PO_REQUISITION_HEADERS_ALL PRHA
       WHERE
                NVL(RSL.SHIPMENT_LINE_STATUS_CODE,'EXPECTED')!= 'FULLY RECEIVED'
                AND RSL.SOURCE_DOCUMENT_CODE = 'REQ'
                AND RSL.ITEM_ID = MSI.INVENTORY_ITEM_ID AND
                RSL.FROM_ORGANIZATION_ID = MSI.ORGANIZATION_ID AND
                RSL.FROM_ORGANIZATION_ID = HLA1.INVENTORY_ORGANIZATION_ID AND
                RSL.TO_ORGANIZATION_ID = HLA2.INVENTORY_ORGANIZATION_ID AND
                RSL.REQUISITION_LINE_ID = PRLA.REQUISITION_LINE_ID AND
                PRLA.REQUISITION_HEADER_ID = PRHA.REQUISITION_HEADER_ID
                AND RSL.SHIP_TO_LOCATION_ID = HLA2.LOCATION_ID
    AND HLA1.INACTIVE_DATE IS NULL      ----------------------Added by Raju(HCL) on 25-OCT-2013
                AND HLA2.INACTIVE_DATE IS NULL       ----------------------Added by Raju(HCL) on 25-OCT-2013
       and HLA1.ship_to_site_flag = 'Y'
       and HLA2.ship_to_site_flag = 'Y'
       and hla1.OBJECT_VERSION_NUMBER not like '3'
       GROUP BY
                RSL.ITEM_ID,
                PRHA.SEGMENT1,
                RSL.FROM_ORGANIZATION_ID,
                RSL.TO_ORGANIZATION_ID,
                HLA1.LOCATION_CODE,
                HLA2.LOCATION_CODE,
                msi.segment1||'-'||msi.segment2||'-'||msi.segment3||'-'||msi.segment4||'-'||msi.segment5||'-'||msi.segment6||'-'||msi.segment7||'-'||msi.segment8||'-'||msi.segment9,
                MSI.DESCRIPTION,
                rsl.category_id,
               MSI.INVENTORY_ITEM_ID,
                prla.org_id,
                msi.SEGMENT1,
                prla.need_by_date,
                rsl.shipment_header_id,
              rsl.shipment_line_id
       ORDER BY 2,3,4,5) ABC,
       (SELECT                   OOHA.ORIG_SYS_DOCUMENT_REF                                SEGMENT1,
                 OOHA.ORDER_NUMBER,
                 OOHA.ORDERED_DATE,
                 OOLA.LINE_ID,
                JISPL.INVENTORY_ITEM_ID                                  ITEM_ID,
                JISPL.VAT_INVOICE_NO                                     INVOICE_NO,
                TO_CHAR(JISPL.VAT_INVOICE_DATE,'DD-MON-RRRR')            INVOICE_DATE,
                JISPL.SELLING_PRICE                                      UNIT_PRICE,
                SUM(NVL(JISPL.TAX_AMOUNT, 0))                              TAX
        FROM
                OE_ORDER_HEADERS_ALL OOHA,
                OE_ORDER_LINES_ALL OOLA,
                JAI_OM_WSH_LINES_ALL  JISPL
        WHERE
                OOHA.HEADER_ID = JISPL.ORDER_HEADER_ID
          AND   OOHA.HEADER_ID = OOLA.HEADER_ID
          AND   OOLA.LINE_ID = JISPL.ORDER_LINE_ID and JISPL.SPLIT_FROM_DELIVERY_DETAIL_ID is null
        GROUP BY
                OOHA.ORIG_SYS_DOCUMENT_REF,
                OOHA.ORDER_NUMBER,
                OOHA.ORDERED_DATE,
                 OOLA.LINE_ID,
                JISPL.INVENTORY_ITEM_ID,
                JISPL.VAT_INVOICE_NO,
                JISPL.VAT_INVOICE_DATE,
                JISPL.SELLING_PRICE) BCD
WHERE
     ABC.SEGMENT1 = BCD.SEGMENT1 AND
     ABC.ITEM_ID = BCD.ITEM_ID AND
      --    BCD.INVOICE_NO IS NOT NULL AND
  --   BCD.INVOICE_DATE <= :P_ST_DATE AND
     BCD.ORDERED_DATE  <= :P_ST_DATE AND
     abc.org_id        = nvl(:p_org_id,abc.org_id) AND
     abc.FROM_ORG_ID   = nvl(:P_FROM_ORG_ID,abc.FROM_ORG_ID) AND
     abc.TO_ORG_ID     = nvl(:P_TO_ORG_ID,abc.TO_ORG_ID) AND
     abc.item_id       = nvl(:P_item_id,abc.item_id) AND
     abc.category_id   = nvl(:P_category_id,abc.category_id)
--      and BCD.INVOICE_NO NOT IN ( SELECT attribute1 FROM Intransit_Temp)
ORDER BY 2,3,4;

Wednesday, 8 July 2015

AR TO XLA

SCRIPTS IS TO DELETE DATA FROM AR TO XLA


/* Formatted on 2015/07/08 15:58 (Formatter Plus v4.8.8) */
/*============================================================================+
$Header: fix_del_trx_r12.sql 120.0 2013/04/05 11:12:11 kyennawa noship $
============================================================================+*/
REM +================================================================================+
REM |                                                                                |
REM | # Bug No :   9692558                                                           |
REM |                                                                                |
REM | # RCA Bug :  xxxxxxx                                                           |
REM |                                                                                |
REM | # Issue :  gsi: fr (org id -38). provide script for deleting a invoice         |
REM |                                                                                |
REM |                                                                                |
REM | # Symptoms : Need to delete invalid trx.                                       |
REM |              Trx is unposted and applications against are also unposted        |
REM |                                                                                |
REM | # Fix Approach : Delete trx related tables.                                    |
REM |                                                                                |
REM | # Usage : Supply the following when prompted:                                  |
REM |           1) Bug_Number           : Bug_Number                                 |
REM |           2) org_id               : Organization Id                            |
REM |           3) Read_Only_Mode       : Y - TO show the corruption.                |
REM |                                     N - TO show and fix the corruption.        |
REM |           4) Cust_Trx_Id          : 0 - For all receipts                       |
REM |                                     or a specific receipt_id.                  |
REM |                                                                                |
REM *================================================================================*/
REM dbdrv: sql ~PROD ~PATH ~FILE none none none sqlplus &phase=sql \
REM dbdrv: checkfile:~PROD:~PATH:~FILE \
REM dbdrv: &un_ar

SPOOL fix_del_trx_r12.lst
SET serveroutput on size 1000000;
SET linesize 400
SET echo off

DECLARE
   l_bug_number       NUMBER                                   := &bug_number;
   l_org_id           NUMBER                                  := ('&org_id');
   l_read_only_mode   VARCHAR2 (1)               := UPPER ('&read_only_mode');
   l_trx_id           NUMBER                             := ('&cust_trx_id');
   l_return_status    VARCHAR2 (1);
   l_msg_count        NUMBER;
   l_msg_data         VARCHAR2 (240);
   l_count            NUMBER;
   l_min_ra_id        NUMBER;
   l_posted_ra_id     ar_receivable_applications_all.receivable_application_id%TYPE;

   CURSOR cur_trx
   IS
      SELECT DISTINCT ct.customer_trx_id, ps.CLASS
                 FROM ra_customer_trx ct, ar_payment_schedules ps
                WHERE ct.customer_trx_id = ps.customer_trx_id
                  AND ps.customer_trx_id = l_trx_id
                  AND ps.CLASS IN ('INV', 'CM', 'DM')
                  AND NOT EXISTS (
                         SELECT 1
                           FROM ra_cust_trx_line_gl_dist gld
                          WHERE gld.customer_trx_id = ct.customer_trx_id
                            AND gld.posting_control_id <> -3
                            AND gld.account_set_flag = 'N')
                  AND NOT EXISTS (
                         SELECT 1
                           FROM ar_receivable_applications ra
                          WHERE ra.customer_trx_id = ct.customer_trx_id
                            AND ra.posting_control_id <> -3)
                  AND NOT EXISTS (
                         SELECT 1
                           FROM ar_receivable_applications ra
                          WHERE ra.customer_trx_id = ct.customer_trx_id
                            AND ra.posting_control_id <> -3)
             ORDER BY ct.customer_trx_id;

   CURSOR ard_cur (p_trx_id IN NUMBER)
   IS
      SELECT line_id, source_id, source_table
        FROM ar_distributions
       WHERE source_table = 'RA'
         AND source_id IN (
                SELECT receivable_application_id
                  FROM ar_receivable_applications
                 WHERE customer_trx_id = p_trx_id
                UNION
                SELECT receivable_application_id
                  FROM ar_receivable_applications
                 WHERE applied_customer_trx_id = p_trx_id)
      UNION
      SELECT line_id, source_id, source_table
        FROM ar_distributions
       WHERE source_table = 'RA'
         AND source_table_secondary = 'RA'
         AND source_id_secondary IN (SELECT receivable_application_id
                                       FROM ar_receivable_applications
                                      WHERE applied_customer_trx_id = p_trx_id);

   CURSOR ra_cur (p_trx_id NUMBER)
   IS
      SELECT *
        FROM ar_receivable_applications
       WHERE customer_trx_id = p_trx_id AND application_type = 'CM'
      UNION
      SELECT *
        FROM ar_receivable_applications
       WHERE applied_customer_trx_id = p_trx_id AND application_type = 'CM';

   /* Print message on screen */
   PROCEDURE DEBUG (s VARCHAR2)
   IS
   BEGIN
      DBMS_OUTPUT.put_line (s);
   END DEBUG;

   /* Print spaces */
   FUNCTION print_spaces (n IN NUMBER)
      RETURN VARCHAR2
   IS
      l_return_string   VARCHAR2 (100);
   BEGIN
      SELECT SUBSTR ('                                                   ',
                     1,
                     n
                    )
        INTO l_return_string
        FROM DUAL;

      RETURN (l_return_string);
   END print_spaces;

/* PS */
    /* Backup table ps*/
   PROCEDURE bkp_ps
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table ps_bkp_'
         || l_bug_number
         || '  as
                          select * from ar_payment_schedules_all
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_ps;

   PROCEDURE insert_into_bkp_ps (p_cm_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into ps_bkp_'
         || l_bug_number
         || '( select * from ar_payment_schedules_all
                       where customer_trx_id = '
         || p_cm_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

/* ARD */

   /* Backup table ard*/
   PROCEDURE bkp_ard
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table ard_bkp_'
         || l_bug_number
         || '  as
                          select * from ar_distributions_all
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_ard;

   PROCEDURE insert_into_bkp_ard (p_line_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into ard_bkp_'
         || l_bug_number
         || '( select * from ar_distributions_all
                       where line_id = '
         || p_line_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

/* RA */
    /* Backup table ra*/
   PROCEDURE bkp_ra
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table ra_bkp_'
         || l_bug_number
         || '  as
                          select * from ar_receivable_applications_all
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_ra;

   /* Insert into backup ra*/
   PROCEDURE insert_into_bkp_ra (p_ra_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into ra_bkp_'
         || l_bug_number
         || '( select * from ar_receivable_applications_all
                       where receivable_application_id = '
         || p_ra_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

/* GLD */
    /* Backup table gld*/
   PROCEDURE bkp_gld
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table gld_bkp_'
         || l_bug_number
         || '  as
                          select * from ra_cust_trx_line_gl_dist_all
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_gld;

   PROCEDURE insert_into_bkp_gld (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into gld_bkp_'
         || l_bug_number
         || '( select * from ra_cust_trx_line_gl_dist_all
                       where customer_trx_id = '
         || p_key_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

/* SALESREP */
    /* Backup table salesrep*/
   PROCEDURE bkp_salesreps
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table salesrep_bkp_'
         || l_bug_number
         || '  as
                          select * from ra_cust_trx_line_salesreps_all
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_salesreps;

   PROCEDURE insert_into_bkp_salesrep (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into salesrep_bkp_'
         || l_bug_number
         || '( select * from ra_cust_trx_line_salesreps_all
                       where customer_trx_id = '
         || p_key_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

/* LINES */
    /* Backup table lines*/
   PROCEDURE bkp_lines
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table lines_bkp_'
         || l_bug_number
         || '  as
                          select * from ra_customer_trx_lines_all
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_lines;

   PROCEDURE insert_into_bkp_lines (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into lines_bkp_'
         || l_bug_number
         || '( select * from ra_customer_trx_lines_all
                       where customer_trx_id = '
         || p_key_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

/* TRX */
    /* Backup table cm trx*/
   PROCEDURE bkp_trx
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table trx_bkp_'
         || l_bug_number
         || '  as
                          select * from ra_customer_trx_all
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_trx;

   PROCEDURE insert_into_bkp_trx (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into trx_bkp_'
         || l_bug_number
         || '( select * from ra_customer_trx_all
                       where customer_trx_id = '
         || p_key_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

----------------------------
----------------------------
/* XAH */
    /* Backup table xah*/
   PROCEDURE bkp_xah
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table xah_bkp_'
         || l_bug_number
         || '  as
                          select * from xla_ae_headers
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_xah;

   PROCEDURE insert_into_bkp_xah (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into xah_bkp_'
         || l_bug_number
         || '( select * from xla_ae_headers xe
                       WHERE xe.application_id = 222
      AND   xe.entity_id IN ( SELECT   xte.entity_id
        FROM     XLA.XLA_TRANSACTION_ENTITIES xte
        WHERE    xte.application_id  = 222 AND xte.entity_code     = ''TRANSACTIONS''      
        AND      xte.source_id_int_1 = '
         || p_key_id
         || '))';

      --debug(l_insert);
      EXECUTE IMMEDIATE l_insert;
   END;

/* XE */
    /* Backup table xe*/
   PROCEDURE bkp_xe
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table xe_bkp_'
         || l_bug_number
         || '  as
                          select * from xla_events
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_xe;

   PROCEDURE insert_into_bkp_xe (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into xe_bkp_'
         || l_bug_number
         || '( select * from xla_events xe
                       WHERE xe.application_id = 222
      AND   xe.entity_id IN ( SELECT   xte.entity_id
        FROM     XLA.XLA_TRANSACTION_ENTITIES xte
        WHERE    xte.application_id  = 222 AND xte.entity_code     = ''TRANSACTIONS''      
        AND      xte.source_id_int_1 = '
         || p_key_id
         || '))';

      --debug(l_insert);
      EXECUTE IMMEDIATE l_insert;
   END;

/* XTE */
    /* Backup table cr*/
   PROCEDURE bkp_xte
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table xte_bkp_'
         || l_bug_number
         || '  as
                          select * from XLA_TRANSACTION_ENTITIES
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_xte;

   PROCEDURE insert_into_bkp_xte (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into xte_bkp_'
         || l_bug_number
         || '( select * from XLA_TRANSACTION_ENTITIES xte
                       WHERE    xte.application_id  = 222
      AND xte.entity_code     = ''TRANSACTIONS''      
      AND      xte.source_id_int_1 = '
         || p_key_id
         || ')';

      --debug(l_insert);
      EXECUTE IMMEDIATE l_insert;
   END;

-----------------Tax-------------------------

   /* ZL */
   PROCEDURE bkp_zl
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table zl_bkp_'
         || l_bug_number
         || '  as
                          select * from zx_lines
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_zl;

   PROCEDURE insert_into_bkp_zl (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into zl_bkp_'
         || l_bug_number
         || '( select * from zx_lines zl
                       where zl.application_id = 222
                      AND      zl.entity_code    = ''TRANSACTIONS''
                      AND      zl.event_class_code in (''INVOICE'',''DEBIT_MEMO'',''CREDIT_MEMO'')
                      AND      zl.trx_id      = '
         || p_key_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;

/* ZLD */
   PROCEDURE bkp_zld
   IS
      l_create_bk   VARCHAR2 (500);
   BEGIN
      l_create_bk :=
            'create table zld_bkp_'
         || l_bug_number
         || '  as
                          select * from ZX_LINES_DET_FACTORS
                          where 1 = 2';

      EXECUTE IMMEDIATE l_create_bk;
   EXCEPTION
      WHEN OTHERS
      THEN
         IF SQLCODE = -955
         THEN
            NULL;
         ELSE
            RAISE;
         END IF;
   END bkp_zld;

   PROCEDURE insert_into_bkp_zld (p_key_id NUMBER)
   IS
      l_insert   VARCHAR2 (500);
   BEGIN
      l_insert :=
            'insert into zld_bkp_'
         || l_bug_number
         || '( select * from ZX_LINES_DET_FACTORS zld
                       where zld.application_id = 222
                      AND      zld.entity_code    = ''TRANSACTIONS''
                      AND      zld.event_class_code in (''INVOICE'',''DEBIT_MEMO'',''CREDIT_MEMO'')
                      AND      zld.trx_id      = '
         || p_key_id
         || ')';

      EXECUTE IMMEDIATE l_insert;
   END;
BEGIN
   mo_global.init ('AR');
   mo_global.set_policy_context ('S', l_org_id);

   IF NVL (UPPER (l_read_only_mode), 'Y') = 'N'
   THEN
      bkp_trx;
      bkp_lines;
      bkp_salesreps;
      bkp_gld;
      bkp_ra;
      bkp_ard;
      bkp_ps;
      bkp_xte;
      bkp_xe;
      bkp_xah;
      bkp_zl;
      bkp_zld;
   END IF;

   DEBUG ('CUST_TRX_ID     TRX_TYPE ');
   DEBUG ('=============== =============== ');

   FOR c2 IN cur_trx
   LOOP
      --debug('11');
      DEBUG (   c2.customer_trx_id
             || print_spaces (16 - LENGTH (c2.customer_trx_id))
             || c2.CLASS
            );

      IF NVL (UPPER (l_read_only_mode), 'Y') = 'N'
      THEN
         /* PS */
         insert_into_bkp_ps (c2.customer_trx_id);

         DELETE FROM ar_payment_schedules
               WHERE customer_trx_id = c2.customer_trx_id;

         DEBUG ('');

         /* ARD */
         FOR ard IN ard_cur (c2.customer_trx_id)
         LOOP
            insert_into_bkp_ard (ard.line_id);

            DELETE FROM ar_distributions
                  WHERE line_id = ard.line_id;

            DEBUG ('');
         END LOOP;

         /* RA */
         FOR ra IN ra_cur (c2.customer_trx_id)
         LOOP
            insert_into_bkp_ra (ra.receivable_application_id);

            DELETE FROM ar_receivable_applications
                  WHERE receivable_application_id =
                                                 ra.receivable_application_id;

            DEBUG ('');
         END LOOP;

         /* GLD */
         insert_into_bkp_gld (c2.customer_trx_id);
         arp_global.g_allow_datafix := TRUE;

         DELETE FROM ra_cust_trx_line_gl_dist_all
               WHERE customer_trx_id = c2.customer_trx_id;

         DEBUG ('');
         arp_global.g_allow_datafix := FALSE;
         /* SALESREP */
         insert_into_bkp_salesrep (c2.customer_trx_id);

         DELETE FROM ra_cust_trx_line_salesreps
               WHERE customer_trx_id = c2.customer_trx_id;

         /* Tax */
         insert_into_bkp_zl (c2.customer_trx_id);

         DELETE FROM zx_lines zl
               WHERE zl.application_id = 222
                 AND zl.entity_code = 'TRANSACTIONS'
                 AND zl.event_class_code IN
                                     ('INVOICE', 'DEBIT_MEMO', 'CREDIT_MEMO')
                 AND zl.trx_id = c2.customer_trx_id;

         insert_into_bkp_zld (c2.customer_trx_id);

         DELETE FROM zx_lines_det_factors zld
               WHERE zld.application_id = 222
                 AND zld.entity_code = 'TRANSACTIONS'
                 AND zld.event_class_code IN
                                     ('INVOICE', 'DEBIT_MEMO', 'CREDIT_MEMO')
                 AND zld.trx_id = c2.customer_trx_id;

         DEBUG ('Deleted Tax info ...');
         /* LINES */
         insert_into_bkp_lines (c2.customer_trx_id);

         DELETE FROM ra_customer_trx_lines
               WHERE customer_trx_id = c2.customer_trx_id;

         DEBUG ('');
         /* TRX */
         insert_into_bkp_trx (c2.customer_trx_id);

         DELETE FROM ra_customer_trx
               WHERE customer_trx_id = c2.customer_trx_id;

         DEBUG ('Deleted data for TRX ' || c2.customer_trx_id);
         insert_into_bkp_xah (c2.customer_trx_id);

         DELETE FROM xla_ae_headers xe
               WHERE xe.application_id = 222
                 AND xe.entity_id IN (
                        SELECT xte.entity_id
                          FROM xla.xla_transaction_entities xte
                         WHERE xte.application_id = 222
                           AND xte.entity_code = 'TRANSACTIONS'
                           AND xte.source_id_int_1 = c2.customer_trx_id);

         insert_into_bkp_xe (c2.customer_trx_id);

         DELETE FROM xla_events xe
               WHERE xe.application_id = 222
                 AND xe.event_status_code <> 'P'
                 AND xe.entity_id IN (
                        SELECT xte.entity_id
                          FROM xla.xla_transaction_entities xte
                         WHERE xte.application_id = 222
                           AND xte.entity_code = 'TRANSACTIONS'
                           AND xte.source_id_int_1 = c2.customer_trx_id);

         insert_into_bkp_xte (c2.customer_trx_id);

         DELETE FROM xla_transaction_entities xte
               WHERE xte.application_id = 222
                 AND xte.entity_code = 'TRANSACTIONS'
                 AND xte.source_id_int_1 = c2.customer_trx_id;

         DEBUG ('Deleted xla and event info ...');
      END IF;

      DEBUG ('.............................. ');
   END LOOP;

   --debug('============================== ');
   IF NVL (UPPER (l_read_only_mode), 'Y') = 'N'
   THEN
      DEBUG ('============================== ');
      DEBUG
         ('Please, review the data and issue ''commit'' to make the changes permanent.'
         );
   --debug('Run ''invoice_interface_line_bulk.sql'' for reinserting data into interface tables.');
   --debug('Then run Autoinvoice Import Program to reimport the CMs in AR.');
   END IF;
EXCEPTION
   WHEN OTHERS
   THEN
      arp_global.g_allow_datafix := FALSE;
      ROLLBACK;
      RAISE;
   
      END;
/

SPOOL off;

Thursday, 2 July 2015

Links PO To GL in R12

select * from po_requisition_headers_all  prha     --   prha.REQUISITION_HEADER_ID

select * from po_requisition_lines_all      prla        --   prha.REQUISITION_HEADER_ID ,                                                                                                      prla.REQUISITION_LINE_ID

select * from po_req_distributions_all     prda       --   prha.REQUISITION_LINE_ID ,                                                                                                              prla.REQUISITION_HEADER_ID  ,                                                                                                        prda.DISTRIBUTION_ID`

select * from po_headers_all     pha             --   pha.header_id

select * from po_lines_all         pla                 --   pha.header_id , pla.line_id

select * from po_distributions_all    pda           --   pah.header_id , pla.line_id  ,                                                                                                                      (pda.po_distribution_id links                                                                                                                     prda.DISTRIBUTION_ID)

select * from rcv_shipment_headers    rsh         --   rsh.SHIPMENT_HEADER_ID

select * from rcv_shipment_lines   rsl         --   rsl.SHIPMENT_line_ID ,                                                                                                                         rsl.SHIPMENT_HEADER_ID ,                                                                                                              rsl.PO_HEADER_ID   , rsl.PO_LINE_ID  ,                                                                                              rsl.REQUISITION_LINE_ID

select * from rcv_transactions     rt          --   rt.SHIPMENT_line_ID ,                                                                                                                          rt.SHIPMENT_HEADER_ID links                                                                                                          (xte.SOURCE_ID_INT_1 = rt.transaction_id)

select * from ap_invoices_all      aia         --   aia.invoice_id ,                                                                                                                                 aia.ACCTS_PAY_CODE_COMBINATION_ID ,                                                                                   aia.SOURCE_ID_INT_1

select * from ap_invoice_lines_all                aila        --   aila.invoice_id

select * from ap_invoice_distributions_all   aida        --   aida.invoice_id ,                                                                                                                                      aida.DIST_CODE_COMBINATION_ID                                                                                                , aida.distribution_id links                                                                                                        (aida.RCV_TRANSACTION_ID = rt.transaction_id)  

select * from ap_invoice_payments_all                aipa        --   aipa.invoice_id , aipa.check_id   ,                                                                                                             aipa.INVOICE_PAYMENT_ID

select * from ap_payment_schedules_all               apsa        --   apsa.invoice_id

select * from ap_checks_all                          aca         --   aca.check_id , aca.SOURCE_ID_INT_1                                                                                                  links (xte.SOURCE_ID_INT_1)

select * from ap_suppliers                           as          --   xal.PARTY_ID  = as.VENDOR_ID   ,                                                                                                     aia.vendor_id

select * from xla.xla_transaction_entities           xte         --   xte.SOURCE_ID_INT_1 link                                                                                                         (aia.nvoice_id , aca.check_id, rt.transaction_id)

select * from xla_events      xe          --   xe.EVENT_ID , xe.ENTITY_ID

select * from xla_ae_headers       xah         --   xah.ENTITY_ID , xah.EVENT_ID  ,                                                                                                     xah.AE_HEADER_ID

select * from xla_ae_lines      xal         --   xal.AE_HEADER_ID ,                                                                                                                        xal.GL_SL_LINK_TABLE ,                                                                                                                    xal.GL_SL_LINK_ID

select  from xla_distribution_links     xdl         --   xdl.AE_HEADER_ID  , xdl.EVENT_ID ,                                                                                               xdl.source_distribution_id_num_1

select * from gl_je_headers     gjh         --   gjh.JE_HEADER_ID  , gjh.je_batch_id  ,                                                                                                 gjh.je_source   , gjh.je_category_name

select * from gl_je_lines        gjl         --   gjl.JE_HEADER_ID  ,                                                                                                                               gjl.CODE_COMBINATION_ID  ,                                                                                                           jgj.le_line_num

select * from gl_code_combinations  gcc         --   gcc.CODE_COMBINATION_ID                                                                                                               (aida.DIST_CODE_COMBINATION_ID                                                                                   ,aia.ACCTS_PAY_CODE_COMBINATION_ID)

select * from gl_je_batches    gjb         --   gjb.je_batch_id  links (gjh.je_batch_id )
     
select * from  gl_je_sources    gjs         --   je_source_name   links (gjh.je_source)

select * from  gl_je_categories   gjc         --   je_category_name  links (gjh.je_category_name)
     
 select * from gl_import_references   gir         --   je_header_id , je_line_num ,                                                                                                                    GL_SL_LINK_ID  ,                                                                                                                                 GL_SL_LINK_TABLE  links                                                                                                                    (xal.GL_SL_LINK_TABLE ,                                                                                                                    xal.GL_SL_LINK_ID)