<?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: Displaying error records in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/displaying-error-records/m-p/12134131#M1975402</link>
    <description>&lt;P&gt;If you use a function to do so, I think most of your questions will be answered because the FM will do the work for you.&lt;/P&gt;&lt;P&gt;Have a look at &lt;/P&gt;&lt;P&gt;VENDOR_BDCDATA&lt;/P&gt;&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
    <pubDate>Tue, 28 Jan 2020 20:50:32 GMT</pubDate>
    <dc:creator>Florian</dc:creator>
    <dc:date>2020-01-28T20:50:32Z</dc:date>
    <item>
      <title>Displaying error records</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/displaying-error-records/m-p/12134130#M1975401</link>
      <description>&lt;P&gt;Hi Experts,&lt;/P&gt;
  &lt;PRE&gt;&lt;CODE&gt;My requirement is to develope a bdc program for uploading  and downloading excel file to sap system for that purpose i designed a code like shown in below



TYPES: BEGIN OF LINE_TYPE,

      lifnr type lfbk-lifnr,

*      koinh type lfbk-koinh,

      BANKS TYPE LFBK-BANKS,

      bankl type lfbk-bankl,

      bankn type lfbk-bankn,

       koinh type lfbk-koinh,

       banka type bnka-banka,

       brnch type bnka-brnch,

      swift type bnka-swift,

END OF LINE_TYPE.



* TO CREATE INTERNAL TABLE IT_MAT WITH STRUCTURE LINE_TYPE.

DATA IT_MAT TYPE TABLE OF LINE_TYPE WITH HEADER LINE.



* TO CREATE INTERNAL TABLE IT_EXCEL WITH STRUCTURE ALSMEX_TABLINE.

DATA IT_EXCEL TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.



* TO CREATE INTERNAL TABLE IT_BDCDATA WITH STRUCTURE BDCDATA.

DATA IT_BDCDATA TYPE TABLE OF BDCDATA WITH HEADER LINE.



* TO CREATE INTERNAL TABLE IT_MSG WITH STRUCTURE BDCMSGCOLL.

DATA IT_MSG TYPE TABLE OF BDCMSGCOLL WITH HEADER LINE.



* TO CREATE INTERNAL TABLE IT_ERRORS.

DATA: BEGIN OF IT_ERRORS OCCURS 10,

      lifnr type lfbk-lifnr,

*      koinh type lfbk-koinh,

      BANKS TYPE LFBK-BANKS,

      bankl type lfbk-bankl,

      bankn type lfbk-bankn,

       koinh type lfbk-koinh,

       banka type bnka-banka,

       brnch type bnka-brnch,

      swift type bnka-swift,

TEXT(100),

END OF IT_ERRORS.



* TO CREATE VARIABLES

DATA:S1 TYPE I,E1 TYPE I.

DATA: it_raw TYPE truxs_t_text_data.

DATA:IT_FCAT TYPE SLIS_T_FIELDCAT_ALV,

     WA_FCAT TYPE SLIS_FIELDCAT_ALV,

     WA_LAYOUT TYPE SLIS_LAYOUT_ALV.

* TO CREATE A FILED TO ENTER EXCEL FILE

SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-001.

PARAMETERS P_FILE TYPE IBIPPARMS-PATH.



* TO CRATE A FIELD TO DOWNLOAD FLATFILE.

PARAMETERS P_EFILE TYPE IBIPPARMS-PATH.

PARAMETER : "P_FILE TYPE RLGRAP-FILENAME OBLIGATORY , "'C:/JOURNAL_VOUCHER.TXT',      " Input File

            "P_ERR TYPE RLGRAP-FILENAME, "'C:/JOURNAL_VOUCHER_ERR.TXT',  " Error File

*            P_FTYPE LIKE RLGRAP-FILETYPE DEFAULT 'DAT',                                   " File Type

            P_MODE TYPE CHAR1 OBLIGATORY DEFAULT 'A'.

SELECTION-SCREEN END OF BLOCK SCR1.

SELECTION-SCREEN BEGIN OF BLOCK SCR2 WITH FRAME TITLE TEXT-002.

PARAMETERS:

  download RADIOBUTTON GROUP r1 DEFAULT 'X' ,

  test Radiobutton  Group r1.

