RFBIBL00 for FB01 - BATCH INPUT ERROR

Hi,
When am trying to post from foreground i found an error
"Field DKACB-XERGO. does not exist in the screen SAPLKACB-0002"
such errors come for only certain GL account, could you provide me a solution?

Hi Dear,
Call Rfbibl00 in you program and submit your structure to rfbibl00. Here is the sample code....c how i have submitted in back ground i have given commenting in code it will b easier for you.
Still issues feel free to ask.
Reward for program
DATA :w_t001 LIKE t001,
      w_gjahr LIKE bkpf-gjahr,
      w_poper LIKE t009b-poper,
      BEGIN OF it_input1 OCCURS 0,
      data(10000),
      END OF it_input1,
      separator(1) TYPE c VALUE ';',
      input_line(10000),
      count TYPE i,
      i_lines TYPE i,
        BEGIN OF it_input OCCURS 0,
        ind(1),                    " indicator for feild
        bldat(8),                  " DOC DATE
        blart(2),                  " DOC TYPE
        bukrs(4),                  " COMPANY CODE
        budat(8),                  " POSTING DATE
        waers(5),                  " CURRENCY
        xblnr(16),                 " HEADER REF
        bktxt(25),                 " HEADER TXT
        newbs(2),                  " POSTING KEY
        newko(17),                 " ACCOUNT
        newum(1),                  " SPL GL INDICATOR
        wrbtr(13),                 " AMOUNT IN FOR CURRENCY
        dmbtr(13),                 " AMOUNT IN LOCAL CURRENCY
        zterm(4),                  " PAYAMENT TERMS
        zfbdt(10),                 " BASE LINE DATE
        wt_wit(2),                 " WITH TAXCODE
        wt_qs(15),                 " WITH TAXCODE
        wt_qb(15),                 " WITH TAXAMOUNT
        mwskz(2),                  " TAXCODE
        bupla(4),                  " BUSINESS PLACE
        newbk(4),                  " LINE ITEM COMAPNY CODE
        kostl(10),                 " COSTCENTER
        aufnr(12),                 " INTERNAL ORDER
        prctr(10),                 " PROFIT CENTER
        pernr(8),                  " PERSONAL NUMBER
        zuonr(18),                 " ASSIGNMENT
        xref1(12),                                          " REF1
        xref2(12),                                          " REF2
        xref3(20),                                          " REF3
        sgtxt(50),                 " LINE TEXT
  END OF it_input,
   it_tmp_input LIKE it_input OCCURS 0 WITH HEADER LINE.
DATA : file TYPE string,
       file1 TYPE string.
path on which error and complete directories are placed
DATA : w_path_err(100) TYPE c VALUE '\usr\sap\DEV\interfaces\ERROR\',
       w_path_comp(100) TYPE c VALUE '\usr\sap\DEV\interfaces\COMPLETE\',
       w_path_capinv(200) TYPE c VALUE '\usr\sap\DEV\interfaces\IN\SETDDN\',
       w_path_capinv1(200) TYPE c,   "contains the path of the file in the its original directory eg SETDDN
       w_path_capinv2(200) TYPE c,   "contains the path of the error file in the error directory eg ERROR
       w_path_capinv3(200) TYPE c.   "contains the path of the file in the complete directory eg COMPLETE
type declaration for headerref
TYPES : BEGIN OF ty_input_err,
        xblnr(16),                 " HEADER REF
        item_no(4),
        err_text(500),
        END OF ty_input_err.
DATA : it_input_err TYPE STANDARD TABLE OF ty_input_err,
       wa_input_err LIKE LINE OF it_input_err.
variables for validations
DATA : w_post TYPE c,
       w_xblnr TYPE bkpf-xblnr,
       w_wrbtr TYPE i,
       w_wrbtr1 TYPE i,
       w_wrbtr2 TYPE i,
       w_newko(10) TYPE c,
       w_count1 TYPE n.
DATA :
       w_path LIKE rlgrap-filename,
       w_file LIKE rlgrap-filename,
       w_dir LIKE  rlgrap-filename,
       w_dir1 LIKE epsf-epsdirnam,
       w_file1 LIKE  epsf-epsfilnam,
       w_flag TYPE i,
       w_budat TYPE budat,
       w_flag_s TYPE c,
       w_file_comp  LIKE rlgrap-filename.
DATA : BEGIN OF it_file OCCURS 0.
        INCLUDE STRUCTURE  epsfili.
DATA:  END OF it_file.
FIELD-SYMBOLS: <fs>.
DATA: BEGIN OF bdcdata OCCURS 100.
        INCLUDE STRUCTURE bdcdata.
DATA: END OF bdcdata.
DATA : BEGIN OF it_data OCCURS 0,
         f1(10000),
       END OF it_data.
DATA : wa_bgr00 LIKE bgr00,
       wa_bbkpf LIKE bbkpf,
       wa_bbkpf1 LIKE bbkpf,
       wa_bbseg LIKE bbseg,
       w_param_1 LIKE  filename-fileintern,
       x_file(500),
       w_move_file LIKE  epsf-epsfilnam,
       w_from_dir  LIKE epsf-epsdirnam.
type declaration for validations
TYPES : BEGIN OF ty_blart,
        blart TYPE t003-blart,
        END OF ty_blart.
TYPES : BEGIN OF ty_xblnr,
        xblnr TYPE bkpf-xblnr,
        END OF ty_xblnr.
TYPES : BEGIN OF ty_mwskz,
        mwskz TYPE t007a-mwskz,
        END OF ty_mwskz.
TYPES : BEGIN OF ty_qsskz,
        qsskz TYPE t059q-qsskz,
        END OF ty_qsskz.
TYPES : BEGIN OF ty_zterm,
        zterm TYPE t052-zterm,
        END OF ty_zterm.
TYPES : BEGIN OF ty_bschl,
        bschl TYPE tbsl-bschl,
        END OF ty_bschl.
TYPES : BEGIN OF ty_umskz,
        umskz TYPE t074u-umskz,
        END OF ty_umskz.
TYPES : BEGIN OF ty_prctr,
        prctr TYPE cepc-prctr,
        END OF ty_prctr.
