<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Error handling in  Session Method in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371022#M525355</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;We have the tables BDCLD and BDCLM, which will capture the log details &lt;/P&gt;&lt;P&gt;inthe session. Firstly, sesssion should be processed. After that log &lt;/P&gt;&lt;P&gt;will be created. Then caputure the information into an internal table&lt;/P&gt;&lt;P&gt; using BDCLM and BDCLD. &lt;/P&gt;&lt;P&gt;for downloading log data then use Program : RSBDCLOG &lt;/P&gt;&lt;P&gt;REPORT  zgopi_report&lt;/P&gt;&lt;P&gt; NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                        LINE-SIZE 255&lt;/P&gt;&lt;P&gt;                        MESSAGE-ID ZRASH.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Internal Table Declarations                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*--Internal Table for Data Uploading.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_FFCUST OCCURS 0,&lt;/P&gt;&lt;P&gt;         KUNNR(10),&lt;/P&gt;&lt;P&gt;         BUKRS(4),&lt;/P&gt;&lt;P&gt;         KTOKD(4),&lt;/P&gt;&lt;P&gt;         ANRED(15),&lt;/P&gt;&lt;P&gt;         NAME1(35),&lt;/P&gt;&lt;P&gt;         SORTL(10),&lt;/P&gt;&lt;P&gt;         STRAS(35),&lt;/P&gt;&lt;P&gt;         ORT01(35),&lt;/P&gt;&lt;P&gt;         PSTLZ(10),&lt;/P&gt;&lt;P&gt;         LAND1(3),&lt;/P&gt;&lt;P&gt;         SPRAS(2),&lt;/P&gt;&lt;P&gt;         AKONT(10),&lt;/P&gt;&lt;P&gt;       END OF IT_FFCUST.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table to Store Error Records.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_ERRCUST OCCURS 0,&lt;/P&gt;&lt;P&gt;         KUNNR(10),&lt;/P&gt;&lt;P&gt;         EMSG(255),&lt;/P&gt;&lt;P&gt;       END OF IT_ERRCUST.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table to Store Successful Records.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_SUCCUST OCCURS 0,&lt;/P&gt;&lt;P&gt;         KUNNR(10),&lt;/P&gt;&lt;P&gt;         SMSG(255),&lt;/P&gt;&lt;P&gt;       END OF IT_SUCCUST.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table for Storing the BDC data.&lt;/P&gt;&lt;P&gt;DATA : IT_CUSTBDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table for storing the messages.&lt;/P&gt;&lt;P&gt;DATA : IT_CUSTMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : V_FLAG1(1) VALUE ' ',&lt;/P&gt;&lt;P&gt;"Flag used for opening session.&lt;/P&gt;&lt;P&gt;       V_TLINES LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;       "For storing total records processed.&lt;/P&gt;&lt;P&gt;       V_ELINES LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;       "For storing the no of error records.&lt;/P&gt;&lt;P&gt;       V_SLINES LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;       "For storing the no of success records.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         Selection screen                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1.&lt;/P&gt;&lt;P&gt;PARAMETERS : V_FNAME LIKE RLGRAP-FILENAME,&lt;/P&gt;&lt;P&gt;             V_SESNAM  LIKE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         Start-of-selection                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*-- Form to upload flatfile data into the internal table.&lt;/P&gt;&lt;P&gt;  PERFORM FORM_UPLOADFF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       TOP-OF-PAGE                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Details of the error and success records for the transaction'&lt;/P&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         End of Selection                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*-- Form to Generate a BDC from the Uploaded Internal table&lt;/P&gt;&lt;P&gt;  PERFORM FORM_BDCGENERATE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--To write the totals and the session name.&lt;/P&gt;&lt;P&gt;  PERFORM FORM_WRITEOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  form_uploadff&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Form to upload flatfile data into the internal table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_UPLOADFF .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Variable to change the type of the parameter file name.&lt;/P&gt;&lt;P&gt;  DATA : LV_FILE TYPE STRING.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LV_FILE = V_FNAME.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Function to upload the flat file to the internal table.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                      =  LV_FILE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FILETYPE                      = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FILELENGTH                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                      = IT_FFCUST&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;P&gt;      FILE_READ_ERROR               = 2&lt;/P&gt;&lt;P&gt;      NO_BATCH                      = 3&lt;/P&gt;&lt;P&gt;      GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;P&gt;      INVALID_TYPE                  = 5&lt;/P&gt;&lt;P&gt;      NO_AUTHORITY                  = 6&lt;/P&gt;&lt;P&gt;      UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;P&gt;      BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;P&gt;      HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;      SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;P&gt;      HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;P&gt;      UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;P&gt;      ACCESS_DENIED                 = 13&lt;/P&gt;&lt;P&gt;      DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;P&gt;      DISK_FULL                     = 15&lt;/P&gt;&lt;P&gt;      DP_TIMEOUT                    = 16&lt;/P&gt;&lt;P&gt;      OTHERS                        = 17&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;*--Deleting the headings from the internal table.&lt;/P&gt;&lt;P&gt;    DELETE IT_FFCUST INDEX 1.&lt;/P&gt;&lt;P&gt;*--Getting the total number of records uploaded.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE IT_FFCUST LINES V_TLINES.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " form_uploadff&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  Form_bdcgenerate&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Form to Generate a BDC from the Uploaded Internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_BDCGENERATE .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Generating the BDC table for the fields of the internal table.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_FFCUST.&lt;/P&gt;&lt;P&gt;    PERFORM POPULATEBDC USING :&lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0105',&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00' ,&lt;/P&gt;&lt;P&gt;                                ' ' 'RF02D-KUNNR' IT_FFCUST-KUNNR,&lt;/P&gt;&lt;P&gt;                                ' ' 'RF02D-BUKRS' IT_FFCUST-BUKRS,&lt;/P&gt;&lt;P&gt;                                ' ' 'RF02D-KTOKD' IT_FFCUST-KTOKD,&lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0110' ,&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-ANRED'  IT_FFCUST-ANRED,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-NAME1' IT_FFCUST-NAME1,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-SORTL'  IT_FFCUST-SORTL,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-STRAS' IT_FFCUST-STRAS,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-ORT01' IT_FFCUST-ORT01,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-PSTLZ' IT_FFCUST-PSTLZ,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-LAND1' IT_FFCUST-LAND1,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-SPRAS' IT_FFCUST-SPRAS,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMFO2D' '0120',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0125',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0130',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=ENTR',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0340',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=ENTR',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0360',&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=ENTR',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0210',	&lt;/P&gt;&lt;P&gt;                                ' ' 'KNB1-AKONT'  IT_FFCUST-AKONT,&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0215',&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0220',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0230',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=UPDA'.&lt;/P&gt;&lt;P&gt;*--Calling the transaction 'fd01'.&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION 'FD01' USING IT_CUSTBDC MODE 'N' UPDATE 'S'&lt;/P&gt;&lt;P&gt;    MESSAGES INTO IT_CUSTMSG.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;*--Populating the error records internal table.&lt;/P&gt;&lt;P&gt;      IT_ERRCUST-KUNNR = IT_FFCUST-KUNNR.&lt;/P&gt;&lt;P&gt;      APPEND IT_ERRCUST.&lt;/P&gt;&lt;P&gt;      CLEAR IT_ERRCUST.&lt;/P&gt;&lt;P&gt;*--Opening a session if there is an error record.&lt;/P&gt;&lt;P&gt;      IF V_FLAG1 = ' '.&lt;/P&gt;&lt;P&gt;        PERFORM FORM_OPENSESSION.&lt;/P&gt;&lt;P&gt;        V_FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*--Inserting the error records into already open session.&lt;/P&gt;&lt;P&gt;      IF V_FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;        PERFORM FORM_INSERT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*--Populating the Success records internal table.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      IT_SUCCUST-KUNNR = IT_FFCUST-KUNNR.&lt;/P&gt;&lt;P&gt;      APPEND IT_SUCCUST.&lt;/P&gt;&lt;P&gt;      CLEAR IT_SUCCUST.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*--Displaying the messages.&lt;/P&gt;&lt;P&gt;    IF NOT IT_CUSTMSG[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_FORMATMSG.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*--Clearing the message and bdc tables.&lt;/P&gt;&lt;P&gt;    CLEAR : IT_CUSTBDC[],IT_CUSTMSG[].&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Getting the total no of error records.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_ERRCUST LINES V_ELINES.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Getting the total no of successful records.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_SUCCUST LINES V_SLINES.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Closing the session only if it is open.&lt;/P&gt;&lt;P&gt;  IF V_FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM FORM_CLOSESESS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " Form_bdcgenerate&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  populatebdc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FOrm to Populate the BDC table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM POPULATEBDC  USING    VALUE(P_0178)&lt;/P&gt;&lt;P&gt;                           VALUE(P_0179)&lt;/P&gt;&lt;P&gt;                           VALUE(P_0180).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF P_0178 = 'X'.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-PROGRAM = P_0179.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-DYNPRO = P_0180.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-FNAM = P_0179.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-FVAL = P_0180.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND IT_CUSTBDC.&lt;/P&gt;&lt;P&gt;  CLEAR IT_CUSTBDC.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " populatebdc&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_OPENSESSION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form to Open a session.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_OPENSESSION .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Variable to convert the given session name into reqd type.&lt;/P&gt;&lt;P&gt;  DATA : LV_SESNAM(12).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LV_SESNAM = V_SESNAM.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Opening a session.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     CLIENT                    = SY-MANDT&lt;/P&gt;&lt;P&gt;     GROUP                     = LV_SESNAM&lt;/P&gt;&lt;P&gt;     HOLDDATE                  = '20040805'&lt;/P&gt;&lt;P&gt;     KEEP                      = 'X'&lt;/P&gt;&lt;P&gt;     USER                      = SY-UNAME&lt;/P&gt;&lt;P&gt;     PROG                      = SY-CPROG&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   QID                       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     CLIENT_INVALID            = 1&lt;/P&gt;&lt;P&gt;     DESTINATION_INVALID       = 2&lt;/P&gt;&lt;P&gt;     GROUP_INVALID             = 3&lt;/P&gt;&lt;P&gt;     GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;P&gt;     HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;P&gt;     INTERNAL_ERROR            = 6&lt;/P&gt;&lt;P&gt;     QUEUE_ERROR               = 7&lt;/P&gt;&lt;P&gt;     RUNNING                   = 8&lt;/P&gt;&lt;P&gt;     SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;P&gt;     USER_INVALID              = 10&lt;/P&gt;&lt;P&gt;     OTHERS                    = 11&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Session not open'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_OPENSESSION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_INSERT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      fORM TO INSERT ERROR RECOED INTO A SESSION.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_INSERT .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Inserting the record into session.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      TCODE                  = 'FD01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    POST_LOCAL             = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PRINTING               = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SIMUBATCH              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    CTUPARAMS              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DYNPROTAB              = IT_CUSTBDC&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR         = 1&lt;/P&gt;&lt;P&gt;      NOT_OPEN               = 2&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR            = 3&lt;/P&gt;&lt;P&gt;      TCODE_INVALID          = 4&lt;/P&gt;&lt;P&gt;      PRINTING_INVALID       = 5&lt;/P&gt;&lt;P&gt;      POSTING_INVALID        = 6&lt;/P&gt;&lt;P&gt;      OTHERS                 = 7&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Unable to insert the record'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_INSERT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_CLOSESESS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form to Close the Open Session.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_CLOSESESS .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      NOT_OPEN    = 1&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR = 2&lt;/P&gt;&lt;P&gt;      OTHERS      = 3.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_CLOSESESS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_FORMATMSG&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form to format messages.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_FORMATMSG .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Var to store the formatted msg.&lt;/P&gt;&lt;P&gt;  DATA : LV_MSG(255).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      ID        = SY-MSGID&lt;/P&gt;&lt;P&gt;      LANG      = SY-LANGU&lt;/P&gt;&lt;P&gt;      NO        = SY-MSGNO&lt;/P&gt;&lt;P&gt;      V1        = SY-MSGV1&lt;/P&gt;&lt;P&gt;      V2        = SY-MSGV2&lt;/P&gt;&lt;P&gt;      V3        = SY-MSGV3&lt;/P&gt;&lt;P&gt;      V4        = SY-MSGV4&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      MSG       = LV_MSG&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;      OTHERS    = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; LV_MSG.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_FORMATMSG&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  form_writeop&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To write the totals and the session name.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_WRITEOP .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Total Records Uploaded :',V_TLINES,&lt;/P&gt;&lt;P&gt;           / 'No of Error Records :',V_ELINES,&lt;/P&gt;&lt;P&gt;           / 'No of Success Records :',V_SLINES,&lt;/P&gt;&lt;P&gt;           / 'Name of the Session :',V_SESNAM.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 12 Jun 2007 04:32:27 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2007-06-12T04:32:27Z</dc:date>
    <item>
      <title>Error handling in  Session Method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371018#M525351</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Experts,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           In BDC Call Transaction we down load the errors for end users purpose. But in Session Method , how can end user can see the errors without going to SM35. Bcz end user dont know what is SM35.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Pls guide me how to solve this problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank You.&lt;/P&gt;&lt;P&gt;Siva Kumar&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 04:02:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371018#M525351</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T04:02:13Z</dc:date>
    </item>
    <item>
      <title>Re: Error handling in  Session Method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371019#M525352</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;You could use bdcmsgcoll in sesion method to get errors or use this program RSBDCLOG  to dowmload into .txt file.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 04:05:43 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371019#M525352</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T04:05:43Z</dc:date>
    </item>
    <item>
      <title>Re: Error handling in  Session Method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371020#M525353</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;can u give an example for this&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thank you&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 04:08:53 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371020#M525353</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T04:08:53Z</dc:date>
    </item>
    <item>
      <title>Re: Error handling in  Session Method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371021#M525354</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;there is no option in sm35 to download ,so we use program to download by using session name in selection&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;RSBDCLOG&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;or use We have the tables BDCLD and BDCLM, which will capture the log details inthe session. Firstly, sesssion should be processed. After that log will be created. Then caputure the information into an internal table using BDCLM and BDCLD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;See the example program with error handling&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zreport_bdc_session_01 .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;**// Include program for top and global data declaration&lt;/P&gt;&lt;P&gt;*INCLUDE zreport_bdc_01_top.&lt;/P&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*// Include for subroutines&lt;/P&gt;&lt;P&gt;*INCLUDE zreport_bdc_01_forms.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*// Types&lt;/P&gt;&lt;P&gt;TYPES:&lt;/P&gt;&lt;P&gt;BEGIN OF typ_itab,&lt;/P&gt;&lt;P&gt;lifnr TYPE rf02k-lifnr,&lt;/P&gt;&lt;P&gt;ekorg TYPE rf02k-ekorg,&lt;/P&gt;&lt;P&gt;ktokk TYPE rf02k-ktokk,&lt;/P&gt;&lt;P&gt;name1 TYPE lfa1-name1,&lt;/P&gt;&lt;P&gt;sortl TYPE lfa1-sortl,&lt;/P&gt;&lt;P&gt;ort01 TYPE lfa1-ort01,&lt;/P&gt;&lt;P&gt;pstlz TYPE lfa1-pstlz,&lt;/P&gt;&lt;P&gt;land1 TYPE lfa1-land1,&lt;/P&gt;&lt;P&gt;waers TYPE lfm1-waers,&lt;/P&gt;&lt;P&gt;END OF typ_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*// GlobalInternal tables&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;it_itab TYPE STANDARD TABLE OF typ_itab,&lt;/P&gt;&lt;P&gt;it_bdc TYPE STANDARD TABLE OF bdcdata,&lt;/P&gt;&lt;P&gt;it_msg TYPE STANDARD TABLE OF bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*// Global worlareas&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;wa_itab TYPE typ_itab,&lt;/P&gt;&lt;P&gt;wa_bdc TYPE bdcdata,&lt;/P&gt;&lt;P&gt;wa_msg TYPE bdcmsgcoll.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*// global variables.&lt;/P&gt;&lt;P&gt;DATA:&lt;/P&gt;&lt;P&gt;g_ret TYPE c ,&lt;/P&gt;&lt;P&gt;g_file TYPE char20,&lt;/P&gt;&lt;P&gt;g_msg TYPE char100,&lt;/P&gt;&lt;P&gt;tmp_file TYPE string,&lt;/P&gt;&lt;P&gt;g_qid TYPE apqi-qid.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*// global constants.&lt;/P&gt;&lt;P&gt;CONSTANTS:&lt;/P&gt;&lt;P&gt;c_e TYPE c VALUE 'E',&lt;/P&gt;&lt;P&gt;c_s TYPE c VALUE 'S'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*// selection screen&lt;/P&gt;&lt;P&gt;PARAMETERS:&lt;/P&gt;&lt;P&gt;p_file TYPE char20 OBLIGATORY DEFAULT 'C:\VENDOR19.TXT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;g_file = p_file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'WS_QUERY'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;filename = g_file&lt;/P&gt;&lt;P&gt;query = 'FE'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;return = g_ret.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF g_ret NE '1'.&lt;/P&gt;&lt;P&gt;MESSAGE text-001 TYPE c_e.&lt;/P&gt;&lt;P&gt;STOP.&lt;/P&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;tmp_file = p_file.&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;filename = tmp_file&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILETYPE = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;has_field_separator = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER_LENGTH = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;READ_BY_LINE = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DAT_MODE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CODEPAGE = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IGNORE_CERR = ABAP_TRUE&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;REPLACEMENT = '#'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CHECK_BOM = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILELENGTH =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;data_tab = it_itab&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILE_OPEN_ERROR = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FILE_READ_ERROR = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_BATCH = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GUI_REFUSE_FILETRANSFER = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INVALID_TYPE = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NO_AUTHORITY = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNKNOWN_ERROR = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;BAD_DATA_FORMAT = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER_NOT_ALLOWED = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SEPARATOR_NOT_ALLOWED = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HEADER_TOO_LONG = 11&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;UNKNOWN_DP_ERROR = 12&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ACCESS_DENIED = 13&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DP_OUT_OF_MEMORY = 14&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DISK_FULL = 15&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DP_TIMEOUT = 16&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 17&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLIENT = SY-MANDT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DEST = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;group = 'ZSESSION01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HOLDDATE = FILLER8&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;keep = 'X'&lt;/P&gt;&lt;P&gt;user = sy-uname&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RECORD = FILLER1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PROG = SY-CPROG&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;qid = g_qid&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CLIENT_INVALID = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;DESTINATION_INVALID = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GROUP_INVALID = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;GROUP_IS_LOCKED = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;HOLDDATE_INVALID = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL_ERROR = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;QUEUE_ERROR = 7&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;RUNNING = 8&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SYSTEM_LOCK_ERROR = 9&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;USER_INVALID = 10&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 11&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;LOOP AT it_itab INTO wa_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcsys TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'SAPMF02K' '0107' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcdata:&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_CURSOR' 'RF02K-KTOKK',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_OKCODE' '/00',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'RF02K-LIFNR' wa_itab-lifnr,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'RF02K-EKORG' wa_itab-ekorg,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'RF02K-KTOKK' wa_itab-ktokk.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcsys TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'SAPMF02K' '0110' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcdata:&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_CURSOR' 'LFA1-LAND1',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_OKCODE' '/00',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'LFA1-NAME1' wa_itab-name1,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'LFA1-SORTL' wa_itab-sortl,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'LFA1-ORT01' wa_itab-ort01,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'LFA1-PSTLZ' wa_itab-pstlz,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'LFA1-LAND1' wa_itab-land1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcsys TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'SAPMF02K' '0120' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcdata: TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_OKCODE' '/00'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcsys TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'SAPMF02K' '0310' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcdata: TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_CURSOR' 'LFM1-WAERS',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_OKCODE' '/00',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'LFM1-WAERS' wa_itab-waers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcsys TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'SAPMF02K' '0320' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcdata: TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_CURSOR' 'RF02K-LIFNR',&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_OKCODE' '=ENTR'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcsys TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'SAPLSPO1' '0300' 'X'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM f_bdcdata: TABLES it_bdc&lt;/P&gt;&lt;P&gt;USING 'BDC_OKCODE' '=YES'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;tcode = 'MK01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POST_LOCAL = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINTING = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SIMUBATCH = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CTUPARAMS = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;TABLES&lt;/P&gt;&lt;P&gt;dynprotab = it_bdc&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;INTERNAL_ERROR = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOT_OPEN = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;QUEUE_ERROR = 3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;TCODE_INVALID = 4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;PRINTING_INVALID = 5&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;POSTING_INVALID = 6&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 7&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REFRESH: it_bdc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;LOOP AT it_msg INTO wa_msg WHERE msgtyp = c_e .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;id = wa_msg-msgid&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;lang = sy-langu&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;no = wa_msg-msgnr&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;v1 = wa_msg-msgv1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;v2 = wa_msg-msgv2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;v3 = wa_msg-msgv3&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;v4 = wa_msg-msgv4&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;msg = g_msg&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;not_found = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 2.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;/LI&gt;&lt;UL&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="2" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WRITE:/ ' MESSAGE: ', g_msg .&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;ENDLOOP.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;*&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;REFRESH it_msg.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;EXCEPTIONS&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;NOT_OPEN = 1&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;QUEUE_ERROR = 2&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;OTHERS = 3&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;.&lt;/P&gt;&lt;P&gt;IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;SUBMIT rsbdcbtc WITH qid = g_qid .&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form f_bdcsys&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_IT_BDC text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0129 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0130 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0131 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_bdcsys TABLES p_it_bdc STRUCTURE bdcdata&lt;/P&gt;&lt;P&gt;USING value(p_0129)&lt;/P&gt;&lt;P&gt;value(p_0130)&lt;/P&gt;&lt;P&gt;value(p_0131).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_it_bdc-program = p_0129.&lt;/P&gt;&lt;P&gt;p_it_bdc-dynpro = p_0130.&lt;/P&gt;&lt;P&gt;p_it_bdc-dynbegin = p_0131.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND p_it_bdc TO p_it_bdc.&lt;/P&gt;&lt;P&gt;CLEAR p_it_bdc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " f_bdcsys&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp; Form f_bdcdata&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_IT_BDC text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0168 text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;--&amp;gt;P_0169 text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM f_bdcdata TABLES p_it_bdc STRUCTURE bdcdata&lt;/P&gt;&lt;P&gt;USING value(p_0168)&lt;/P&gt;&lt;P&gt;value(p_0169).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;p_it_bdc-fnam = p_0168.&lt;/P&gt;&lt;P&gt;p_it_bdc-fval = p_0169.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;APPEND p_it_bdc TO p_it_bdc.&lt;/P&gt;&lt;P&gt;CLEAR p_it_bdc.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM. " f_bdcdata&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can process the session by going in tcode SM35&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;seshu&lt;/P&gt;&lt;P&gt;reward points if helpful.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 04:16:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371021#M525354</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T04:16:51Z</dc:date>
    </item>
    <item>
      <title>Re: Error handling in  Session Method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371022#M525355</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;hi,&lt;/P&gt;&lt;P&gt;We have the tables BDCLD and BDCLM, which will capture the log details &lt;/P&gt;&lt;P&gt;inthe session. Firstly, sesssion should be processed. After that log &lt;/P&gt;&lt;P&gt;will be created. Then caputure the information into an internal table&lt;/P&gt;&lt;P&gt; using BDCLM and BDCLD. &lt;/P&gt;&lt;P&gt;for downloading log data then use Program : RSBDCLOG &lt;/P&gt;&lt;P&gt;REPORT  zgopi_report&lt;/P&gt;&lt;P&gt; NO STANDARD PAGE HEADING&lt;/P&gt;&lt;P&gt;                        LINE-SIZE 255&lt;/P&gt;&lt;P&gt;                        MESSAGE-ID ZRASH.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;                Internal Table Declarations                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;*--Internal Table for Data Uploading.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_FFCUST OCCURS 0,&lt;/P&gt;&lt;P&gt;         KUNNR(10),&lt;/P&gt;&lt;P&gt;         BUKRS(4),&lt;/P&gt;&lt;P&gt;         KTOKD(4),&lt;/P&gt;&lt;P&gt;         ANRED(15),&lt;/P&gt;&lt;P&gt;         NAME1(35),&lt;/P&gt;&lt;P&gt;         SORTL(10),&lt;/P&gt;&lt;P&gt;         STRAS(35),&lt;/P&gt;&lt;P&gt;         ORT01(35),&lt;/P&gt;&lt;P&gt;         PSTLZ(10),&lt;/P&gt;&lt;P&gt;         LAND1(3),&lt;/P&gt;&lt;P&gt;         SPRAS(2),&lt;/P&gt;&lt;P&gt;         AKONT(10),&lt;/P&gt;&lt;P&gt;       END OF IT_FFCUST.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table to Store Error Records.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_ERRCUST OCCURS 0,&lt;/P&gt;&lt;P&gt;         KUNNR(10),&lt;/P&gt;&lt;P&gt;         EMSG(255),&lt;/P&gt;&lt;P&gt;       END OF IT_ERRCUST.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table to Store Successful Records.&lt;/P&gt;&lt;P&gt;DATA : BEGIN OF IT_SUCCUST OCCURS 0,&lt;/P&gt;&lt;P&gt;         KUNNR(10),&lt;/P&gt;&lt;P&gt;         SMSG(255),&lt;/P&gt;&lt;P&gt;       END OF IT_SUCCUST.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table for Storing the BDC data.&lt;/P&gt;&lt;P&gt;DATA : IT_CUSTBDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Internal Table for storing the messages.&lt;/P&gt;&lt;P&gt;DATA : IT_CUSTMSG LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;DATA : V_FLAG1(1) VALUE ' ',&lt;/P&gt;&lt;P&gt;"Flag used for opening session.&lt;/P&gt;&lt;P&gt;       V_TLINES LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;       "For storing total records processed.&lt;/P&gt;&lt;P&gt;       V_ELINES LIKE SY-TABIX,&lt;/P&gt;&lt;P&gt;       "For storing the no of error records.&lt;/P&gt;&lt;P&gt;       V_SLINES LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;       "For storing the no of success records.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         Selection screen                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;SELECTION-SCREEN BEGIN OF BLOCK B1.&lt;/P&gt;&lt;P&gt;PARAMETERS : V_FNAME LIKE RLGRAP-FILENAME,&lt;/P&gt;&lt;P&gt;             V_SESNAM  LIKE RLGRAP-FILENAME.&lt;/P&gt;&lt;P&gt;SELECTION-SCREEN END OF BLOCK B1.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         Start-of-selection                                          *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;START-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*-- Form to upload flatfile data into the internal table.&lt;/P&gt;&lt;P&gt;  PERFORM FORM_UPLOADFF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;       TOP-OF-PAGE                                                   *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;TOP-OF-PAGE.&lt;/P&gt;&lt;P&gt;  WRITE:/ 'Details of the error and success records for the transaction'&lt;/P&gt;&lt;P&gt;  .&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt;  SKIP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;         End of Selection                                            *&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;************************************************************************&lt;/P&gt;&lt;P&gt;END-OF-SELECTION.&lt;/P&gt;&lt;P&gt;*-- Form to Generate a BDC from the Uploaded Internal table&lt;/P&gt;&lt;P&gt;  PERFORM FORM_BDCGENERATE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--To write the totals and the session name.&lt;/P&gt;&lt;P&gt;  PERFORM FORM_WRITEOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  form_uploadff&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Form to upload flatfile data into the internal table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_UPLOADFF .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Variable to change the type of the parameter file name.&lt;/P&gt;&lt;P&gt;  DATA : LV_FILE TYPE STRING.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LV_FILE = V_FNAME.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Function to upload the flat file to the internal table.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_UPLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                      =  LV_FILE&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FILETYPE                      = 'ASC'&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      HAS_FIELD_SEPARATOR           = 'X'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HEADER_LENGTH                 = 0&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    READ_BY_LINE                  = 'X'&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    DAT_MODE                      = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;  IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    FILELENGTH                    =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    HEADER                        =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                      = IT_FFCUST&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      FILE_OPEN_ERROR               = 1&lt;/P&gt;&lt;P&gt;      FILE_READ_ERROR               = 2&lt;/P&gt;&lt;P&gt;      NO_BATCH                      = 3&lt;/P&gt;&lt;P&gt;      GUI_REFUSE_FILETRANSFER       = 4&lt;/P&gt;&lt;P&gt;      INVALID_TYPE                  = 5&lt;/P&gt;&lt;P&gt;      NO_AUTHORITY                  = 6&lt;/P&gt;&lt;P&gt;      UNKNOWN_ERROR                 = 7&lt;/P&gt;&lt;P&gt;      BAD_DATA_FORMAT               = 8&lt;/P&gt;&lt;P&gt;      HEADER_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;      SEPARATOR_NOT_ALLOWED         = 10&lt;/P&gt;&lt;P&gt;      HEADER_TOO_LONG               = 11&lt;/P&gt;&lt;P&gt;      UNKNOWN_DP_ERROR              = 12&lt;/P&gt;&lt;P&gt;      ACCESS_DENIED                 = 13&lt;/P&gt;&lt;P&gt;      DP_OUT_OF_MEMORY              = 14&lt;/P&gt;&lt;P&gt;      DISK_FULL                     = 15&lt;/P&gt;&lt;P&gt;      DP_TIMEOUT                    = 16&lt;/P&gt;&lt;P&gt;      OTHERS                        = 17&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt;*--Deleting the headings from the internal table.&lt;/P&gt;&lt;P&gt;    DELETE IT_FFCUST INDEX 1.&lt;/P&gt;&lt;P&gt;*--Getting the total number of records uploaded.&lt;/P&gt;&lt;P&gt;    DESCRIBE TABLE IT_FFCUST LINES V_TLINES.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " form_uploadff&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  Form_bdcgenerate&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    Form to Generate a BDC from the Uploaded Internal table&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_BDCGENERATE .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Generating the BDC table for the fields of the internal table.&lt;/P&gt;&lt;P&gt;  LOOP AT IT_FFCUST.&lt;/P&gt;&lt;P&gt;    PERFORM POPULATEBDC USING :&lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0105',&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00' ,&lt;/P&gt;&lt;P&gt;                                ' ' 'RF02D-KUNNR' IT_FFCUST-KUNNR,&lt;/P&gt;&lt;P&gt;                                ' ' 'RF02D-BUKRS' IT_FFCUST-BUKRS,&lt;/P&gt;&lt;P&gt;                                ' ' 'RF02D-KTOKD' IT_FFCUST-KTOKD,&lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0110' ,&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-ANRED'  IT_FFCUST-ANRED,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-NAME1' IT_FFCUST-NAME1,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-SORTL'  IT_FFCUST-SORTL,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-STRAS' IT_FFCUST-STRAS,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-ORT01' IT_FFCUST-ORT01,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-PSTLZ' IT_FFCUST-PSTLZ,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-LAND1' IT_FFCUST-LAND1,&lt;/P&gt;&lt;P&gt;                                ' ' 'KNA1-SPRAS' IT_FFCUST-SPRAS,&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMFO2D' '0120',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0125',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0130',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=ENTR',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0340',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=ENTR',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0360',&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=ENTR',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0210',	&lt;/P&gt;&lt;P&gt;                                ' ' 'KNB1-AKONT'  IT_FFCUST-AKONT,&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0215',&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0220',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '/00',&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;                                'X' 'SAPMF02D' '0230',	&lt;/P&gt;&lt;P&gt;                                ' ' 'BDC_OKCODE'  '=UPDA'.&lt;/P&gt;&lt;P&gt;*--Calling the transaction 'fd01'.&lt;/P&gt;&lt;P&gt;    CALL TRANSACTION 'FD01' USING IT_CUSTBDC MODE 'N' UPDATE 'S'&lt;/P&gt;&lt;P&gt;    MESSAGES INTO IT_CUSTMSG.&lt;/P&gt;&lt;P&gt;    IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;*--Populating the error records internal table.&lt;/P&gt;&lt;P&gt;      IT_ERRCUST-KUNNR = IT_FFCUST-KUNNR.&lt;/P&gt;&lt;P&gt;      APPEND IT_ERRCUST.&lt;/P&gt;&lt;P&gt;      CLEAR IT_ERRCUST.&lt;/P&gt;&lt;P&gt;*--Opening a session if there is an error record.&lt;/P&gt;&lt;P&gt;      IF V_FLAG1 = ' '.&lt;/P&gt;&lt;P&gt;        PERFORM FORM_OPENSESSION.&lt;/P&gt;&lt;P&gt;        V_FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*--Inserting the error records into already open session.&lt;/P&gt;&lt;P&gt;      IF V_FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;        PERFORM FORM_INSERT.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;*--Populating the Success records internal table.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      IT_SUCCUST-KUNNR = IT_FFCUST-KUNNR.&lt;/P&gt;&lt;P&gt;      APPEND IT_SUCCUST.&lt;/P&gt;&lt;P&gt;      CLEAR IT_SUCCUST.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*--Displaying the messages.&lt;/P&gt;&lt;P&gt;    IF NOT IT_CUSTMSG[] IS INITIAL.&lt;/P&gt;&lt;P&gt;      PERFORM FORM_FORMATMSG.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;*--Clearing the message and bdc tables.&lt;/P&gt;&lt;P&gt;    CLEAR : IT_CUSTBDC[],IT_CUSTMSG[].&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Getting the total no of error records.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_ERRCUST LINES V_ELINES.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Getting the total no of successful records.&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE IT_SUCCUST LINES V_SLINES.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Closing the session only if it is open.&lt;/P&gt;&lt;P&gt;  IF V_FLAG1 = 'X'.&lt;/P&gt;&lt;P&gt;    PERFORM FORM_CLOSESESS.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " Form_bdcgenerate&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  populatebdc&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      FOrm to Populate the BDC table.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM POPULATEBDC  USING    VALUE(P_0178)&lt;/P&gt;&lt;P&gt;                           VALUE(P_0179)&lt;/P&gt;&lt;P&gt;                           VALUE(P_0180).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  IF P_0178 = 'X'.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-PROGRAM = P_0179.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-DYNPRO = P_0180.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-DYNBEGIN = 'X'.&lt;/P&gt;&lt;P&gt;  ELSE.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-FNAM = P_0179.&lt;/P&gt;&lt;P&gt;    IT_CUSTBDC-FVAL = P_0180.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  APPEND IT_CUSTBDC.&lt;/P&gt;&lt;P&gt;  CLEAR IT_CUSTBDC.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " populatebdc&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_OPENSESSION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form to Open a session.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_OPENSESSION .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Variable to convert the given session name into reqd type.&lt;/P&gt;&lt;P&gt;  DATA : LV_SESNAM(12).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  LV_SESNAM = V_SESNAM.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Opening a session.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_OPEN_GROUP'&lt;/P&gt;&lt;P&gt;   EXPORTING&lt;/P&gt;&lt;P&gt;     CLIENT                    = SY-MANDT&lt;/P&gt;&lt;P&gt;     GROUP                     = LV_SESNAM&lt;/P&gt;&lt;P&gt;     HOLDDATE                  = '20040805'&lt;/P&gt;&lt;P&gt;     KEEP                      = 'X'&lt;/P&gt;&lt;P&gt;     USER                      = SY-UNAME&lt;/P&gt;&lt;P&gt;     PROG                      = SY-CPROG&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   QID                       =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     CLIENT_INVALID            = 1&lt;/P&gt;&lt;P&gt;     DESTINATION_INVALID       = 2&lt;/P&gt;&lt;P&gt;     GROUP_INVALID             = 3&lt;/P&gt;&lt;P&gt;     GROUP_IS_LOCKED           = 4&lt;/P&gt;&lt;P&gt;     HOLDDATE_INVALID          = 5&lt;/P&gt;&lt;P&gt;     INTERNAL_ERROR            = 6&lt;/P&gt;&lt;P&gt;     QUEUE_ERROR               = 7&lt;/P&gt;&lt;P&gt;     RUNNING                   = 8&lt;/P&gt;&lt;P&gt;     SYSTEM_LOCK_ERROR         = 9&lt;/P&gt;&lt;P&gt;     USER_INVALID              = 10&lt;/P&gt;&lt;P&gt;     OTHERS                    = 11&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Session not open'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_OPENSESSION&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_INSERT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      fORM TO INSERT ERROR RECOED INTO A SESSION.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_INSERT .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Inserting the record into session.&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_INSERT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      TCODE                  = 'FD01'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    POST_LOCAL             = NOVBLOCAL&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    PRINTING               = NOPRINT&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    SIMUBATCH              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    CTUPARAMS              = ' '&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DYNPROTAB              = IT_CUSTBDC&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      INTERNAL_ERROR         = 1&lt;/P&gt;&lt;P&gt;      NOT_OPEN               = 2&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR            = 3&lt;/P&gt;&lt;P&gt;      TCODE_INVALID          = 4&lt;/P&gt;&lt;P&gt;      PRINTING_INVALID       = 5&lt;/P&gt;&lt;P&gt;      POSTING_INVALID        = 6&lt;/P&gt;&lt;P&gt;      OTHERS                 = 7&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Unable to insert the record'.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_INSERT&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_CLOSESESS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form to Close the Open Session.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_CLOSESESS .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'BDC_CLOSE_GROUP'&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      NOT_OPEN    = 1&lt;/P&gt;&lt;P&gt;      QUEUE_ERROR = 2&lt;/P&gt;&lt;P&gt;      OTHERS      = 3.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_CLOSESESS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  FORM_FORMATMSG&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      Form to format messages.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_FORMATMSG .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;*--Var to store the formatted msg.&lt;/P&gt;&lt;P&gt;  DATA : LV_MSG(255).&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'FORMAT_MESSAGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      ID        = SY-MSGID&lt;/P&gt;&lt;P&gt;      LANG      = SY-LANGU&lt;/P&gt;&lt;P&gt;      NO        = SY-MSGNO&lt;/P&gt;&lt;P&gt;      V1        = SY-MSGV1&lt;/P&gt;&lt;P&gt;      V2        = SY-MSGV2&lt;/P&gt;&lt;P&gt;      V3        = SY-MSGV3&lt;/P&gt;&lt;P&gt;      V4        = SY-MSGV4&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      MSG       = LV_MSG&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      NOT_FOUND = 1&lt;/P&gt;&lt;P&gt;      OTHERS    = 2.&lt;/P&gt;&lt;P&gt;  IF SY-SUBRC = 0.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;    WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; LV_MSG.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;ENDFORM.                    " FORM_FORMATMSG&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  form_writeop&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      To write the totals and the session name.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM FORM_WRITEOP .&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;  WRITE &lt;span class="lia-unicode-emoji" title=":confused_face:"&gt;😕&lt;/span&gt; 'Total Records Uploaded :',V_TLINES,&lt;/P&gt;&lt;P&gt;           / 'No of Error Records :',V_ELINES,&lt;/P&gt;&lt;P&gt;           / 'No of Success Records :',V_SLINES,&lt;/P&gt;&lt;P&gt;           / 'Name of the Session :',V_SESNAM.&lt;/P&gt;&lt;P&gt;  ULINE.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 04:32:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371022#M525355</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T04:32:27Z</dc:date>
    </item>
    <item>
      <title>Re: Error handling in  Session Method</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371023#M525356</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Shiv,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There is no need to write long code..&lt;/P&gt;&lt;P&gt;..after executing your program..&lt;/P&gt;&lt;P&gt;..submit the program with your session name with skip first screen..&lt;/P&gt;&lt;P&gt;..it will automatically generate logs..&lt;/P&gt;&lt;P&gt;..&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Krish&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 12 Jun 2007 10:40:19 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/error-handling-in-session-method/m-p/2371023#M525356</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2007-06-12T10:40:19Z</dc:date>
    </item>
  </channel>
</rss>

