Showing posts with label BDC. Show all posts
Showing posts with label BDC. Show all posts

Monday, April 25, 2022

SESSION METHOD IN SAP ABAP.

SESSION METHOD IN SAP ABAP. 


Differences between call transaction and session method.


In call transaction updation is immediate but in session method updation is not immediate.

In call transaction user has to handle errors but in session system handles the errors.

In call transaction updation can be synchronous or asynchronous or local but in session method updation by default synchronous.

Call transaction returns sy-subrc value but session will not return sy-subrc value.


In session method the data will be stored intermediately in session. After processing the session only the data will be moved into data base. For processing the session the T-code is SM35.


SESSION:- It is an intermediate memory area where data with flow logic is stored. It is intermediate between internal table and data base table. A session can not be processed on the date on which it is created. A session can not be processed if it is processed successfully. If session is having error it can be processed any number of times.



In session method we have to use 3 function modules.

BDC_OPEN_GROUP

BDC_INSERT

BDC_CLOSE_GROUP


BDC_OPEN_GROUP: -  This function module is used to create a session with particular name.


BDC_INSERT:-  This function module is used to move flow logic and data into session. This function module should be called between the loop and endloop after recording steps.


BDC_CLOSE_GROUP:- This function module should be used to close the session. If this function module is not used the session will be created but we cant process the session.

Wednesday, September 30, 2020

BP transection tax Classified Upload Program In SAP ABAP.

BP transection BDC Program In SAP ABAP.

BDC Program for BP transection.

REPORT ZTCS_TAXCLASSIFIED_UPLOAD.

INCLUDE ZTCS_TAXCLASSIFIED_UPLOAD_TOP2.
INCLUDE ZTCS_TAXCLASSIFIED_UPLOAD2.
INCLUDE ZTCS_TAXCLASSIFIED_UPLOAD_SUB2.

INITIALIZATION.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path.

  CALL FUNCTION 'F4_FILENAME'
*   EXPORTING
*     PROGRAM_NAME        = SYST-CPROG
*     DYNPRO_NUMBER       = SYST-DYNNR
*     FIELD_NAME          = ' '
    IMPORTING
      file_name p_path.

START-OF-SELECTION.
  PERFORM get_excel_data.
  PERFORM call_bdc.
====================================================================================
*&---------------------------------------------------------------------*
*& INCLUDE          ZTCS_TAXCLASSIFIED_UPLOAD_TOP2
*&---------------------------------------------------------------------*
DATA SERIAL TYPE I.
TYPES BEGIN OF TYP_FINAL,
        OPEN_NUMBER(10),
        PARTNER_ROLE(7),
        TAXKD(1),
        END OF TYP_FINAL.
FIELD-SYMBOLS<FS_FINAL> TYPE TYP_FINAL.
FIELD-SYMBOLS <FS>.

DATA IT_FINAL TYPE STANDARD TABLE OF TYP_FINAL,
       WA_FINAL TYPE                   TYP_FINAL,
       IT_EXCEL TYPE STANDARD TABLE OF ALSMEX_TABLINE,
       WA_EXCEL TYPE                   ALSMEX_TABLINE,
       BDCDATA  LIKE BDCDATA OCCURS WITH HEADER LINE,
       MESSTAB  LIKE BDCMSGCOLL OCCURS WITH HEADER LINE,
       INDEX    TYPE I,
       MSG      TYPE STRING.
================================================================================
*&---------------------------------------------------------------------*
*& INCLUDE          ZTCS_TAXCLASSIFIED_UPLOAD2
*&---------------------------------------------------------------------*
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS P_PATH LIKE RLGRAP-FILENAME OBLIGATORY,
             P_STROW TYPE OBLIGATORY,
             P_EDROW TYPE OBLIGATORY.