TYPES : BEGIN OF ty_kostl,
        kostl TYPE csks-kostl,
        END OF ty_kostl.
TYPES : BEGIN OF ty_branch,
        branch TYPE j_1bbranch-branch,
        END OF ty_branch.
TYPES : BEGIN OF ty_seccode,
        seccode TYPE seccode-seccode,
        END OF ty_seccode.
TYPES : BEGIN OF ty_tbsl,
        bschl TYPE tbsl-bschl,
        shkzg TYPE tbsl-shkzg,
        END OF ty_tbsl.
TYPES : BEGIN OF ty_aufnr,
        aufnr TYPE aufk-aufnr,
        END OF ty_aufnr.
TYPES : BEGIN OF ty_pernr,
        pernr TYPE pa0001-pernr,
        END OF ty_pernr.
TYPES : BEGIN OF ty_ska1,
        saknr TYPE ska1-saknr,
        END OF ty_ska1.
TYPES : BEGIN OF ty_lfa1,
        lifnr TYPE lfb1-lifnr,
        bukrs TYPE lfb1-bukrs,
        END OF ty_lfa1.
internal table declaration for validation
DATA : it_blart TYPE STANDARD TABLE OF ty_blart,
       it_mwskz TYPE STANDARD TABLE OF ty_mwskz,
       it_umskz TYPE STANDARD TABLE OF ty_umskz,
       it_xblnr TYPE STANDARD TABLE OF ty_xblnr,
       it_qsskz TYPE STANDARD TABLE OF ty_qsskz,
       it_zterm TYPE STANDARD TABLE OF ty_zterm,
       it_bschl TYPE STANDARD TABLE OF ty_bschl,
       it_prctr TYPE STANDARD TABLE OF ty_prctr,
       it_kostl TYPE STANDARD TABLE OF ty_kostl,
       it_branch TYPE STANDARD TABLE OF ty_branch,
       it_seccode TYPE STANDARD TABLE OF ty_seccode,
       it_tbsl  TYPE STANDARD TABLE OF ty_tbsl,
       it_aufnr TYPE STANDARD TABLE OF ty_aufnr,
       it_pernr TYPE STANDARD TABLE OF ty_pernr,
       it_ska1 TYPE STANDARD TABLE OF ty_ska1,
       it_lifnr TYPE STANDARD TABLE OF ty_lfa1.
DATA : wa_it_tbsl LIKE LINE OF it_tbsl.
DATA : w_date TYPE sy-datum,
       w_check TYPE c ,
       w_item_no TYPE i.
CONSTANTS : c_under TYPE c VALUE '_',
            c_ext(4) TYPE c VALUE '.txt'.
Input file
SELECTION-SCREEN BEGIN OF BLOCK inp WITH FRAME TITLE text-001.
PARAMETERS :
             pr_serv RADIOBUTTON GROUP abc DEFAULT 'X',
             pr_sfile TYPE  filename-fileintern,
             pr_lok RADIOBUTTON GROUP abc,
             pr_lfile  TYPE filename-fileextern.
SELECTION-SCREEN END OF BLOCK inp.
--- output
SELECTION-SCREEN BEGIN OF BLOCK out WITH FRAME TITLE text-002.
PARAMETERS : pr_group LIKE bgr00-group OBLIGATORY DEFAULT '1000EXPENSE',     " batch input structure for sessiondata
             pr_xkeep LIKE bgr00-xkeep DEFAULT 'X' NO-DISPLAY,
             pr_max(4) TYPE n DEFAULT '8000',
             callmode    LIKE rfpdo-rfbifunct ,        " Function for Generating Posting
             pr_nodta LIKE bgr00-nodata DEFAULT '/' NO-DISPLAY,
             pr_out  LIKE rlgrap-filename,
             pr_err LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK out.
Company code and currency
SELECTION-SCREEN BEGIN OF BLOCK def WITH FRAME TITLE text-003.
PARAMETERS : pr_bukrs LIKE t001-bukrs,
             pr_waers LIKE bkpf-waers.
SELECTION-SCREEN END OF BLOCK def.
Read file from server
PERFORM f001_upload_file.
*&      Form  create_doc
      text
-->  p1        text
<--  p2        text
FORM f003_create_doc.
  DATA : l_count TYPE i.
  DATA : w_session TYPE i.
  CLEAR w_flag_s.
  CLEAR l_count.
  LOOP AT it_input.
    IF l_count = 0 AND w_flag_s NE 'X'.
      REFRESH it_data.
    ENDIF.
*Commented code for background processing
    IF it_data[] IS INITIAL.
      PERFORM bdc_bgr00.
      IF NOT w_session IS INITIAL.
        APPEND wa_bbkpf1 TO it_data.
        APPEND it_data.
        MOVE 'X' TO w_flag_s.
      ENDIF.
    ENDIF.
    IF NOT it_input-ind IS INITIAL.
      ADD 1 TO l_count.
      PERFORM header_record.
      PERFORM item_record.
      CLEAR w_flag_s.
    ELSE.
      PERFORM item_record.
    ENDIF.
    IF l_count > 18 .
      PERFORM save_on_server.
      PERFORM post_document.
      ADD 1 TO w_session.
      l_count = 0.
   REFRESH it_data.
    ENDIF.
  ENDLOOP.
  IF NOT it_data[] IS INITIAL.
    PERFORM save_on_server.
    PERFORM post_document.
  ENDIF.
*moving the file name to temporary variable.
  CONCATENATE  w_path_comp it_file-name INTO w_path_capinv3.
  OPEN DATASET w_path_capinv3 FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
*w_path_capinv2 contains the path of the error file.
*so all of the content of it_input is tranfered to file which is stored in the error.
  LOOP AT it_input.
    TRANSFER it_input TO w_path_capinv3 .
    IF sy-subrc NE 0.
      MESSAGE i001(mg) WITH w_path_capinv3 .    " error writing to sequential file
      MESSAGE a099(mg).                         " processing terminated
    ENDIF.
  ENDLOOP.
  CLOSE DATASET w_path_capinv3.
  CLEAR  w_path_capinv3.
