Wednesday, October 3, 2018

GL Interface Code

How to create the GL Interface in oracle apps

1. Create the staging table

CREATE TABLE XXWIPRO_STG
(
   STATUS                  VARCHAR2 (50),
   SET_OF_BOOKS_ID         NUMBER (15),
   USER_JE_SOURCE_NAME     VARCHAR2 (25),
   USER_JE_CATEGORY_NAME   VARCHAR2 (25),
   CURRENCY_CODE           VARCHAR2 (15),
   ACTUAL_FLAG             CHAR (1),
   ACCOUNTING_DATE         DATE,
   DATE_CREATED            DATE,
   CREATED_BY              NUMBER (15),
   ENTERED_DR              NUMBER,
   ENTERED_CR              NUMBER,
   ACCOUNTED_DR            NUMBER,
   ACCOUNTED_CR            NUMBER,
   SEGMENT1                VARCHAR2 (25),
   SEGMENT2                VARCHAR2 (25),
   SEGMENT3                VARCHAR2 (25),
   SEGMENT4                VARCHAR2 (25),
   SEGMENT5                VARCHAR2 (25)

);

Output :-  Table created.

2. Insert the data in XXWIRPO_STG

insert into XXWIPRO_STG values('NEW',2121,'Manual' ,'Adjustment','INR','A','03-OCT-2018' ,'03-OCT-2018' , 787,12,12,12,12,'1001','000','400102','000','000');

OUTPUT:-



3. Create the Package :-

CREATE OR REPLACE PACKAGE XXWIPRO_GL_INT_PKG
IS
PROCEDURE XXWIPRO_GL_INT_PROC(ERRBUF OUT VARCHAR2,RETCODE OUT VARCHAR2);

----Create the package for specificaton ----
---- techical israr         technical.israr@gmail.com 


END;

OUTPUT  :-  Package created.

----------------------------------------------------------------------------------------------------------------

4.  Create the Package Body :-