SELECTION-SCREEN SKIP 1.
PARAMETERS P_MODE LIKE CTU_PARAMS-DISMODE OBLIGATORY.
SELECTION-SCREEN END OF BLOCK B1.
===============================================================================
*&---------------------------------------------------------------------*
*& INCLUDE          ZTCS_TAXCLASSIFIED_UPLOAD_SUB2
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& FORM GET_EXCEL_DATA
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& -->  P1        TEXT
*& <--  P2        TEXT
*&---------------------------------------------------------------------*
FORM GET_EXCEL_DATA .
  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      FILENAME                P_PATH
      I_BEGIN_COL             1
      I_BEGIN_ROW             P_STROW
      I_END_COL               100
      I_END_ROW               P_EDROW
    TABLES
      INTERN                  IT_EXCEL
    EXCEPTIONS
      INCONSISTENT_PARAMETERS 1
      UPLOAD_OLE              2
      OTHERS                  3.
  IF SY-SUBRC <> 0.
    MESSAGE 'ERROR OCCUR IN READING THE EXCEL FILE' TYPE 'I'.
    STOP.
  ENDIF.

  LOOP AT IT_EXCEL INTO WA_EXCEL.
    INDEX WA_EXCEL-COL.
    ASSIGN COMPONENT INDEX OF STRUCTURE WA_FINAL TO <FS>.
    <FS> WA_EXCEL-VALUE.
    AT END OF ROW.
      APPEND WA_FINAL TO IT_FINAL.
      CLEAR WA_FINAL.
    ENDAT.
  ENDLOOP.
ENDFORM.
*&---------------------------------------------------------------------*
*& FORM CALL_BDC
*&---------------------------------------------------------------------*
*& TEXT
*&---------------------------------------------------------------------*
*& -->  P1        TEXT
*& <--  P2        TEXT
*&---------------------------------------------------------------------*
FORM CALL_BDC .
LOOP AT IT_FINAL INTO WA_FINAL.
    REFRESH BDCDATA.
    REFRESH MESSTAB.
    CLEAR   BDCDATA.
    CLEAR   MESSTAB.

perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SCREEN_1000_SETTINGS'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BDC_CURSOR'
                              'BUS_JOEL_MAIN-CHANGE_NUMBER'.
perform bdc_dynpro      using 'SAPLBUPA_DIALOG_SETTINGS' '4000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BUS_MAIN_ENTER'.
perform bdc_field       using 'BDC_CURSOR'
                              'BUS_JOEL_SET-BUPR_CHANGE_MODE'.
perform bdc_field       using 'BUS_JOEL_SET-BUPA_DISPLAY_MODE'
                              ''.
perform bdc_field       using 'BUS_JOEL_SET-BUPA_CHANGE_MODE'
                              'X'.
perform bdc_field       using 'BUS_JOEL_SET-BUPR_DISPLAY_MODE'
                              ''.
perform bdc_field       using 'BUS_JOEL_SET-BUPR_CHANGE_MODE'
                              'X'.
perform bdc_field       using 'BUS_JOEL_SET-BUPA_CREATE_ROLE'
                              'X'.
perform bdc_field       using 'BUS_JOEL_SET-USE_ALV'
                              'X'.
perform bdc_field       using 'BUS_LOCATOR_SET-NARROW'
                              'X'.
perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SCREEN_1000_OPEN'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BDC_CURSOR'
                              'BUS_JOEL_MAIN-CHANGE_NUMBER'.
perform bdc_dynpro      using 'SAPLBUPA_DIALOG_JOEL' '1600'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BUS_MAIN_ENTER'.
perform bdc_field       using 'BDC_CURSOR'
                              'BUS_JOEL_MAIN-OPEN_NUMBER'.
perform bdc_field       using 'BUS_JOEL_MAIN-OPEN_NUMBER' WA_FINAL-OPEN_NUMBER.
                                                                                      " '100000011'.
perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SCREEN_1110_CHG_ROLE'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BDC_CURSOR'
                              'BUS_JOEL_MAIN-PARTNER_ROLE'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_ROLE'  WA_FINAL-PARTNER_ROLE.
                                                                          "'FLCU01'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
                              '000001'.