*After successful posting of the file that file is deleted form its original directory.
  CONCATENATE w_path_capinv it_file-name INTO w_path_capinv1.
  DELETE DATASET w_path_capinv1.
  CLEAR w_path_capinv1.
-------------- save file on appl. server -----------------
perform save_on_server.
-------------- call RFBIBL00 -----------------------------
perform call_rfbibl00.
ENDFORM.                    " create_doc
*&      Form  header_record
      text
-->  p1        text
<--  p2        text
FORM header_record.
  PERFORM fill_in_nodata_character CHANGING wa_bbkpf.
  wa_bbkpf-stype = '1'.
  wa_bbkpf-tcode = 'FB01'.
Check the file is for the valid company code.
  SELECT SINGLE * INTO w_t001 FROM t001
      WHERE bukrs EQ pr_bukrs.
  IF  sy-subrc NE 0.
    MESSAGE a899 WITH text-021  pr_bukrs.
  ENDIF.
Determine period
  CALL FUNCTION 'FI_PERIOD_DETERMINE'
    EXPORTING
      i_budat        = sy-datum
      i_bukrs        = pr_bukrs
    IMPORTING
      e_gjahr        = w_gjahr
      e_poper        = w_poper
    EXCEPTIONS
      fiscal_year    = 1
      period         = 2
      period_version = 3
      posting_period = 4
      special_period = 5
      version        = 6
      posting_date   = 7
      OTHERS         = 8.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  wa_bbkpf-bukrs = pr_bukrs.
Document type
  IF NOT it_input-blart IS INITIAL.
    wa_bbkpf-blart = it_input-blart.
  ENDIF.
Document date and Posting date.
  IF NOT it_input-budat IS INITIAL.
    wa_bbkpf-budat = it_input-budat.
  ENDIF.
*new changes for background.
  MOVE it_input-budat TO w_budat.
*end change.
  IF NOT it_input-bldat IS INITIAL.
    wa_bbkpf-bldat = it_input-bldat.
  ENDIF.
Reference document number
  IF NOT it_input-xblnr IS INITIAL.
    wa_bbkpf-xblnr = it_input-xblnr.
  ENDIF.
Currency
  wa_bbkpf-waers = pr_waers.
wa_bbkpf-kursf = it_input-kursf.
  IF NOT it_input-bktxt IS INITIAL.
    wa_bbkpf-bktxt = it_input-bktxt.
  ENDIF.
  APPEND wa_bbkpf TO it_data.
  MOVE wa_bbkpf TO wa_bbkpf1.
ENDFORM.                    " header_record
*&      Form  item_record
      text
-->  p1        text
<--  p2        text
FORM item_record.
Fill BBSEG  with no data character .
  PERFORM fill_in_nodata_character CHANGING wa_bbseg.
  wa_bbseg-stype = '2'.
  wa_bbseg-tbnam = 'BBSEG'.
  IF NOT it_input-newbs IS INITIAL.
    wa_bbseg-newbs = it_input-newbs.
  ENDIF.
  IF NOT it_input-newko IS INITIAL.
    wa_bbseg-newko = it_input-newko.
  ENDIF.
  IF NOT it_input-newum IS INITIAL.
    wa_bbseg-newum = it_input-newum.
  ENDIF.
  IF NOT it_input-wrbtr IS INITIAL.
    wa_bbseg-wrbtr = it_input-wrbtr.
  ENDIF.
  IF NOT it_input-dmbtr IS INITIAL.
    wa_bbseg-dmbtr = it_input-dmbtr.
  ENDIF.
  IF NOT it_input-zterm IS INITIAL.
    wa_bbseg-zterm = it_input-zterm.
  ENDIF.
IF NOT it_input-zfbdt IS INITIAL.
   wa_bbseg-zfbdt = it_input-zfbdt.
ENDIF.
  wa_bbseg-zfbdt = w_budat.
  IF NOT it_input-wt_wit IS INITIAL.
    wa_bbseg-qsskz = it_input-wt_wit.
  ENDIF.
  IF NOT it_input-wt_qs IS INITIAL.
    wa_bbseg-qsshb = it_input-wt_qs.
  ENDIF.
  IF NOT it_input-wt_qb IS INITIAL.
    wa_bbseg-qsfbt = it_input-wt_qb.
  ENDIF.
  IF NOT it_input-mwskz IS INITIAL.
    wa_bbseg-mwskz = it_input-mwskz.
  ENDIF.
  IF NOT it_input-bupla IS INITIAL.
    wa_bbseg-bupla = it_input-bupla.
  ENDIF.
  IF it_input-ind IS INITIAL AND NOT it_input-newbk IS INITIAL.
    wa_bbseg-newbk =  it_input-newbk.
  ENDIF.
  IF NOT it_input-kostl IS INITIAL.
    wa_bbseg-kostl = it_input-kostl.
  ENDIF.
  IF NOT it_input-aufnr IS INITIAL.
    wa_bbseg-aufnr = it_input-aufnr.
  ENDIF.
Changes for background processing
  IF it_input-newbs NE '34' AND it_input-newbs NE '24'.
    IF NOT it_input-prctr IS INITIAL.
      wa_bbseg-prctr = it_input-prctr.
    ENDIF.
  ENDIF.
end of changes.
  IF NOT it_input-pernr IS INITIAL.
    wa_bbseg-pernr = it_input-pernr.
  ENDIF.
  IF NOT it_input-zuonr IS INITIAL.
    wa_bbseg-zuonr = it_input-zuonr.
  ENDIF.
  IF NOT it_input-xref1 IS INITIAL.
    wa_bbseg-xref1 = it_input-xref1.
  ENDIF.
  IF NOT it_input-xref2 IS INITIAL.
    wa_bbseg-xref2 = it_input-xref2.
  ENDIF.
  IF NOT it_input-xref3 IS INITIAL.
    wa_bbseg-xref3 = it_input-xref3.
  ENDIF.
  IF NOT it_input-wrbtr IS INITIAL.
    wa_bbseg-sgtxt = it_input-sgtxt.
  ENDIF.
  APPEND wa_bbseg TO it_data.
ENDFORM.                    " item_record
*&      Form  post_document
      text
-->  p1        text
<--  p2        text
FORM post_document.
  PERFORM call_rfbibl00.