CREATE OR REPLACE PACKAGE BODY XXWIPRO_GL_INT_PKG
IS
   PROCEDURE XXWIPRO_GL_INT_PROC (ERRBUF OUT VARCHAR2, RETCODE OUT VARCHAR2)
   IS
      ----Create the package body ----
      ---- techical israr         technical.israr@gmail.com

      CURSOR GL_CUR
      IS
         SELECT STATUS,
                SET_OF_BOOKS_ID,
                USER_JE_SOURCE_NAME,
                USER_JE_CATEGORY_NAME,
                CURRENCY_CODE,
                ACTUAL_FLAG,
                ACCOUNTING_DATE,
                DATE_CREATED,
                CREATED_BY,
                ENTERED_DR,
                ENTERED_CR,
                ACCOUNTED_DR,
                ACCOUNTED_CR,
                SEGMENT1,
                SEGMENT2,
                SEGMENT3,
                SEGMENT4,
                SEGMENT5
           FROM XXWIPRO_STG;

      V_STATUS                  VARCHAR2 (50);
      V_SOB_ID                  NUMBER (15);
      V_USER_JE_SOURCE_NAME     VARCHAR2 (25);
      V_USER_JE_CATEGORY_NAME   VARCHAR2 (25);
      V_CUR_CODE                VARCHAR2 (15);
      V_ACTUAL_FLAG             VARCHAR2 (1);
      V_ERR_FLAG                VARCHAR2 (2);
      V_FLAG                    VARCHAR2 (2);
   BEGIN
      FOR REC IN GL_CUR
      LOOP
         V_FLAG := 'A';
         V_ERR_FLAG := 'A';

         BEGIN
            SELECT DISTINCT STATUS
              INTO V_STATUS
              FROM XXWIPRO_STG
             WHERE STATUS = 'NEW';
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               V_STATUS := NULL;
               V_FLAG := 'E';
               V_ERR_FLAG := 'E';
               FND_FILE.
                PUT_LINE (FND_FILE.LOG,
                          'The status is not correct so change the status');
               FND_FILE.
                PUT_LINE (FND_FILE.LOG, 'The data is inserting' || V_STATUS);
         END;

         BEGIN
            SELECT SET_OF_BOOKS_ID
              INTO V_SOB_ID
              FROM XXWIPRO_STG
             WHERE SET_OF_BOOKS_ID = REC.SET_OF_BOOKS_ID;
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               V_SOB_ID := NULL;
               V_FLAG := 'E';
               V_ERR_FLAG := 'E';
               FND_FILE.
                PUT_LINE (FND_FILE.LOG,
                          'The SOB is not correct change SOB ID');
         END;

         FND_FILE.
          PUT_LINE (FND_FILE.LOG, 'The data is inserting' || V_SOB_ID);

         BEGIN
            SELECT USER_JE_SOURCE_NAME
              INTO V_USER_JE_SOURCE_NAME
              FROM GL_JE_SOURCES
             WHERE USER_JE_SOURCE_NAME = REC.USER_JE_SOURCE_NAME;
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               V_USER_JE_SOURCE_NAME := NULL;
               V_FLAG := 'E';
               V_ERR_FLAG := 'E';
               FND_FILE.
                PUT_LINE (FND_FILE.LOG,
                          'The SOURCE NAME is not correct change It');
         END;

         FND_FILE.
          PUT_LINE (FND_FILE.LOG,
                    'The data inserting is' || V_USER_JE_SOURCE_NAME);

         BEGIN
            SELECT USER_JE_CATEGORY_NAME
              INTO V_USER_JE_CATEGORY_NAME
              FROM GL_JE_CATEGORIES
             WHERE USER_JE_CATEGORY_NAME = REC.USER_JE_CATEGORY_NAME;
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               V_USER_JE_CATEGORY_NAME := NULL;
               V_FLAG := 'E';
               V_ERR_FLAG := 'E';
               FND_FILE.
                PUT_LINE (FND_FILE.LOG,
                          'The Category name is not correct Change it');
               FND_FILE.
                PUT_LINE (FND_FILE.LOG,
                          'The data inserting is' || V_USER_JE_CATEGORY_NAME);
         END;

         BEGIN
            SELECT CURRENCY_CODE
              INTO V_CUR_CODE
              FROM FND_CURRENCIES
             WHERE CURRENCY_CODE = REC.CURRENCY_CODE;
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               V_CUR_CODE := NULL;
               V_FLAG := 'E';
               V_ERR_FLAG := 'E';
               FND_FILE.
                PUT_LINE (FND_FILE.LOG, 'The Currency code is not correct ');
         END;

         FND_FILE.
          PUT_LINE (FND_FILE.LOG, 'The data inserting is' || V_CUR_CODE);

         BEGIN
            SELECT ACTUAL_FLAG
              INTO V_ACTUAL_FLAG
              FROM XXWIPRO_STG
             WHERE ACTUAL_FLAG IN ('A', 'B', 'E');
         EXCEPTION
            WHEN NO_DATA_FOUND
            THEN
               V_ACTUAL_FLAG := NULL;
               V_FLAG := 'E';
               V_ERR_FLAG := 'E';
               FND_FILE.PUT_LINE (FND_FILE.LOG, 'The Flag is not correct');
         END;

         FND_FILE.
          PUT_LINE (FND_FILE.LOG,
                    'The data inserting is... ' || V_ACTUAL_FLAG);

         IF V_FLAG = 'A'
         THEN
            INSERT INTO GL_INTERFACE (STATUS,
                                      SET_OF_BOOKS_ID,
                                      USER_JE_SOURCE_NAME,
                                      USER_JE_CATEGORY_NAME,
                                      CURRENCY_CODE,
                                      ACTUAL_FLAG,
                                      ACCOUNTING_DATE,
                                      DATE_CREATED,
                                      CREATED_BY,
                                      ENTERED_DR,
                                      ENTERED_CR,
                                      ACCOUNTED_DR,
                                      ACCOUNTED_CR,
                                      SEGMENT1,
                                      SEGMENT2,
                                      SEGMENT3,
                                      SEGMENT4,
                                      SEGMENT5)
                 VALUES (V_STATUS,
                         V_SOB_ID,
                         V_USER_JE_SOURCE_NAME,
                         V_USER_JE_CATEGORY_NAME,
                         V_CUR_CODE,
                         V_ACTUAL_FLAG,
                         REC.ACCOUNTING_DATE,
                         REC.DATE_CREATED,
                         786,
                         REC.ENTERED_DR,
                         REC.ENTERED_CR,
                         REC.ACCOUNTED_DR,
                         REC.ACCOUNTED_CR,
                         REC.SEGMENT1,
                         REC.SEGMENT2,
                         REC.SEGMENT3,
                         REC.SEGMENT4,
                         REC.SEGMENT5);
         END IF;

         V_FLAG := NULL;
         V_ERR_FLAG := NULL;
      END LOOP;

      COMMIT;
   END;
END XXWIPRO_GL_INT_PKG;
/

OUTPUT :- Package body created.

---------------------------------------------------------

5.  Create the executable program with short_name and executable_file_name

Note:- 1. Short_Name                   = user define (XXWIP_GL_INT_F)

            2. Executable_file_name   = package_name.procedure_name
                                                           XXWIPRO_GL_INT_PKG.XXWIPRO_GL_INT_PROC



7. Create the Concurrent program 



Note :- there no parameters in this concurrent program

8. Wipro GL interface program assign in any Request Group with User responsibility 



 9. Run the WIPRO GL INTERFACE PROGRAM with attached user responsibility 









10.  now check the record in GL_Interface table 

select * from gl_interface

Let me know if any query

Thanks
Technical Israr

No comments:

Post a Comment