SELECTION-SCREEN END OF BLOCK SCR2.

*DATA WA_FCAT.



AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.

PERFORM BROWSE_FILE USING P_FILE.



AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_EFILE.

PERFORM BROWSE_FILE USING P_EFILE.



START-OF-SELECTION.

PERFORM UPLOAD_EXCELFILE.

PERFORM CONVERT_EXCEL_TO_IT_MAT.

PERFORM VALIDATE_DATA.

PERFORM BUILD_FCAT.

PERFORM DISPLAY_OUTPUT.

END-OF-SELECTION.

IF IT_ERRORS IS NOT INITIAL.

PERFORM DOWLOAD_ERRFILE.

ENDIF.

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form BROWSE_FILE

*&amp;amp;---------------------------------------------------------------------*

FORM BROWSE_FILE USING FILE1.



CALL FUNCTION 'F4_FILENAME'

* EXPORTING

* PROGRAM_NAME = SYST-CPROG

* DYNPRO_NUMBER = SYST-DYNNR

* FIELD_NAME = ' '

IMPORTING

FILE_NAME = FILE1

.



ENDFORM. " BROWSE_FILE

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form UPLOAD_EXCELFILE

*&amp;amp;---------------------------------------------------------------------*

FORM UPLOAD_EXCELFILE .

  CALL FUNCTION 'TEXT_CONVERT_XLS_TO_SAP'

    EXPORTING

*     I_FIELD_SEPERATOR        =

      i_line_header            =  'X'

      i_tab_raw_data           =  it_raw       " WORK TABLE

      i_filename               =  p_file

    TABLES

      i_tab_converted_data     = it_mat[]    "ACTUAL DATA

   EXCEPTIONS

      conversion_failed        = 1

      OTHERS                   = 2.



*CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'

*EXPORTING

*FILENAME = P_FILE

*I_BEGIN_COL = 1

*I_BEGIN_ROW = 1

*I_END_COL = 5

*I_END_ROW = 10

*TABLES

*INTERN = IT_EXCEL

*EXCEPTIONS

*INCONSISTENT_PARAMETERS = 1

*UPLOAD_OLE = 2

*OTHERS = 3

.

*IF SY-SUBRC = 0.

*LOOP AT IT_EXCEL.

*WRITE:/ IT_EXCEL-ROW,IT_EXCEL-COL,IT_EXCEL-VALUE.

*ENDLOOP.

* Implement suitable error handling here

*ENDIF.





ENDFORM. " UPLOAD_EXCELFILE

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form CONVERT_EXCEL_TO_IT_MAT

*&amp;amp;---------------------------------------------------------------------*

FORM CONVERT_EXCEL_TO_IT_MAT .



LOOP AT IT_EXCEL.



CASE IT_EXCEL-COL.

WHEN 1.

IT_MAT-LIFNR = IT_EXCEL-VALUE.

WHEN 2.

IT_MAT-BANKS = IT_EXCEL-VALUE.

WHEN 3.

IT_MAT-BANKL = IT_EXCEL-VALUE.

WHEN 4.

IT_MAT-BANKN = IT_EXCEL-VALUE.

WHEN 5.

IT_MAT-KOINH = IT_EXCEL-VALUE.

WHEN 6.

IT_MAT-BANKA = IT_EXCEL-VALUE.

WHEN 7.

IT_MAT-BRNCH = IT_EXCEL-VALUE.

WHEN 8.

IT_MAT-SWIFT = IT_EXCEL-VALUE.



APPEND IT_MAT.

CLEAR: IT_MAT,IT_EXCEL.

ENDCASE.

ENDLOOP.

ENDFORM.



FORM BUILD_FCAT .

  REFRESH:IT_FCAT[].

  PERFORM FCAT USING: 'LIFNR' 'VENDOR',

                      'BANKS' 'COUNTRY KEY',

                      'BANKL' 'ACC NUM',

                      'BANKN' 'ACC key',

                      'KOINH' 'ACCOUNT HOLDER',

                      'BANKA' 'BANK NAME',

                      'BRNCH' 'BRANCH',

                      'SWIFT' 'IFSC CODE'.