ENDFORM.                    " post_document
*&      Form  upload_file
      text
-->  p1        text
<--  p2        text
FORM f001_upload_file.
  IF pr_serv = 'X'.
    MOVE '*' TO w_param_1.
   CONCATENATE sy-datum '_' '*' INTO w_param_1.
    PERFORM get_file_name USING pr_sfile w_param_1.
                         CHANGING x_file.
    LOOP AT it_file WHERE name CP w_file1.
      CLEAR : x_file, w_path,
              w_move_file, w_from_dir.
      REFRESH : it_input,
                it_input_err.
   IF w_flag IS INITIAL.
      CONCATENATE w_dir it_file-name INTO x_file.
      CONDENSE  x_file.
TO Move file from sever for backup storing the file name and path
      w_path = x_file.
      CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH'
        EXPORTING
          full_name     = x_file
        IMPORTING
          stripped_name = w_move_file
          file_path     = w_from_dir
        EXCEPTIONS
          x_error       = 1
          OTHERS        = 2.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
      PERFORM read_file TABLES it_input
                        USING  x_file.
      PERFORM next_steps.
      CLEAR it_input_err.
      REFRESH it_input.
    ENDLOOP.
  ELSE.
    DATA : w_string TYPE string.
    w_string = pr_lfile.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
       filename                      = w_string
       filetype                      = 'ASC'
    HAS_FIELD_SEPARATOR           = 'X'
      TABLES
        data_tab                      = it_input1
     EXCEPTIONS
       file_open_error               = 1
       file_read_error               = 2
       no_batch                      = 3
       gui_refuse_filetransfer       = 4
       invalid_type                  = 5
       no_authority                  = 6
       unknown_error                 = 7
       bad_data_format               = 8
       header_not_allowed            = 9
       separator_not_allowed         = 10
       header_too_long               = 11
       unknown_dp_error              = 12
       access_denied                 = 13
       dp_out_of_memory              = 14
       disk_full                     = 15
       dp_timeout                    = 16
       OTHERS                        = 17
    IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    LOOP AT it_input1 INTO input_line.
      CLEAR: it_input, count.
      DO.
        ADD 1 TO count.
        ASSIGN COMPONENT count OF STRUCTURE it_input TO <fs>.
        IF sy-subrc = 0.
          SPLIT input_line AT separator INTO <fs> input_line.
        ELSE.
          EXIT.
        ENDIF.
      ENDDO.
      APPEND it_input.
    ENDLOOP.
    PERFORM next_steps.
    CLEAR it_input_err.
    REFRESH it_input.
  ENDIF.
ENDFORM.                    " upload_file
*&      Form  bdc_header
      text
*&      Form  bdc_dynpro
      text
     -->P_0956   text
     -->P_0957   text
FORM bdc_dynpro USING    program dynpro.
  CLEAR bdcdata.
  bdcdata-program  = program.
  bdcdata-dynpro   = dynpro.
  bdcdata-dynbegin = 'X'.
  APPEND bdcdata.
ENDFORM.                    " bdc_dynpro
*&      Form  bdc_field
      text
     -->P_0961   text
     -->P_0962   text
FORM bdc_field USING   fnam fval.
  CLEAR bdcdata.
  bdcdata-fnam = fnam.
  bdcdata-fval = fval.
  IF bdcdata-fval NE space.
    APPEND bdcdata.
  ENDIF.
ENDFORM.                    " bdc_field
*&      Form  bdc_items
      text
*&      Form  fill_in_nodata_character
      text
     <--P_WA_BBKPF  text
FORM fill_in_nodata_character CHANGING p_struc.
  FIELD-SYMBOLS: <nodata_field>.
  DATA: num TYPE i.
  DO.
    ADD 1 TO num.
    ASSIGN COMPONENT num OF STRUCTURE p_struc TO <nodata_field>.
    IF sy-subrc = 0.
      <nodata_field> = pr_nodta.
    ELSE.
      EXIT.
    ENDIF.
  ENDDO.
ENDFORM.                    " fill_in_nodata_character
*&      Form  bdc_bgr00
      text
-->  p1        text
<--  p2        text
FORM bdc_bgr00.
  PERFORM fill_in_nodata_character CHANGING wa_bgr00.
  wa_bgr00-stype = '0'.
  wa_bgr00-group = pr_group.
  wa_bgr00-mandt = sy-mandt.
  wa_bgr00-usnam = sy-uname.
  wa_bgr00-start = sy-datum.
  wa_bgr00-xkeep = pr_xkeep.
  APPEND wa_bgr00 TO it_data.
ENDFORM.                                                    " bdc_bgr00
*&      Form  save_on_server
      text
-->  p1        text
<--  p2        text
FORM save_on_server.
  MOVE sy-datum TO w_date.
  CLEAR w_file_comp.
  w_file_comp = pr_out.
  CONCATENATE w_path_comp pr_out c_under w_date c_ext INTO pr_out.
  OPEN DATASET pr_out FOR OUTPUT IN TEXT MODE ENCODING DEFAULT.
  LOOP AT it_data.
    TRANSFER it_data TO pr_out.
    IF sy-subrc NE 0.
      MESSAGE i001(mg) WITH pr_out.  " error writing to sequential file
      MESSAGE a099(mg).              " processing terminated
    ENDIF.
  ENDLOOP.
  CLOSE DATASET pr_out.
  FREE it_data.
ENDFORM.                    " save_on_server
*&      Form  call_rfbibl00
      text
-->  p1        text
<--  p2        text
FORM call_rfbibl00.
Submit file after mapping the data to RFBIBL00
  SUBMIT rfbibl00 WITH ds_name = pr_out
                   WITH callmode = callmode
                   WITH xlog = 'X'
                   WITH max_comm = pr_max
                   WITH pa_xprot = 'X'
                   AND RETURN.
  pr_out = w_file_comp.
ENDFORM.                    " call_rfbibl00
*&      Form  get_file_name
      text
     -->P_P_SFILE  text
     -->P_W_PARAM_1  text
