Oracle AP Invoice Interface Guide
Oracle AP Invoice Interface Guide
Requirement: Web ADI interface needed to be developed to import Invoices, Layout to be designed
     
    Oracle Custom WEB ADI for AP Invoice Interface                             Ra u Ch
    CREATE TABLE
    CREATE TABLE XXAA_APINV_IFACE_TBL
                  XXAA_APINV_IFACE_TBL
      ( 
          SOURCE                   VARCHAR2(50
                                   VARCHAR2(50),
                                               ), 
                                                  
          ORGANIZATION             VARCHAR2(40
                                   VARCHAR2(40),
                                               ), 
                                                  
          INVOICE_TYPE             VARCHAR2(
                                   VARCHAR2(40
                                            40),
                                               ), 
                                                  
          SUPPLIER_NAME            VARCHAR2(
                                   VARCHAR2(60
                                            60),
                                               ), 
                                                  
          SUPPLIER_NUM             VARCHAR2(60
                                   VARCHAR2(60),
                                               ), 
                                                  
          SUPPLIER_SITE            VARCHAR2(
                                   VARCHAR2(40
                                            40),
                                               ), 
                                                  
          INVOICE_DATE             DATE,
                                   DATE, 
          INVOICE_NUMBER           VARCHAR2(60
                                   VARCHAR2(60),
                                               ), 
                                                  
          INVOICE_AMOUNT           NUMBER(
                                   NUMBER(10
                                          10,
                                            ,2),
                                               ), 
                                                  
          TERMS                    VARCHAR2(60
                                   VARCHAR2(60),
                                               ), 
                                                  
          INVOICE_CURRENCY         VARCHAR2(25
                                   VARCHAR2(25),
                                               ), 
                                                  
          GL_DATE                  DATE,
                                   DATE, 
          PAYMENT_CURRENCY         VARCHAR2(25
                                   VARCHAR2(25),
                                               ), 
                                                  
          PAYMENT_METHOD           VARCHAR2(
                                   VARCHAR2(40
                                            40),
                                               ), 
                                                  
          LINE_NUM                 NUMBER, 
                                   NUMBER,
          LINE_TYPE                VARCHAR2(
                                   VARCHAR2(25
                                            25),
                                               ), 
                                                  
          LINE_AMOUNT              NUMBER(10
                                   NUMBER(10,
                                            ,2),
                                               ), 
                                                  
          SEGMENT1                 VARCHAR2(
                                   VARCHAR2(25
                                            25),
                                               ), 
                                                  
          SEGMENT2                 VARCHAR2(
                                   VARCHAR2(25
                                            25),
                                               ), 
                                                  
             SEGMENT3                   VARCHAR2(
                                        VARCHAR2(25
                                                  25),
                                                     ), 
                                                        
             SEGMENT4                   VARCHAR2(25
                                        VARCHAR2( 25),
                                                     ), 
                                                        
             SEGMENT5                   VARCHAR2(25
                                        VARCHAR2( 25),
                                                     ), 
                                                        
             LINE_DESCRIPTION           VARCHAR2(
                                        VARCHAR2(100
                                                  100),
                                                      ), 
                                                         
             ORG_ID                     NUMBER, 
                                        NUMBER,
             VENDOR_ID                  NUMBER,
                                        NUMBER, 
             VENDOR_SITE_ID             NUMBER, 
                                        NUMBER,
             TERM_ID                    NUMBER, 
                                        NUMBER,
             CODE_COMBINATION_ID        NUMBER, 
                                        NUMBER,
             last_update_date           DATE,
                                        DATE, 
             last_updated_by            NUMBER,
                                        NUMBER, 
             creation_date              DATE, 
                                        DATE,
             created_by                 NUMBER, 
                                        NUMBER,
             last_update_login          NUMBER 
                                        NUMBER , 
             status                     VARCHAR2(
                                        VARCHAR2 (50
                                                  50),
                                                     ), 
                                                        
             error_code                 VARCHAR2(15
                                        VARCHAR2( 15),
                                                     ), 
                                                        
             error_message              VARCHAR2(
                                        VARCHAR2(3000
                                                  3000)) 
        );
    --> ====================================================================
    CREATE 
    CREATE  OR
            OR  REPLACE 
                REPLACE PACKAGE
                         PACKAGE XXAA_APINV_IFACE_PKG
                                 XXAA_APINV_IFACE_PKG
    IS
    IS  
    PROCEDURE XXAA_APINV_IFACE_LOAD_PRC
    PROCEDURE   XXAA_APINV_IFACE_LOAD_PRC
           ( 
                   P_SOURCE                VARCHAR2 
                                           VARCHAR2 
                  ,P_ORGANIZATION          VARCHAR2 
                                           VARCHAR2 
                  ,P_INVOICE_TYPE          VARCHAR2 
                                           VARCHAR2 
                  ,P_SUPPLIER_NAME         VARCHAR2 
                                           VARCHAR2 
                  ,P_SUPPLIER_NUM          VARCHAR2 
                                           VARCHAR2 
                  ,P_SUPPLIER_SITE         VARCHAR2 
                                           VARCHAR2 
                  ,P_INVOICE_DATE          DATE 
                                           DATE 
                   ,P_INVOICE_NUMBER            VARCHAR2 
                                                VARCHAR2 
                   ,P_INVOICE_AMOUNT            NUMBER 
                                                NUMBER 
                   ,P_TERMS                     VARCHAR2 
                                                VARCHAR2 
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                             Ra u Ch
                ,P_INVOICE_CURRENCY     VARCHAR2 
                                        VARCHAR2 
                ,P_GL_DATE              DATE 
                                        DATE 
                ,P_PAYMENT_CURRENCY     VARCHAR2 
                                        VARCHAR2 
                ,P_PAYMENT_METHOD       VARCHAR2 
                                        VARCHAR2 
                ,P_LINE_NUM             NUMBER 
                                        NUMBER 
                ,P_LINE_TYPE            VARCHAR2 
                                        VARCHAR2 
                ,P_LINE_AMOUNT          NUMBER 
                                        NUMBER 
                ,P_LINE_DESCRIPTION     VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT1             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT2             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT3             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT4             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT5             VARCHAR2 
                                        VARCHAR2 
          ); 
          ); 
    PROCEDURE  XXAA_APINV_IFACE_IMPORT_PRC;
    PROCEDURE XXAA_APINV_IFACE_IMPORT_PRC ; 
    END
    END XXAA_APINV_IFACE_PKG
         XXAA_APINV_IFACE_PKG;
                             ; 
    / 
    --> ====================================================================
    CREATE 
    CREATE  OR
            OR  REPLACE 
                REPLACE PACKAGE
                         PACKAGE XXAA_APINV_IFACE_PKG
                                 XXAA_APINV_IFACE_PKG
    IS
    IS  
    PROCEDURE XXAA_APINV_IFACE_LOAD_PRC
    PROCEDURE   XXAA_APINV_IFACE_LOAD_PRC
           ( 
                   P_SOURCE                VARCHAR2 
                                           VARCHAR2 
                ,P_ORGANIZATION
                ,P_INVOICE_TYPE         VARCHAR2 
                                        VARCHAR2
                                        VARCHAR2 
                                        VARCHAR2  
                ,P_SUPPLIER_NAME        VARCHAR2 
                                        VARCHAR2 
                ,P_SUPPLIER_NUM         VARCHAR2 
                                        VARCHAR2 
                ,P_SUPPLIER_SITE        VARCHAR2 
                                        VARCHAR2 
                ,P_INVOICE_DATE         DATE 
                                        DATE 
                ,P_INVOICE_NUMBER       VARCHAR2 
                                        VARCHAR2 
                ,P_INVOICE_AMOUNT       NUMBER 
                                        NUMBER 
                ,P_TERMS                VARCHAR2 
                                        VARCHAR2 
                ,P_INVOICE_CURRENCY     VARCHAR2 
                                        VARCHAR2 
                ,P_GL_DATE              DATE 
                                        DATE 
                ,P_PAYMENT_CURRENCY     VARCHAR2 
                                        VARCHAR2 
                ,P_PAYMENT_METHOD       VARCHAR2 
                                        VARCHAR2 
                ,P_LINE_NUM             NUMBER 
                                        NUMBER 
                ,P_LINE_TYPE            VARCHAR2 
                                        VARCHAR2 
                ,P_LINE_AMOUNT          NUMBER 
                                        NUMBER 
                ,P_LINE_DESCRIPTION     VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT1             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT2             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT3             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT4             VARCHAR2 
                                        VARCHAR2 
                ,P_SEGMENT5             VARCHAR2 
                                        VARCHAR2 
          ); 
          ); 
    PROCEDURE XXAA_APINV_IFACE_IMPORT_PRC
    PROCEDURE  XXAA_APINV_IFACE_IMPORT_PRC;
                                          ; 
    END XXAA_APINV_IFACE_PKG
    END  XXAA_APINV_IFACE_PKG;
                             ; 
    / 
    --> ====================================================================
    CREATE 
    CREATE  OR
            OR  REPLACE 
                REPLACE PACKAGE
                         PACKAGE 
                                 body XXAA_APINV_IFACE_PKG
                                 body XXAA_APINV_IFACE_PKG
    IS 
    IS 
    PROCEDURE
    PROCEDURE XXAA_APINV_IFACE_LOAD_PRC
          (   XXAA_APINV_IFACE_LOAD_PRC
                 P_SOURCE               VARCHAR2 
                                        VARCHAR2 
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                     Ra u Ch
                  ,P_ORGANIZATION         VARCHAR2 
                                          VARCHAR2 
                  ,P_INVOICE_TYPE         VARCHAR2 
                                          VARCHAR2 
                  ,P_SUPPLIER_NAME        VARCHAR2 
                                          VARCHAR2 
                  ,P_SUPPLIER_NUM         VARCHAR2 
                                          VARCHAR2 
                  ,P_SUPPLIER_SITE        VARCHAR2 
                                          VARCHAR2 
                  ,P_INVOICE_DATE         DATE 
                                          DATE 
                  ,P_INVOICE_NUMBER       VARCHAR2 
                                          VARCHAR2 
                  ,P_INVOICE_AMOUNT       NUMBER 
                                          NUMBER 
                  ,P_TERMS                VARCHAR2 
                                          VARCHAR2 
                  ,P_INVOICE_CURRENCY     VARCHAR2 
                                          VARCHAR2 
                  ,P_GL_DATE              DATE 
                                          DATE 
                  ,P_PAYMENT_CURRENCY     VARCHAR2 
                                          VARCHAR2 
                  ,P_PAYMENT_METHOD       VARCHAR2 
                                          VARCHAR2 
                  ,P_LINE_NUM             NUMBER 
                                          NUMBER 
                  ,P_LINE_TYPE            VARCHAR2 
                                          VARCHAR2 
                  ,P_LINE_AMOUNT          NUMBER 
                                          NUMBER 
                  ,P_LINE_DESCRIPTION     VARCHAR2 
                                          VARCHAR2 
                  ,P_SEGMENT1             VARCHAR2 
                                          VARCHAR2 
                  ,P_SEGMENT2             VARCHAR2 
                                          VARCHAR2 
                  ,P_SEGMENT3             VARCHAR2 
                                          VARCHAR2 
                  ,P_SEGMENT4             VARCHAR2 
                                          VARCHAR2 
                  ,P_SEGMENT5             VARCHAR2 
                                          VARCHAR2 
            ) 
    IS 
    IS  
       l_error_message                    VARCHAR2(3000
                                          VARCHAR2( 3000);
                                                        ); 
                                                           
        l_error_code
        l_org_id                          VARCHAR2(
                                          NUMBER
                                          NUMBER;; (2);
                                          VARCHAR2   ); 
                                                        
        l_invoice_num                     VARCHAR2(
                                          VARCHAR2(60
                                                    60);
                                                      );  
        l_vendor_id                       NUMBER;
                                          NUMBER ; 
        l_vendor_site_id                  NUMBER; 
                                          NUMBER;
        l_term_id                         NUMBER; 
                                          NUMBER;
        l_code_combination_id             NUMBER; 
                                          NUMBER;
    BEGIN 
    BEGIN 
      l_error_message :=
                      := 
                         '';
                         ''; 
      l_error_code    :='V'
                      :='V';; 
      -->Organization Validation
      BEGIN 
      BEGIN  
           l_org_id := 
                     := NULL
                         NULL;
                             ; 
        SELECT organization_id
        SELECT  organization_id
        INTO
        INTO l_org_id
              l_org_id
        FROM hr_organization_units hou
        FROM hr_organization_units
        WHERE hou
        WHERE hou. .name
                    name==P_ORGANIZATION
                          P_ORGANIZATION;; 
      EXCEPTION 
      EXCEPTION 
      WHEN no_data_found THEN
      WHEN no_data_found    THEN  
        l_error_message :=l_error_message
                           :=l_error_message||
                                            ||','
                                              ','||
                                                  ||'Organization
                                                    'Organization not defined ';
                                                                              '; 
        l_error_code       :='E'
                           :='E';; 
      WHEN too_many_rows
      WHEN  too_many_rows THEN
                            THEN  
        l_error_message :=l_error_message
                           :=l_error_message||
                                            ||','
                                              ','||
                                                  ||'Too
                                                    'Too Many Records for Organization ';
                                                                                        ' ; 
        l_error_code       :='E'
                           :='E';; 
      WHEN
      WHEN  OTHERS
            OTHERS  THEN 
                    THEN 
        l_error_message :=l_error_message
                           :=l_error_message||
                                            ||','
                                              ','||
                                                  ||'Other
                                                    'Other Errors with Organization '||
                                                                                    ' ||SQLCODE
                                                                                        SQLCODE  
    ||sqlerrm;
    ||sqlerrm ; 
        l_error_code       :='E'
                           :='E';; 
      END
      END;; 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                        Ra u Ch
            l_invoice_num :=:= 
                               NULL;
                                NULL; 
          SELECT 
          SELECT  COUNT
                  COUNT  (api
                          api.
                             .invoice_num
                              invoice_num)) 
          INTO l_invoice_num
          INTO l_invoice_num
          FROM ap_invoices_all
          FROM ap_invoices_all api
          WHERE UPPER(
          WHERE  UPPER(api
                        api.
                           .invoice_num
                            invoice_num)) = UPPER(
                                            UPPER(P_INVOICE_NUMBER
                                                   P_INVOICE_NUMBER);
                                                                   );  
            IF l_invoice_num > 0 
            IF l_invoice_num
            THEN 
            THEN  
                                   :=l_error_message
                   l_error_message :=l_error_message||
                                                     ||','
                                                       ','||
                                                           ||'Invoice
                                                             'Invoice number already exist in oracle
    '; 
                  l_error_code      :='E';
                                    :='E' ; 
            END IF;
            END IF; 
       EXCEPTION 
       EXCEPTION 
       WHEN no_data_found THEN
       WHEN no_data_found   THEN  
         l_error_message :=l_error_message
                           :=l_error_message||
                                            ||','
                                              ','||
                                                  ||'Error
                                                    'Error in validating the invoice number ';
                                                                                             ' ; 
         l_error_code      :=
                           :='E'
                             'E';; 
       WHEN 
       WHEN  OTHERS
             OTHERS  THEN 
                     THEN 
         l_error_message :=l_error_message
                           :=l_error_message||
                                            ||','
                                              ','||
                                                  ||'Other
                                                    'Other Errors with invoice number '||
                                                                                      ' ||SQLCODE
                                                                                          SQLCODE  
    ||sqlerrm
    || sqlerrm;; 
         l_error_code      :='E'
                           :='E';; 
       END
       END;; 
        -->Supplier Validation
        BEGIN 
        BEGIN  
           l_vendor_id
        SELECT
        SELECT vendor_id:=
                        := 
                vendor_id   NULL;
                            NULL; 
        INTO
        INTO l_vendor_id
              l_vendor_id
        FROM ap_suppliers
        FROM ap_suppliers aps
        WHERE (UPPER
        WHERE   UPPER((aps
                       aps..vendor_name
                            vendor_name)) = UPPER(
                                            UPPER(P_SUPPLIER_NAME
                                                   P_SUPPLIER_NAME)
                                                                  ) OR 
                                                                    OR UPPER
                                                                       UPPER((aps
                                                                              aps..segment1
                                                                                   segment1)) = 
    UPPER(
    UPPER(P_SUPPLIER_NUM
           P_SUPPLIER_NUM));
                           )); 
                               
      EXCEPTION
      EXCEPTION  
      WHEN no_data_found
      WHEN no_data_found THEN
                            THEN  
        l_error_message :=l_error_message
                           :=l_error_message||
                                             ||','
                                               ','||
                                                   ||'Supplier
                                                     'Supplier not defined ';
                                                                           ' ; 
        l_error_code       :='E'
                           :='E';; 
      WHEN
      WHEN too_many_rows
            too_many_rows THEN
                            THEN  
        l_error_message :=l_error_message
                           :=l_error_message||
                                             ||','
                                               ','||
                                                   ||'Too
                                                     'Too Many Records for Supplier '; ' ; 
        l_error_code       :='E'
                           :='E';; 
      WHEN
      WHEN  OTHERS
            OTHERS  THEN 
                    THEN 
        l_error_message :=l_error_message
                           :=l_error_message||
                                             ||','
                                               ','||
                                                   ||'Other
                                                     'Other Errors with Supplier '||
                                                                                   ' ||SQLCODE
                                                                                       SQLCODE  ||
                                                                                                ||sqlerrm
                                                                                                   sqlerrm;
                                                                                                          ; 
        l_error_code       :='E';
                           :='E' ; 
      END
      END;; 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                       Ra u Ch
      WHEN
      WHEN  OTHERS
            OTHERS  THEN 
                    THEN 
        l_error_message :=l_error_message
                          :=l_error_message||
                                           ||','
                                             ','||
                                                 ||'Other
                                                   'Other Errors with Supplier Site '||
                                                                                    ' ||SQLCODE
                                                                                        SQLCODE  
    ||sqlerrm;
    ||sqlerrm ; 
        l_error_code      :=
                          :='E'
                            'E';; 
      END;
      END ; 
        -->Terms Validation
        BEGIN 
        BEGIN  
             l_term_id := 
                        := NULL;
                           NULL; 
          SELECT
          SELECT term_id
                  term_id
          INTO l_term_id
          INTO  l_term_id
          FROM ap_terms apt
          FROM ap_terms
          WHERE 
          WHERE UPPER(
                 UPPER(apt
                        apt.
                           .name
                            name)) = UPPER(
                                     UPPER(P_TERMS
                                           P_TERMS);
                                                   ); 
                                                      
        EXCEPTION 
        EXCEPTION 
        WHEN no_data_found THEN
        WHEN no_data_found   THEN  
          l_error_message :=l_error_message
                            :=l_error_message||
                                              ||','
                                                ','||
                                                    ||'Terms
                                                      'Terms not defined ';
                                                                         '; 
          l_error_code      :='E'
                            :='E';; 
        WHEN too_many_rows
        WHEN  too_many_rows THEN
                             THEN  
          l_error_message :=l_error_message
                            :=l_error_message||
                                              ||','
                                                ','||
                                                    ||'Too
                                                      'Too Many Records for Terms ';
                                                                                  '; 
          l_error_code      :=
                            :='E'
                              'E';; 
        WHEN 
        WHEN  OTHERS
              OTHERS  THEN 
                      THEN 
          l_error_message :=l_error_message
                            :=l_error_message||
                                              ||','
                                                ','||
                                                    ||'Other
                                                      'Other Errors with Terms '||
                                                                               '||SQLCODE
                                                                                   SQLCODE 
                                                                                           ||sqlerrm
                                                                                           ||sqlerrm;; 
          l_error_code      :=
                            :='E'
                              'E';; 
        END;
        END ; 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
        ,INVOICE_AMOUNT
        ,TERMS
        ,INVOICE_CURRENCY
        ,GL_DATE
        ,PAYMENT_CURRENCY
        ,PAYMENT_METHOD
        ,LINE_NUM
        ,LINE_TYPE
        ,LINE_AMOUNT
        ,LINE_DESCRIPTION
        ,SEGMENT1
        ,SEGMENT2
        ,SEGMENT3
        ,SEGMENT4
        ,SEGMENT5
        ,ORG_ID
        ,VENDOR_ID
        ,VENDOR_SITE_ID
        ,TERM_ID
        ,CODE_COMBINATION_ID
        ,last_update_date
        ,last_updated_by
        ,creation_date
        ,created_by
        ,last_update_login
        ,status
        ,error_code
        ,error_message
        ) 
        VALUES 
        VALUES 
        (UPPER
         UPPER((P_SOURCE
                P_SOURCE)) 
        ,P_ORGANIZATION
        ,UPPER
         UPPER((P_INVOICE_TYPE
                P_INVOICE_TYPE)) 
        ,P_SUPPLIER_NAME
        ,P_SUPPLIER_NUM
        ,P_SUPPLIER_SITE
        ,P_INVOICE_DATE
        ,P_INVOICE_NUMBER
        ,P_INVOICE_AMOUNT
        ,P_TERMS
        ,P_INVOICE_CURRENCY
        ,P_GL_DATE
        ,P_PAYMENT_CURRENCY
        ,P_PAYMENT_METHOD
        ,P_LINE_NUM
        ,P_LINE_TYPE
        ,P_LINE_AMOUNT
        ,P_LINE_DESCRIPTION
        ,P_SEGMENT1
        ,P_SEGMENT2
        ,P_SEGMENT3
        ,P_SEGMENT4
        ,P_SEGMENT5
        ,L_ORG_ID
        ,L_VENDOR_ID
        ,L_VENDOR_SITE_ID
        ,L_TERM_ID
        ,L_CODE_COMBINATION_ID
        ,sysdate
         sysdate  
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                              Ra u Ch
        ,fnd_global
         fnd_global. .user_id
        ,sysdate
         sysdate   
        ,fnd_global
         fnd_global. .user_id
        ,fnd_global
         fnd_global. .login_id
        ,'NEW'
         'NEW'  
        ,l_error_code
        ,SUBSTR
         SUBSTR( (l_error_message
                  l_error_message,,2) 
        );
        ); 
           
        IF
        IF 
           (l_error_code
             l_error_code=
                         ='E'
                          'E')
                             ) 
        THEN 
        THEN  
          raise_application_error(
          raise_application_error (-20101
                                   -20101,,SUBSTR
                                           SUBSTR((l_error_message
                                                   l_error_message,,2));
                                                                     )); 
                                                                         
        END IF
        END  IF;
               ; 
    EXCEPTION 
    EXCEPTION  
    WHEN 
    WHEN  OTHERS
          OTHERS  
    THEN 
    THEN 
      raise_application_error(
      raise_application_error (-20102
                               -20102,,'Error -'||
                                              -'||SQLCODE
                                                  SQLCODE||
                                                          ||'-'
                                                            '-'||
                                                                ||sqlerrm
                                                                  sqlerrm);
                                                                          ); 
                                                                             
    END XXAA_APINV_IFACE_LOAD_PRC;
    END XXAA_APINV_IFACE_LOAD_PRC ; 
    --> --------------------------------------------------------------------
    PROCEDURE XXAA_APINV_IFACE_IMPORT_PRC
    PROCEDURE   XXAA_APINV_IFACE_IMPORT_PRC
    IS
    IS  
       CURSOR c_inv
       CURSOR  c_inv
       IS 
       IS 
          SELECT
          SELECT  DISTINCT
                   DISTINCT  
            api.
            api .source
                 source,, 
            api.
            api .org_id
                 org_id,, 
            api.
            api .invoice_type
                 invoice_type, , 
            api.
            api .vendor_id
                 vendor_id, , 
            api.
            api .vendor_site_id
                 vendor_site_id, , 
            api.
            api .invoice_date
                 invoice_date, , 
            api.
            api .invoice_number
                 invoice_number, , 
            api.
            api .invoice_amount
                 invoice_amount, , 
            api.
            api .term_id
                 term_id,, 
            api.
            api .invoice_currency
                 invoice_currency, , 
            api.
            api .gl_date
                 gl_date,, 
            api.
            api .payment_currency
                 payment_currency, , 
            api.
            api .payment_method
          FROM
          FROM XXAA_APINV_IFACE_TBL
                XXAA_APINV_IFACE_TBL api
          WHERE api.
          WHERE api  .error_code
                      error_code=='V'
                                  'V'  
            ORDER 
            ORDER BY 
                    BY 
               api.
               api .org_id
                    org_id,, 
               api.
               api .invoice_type
                    invoice_type,, 
               api.
               api .vendor_id
                    vendor_id,, 
               api.
               api .vendor_site_id
                    vendor_site_id,, 
               api.
               api .invoice_number
                    invoice_number;; 
        CURSOR c_lin
        CURSOR  c_lin((X_INVOICE_NUMBER VARCHAR2
                                        VARCHAR2)) 
        IS
        IS 
           
          SELECT 
          SELECT  
               apl.
               apl .line_num
                    line_num,, 
            apl.
            apl .line_type
                 line_type,, 
            apl.
            apl .line_amount
                 line_amount, , 
            apl.
            apl .code_combination_id
                 code_combination_id,, 
            apl.
            apl .line_description
          FROM
          FROM XXAA_APINV_IFACE_TBL
                XXAA_APINV_IFACE_TBL apl
          WHERE apl.
          WHERE apl  .error_code
                      error_code=='V'
                                  'V'  
               AND
               AND apl
                    apl.
                       .invoice_number = X_INVOICE_NUMBER
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                            Ra u Ch
             ORDER
             ORDER  BY apl
                    BY apl..line_num
                            line_num;; 
         l_batch_name          VARCHAR2
                               VARCHAR2((100
                                         100)) := 
                                               := TO_CHAR(
                                                  TO_CHAR(SYSDATE
                                                          SYSDATE,,'DD-MON-RR:HH24MISS'
                                                                   'DD-MON-RR:HH24MISS');
                                                                                        ); 
                                                                                           
         l_conc_request_id     NUMBER;
                               NUMBER; 
         l_phase               VARCHAR2(
                               VARCHAR2 (25
                                         25);
                                            ); 
                                               
         l_status              VARCHAR2(25
                               VARCHAR2( 25);
                                            ); 
                                               
         l_dev_phase           VARCHAR2(
                               VARCHAR2(25
                                         25);
                                            ); 
                                               
         l_dev_status          VARCHAR2(25
                               VARCHAR2( 25);
                                            ); 
                                               
         l_message             VARCHAR2(
                               VARCHAR2(500
                                         500);
                                             ); 
                                                
         l_request_status      BOOLEAN; 
                               BOOLEAN;
         l_count               NUMBER;
                               NUMBER ; 
         l_inv_seq             NUMBER;
                               NUMBER ; 
    BEGIN
    BEGIN  
        BEGIN 
        BEGIN  
         FOR r_inv IN c_inv
         FOR r_inv IN c_inv
         LOOP 
         LOOP 
             select
             select ap_invoices_interface_s
                     ap_invoices_interface_s.
                                            .NEXTVAL
                                             NEXTVAL  into l_inv_seq
                                                      into l_inv_seq from dual
                                                                     from dual;
                                                                              ; 
           INSERT 
           INSERT INTO
                  INTO AP_INVOICES_INTERFACE
                        AP_INVOICES_INTERFACE
             ( 
                   invoice_id,
                   invoice_id , 
                      source, 
                      source,
                      org_id , 
                      invoice_type_lookup_code,
                      invoice_type_lookup_code , 
                      vendor_id,
                      vendor_id , 
                      vendor_site_id,
                      vendor_site_id  , 
                      invoice_date,
                      invoice_date  , 
                      invoice_num,
                      invoice_num  , 
                      invoice_amount,
                      invoice_amount  , 
                      terms_id,
                      terms_id , 
                      invoice_currency_code,
                      invoice_currency_code , 
                      gl_date,
                      gl_date , 
                      payment_currency_code,
                      payment_currency_code , 
                      payment_method_lookup_code
             ) 
             VALUES 
             VALUES 
             ( 
               l_inv_seq,
               l_inv_seq , 
               r_inv.
               r_inv .source
                      source,, 
               r_inv.
               r_inv .org_id
                      org_id,, 
               r_inv.
               r_inv .invoice_type
                      invoice_type, , 
               r_inv.
               r_inv .vendor_id
                      vendor_id, , 
               r_inv.
               r_inv .vendor_site_id
                      vendor_site_id, , 
               r_inv.
               r_inv .invoice_date
                      invoice_date, , 
               r_inv.
               r_inv .invoice_number
                      invoice_number, , 
               r_inv.
               r_inv .invoice_amount
                      invoice_amount, , 
               r_inv.
               r_inv .term_id
                      term_id,, 
               r_inv.
               r_inv .invoice_currency
                      invoice_currency, , 
               r_inv.
               r_inv .gl_date
                      gl_date,, 
               r_inv.
               r_inv .payment_currency
                      payment_currency, , 
               r_inv.
               r_inv .payment_method
             ); 
             ); 
                  FOR
                  FOR r_lin
                       r_lin IN
                             IN c_lin
                                c_lin(
                                     (r_inv
                                       r_inv.
                                            .invoice_number
                                             invoice_number)) 
                  LOOP
                  LOOP  
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                       Ra u Ch
                    INSERT INTO AP_INVOICE_LINES_INTERFACE
                    INSERT  INTO AP_INVOICE_LINES_INTERFACE
                      ( 
                           invoice_id,
                           invoice_id , 
                           invoice_line_id,
                           invoice_line_id  , 
                           line_number,
                           line_number , 
                           line_type_lookup_code,
                           line_type_lookup_code , 
                           amount,
                           amount , 
                           dist_code_combination_id,
                           dist_code_combination_id , 
                           description
                      ) 
                      VALUES 
                      VALUES  
                      ( 
                           l_inv_seq,
                           l_inv_seq , 
                           ap_invoice_lines_interface_s.
                           ap_invoice_lines_interface_s  .NEXTVAL
                                                          NEXTVAL,, 
                           r_lin.
                           r_lin .line_num
                                  line_num,, 
                           r_lin.
                           r_lin .line_type
                                  line_type,, 
                           r_lin.
                           r_lin .line_amount
                                  line_amount,, 
                           r_lin.
                           r_lin .code_combination_id
                                  code_combination_id,, 
                           r_lin.
                           r_lin .line_description
                      );
                      ); 
                         
               END 
               END  LOOP;
                    LOOP; 
        END 
        END  LOOP
             LOOP;; 
         COMMIT; 
         COMMIT;
        END
        END;
           ; 
                          := FND_REQUEST
        l_conc_request_id := FND_REQUEST.
                                        .SUBMIT_REQUEST
                                             ( APPLICATION         =>
                                                                   => 
                                                                      'SQLAP' 
                                                                       'SQLAP' 
                                                ,PROGRAM           => 
                                                                   => 'APXIIMPT' 
                                                                       'APXIIMPT' 
                                                ,ARGUMENT1         => 
                                                                   => '204' 
                                                                       '204' 
                                                ,ARGUMENT2         => 
                                                                   => 'MANUAL INVOICE ENTRY' 
                                                                                      ENTRY' 
                                                ,ARGUMENT4         => l_batch_name
                                                                   => l_batch_name
                                             ); 
                                             ); 
        COMMIT
        COMMIT;; 
        l_request_status :=
                         := FND_CONCURRENT
                            FND_CONCURRENT..WAIT_FOR_REQUEST
                                                 ( 
                                                       l_conc_request_id,
                                                       l_conc_request_id , 
                                                       60,
                                                       60, 
                                                       0, 
                                                       l_phase,
                                                       l_phase , 
                                                       l_status,
                                                       l_status , 
                                                       l_dev_phase,
                                                       l_dev_phase , 
                                                       l_dev_status,
                                                       l_dev_status , 
                                                       l_message
                                                 );
                                                 ); 
                                                    
      COMMIT;
      COMMIT ; 
    EXCEPTION
    EXCEPTION  
    WHEN 
    WHEN  OTHERS
          OTHERS  
    THEN 
    THEN 
      raise_application_error(
      raise_application_error (-20103
                               -20103,,'Error -'||
                                              -'||SQLCODE
                                                  SQLCODE||
                                                          ||'-'
                                                            '-'||
                                                                ||sqlerrm
                                                                  sqlerrm);
                                                                          ); 
                                                                             
    END XXAA_APINV_IFACE_IMPORT_PRC;
    END XXAA_APINV_IFACE_IMPORT_PRC ; 
    END XXAA_APINV_IFACE_PKG
    END XXAA_APINV_IFACE_PKG;; 
    / 
    --> ====================================================================
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                Ra u Ch
    Integrator
    1. Create Integrator
    Navigation : Desktop Integration Manager Responsibility-> Create Integrator
     
    Oracle Custom WEB ADI for AP Invoice Interface          Ra u Ch
    2. Create Interface
    Interface Name          : XXAA APINV Interface  
    Interface Type          : API – Procedure 
    Package Name            : XXAA_APINV_IFACE_PKG 
    Procedure/Funtion       : XXAA_APINV_IFACE_LOAD_PRC  
    API Returns             : FND Message Code 
    Click on Apply button
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface         Ra u Ch
    3. Create Content
    Content Name        : XXAA APINV Interface Content  
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                       Ra u Ch
    Rename the display names as per csv header columns for better under standing
    And provide the content parameter (download parameter) as Web ADI: Download "Text File" Parameters
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
    4. Create Uploader
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
    5. Create Importer
    Select importer type as PL/SQL API
    Importer Name            : XXAA_APINV_IFACE 
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                     Ra u Ch
    Click on PL/SQL API Call plus button to add our custom procedure
 
     
    Oracle Custom WEB ADI for AP Invoice Interface          Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                      Ra u Ch
    Layout
    1.       Create Layout
    Navigation: Desktop Integration Responsibility
                                    Responsibility Define Layout
    Select the integrator Go Create button
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                Ra u Ch
    2. Define Mapping
    1.      Define mapping
    Navigation: Desktop Integration Responsibility -> Defining mapping-> select integrator-> go
        
    3.
    MappingEnter
            Name the mapping   details
                          : XXAA    APINV Interface Mapping
    Mapping Key           : XXAA_APINV_IFACE_MAPPING 
    Number of column      : 9 
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface                                           Ra u Ch
    3. Create Document
    1.      Create Document :- Test the document with sample data
    Navigation: Desktop Integration Responsibility
                                    Responsibility -> Create Document -> select integrator
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface                Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface                              Ra u Ch
    Note: we have developed the sheet. Now it needs some cosmetic changes
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                         Ra u Ch
    Changes
    1.     Change the Labels of fields
    Navigation: Go to integrator-> Interface-> Enter the Integrator name and click on Go
    Click on Next
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                            Ra u Ch
    Click on the Update button and change Above Prompt then Save and Submit
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                             Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                  Ra u Ch
         Do the same for other columns too then save and get the new document to see the changes
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                              Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
 
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
    Result
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                   Ra u Ch
    Function               : XXAA_APINV_IFACE_FF 
    User Function Name     : XXAA APINV Interface Integrator 
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                              Ra u Ch
    Form Parameters
    bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL2007&bne:reporting=N&bne:integrator=USER_NAME:
    bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL2007&bne:reporting=N&bne:integrator=USER_NAME:XXA
                                                                                            XXA
    A APINV Interface Integrator&bne:noreview=Yes
                      Integrator&bne:noreview=Yes
 
     
    Oracle Custom WEB ADI for AP Invoice Interface               Ra u Ch