*perform bdc_field       using 'BUS000FLDS-TITLE_MEDI'
*                              '3000'.
**perform bdc_field       using 'BUT000-NAME_ORG1'
**                              'S. DHAWAN & SONS.'.
**perform bdc_field       using 'BUS000FLDS-BU_SORT1_TXT'
**                              'SD3'.
**perform bdc_field       using 'ADDR1_DATA-STR_SUPPL1'
**                              '118 CHAMPAKLAL INDUSTRIAL ESTATE'.
**perform bdc_field       using 'ADDR1_DATA-STR_SUPPL2'
**                              'MUMBAI'.
**perform bdc_field       using 'ADDR1_DATA-CITY2'
**                              'MUMBAI'.
**perform bdc_field       using 'ADDR1_DATA-POST_CODE1'
**                              '400022'.
**perform bdc_field       using 'ADDR1_DATA-CITY1'
**                              'MUMBAI'.
**perform bdc_field       using 'ADDR1_DATA-COUNTRY'
**                              'IN'.
**perform bdc_field       using 'ADDR1_DATA-REGION'
**                              '27'.
**perform bdc_field       using 'ADDR1_DATA-TIME_ZONE'
**                              'INDIA'.
**perform bdc_field       using 'ADDR1_DATA-LANGU'
**                              'EN'.
**perform bdc_field       using 'SZA1_D0100-TEL_NUMBER'
**                              '23344451'.
**perform bdc_field       using 'SZA1_D0100-MOB_NUMBER'
**                              '98475626731'.
**perform bdc_field       using 'SZA1_D0100-FAX_NUMBER'
**                              '36464751'.
**perform bdc_field       using 'SZA1_D0100-SMTP_ADDR'
**                              'siddharth.banerjee@gmail.com'.
**perform bdc_field       using 'BUS000FLDS-ADDR_VALID_FROM'
**                              '23.04.2019'.
**perform bdc_field       using 'BUS000FLDS-ADDR_VALID_TO'
**                              '31.12.9999'.
perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SCREEN_1000_MAIN_P02'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_ROLE' WA_FINAL-PARTNER_ROLE.
                                                                                 " 'FLCU01'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
                              '000001'.
perform bdc_field       using 'BDC_CURSOR'
                              'BUS000FLDS-TITLE_MEDI'.
*perform bdc_field       using 'BUS000FLDS-TITLE_MEDI'
*                              '3000'.
*perform bdc_field       using 'BUT000-NAME_ORG1'
*                              'S. DHAWAN & SONS.'.
*perform bdc_field       using 'BUS000FLDS-BU_SORT1_TXT'
*                              'SD3'.
*perform bdc_field       using 'ADDR1_DATA-STR_SUPPL1'
*                              '118 CHAMPAKLAL INDUSTRIAL ESTATE'.
*perform bdc_field       using 'ADDR1_DATA-STR_SUPPL2'
*                              'MUMBAI'.
*perform bdc_field       using 'ADDR1_DATA-CITY2'
*                              'MUMBAI'.
*perform bdc_field       using 'ADDR1_DATA-POST_CODE1'
*                              '400022'.
*perform bdc_field       using 'ADDR1_DATA-CITY1'
*                              'MUMBAI'.
*perform bdc_field       using 'ADDR1_DATA-COUNTRY'
*                              'IN'.
*perform bdc_field       using 'ADDR1_DATA-REGION'
*                              '27'.
*perform bdc_field       using 'ADDR1_DATA-TIME_ZONE'
*                              'INDIA'.
*perform bdc_field       using 'ADDR1_DATA-LANGU'
*                              'EN'.
*perform bdc_field       using 'SZA1_D0100-TEL_NUMBER'
*                              '23344451'.
*perform bdc_field       using 'SZA1_D0100-MOB_NUMBER'
*                              '98475626731'.
*perform bdc_field       using 'SZA1_D0100-FAX_NUMBER'
*                              '36464751'.
*perform bdc_field       using 'SZA1_D0100-SMTP_ADDR'
*                              'siddharth.banerjee@gmail.com'.
*perform bdc_field       using 'BUS000FLDS-ADDR_VALID_FROM'
*                              '23.04.2019'.
*perform bdc_field       using 'BUS000FLDS-ADDR_VALID_TO'
*                              '31.12.9999'.
perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=CVIC_SA_DETAIL'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_ROLE'  WA_FINAL-PARTNER_ROLE.
                                                                     " 'FLCU01'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
                              '000001'.
perform bdc_field       using 'BDC_CURSOR'
                              'RF02D-VKORG'.
perform bdc_dynpro      using 'SAPLBUSS' '0040'.
perform bdc_field       using 'BDC_OKCODE'
                              '=CVIC_SA_OKAY'.
perform bdc_field       using 'BDC_CURSOR'
                              'CVIS_SALES_AREA_DYNPRO-SALES_ORG(01)'.
perform bdc_field       using 'CVIS_SALES_AREA_DYNPRO-XMARK(01)'
                              'X'.
perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=SCREEN_1100_TAB_03'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_ROLE'  WA_FINAL-PARTNER_ROLE.
                                                                   "  'FLCU01'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
                              '000001'.
perform bdc_field       using 'BDC_CURSOR'
                              'RF02D-VKORG'.