FORM get_file_name USING    p_sfile
                            w_param_1.
                           CHANGING x_file.
  CALL FUNCTION 'FILE_GET_NAME'
    EXPORTING
      client           = sy-mandt
      logical_filename = p_sfile
      parameter_1      = w_param_1
    IMPORTING
      file_name        = x_file
    EXCEPTIONS
      file_not_found   = 1
      OTHERS           = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  w_path = x_file.
  CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH'
    EXPORTING
      full_name     = w_path
    IMPORTING
      stripped_name = w_file
      file_path     = w_dir
    EXCEPTIONS
      x_error       = 1
      OTHERS        = 2.
  IF sy-subrc <> 0.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
            WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
  ENDIF.
  w_dir1 = w_dir.
  w_file1 = w_file.
  CALL FUNCTION 'EPS_GET_DIRECTORY_LISTING'
    EXPORTING
      dir_name               = w_dir1
      file_mask              = w_file1
    TABLES
      dir_list               = it_file
    EXCEPTIONS
      invalid_eps_subdir     = 1
      sapgparam_failed       = 2
      build_directory_failed = 3
      no_authorization       = 4
      read_directory_failed  = 5
      too_many_read_errors   = 6
      empty_directory_list   = 7
      OTHERS                 = 8.
  IF sy-subrc <> 0.
    WRITE : / text-022.
  ENDIF.
  LOOP AT it_file WHERE name CP w_file1.
    IF w_flag IS INITIAL.
      CONCATENATE w_dir it_file-name INTO x_file.
      CONDENSE  x_file.
      w_flag = 1.
    ELSE.
      EXIT.
    ENDIF.
  ENDLOOP.
ENDFORM.                    " get_file_name
*&      Form  read_file
      text
     -->P_X_FILE  text
FORM read_file  TABLES it_tab
                USING  x_file.
  OPEN DATASET x_file FOR INPUT IN TEXT MODE ENCODING DEFAULT.
  IF sy-subrc NE 0.
    WRITE : / text-023.
  ELSE.
    DO.
      READ DATASET x_file INTO input_line.
      IF sy-subrc = 0.
        CLEAR: it_input, count.
        DO.
          ADD 1 TO count.
          ASSIGN COMPONENT count OF STRUCTURE it_tab TO <fs>.
          IF sy-subrc = 0.
            SPLIT input_line AT separator INTO <fs> input_line.
          ELSE.
            EXIT.
          ENDIF.
        ENDDO.
        APPEND it_tab.
      ELSE.
        EXIT.
      ENDIF.
    ENDDO.
  ENDIF.
  CLOSE DATASET x_file.
ENDFORM.                    " read_file
*&      Form  validate
      text
-->  p1        text
<--  p2        text
FORM  f002_validate .
  SELECT blart
  FROM t003
  INTO TABLE it_blart.
  IF sy-subrc NE 0.
    CLEAR  it_blart.
  ENDIF.
  SELECT saknr
  FROM ska1
  INTO TABLE it_ska1.
  IF sy-subrc NE 0.
    CLEAR it_ska1.
  ENDIF.
  SELECT lifnr
  FROM lfa1
  INTO TABLE it_lifnr.
  IF sy-subrc NE 0.
    CLEAR it_lifnr.
  ENDIF.
  SELECT mwskz
  FROM t007a
  INTO TABLE it_mwskz.
  IF sy-subrc NE 0.
    CLEAR  it_mwskz.
  ENDIF.
  SELECT qsskz
  FROM t059q
  INTO TABLE it_qsskz.
  IF sy-subrc NE 0.
    CLEAR  it_qsskz.
  ENDIF.
  SELECT zterm
  FROM t052
  INTO TABLE it_zterm.
  IF sy-subrc NE 0.
    CLEAR  it_zterm.
  ENDIF.
  SELECT bschl
  FROM tbsl
  INTO TABLE it_bschl.
  IF sy-subrc NE 0.
    CLEAR  it_bschl.
  ENDIF.
  SELECT umskz
  FROM t074u
  INTO TABLE it_umskz.
  IF sy-subrc NE 0.
    CLEAR  it_umskz.
  ENDIF.
  SELECT DISTINCT xblnr
  FROM bkpf
  INTO TABLE it_xblnr.
  IF sy-subrc NE 0.
    CLEAR it_xblnr.
  ENDIF.
  SELECT prctr
  FROM cepc
  INTO TABLE it_prctr.
  IF sy-subrc NE 0.
    CLEAR it_prctr.
  ENDIF.
  SELECT kostl
  FROM csks
  INTO TABLE it_kostl.
  IF sy-subrc NE 0.
    CLEAR it_kostl.
  ENDIF.
  SELECT branch
  FROM j_1bbranch
  INTO TABLE it_branch.
  IF sy-subrc NE 0.
    CLEAR it_branch.
  ENDIF.
  SELECT seccode
  FROM seccode
  INTO TABLE it_seccode.
  IF sy-subrc NE 0.
    CLEAR it_seccode.
  ENDIF.
  SELECT bschl shkzg
  FROM tbsl
  INTO TABLE it_tbsl.
  IF sy-subrc NE 0.
    CLEAR it_tbsl.
  ENDIF.
  SELECT aufnr
  FROM aufk
  INTO TABLE it_aufnr.
  IF sy-subrc NE 0.
    CLEAR it_aufnr.
  ENDIF.
  SELECT pernr
   FROM pa0001
   INTO TABLE it_pernr.
  IF sy-subrc NE 0.
    CLEAR it_pernr.
  ENDIF.
  LOOP AT it_input.
    CLEAR : wa_input_err,w_check.
   AT NEW xblnr.
     CLEAR w_item_no.
   ENDAT.
   AT NEW xblnr.
     CLEAR w_wrbtr.
   ENDAT.
   w_wrbtr = w_wrbtr + it_input-wrbtr.
*checking the whether record is a header record or not.
    IF NOT it_input-ind IS INITIAL.
      CLEAR w_item_no.
*keeping the track of item number for error record.
      w_item_no = w_item_no + 1.
*Checking the total amount in line item eq 0 or not.
      IF w_wrbtr NE 0.
        MOVE w_xblnr TO wa_input_err-xblnr.
        CONCATENATE wa_input_err-err_text text-019 INTO wa_input_err-err_text SEPARATED BY space.
        APPEND wa_input_err TO it_input_err.
      ENDIF.
      CLEAR : w_xblnr,w_wrbtr.