ENDFORM.                    " BUILD_FCAT

FORM DISPLAY_OUTPUT .

  WA_LAYOUT-ZEBRA = 'X'.

  WA_LAYOUT-COLWIDTH_OPTIMIZE = 'X'.

  CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'

   EXPORTING

*     I_INTERFACE_CHECK        = ' '

*     I_BYPASSING_BUFFER       = ' '

*     I_BUFFER_ACTIVE          = ' '

*      I_CALLBACK_PROGRAM       = SY-REPID

*      I_CALLBACK_PF_STATUS_SET = 'PF_STATUS'

*      I_CALLBACK_USER_COMMAND  = 'USER_COMMAND'

*     I_CALLBACK_TOP_OF_PAGE   = ' '

*     I_CALLBACK_HTML_TOP_OF_PAGE       = ' '

*     I_CALLBACK_HTML_END_OF_LIST       = ' '

*     I_STRUCTURE_NAME         =

*     I_BACKGROUND_ID          = ' '

*     I_GRID_TITLE             =

*     I_GRID_SETTINGS          =

     IS_LAYOUT                = WA_LAYOUT

     IT_FIELDCAT              = IT_FCAT

*     IT_EXCLUDING             =

*     IT_SPECIAL_GROUPS        =

*      IT_SORT                  = IT_SORT

*     IT_FILTER                =

*     IS_SEL_HIDE              =

*     I_DEFAULT                = 'X'

*     I_SAVE                   = ' '

*     IS_VARIANT               =

*     IT_EVENTS                =

*     IT_EVENT_EXIT            =

*     IS_PRINT                 =

*     IS_REPREP_ID             =

*     I_SCREEN_START_COLUMN    = 0

*     I_SCREEN_START_LINE      = 0

*     I_SCREEN_END_COLUMN      = 0

*     I_SCREEN_END_LINE        = 0

*     I_HTML_HEIGHT_TOP        = 0

*     I_HTML_HEIGHT_END        = 0

*     IT_ALV_GRAPHICS          =

*     IT_HYPERLINK             =

*     IT_ADD_FIELDCAT          =

*     IT_EXCEPT_QINFO          =

*     IR_SALV_FULLSCREEN_ADAPTER        =

* IMPORTING

*     E_EXIT_CAUSED_BY_CALLER  =

*     ES_EXIT_CAUSED_BY_USER   =

   TABLES

     T_OUTTAB                 = IT_mat

* EXCEPTIONS

*     PROGRAM_ERROR            = 1

*     OTHERS                   = 2

   .

ENDFORM.



  FORM FCAT  USING  FIELD TEXT.



  WA_FCAT-FIELDNAME = FIELD.

  WA_FCAT-SELTEXT_M = TEXT.



  APPEND WA_FCAT TO IT_FCAT.

  CLEAR WA_FCAT.

ENDFORM.

*WRITE: / IT_MAT-LIFNR,

*        IT_MAT-BANKS,

*        IT_MAT-BANKL,

*        IT_MAT-BANKN,

*        IT_MAT-KOINH,

*        IT_MAT-BANKA,

*        IT_MAT-BRNCH,

*        IT_MAT-SWIFT.

*ENDFORM.

*ENDLOOP.

*ENDFORM.

*ENDFORM. " CONVERT_EXCEL_TO_IT_MAT

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form VALIDATE_DATA

*&amp;amp;---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --&amp;gt; p1 text

* &amp;lt;-- p2 text

*----------------------------------------------------------------------*

*FORM FCAT  USING  FIELD TEXT.

*

*  WA_FCAT-FIELDNAME = FIELD.

*  WA_FCAT-SELTEXT_M = TEXT.

*

*  APPEND WA_FCAT TO IT_FCAT.

*  CLEAR WA_FCAT.

*

*ENDFORM.

FORM VALIDATE_DATA .



LOOP AT IT_MAT.

REFRESH : IT_BDCDATA,IT_MSG.



perform bdc_dynpro      using 'SAPMF02K' '0101'.

perform bdc_field       using 'BDC_CURSOR'

                              'RF02K-D0130'.

perform bdc_field       using 'BDC_OKCODE'

                              '/00'.