**perform bdc_field       using 'GS_KNVV-BZIRK'
**                              'T22004'.
**perform bdc_field       using 'GS_KNVV-VKBUR'
**                              '15'.
**perform bdc_field       using 'GS_KNVV-VKGRP'
**                              '22'.
**perform bdc_field       using 'GS_KNVV_DYNP-AWAHR'
**                              '100'.
**perform bdc_field       using 'GS_KNVV-WAERS'
**                              'INR'.
**perform bdc_field       using 'GS_KNVV-KURST'
**                              ''.
**perform bdc_field       using 'GS_KNVV-KALKS'
**                              '1'.
perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BUS_MAIN_ENTER'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_ROLE'  WA_FINAL-PARTNER_ROLE.
                                                                               " 'FLCU01'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
                              '000001'.
*perform bdc_field       using 'GS_KNVV-INCO1'
*                              'FOB'.
*perform bdc_field       using 'GS_KNVV-INCO2_L'
*                              'Free on Board'.
*perform bdc_field       using 'GS_KNVV-ZTERM'
*                              'Z006'.
*perform bdc_field       using 'GS_KNVV-KKBER'
*                              '1100'.
*perform bdc_field       using 'GS_KNVV-KTGRD'
*                              '01'.
perform bdc_field       using 'BDC_CURSOR'
                              'GT_KNVI_TC-TAXKD(05)'.
perform bdc_field       using 'GT_KNVI_TC-TAXKD(05)' WA_FINAL-TAXKD.
                                                                       "   '1'.
perform bdc_dynpro      using 'SAPLBUS_LOCATOR' '3000'.
perform bdc_field       using 'BDC_OKCODE'
                              '=BUS_MAIN_SAVE'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_TYPE'
                              '3'.
perform bdc_field       using 'BUS_LOCA_SRCH01-SEARCH_ID'
                              '8'.
perform bdc_field       using 'BUS_LOCA_SRCH01-MAXHIT'
                              '100'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_ROLE'  WA_FINAL-PARTNER_ROLE.
                                                                      "  ' FLCU01'.
perform bdc_field       using 'BUS_JOEL_MAIN-PARTNER_TIMEDEP'
                              '000001'.
*perform bdc_field       using 'GS_KNVV-INCO1'
*                              'FOB'.
*perform bdc_field       using 'GS_KNVV-INCO2_L'
*                              'Free on Board'.
*perform bdc_field       using 'GS_KNVV-ZTERM'
*                              'Z006'.
*perform bdc_field       using 'GS_KNVV-KKBER'
*                              '1100'.
*perform bdc_field       using 'GS_KNVV-KTGRD'
*                              '01'.
perform bdc_field       using 'BDC_CURSOR'
                              'GT_KNVI_TC-TAXKD(05)'.

CALL TRANSACTION 'BP' USING BDCDATA
                        MODE  P_MODE
                        MESSAGES INTO MESSTAB.

    LOOP AT MESSTAB.
      IF MESSTAB-MSGTYP 'E' OR MESSTAB-MSGTYP 'S'.

        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            ID        SY-MSGID
            LANG      '-D'
            NO        SY-MSGNO
            V1        SY-MSGV1
            V2        SY-MSGV2
            V3        SY-MSGV3
            V4        SY-MSGV4
          IMPORTING
            MSG       MSG
          EXCEPTIONS
            NOT_FOUND 1
            OTHERS    2.
        IF SY-SUBRC <> 0.

        ENDIF.
        SERIAL SERIAL + 1.
        WRITE :/9 SERIAL COLOR 7MSG.
      ENDIF.
    ENDLOOP.

ENDLOOP.
ENDFORM.
*----------------------------------------------------------------------*
*        START NEW SCREEN                                              *
*----------------------------------------------------------------------*
FORM BDC_DYNPRO USING PROGRAM DYNPRO.
  CLEAR BDCDATA.
  BDCDATA-PROGRAM  PROGRAM.
  BDCDATA-DYNPRO   DYNPRO.
  BDCDATA-DYNBEGIN 'X'.
  APPEND BDCDATA.
ENDFORM.
*----------------------------------------------------------------------*
*        INSERT FIELD                                                  *
*----------------------------------------------------------------------*
FORM BDC_FIELD USING FNAM FVAL.
*  IF FVAL <> NODATA.
  CLEAR BDCDATA.
  BDCDATA-FNAM FNAM.
  BDCDATA-FVAL FVAL.
  SHIFT BDCDATA-FVAL LEFT DELETING LEADING SPACE.
  APPEND BDCDATA.
*  ENDIF.
ENDFORM.