Save it.
     
    Oracle Custom WEB ADI for AP Invoice Interface            Ra u Ch
    Search for your menu where you want to add this ADI
    Menu            : AP_NAVIGATE_GUI12
    Prompt          : XXAA APINV Interface Integrator  
    Function        : XXAA APINV Interface Integrator  
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                               Ra u Ch
    Now you can navigate to your custom responsibility to see the ADI which you have assigned.
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                                              Ra u Ch
    4.      Once we click on upload button, it will pop up the upload page where we have to select ‘Automatically Submit
    Import’ check box as we have added import procedure in importer rule . If it is checked then only it will call that import
    program, otherwise it wont
 
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                                Ra u Ch
5. If there is any error, then program will return error message and will rollback the transaction
    6.      After correcting the data, run again. And if there is no error, then program will insert all validated data into oracle
    tables and call the import journal program
     
    Oracle Custom WEB ADI for AP Invoice Interface                                                     Ra u Ch
    7.      We can monitor the import program from spread sheet itself by clicking on monitor button
    Click on the Monitor to check the request id
    Nav : Add-Ins Oracle Monitor
 
     
    Oracle Custom WEB ADI for AP Invoice Interface      Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface            Ra u Ch
     
    Oracle Custom WEB ADI for AP Invoice Interface   Ra u Ch