perform bdc_field       using 'RF02K-LIFNR'

                             IT_MAT-lifnr.

perform bdc_field       using 'RF02K-D0130'

                              'X'.

perform bdc_dynpro      using 'SAPMF02K' '0130'.

perform bdc_field       using 'BDC_CURSOR'

                              'LFBK-KOINH(01)'.

perform bdc_field       using 'BDC_OKCODE'

                              '/00'.

perform bdc_field       using 'LFBK-BANKS(01)'

                              IT_MAT-BANKS.

perform bdc_field       using 'LFBK-BANKL(01)'

                              IT_MAT-bankl.

perform bdc_field       using 'LFBK-BANKN(01)'

                              IT_MAT-bankn.

perform bdc_field       using 'LFBK-KOINH(01)'

                              IT_MAT-koinh.

perform bdc_dynpro      using 'SAPLBANK' '0100'.

perform bdc_field       using 'BDC_CURSOR'

                              'BNKA-SWIFT'.

perform bdc_field       using 'BDC_OKCODE'

                              '=ENTR'.

perform bdc_field       using 'BNKA-BANKA'

                              IT_MAT-banka.

perform bdc_field       using 'BNKA-BRNCH'

                              IT_MAT-brnch.

perform bdc_field       using 'BNKA-SWIFT'

                              IT_MAT-swift.

perform bdc_dynpro      using 'SAPMF02K' '0130'.

perform bdc_field       using 'BDC_CURSOR'

                              'LFBK-KOINH(01)'.

perform bdc_field       using 'BDC_OKCODE'

                              '=ENTR'.

CALL TRANSACTION 'XK02' USING IT_BDCDATA

UPDATE 'A'

MODE 'N'

MESSAGES INTO IT_MSG.



READ TABLE IT_MSG WITH KEY MSGTYP = 'E'.

IF SY-SUBRC = 0.

IT_ERRORS-LIFNR = IT_MAT-LIFNR.

IT_ERRORS-BANKS = IT_MAT-BANKS.

IT_ERRORS-BANKL = IT_MAT-BANKL.

IT_ERRORS-BANKN = IT_MAT-BANKN.

IT_ERRORS-KOINH = IT_MAT-KOINH.

IT_ERRORS-BANKA = IT_MAT-BANKA.

IT_ERRORS-BRNCH = IT_MAT-BRNCH.

IT_ERRORS-SWIFT = IT_MAT-SWIFT.

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

**V5 = SY-MSGV5

*V6 = SY-MSGV6

*V7 = SY-MSGV7

*V8 = SY-MSGV8

IMPORTING

MSG = IT_ERRORS-TEXT

EXCEPTIONS

NOT_FOUND = 1

OTHERS = 2

.

APPEND IT_ERRORS.

E1 = E1 + 1.

ELSE.

S1 = S1 + 1.

ENDIF.

ENDLOOP.

IF SY-SUBRC = 0.

MESSAGE I100(ZMSG1) WITH S1 'RECORDS TRANSFERRED SUCCESSFULLY' E1

'RECORDS CONTAINS ERRORS,PLS REFER DOWNLOAD FILE'.

ENDIF.







ENDFORM. " VALIDATE_DATA



*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form BDC_DYNPRO

*&amp;amp;---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --&amp;gt;P_0241 text

* --&amp;gt;P_0242 text

*----------------------------------------------------------------------*

FORM BDC_DYNPRO USING PROG SCRNO.



IT_BDCDATA-PROGRAM = PROG.

IT_BDCDATA-DYNPRO = SCRNO.

IT_BDCDATA-DYNBEGIN = 'X'.



APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.



ENDFORM. " BDC_DYNPRO

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form BDC_FIELD

*&amp;amp;---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --&amp;gt;P_0301 text

* --&amp;gt;P_IT_MAT_MAKTX text

*----------------------------------------------------------------------*

FORM BDC_FIELD USING FNAME FVAL.



IT_BDCDATA-FNAM = FNAME.

IT_BDCDATA-FVAL = FVAL.



APPEND IT_BDCDATA.

CLEAR IT_BDCDATA.



ENDFORM. " BDC_FIELD

*&amp;amp;---------------------------------------------------------------------*