*Checking whether the record already posted or not.
      READ TABLE it_xblnr
      WITH KEY xblnr = it_input-xblnr
      TRANSPORTING NO FIELDS.
*If record is already posted then al the line items related to that header are moved to
*the error directory saying that record already posted.
      IF sy-subrc EQ 0.
        MOVE it_input-xblnr TO wa_input_err-xblnr.
        MOVE it_input-xblnr TO w_xblnr.
        MOVE text-024 TO  wa_input_err-err_text.
        APPEND wa_input_err TO it_input_err.
*Setting the flag for keeping the track of the posted items.
        MOVE 'X' TO w_post.
*Skipping the current record as it is already posted so no validation is done for that record.
        CONTINUE.
*If the record is not posted then all the vaidation will be done and depending existanse in check table
*corresponding enrty is moved to the error table.
      ELSE.
        CLEAR w_post.
        MOVE it_input-xblnr TO w_xblnr.
validations for document type
        IF NOT it_input-blart IS INITIAL.
          READ TABLE it_blart
          WITH KEY blart = it_input-blart
          TRANSPORTING NO FIELDS.
          IF sy-subrc NE 0.
            MOVE w_xblnr TO wa_input_err-xblnr.
            MOVE w_item_no TO wa_input_err-item_no.
            MOVE text-018 TO wa_input_err-err_text.
          ENDIF.
        ENDIF.
*validation for company code
        IF pr_bukrs NE it_input-bukrs.
          MOVE w_xblnr TO wa_input_err-xblnr.
          MOVE w_item_no TO wa_input_err-item_no.
          CONCATENATE wa_input_err-err_text text-005 INTO wa_input_err-err_text SEPARATED BY space.
        ENDIF.
*validation for currency
        IF pr_waers NE it_input-waers.
          MOVE w_xblnr TO wa_input_err-xblnr.
          MOVE w_item_no TO wa_input_err-item_no.
          CONCATENATE wa_input_err-err_text text-006 INTO wa_input_err-err_text SEPARATED BY space.
        ENDIF.
*validation for GL account number
        IF NOT it_input-newko IS INITIAL.
          MOVE it_input-newko TO w_newko.
          CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
            EXPORTING
              input  = w_newko
            IMPORTING
              output = w_newko.
          READ TABLE it_ska1
          WITH KEY saknr = w_newko
          TRANSPORTING NO FIELDS.
          IF sy-subrc NE 0.
            READ TABLE it_lifnr
            WITH KEY lifnr = w_newko
                     bukrs = it_input-newbk
            TRANSPORTING NO FIELDS.
            IF sy-subrc NE 0.
              MOVE w_xblnr TO wa_input_err-xblnr.
              MOVE w_item_no TO wa_input_err-item_no.
              CONCATENATE wa_input_err-err_text text-029 INTO wa_input_err-err_text.
            ENDIF.
          ENDIF.
        ENDIF.
**validation for vendor account number
      IF NOT it_input-newko IS INITIAL.
         MOVE it_input-newko TO w_newko.
         CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
           EXPORTING
             input  = w_newko
           IMPORTING
             output = w_newko.
         READ TABLE it_lifnr
         WITH KEY lifnr = w_newko
         TRANSPORTING NO FIELDS.
         IF sy-subrc NE 0.
           MOVE w_xblnr TO wa_input_err-xblnr.
           MOVE w_item_no TO wa_input_err-item_no.
           CONCATENATE wa_input_err-err_text text-029 INTO wa_input_err-err_text SEPARATED BY space.
         ENDIF.
       ENDIF.
*validation for taxcode
        IF NOT it_input-mwskz IS INITIAL.
          READ TABLE it_mwskz
          WITH KEY mwskz = it_input-mwskz
          TRANSPORTING NO FIELDS.
          IF sy-subrc NE 0.
            MOVE w_xblnr TO wa_input_err-xblnr.
            MOVE w_item_no TO wa_input_err-item_no.
        