*&amp;amp; Form DOWLOAD_ERRFILE

*&amp;amp;---------------------------------------------------------------------*

* text

*----------------------------------------------------------------------*

* --&amp;gt; p1 text

* &amp;lt;-- p2 text

*----------------------------------------------------------------------*

FORM DOWLOAD_ERRFILE .



* TO CREATE VARIABLE OF TYPE STRING.

DATA F_EFILE TYPE STRING.

F_EFILE = P_EFILE.



CALL FUNCTION 'GUI_DOWNLOAD'

EXPORTING

* BIN_FILESIZE =

FILENAME = F_EFILE

FILETYPE = 'ASC'

* APPEND = ' '

WRITE_FIELD_SEPARATOR = 'X'

* HEADER = '00'

* TRUNC_TRAILING_BLANKS = ' '

* WRITE_LF = 'X'

* COL_SELECT = ' '

* COL_SELECT_MASK = ' '

* DAT_MODE = ' '

* CONFIRM_OVERWRITE = ' '

* NO_AUTH_CHECK = ' '

* CODEPAGE = ' '

* IGNORE_CERR = ABAP_TRUE

* REPLACEMENT = '#'

* WRITE_BOM = ' '

* TRUNC_TRAILING_BLANKS_EOL = 'X'

* WK1_N_FORMAT = ' '

* WK1_N_SIZE = ' '

* WK1_T_FORMAT = ' '

* WK1_T_SIZE = ' '

* WRITE_LF_AFTER_LAST_LINE = ABAP_TRUE

* SHOW_TRANSFER_STATUS = ABAP_TRUE

* IMPORTING

* FILELENGTH =

TABLES

DATA_TAB = IT_ERRORS

* FIELDNAMES =

EXCEPTIONS

FILE_WRITE_ERROR = 1

NO_BATCH = 2

GUI_REFUSE_FILETRANSFER = 3

INVALID_TYPE = 4

NO_AUTHORITY = 5

UNKNOWN_ERROR = 6

HEADER_NOT_ALLOWED = 7

SEPARATOR_NOT_ALLOWED = 8

FILESIZE_NOT_ALLOWED = 9

HEADER_TOO_LONG = 10

DP_ERROR_CREATE = 11

DP_ERROR_SEND = 12

DP_ERROR_WRITE = 13

UNKNOWN_DP_ERROR = 14

ACCESS_DENIED = 15

DP_OUT_OF_MEMORY = 16

DISK_FULL = 17

DP_TIMEOUT = 18

FILE_NOT_FOUND = 19

DATAPROVIDER_EXCEPTION = 20

CONTROL_FLUSH_ERROR = 21

OTHERS = 22

.

IF SY-SUBRC &amp;lt;&amp;gt; 0.

* Implement suitable error handling here

ENDIF.

ENDFORM. " DOWNLOAD_ERRFILE

But in that code i need to add some additional functionality like
1. when i am trying to upload flat file to sap system if that file contains error records then I want to download or display those error records because which make user to easily identify and modify      those error records. 
2. At that time when click the download button I wanted to download the vendor details of specific    range which will given in input .
Can you please help me to find out by providing some examples and suggestions etc


Regards,
Bhavani.&lt;/CODE&gt;&lt;/PRE&gt;</description>
      <pubDate>Tue, 28 Jan 2020 07:17:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/displaying-error-records/m-p/12134130#M1975401</guid>
      <dc:creator>former_member612655</dc:creator>
      <dc:date>2020-01-28T07:17:26Z</dc:date>
    </item>
    <item>
      <title>Re: Displaying error records</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/displaying-error-records/m-p/12134131#M1975402</link>
      <description>&lt;P&gt;If you use a function to do so, I think most of your questions will be answered because the FM will do the work for you.&lt;/P&gt;&lt;P&gt;Have a look at &lt;/P&gt;&lt;P&gt;VENDOR_BDCDATA&lt;/P&gt;&lt;P&gt;&lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 28 Jan 2020 20:50:32 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/displaying-error-records/m-p/12134131#M1975402</guid>
      <dc:creator>Florian</dc:creator>
      <dc:date>2020-01-28T20:50:32Z</dc:date>
    </item>
  </channel>
</rss>