Similar Messages

  • Error while creating a product group--Batch input error 9

    Hi,
       While creating a product group in T-code MC84, getting the error message" Product group can not be created (Batch input error 9)". Would appreciate providing yr help to resolve above issue.
    Thks,
    Nilesh

    Hi Neel,
       As ponited by you, the material type "PROD" is realted with creation of product group.I am able to resolve the error, "actually the work schedulling & MRP views were not activated for "PROD" resulting in the above error.
      Thks for yr help.
    Regards,
    Nilesh

  • Sales Order Upload using IDOC : Batch Input error

    Hi all
    When I am uploading sales order data using <b>idoc</b> method it was giving the below error when  the Items are more than 10,if the items are less than 10 it was creating the sales order successfully.
    <b>Screen 0000 is too large for internal batch input area</b>
    for upload I am using the standard Meassege type and Basic idoc type
    Message type : ORDERS
    Basic idoc type : ORDERS05
    Function Module : idoc_input_orders(ORDE)
    Please help if there is any Idea
    Thanks in Advance
    Warm regards
    Rajasekhar

    Hi Madhu,
    This error might be due to screen resolution. Try to reduce screen resolution and run your program.
    Cheers
    Manohar

  • Handling Batch Input errors in workflow

    Greetings Friends,
    I got a Subworkflow (Pa. process) to get aproves to unblock a Salesdocument.
    After everyone aproves it, the process return to my main-workflow for a Batch input inside in a background task. But the batch input can result in somekind of error and fail. At this time, the workitem is already "lost" (processed?).
    There is a way to recreate the workitem for another user? (I got one hint here at SDN about FM SAP_WAPI_PUT_BACK_WORKITEM)
    There is a container that saves the last workitem processed?
    Att,
    José.
    <Subject edited. Please use a meaningful subject, see the Rules of Engagement (link at the top of each forum) for further info>
    Edited by: Mike Pokraka on Dec 16, 2008 1:54 PM

    Hi Sunny,
    What release are you on?  If the workflow errors out, then it must be telling you some sort of exception message.
    Either at the header level, or at the individual task, where the red lights are.  (if you are on ECC6, you may need to hit CTRL/P to get to the more comprehensive WF Technical Log).
    By all means, populate a custom table with exceptions if you must, or pass the error into the workflow container, but if your task goes into error, it doesn't complete, therefore it can't write the error into the container.
    Give standard SAP functionality a try before building too much into capturing the exception.  It's already done for you, and it works.
    Hope this helps,
    Sue

  • How do I create a data set ready for a batch input session

    Hi:
    I don't know how to create a data set ready for an BATCH-INPUT SESSION.I know that with the function BDC_INSERT make de input online, but my requirement is that generate the data set and left to the user get in de SM35 transaccion and decide to him if it's execute or not. I have all the information in a BDCDATA table.
    Any clue would be great!!

    You just have to do:
    BDC_OPEN_GROUP (Open new batch)
    BUILD BDC DATA (Your own code)
    BDC_INSERT (Insert BDC data you have built in step 2)
    BDC_CLOSE_GROUP (Close batch)
    This will just create a new batch and it can be processed in SM35.
    To build BDC data:
    LOOP AT your_input_table.
    <<here you have to use the code generated from recording in  trasaction SHDB>> (i.e. bdc_dynpro and bdc_field performs)
    ENDLOOP.

  • In which tables are batch input error messages logged?

    does anybody know in which table are the batch input error messages logged?
    I have to display the error messages which have occured during the transaction
    I tried to find out, but i could see only the table BDCMSGCOLL, this table has only the Batch input message number and not the message itself?
    does anybody know about the batch input error messages?

    hi,
    check the sample code below.
    messtab is of type BDCMSGCOLL.
    Call the transaction and then use T100 to get the message.
    DATA: l_mstring(480).
    call transaction using
      REFRESH messtab.
      CALL TRANSACTION tcode USING bdcdata
                       MODE   ctumode
                       UPDATE cupdate
                       MESSAGES INTO messtab.
      l_subrc = sy-subrc.
      SKIP.
      LOOP AT messtab.
        SELECT SINGLE * FROM t100 WHERE sprsl = messtab-msgspra
                                  AND   arbgb = messtab-msgid
                                  AND   msgnr = messtab-msgnr.
        IF sy-subrc = 0.
          l_mstring = t100-text.
          IF l_mstring CS '&1'.
            REPLACE '&1' WITH messtab-msgv1 INTO l_mstring.
            REPLACE '&2' WITH messtab-msgv2 INTO l_mstring.
            REPLACE '&3' WITH messtab-msgv3 INTO l_mstring.
            REPLACE '&4' WITH messtab-msgv4 INTO l_mstring.
          ELSE.
            REPLACE '&' WITH messtab-msgv1 INTO l_mstring.
            REPLACE '&' WITH messtab-msgv2 INTO l_mstring.
            REPLACE '&' WITH messtab-msgv3 INTO l_mstring.
            REPLACE '&' WITH messtab-msgv4 INTO l_mstring.
          ENDIF.
          CONDENSE l_mstring.
          WRITE: /4 messtab-msgtyp, l_mstring(250).
        ELSE.
          WRITE: /4 messtab.
        ENDIF.
      ENDLOOP.

  • Editing is terminated message when running batch input error using lsmw

    Any Idea why would I get the info message like
    "Editing is terminated message when running batch input error using lsmw"
    please suggest where to look at.
    Thanks,
    Edited by: mark_yellow mark on Jul 1, 2008 3:27 AM

    Hi Mark,
    Welcome.
    This is lsmw batch input error.while  uploading the G/L accounts using the Batch Input process (program name RFBISA00) in LSMW.this error mainly generates...
    Fix the error using logs.
    thanks
    karthik

  • RFBIBL00 - Batch Input Error

    Hello Friends,
    I am using RFBIBL00 to create GL postings. I have used this program successfully before and never had the following issue:
    RFBIBL00 creates a batch and when the batch is processed I get the following error: Field COBL-PRODPER does not exist in the screen SAPLKACB 0002. I my test, I was trying to create a basic document just with one simple debit and credit entry. Could this be a config issue? Any input/help will be greatly appreciated.
    Thanks,
    Sam

    well, it worked. i was instantiating the batch input structures but somehow some fields including prodper were not affected (maybe because they were extended fields?).
    anyways, rob - your post made me to think that prodper is going into the batch input process without / (no-data character) which was correct!
    thanks!

  • RFBIBL00 - issue in Batch Input Session created

    Hi Experts,
    I am Posting a document thru FB01, for this I am using RFBIBL00 and RSBDCSUB programs to create a Batch Input Session,
    I have filled all the required fields for structures BBPKF, BBSEG and BBTAX, but the session created is not processed successfully, while processing it in Foreground, I am getting a Message saying 'No batch input data for screen SAPLKEAK 0300 '.
    Can anyone please help me on this.

    Hi Experts,
    Now I have 2 errors in the Batch Input Session Log,
    1. Field COBL-PRCTR(Profit Center). does not exist in the screen SAPLKACB 0002
    2. Field DKACB-XERGO(Details - Its a check box in the screen). does not exist in the screen SAPLKACB 0002.
    But I can see that these filelds are existing in the screens, can anyone let me know why this error occurs.
    This is occuring after COPA generation with new fields.
    I am trying for a OSS Note also, but I am not getting any. Please help.

  • Batch Input error in background in fb05

    Hi All
    I am trying to clear vendor open  items for document numbers from BSIK table.
    i am doing this using fb05 transaction, checking the 'post with clearing' option.
    The program creates a batch input session.
    When i process the session in foreground, the vendor document is cleared and a new clearing document is posted.
    However, if i try to process the session in background , we get the error "Difference too large for clearing". The error is shown in program SAPMF05A and screen number 700.  Whereas, my recording does not have this screen number .
    Even when i anlyze the session screen flow, i do not see this screen number.
    Any pointer on the issue shall be of great help.
    Thanks
    Pankaj

    Hi
    thanks for the pointer.
    I agree that we get this error if the items are not selected.
    Could it be that the items are activated by default in foreground mode , and deactivated in the background mode?
    Moreover, could you please give some more info about " the std bi RFBIBL00, it supports the trx FB05" ?
    Thanks
    Pankaj

  • MICN - Batch input error

    Dear Expert,
    I run t-code MICN for generate session cycle physical inventory but i have problem when process the result session with t-code SM35. The error message :
    - Field name    not valid in the batch input data (error message 00-346)
    - Transaction MI01 (SAPMM07I screen 700)
    Need help to solve this problem, thanks

    Hi
    The error occurs because,
    1.  You tried to provide a field name in a screen with data using batch input, and the field does not exist
    or
    2.  You tried to provide a field name in a screen with data using batch input, and the field's name is "Space" and/or has "Space"
    as field value.
    What you can do is
    1. Correct the BDCDATA table by using a valid field name in the screen.
    2. Use transaction SM35, function Session (F8) to analyze the session that was created, position the cursor on the screen
    where the error occurred, and press Data (F16).
    If the list of field names and values contains empty lines - that is field name and/or value are SPACE - you must change the report that creates the batch input sessions.
    Thanks !
    E.Avudaiappan
    Edited by: Avudaiappan E on Jun 3, 2011 7:10 AM

  • Std batch input error-vendor master

    Hi gurus,
    I am using std Batch input method to migrate vendor master.
    Object :040 Vendor master
    Method :0001 Standard
    Program Name :RFBIKR00
    Program Type :B Batch Input
    field mapping are correct.In 13th step -create batch input session ,I am getting the following error.
    FB012 Session 1 : Special character for 'empty field' is /
    FB013 ....Editing was terminated
    Can anyone give solution for this.Thanks

    can you check some of madatory fileds not passing the values . try to enter manually one record and check the what are the mandatory fileds and check the LSMW program in READ DISPLAY DATA  , that all mandatory fileds the values are passing or not..

  • No batch input error

    I am using VL02N screen. If the line item is > 8 then I record to click on place cursor and enter the line item number. The recording is set to enter the location and the pick qty. But I think for some reason when I go back to the main screen after i position the item, it gives me an error that that there's no batch input.  
    Could someone please help me resolve this. I am not familiar with it. Thanks in advance.
          LOOP AT t_item WHERE vbeln EQ t_header-vbeln
                           AND bldat EQ t_header-bldat.
            ADD 1 TO w_line_cnt.
            ADD 10 TO line_item.
            t_item-posnr = line_item.
           IF w_line_cnt > 8.
              PERFORM bdc_dynpro      USING 'SAPMV50A' '0111'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'RV50A-POSNR'.
              PERFORM bdc_field       USING 'RV50A-POSNR'
                                            t_item-posnr.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                            '=WEIT'.
              PERFORM bdc_dynpro      USING 'SAPMV50A' '1000'.
              PERFORM bdc_field       USING 'BDC_CURSOR'
                                            'LIPS-LGORT(01)'.
              PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=HTRA_T'.
           ENDIF.
            CONCATENATE 'LIPSD-PIKMG(' w_line_cnt ')' INTO w_field.
            CONCATENATE 'LIPS-LGORT(' w_line_cnt ')' INTO w_lgort.
            PERFORM bdc_field      USING w_lgort      t_item-lgort.
            PERFORM bdc_field      USING w_field      t_item-lfimg_e.
            PERFORM bdc_field      USING 'BDC_SUBSCR'
                                         'SAPMV50A 0611SUBSCREEN_BOTTOM'.
            PERFORM bdc_field      USING 'BDC_SUBSCR'
                                         'SAPMV50A 1708SUBSCREEN_ICONBAR'.
          ENDLOOP.

    It looks like at the end of your if statement you need to clear field W_LINE_CNT because you don't want your BDC to keep going to the next screen when you counter is bigger that 8. (ie when you at record 10, you don't want to go to process the action). You should do it only once every 8 records, not every time for each record starting from 8.

  • FB01 Batch Input withholding tax

    Hi Everyboy
    Does anybody can post an example of a batch-input of FB01, including the withholding tax window? I am making one, but it is not possible to put the data in withholding tax window and I really don’t know why. Any idea?
    Thanks in advande for your help.
    Best regards.

    Dear Mario,
    First of all are you able to put the data when you are posting normally (without recording). If yes, you should be able to put the data in withholding tax window in recording as well.
    Let me know with more details such as:
    1. Are you not able to see the window while recording.
    2. Is the window not input enabled while recording.
    Regards,
    Naveen.

  • Batch input error

    Hi guys, I am trying to generate a batch input session to the F-02 transaction and keep getting the message:
    Screen  0000 is too large for internal batch area   
    Does anyone know what this means?

    Hi Sergio!
    Maybe you have a look at LSMW, standard batch object 0010, method 0001 or 0002.
    Then program RFBISA00 will do a batch input for G/L accounts.
    You can also have a look at the program (and his documentation) itself, maybe you can use it / find some hints for your problem.
    Regards,
    Christian

Maybe you are looking for

  • Printing week view omits times

    When you print the week view of an iCal calendar, it does not print the start and end times of the events -- it only prints the names of the events. Maybe it's just me, but doesn't this make the printed week view nearly useless? I need to know precis

  • Getting Started with FCP

    I'm a newbie with Mac's even though I used them in the early 90's. I'm currently looking for the best way to learn FCP and eventually other programs in Final Cut Studio 2. My immediate goal is to shoot and edit local events and put them in DVD format

  • Any way to temporarily ignore smart guides while using the pen tool?

    I'm having a hate and love relationship with Smart Guides. When I want them they're bad; when I don't they're good. While trying to do some things with the pen tool, I am frequently faced with the smart guides snapping my tool around without my wanti

  • Deleting a directory, sub directory file, files?

    Ok i was 1. Wondering if this is possiable 2. How do i do it. What im trying to have java do is start in directory: C:\Documents and Settings\Kevin Rose\Desktop\bob and from their go and delet C:\Documents and Settings\Kevin Rose\Desktop\bob\TextScri

  • Flash file won't replay?

    I am in AS3.0 I have created a linear flash file to show the steps of a user flow. This uses a single 'next' button which navigates through the flow and at the final screen navigates back to the first screen to allow the user to view the file again.