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.

Similar Messages

  • 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.
            

  • Withholding tax information

    Hello Friends,
    With respect to withholding tax Iu2019m facing difficulty to map the below user requirement.
    User want to incorporate the withholding tax (WHT) information at purchase order level, but in the purchase order we can't find any such provision to input withholding tax information.
    Standard system behavior is that if vendor is subject to WHT, WHT can be calculated at invoice verification level.
    We have to cater the below 2 scenarios, guys please provide your expert advice on this:
    1. WHT information is to be maintained at PO so that the person making VIV will not commit any error in selecting the tax code or will not make the invoice without inputting the relevant WHT information to avoid invoice being created without WHT on invoices subject to WHT.
    2. In a purchase order there are more then one line items some are subject to WHT and some are not, we want to capture the WHT on the items liable for WHT.
    We know that WHT is not calculated on item level it is calculated at header level on vendor.
    Thanks

    Hi Sapref,
    1. WHT information is to be maintained at PO so that the person making VIV will not commit any error in selecting the tax code or will not make the invoice without inputting the relevant WHT information to avoid invoice being created without WHT on invoices subject to WHT.
    Ans : What you want to ensure at the P.O. level is actually controlled at the Vendor master level and whichever P.O. you use.. if it is maintained in the vendor master, it will deduct TDS at the time of Invoice.. so there is no chance of committing any mistake.. if it is once maintained in vendor master data. Further there is no provision in SAP to maintain TDS Tax codes at the P.O. level
    2. In a purchase order there are more then one line items some are subject to WHT and some are not, we want to capture the WHT on the items liable for WHT.
    Ans : You are correct, that TDS is at the vendor level and not at the line item level. But Suppose you have an Invoice, which contains two line items, one on which TDS is to be calculated and the other on which TDS is not to be calculated, then at the header level in MIRO, you can enter the Witholding Tax Base amount and the TDS amount manually, and it will get calculated accurately.
    Regards,
    SAPFICO

  • FB01 in batch input

    Hello everyone,
    I am not able to reproduce something so I thought I would ask here.
    In FB01, you can have many things that gives you a mistake if the input is wrong. Though, if you run the transaction FB01 in a batch input, how many mistakes per transaction done will be in the log?
    If, for example, there are 3 differents mistakes preventing the post document to be created, will the log at the end will give you 1 error message or 3 errors messages for this post document? In fact, I'm trying to know if it stops as soon as it finds one mistake or if it continues and gathers all the mistakes possible. I have to recuperate this log (I know how, no worries) but I would like to know if it is possible for one post douments to have a log with more than one error message for the inputs I have in the BTCI
    Thank you

    Hello Vishnu.
    Thank you for taking time to answer.
    I understand what you are telling me and I'm not pushing it aside but the need right now is to know if the batch input log can give you more than one error per post document or not. If, for example, there are three mistakes, will I see all of them or only one of them... and if rerun, I will see the next one. 
    The program I'm working on is already built to work with FB01 but I need to get the log with the messages in it and to treat it differently inside a program but I kinda need to know if it would give me more than one mistake per Post doument or always one only.
    Thank you
    Edited by: SBenoit on Nov 25, 2011 7:25 PM

  • Batch input session to FB01 using standard program RFBIBL00

    Hi all,
    I am creating a batch input session using the standard program RFBIBL00 to simulate transaction FB01.
    My problem is when I process the "batch input session" (using transaction SM35), this finish ok, but in the log I am retrieving the following message:
      "Field BSEG-DMBTR. does not exist in the screen SAPMF05A 0300"
    This is a success message and the document is created ok,and the field DMBTR is informed ok.
    Has somebody some idea?.
    Thanks so much in advance for any answer.

    Hi gundam,
    1. Or is there any method to wait here until the process is completed before further processing?
    There is no such direct method to wait.
    2. Immediately after submitting in background,
       we cannot wait
      neither can we LOOP and go on detecting
      whether the b/g process has completed or not !
    3. To over come such problems,
      we have to use another technique.
    4. we have to submit another
       job which will get triggered
       on event SAP_END_OF_JOB
       ie. when the original job will finish,
      our new job will AUTOMATICALLY get triggered,
    5. This new job / program
       will do the FURTHER actions !
    regards,
    amit m.

  • BAPI or Batch Input Program for FB01

    Hi all!
    I am trying to post invoice through transaction code FB01, i need a standard BAPI program or Batch Input Program for FB01 (except recording).
    thanks.

    Hello,
    In the 'Specify Files' step,
    1. give some short file name (about 20 Characters )
    2. In the File option for 'Converted Data' option check the Logical path / logical file entries. Normally it is LSMW ( Logical Path ) and the same File name for logical file. If you do not have a Logical path 'LSMW' create one in Tx. FILE'.
    3. Please note that you need authority to save the file on application server ( You can see the files on Appl. Server in Tx. AL11 ).
    Let me know how it goes on!
    Regds, Murugesh AS
    Message was edited by: Murugesh Arcot
    Message was edited by: Murugesh Arcot

  • Calculate withholding tax when have input or output tax

    Dear Forum,
    I understand that when the entry has input or output tax, in order to deduct withholding tax, I can deduct from vendor or customer account.
    Say if there is input tax, then I cannot deduct from vendor if at the point of vendor or bank if at the point of payment.
    Say if there is output tax, then cannot deduct from customer.
    Can advise the reason?
    Thanks

    Dear,
    I will answer You with a practical example:
    001 31       0000100214 Test VENDOR                       811,30-
    002 40       0000444444 Consumptn, raw mat.           943,39
    003 40       0000154000 Input tax                                  56,61
    004 50       0000177000 Withholding tax                      188,70-
    taxes
    Amount           Tx D/C Tax base amount      G/L        Tax rate
    56,61            A9     943,39               154000     6,000
    wt pop up
    test invoice time     01(CODE)     943,39      188,70  ZZ (TYPE)
    where:
    zz wt type is defined as Net amount
    a1 wt code 20%
    The System will do the following calculation:
    Base for Calculation (Gross Amount) in Document Currency                            1000.00 EUR
       - Tax on Sales/Purchases Amount                                                                      56.61 EUR
    Base amount = net amount                                                                                943.39 EUR
    Portion Subject to Tax                                                                                100.00 %
    Base Amount Minus Exempt Amt                                                                         943.39 EUR
    Withholding Tax Rate                                                                                20.00 %
    Final Withholding Tax Amount                                                                               188.70 EUR after rounding
    I hope this can help You in understanding the System behaviour.
    Please remember to use RFWT1000 by se38 if You need to trace the WT calculation during the simulation.
    Mauri
    Edited by: MAURIZIO BIANCOTTI on Oct 14, 2010 10:43 AM

  • Problem with MRM_INVOICE_CREATE,Debit Notes and Withholding Tax Information

    Hi!
    I have a problem with MF MRM_INVOICE_CREATE.
    We use this MF to create a Debit Note. The problem is that the Debit Note is created without the withholding tax information.
    I send the info in this parameter: i_rbkpv-h_rbws.
    Do you have any idea? I couldn't find any information about this. I tried an alternative solution using a batch-input but we had some problems with user permitions (this MF is called from a Z RFC that is called from an ASP application).
    Thanks in advance!
    Bettina

    Hey, thanks.
    I send your solution to the person who was trying to solve this problem.
    For sure will solve the problem because, in a previous version, we were using the bapi you told me. For some unknown reason, they changed for the MRM_INVOICE_CREATE.
    Thanks a lot!

  • LSMW RFBIBL00 withholding tax base amount in local currency cannot be updated by manual

    Hi SAP Guru,
    When I try to upload FI docs by program RFBIBL00 in LSMW, the field BWITH-WT_QSSHH(withholding tax base amount in local currency) cannot be updated.
    (1) The LSMW structure is defined as bellow:
         BGR00<--------DOC_HEAD
              BBKPF<--------DOC_HEAD
                   BBSEG<--------DOC_ITEM
                        BWITH <--------DOC_WHTX
    And fields in structure BWITH are defined as bellow:
    Field Name
    Type
    Length
    Field Description
    STYPE
    C
    1
    Batch Input Interface Record Type
    WITHT
    C
    2
    Withholding tax type
    WT_WITHCD
    C
    2
    Withholding tax type
    WT_QSSHB
    C
    21
    W/tax base amount in document currency (batch input
    field)
    WT_QSSHH
    C
    21
    W/tax base amount in Local currency (batch input
    field)
    (2) When I run LSMW, the doc can be posted successfully. All the information can be updated as the data I upload. Only the field WT_QSSHH is calculated by system automatically according to the current foreign exchange rate.
    (3) When I try to post this doc by manual(F-02), the field WT_QSSHH is not editable.
    How can I change the field WT_QSSHH into editable and update this field in LSMW RFBIBL00.
    Thank you very much!
    Eric

    Hi Nikitha,
    I tried posting an invoice in currency other then co. code currency, but the WT amount is getting calculated perfectly.
    also checked vendor with foreign curr recon account. the WT is working for that also
    Can you please share the screen shot of the transaction where after changing currency you are not getting the values picked up for WT
    May be i have not understood your questions
    Regards
    Pragya

  • Posting key 31 is ignored when processing Batch Input Map

    Hi,
    I have a problem when uploading an ascii file via RFBIBL00 to generate a batch input map. The map holds vendor and account bookings. The file looks like this:
    0MapName     001sap_user            X/
    1FB01                12062007YR0001120620076 EUR  ...
    2BBSEG                         31/         //            3381,00/...
    2BBSEG                         40/         //            1111,00/...
    The file uploads fine, the batch input map is created. Then I start to process the map. Transaction FB01 is filled with the necessary information. But instead of the starting with posting key 31 it starts with key 40. Field lengst, size of the 31 line is identical to the line with posting key 40 and 50 (expect for some fields like cost center, tax code,... which are not filled in the 31 line). For me it looks like that the line with the posting key 31 is totally ignored. oO
    What could be the problem? Where to check?
    Thank you for your help.
    best regards
    Hasan

    problem solved,
    thank you anyway

  • How to fill the KNBW Customer master record (withholding tax types) in IDOC

    Hi experts,
    The creation of a new customer (intern) with idoc has status 51 with error : No batch input data for screen SAPMF02D 0610. When à use the WE19 transaction, in background step by step, the batch-input stops in withholding tax types. But those informations aren't compulsory and not filled!
    1 - Why did the idoc stops in this step of the batch?
    2 - If i had to fill those informations, i don't find a segment in the DEBMAS01 or DEBMAS05 to fill the informations. Should i create an new segment?
    Thanks à lot for you responses.
    Wail

    Hi
    Step 1: Take help of a FI guy and:
    The fields can be suppressed by configuring through Financial accounting > Business Partners > Customers > Account groups.
    Step2 : The challenge inyou project is to have a single tab with the allowed fields
    A technical guy can only help you out on this . Again This would be a huge effort since first you need to change the code for customer master. As customer master is a source of data for various documents in SD , at each place you will have to do changes in th code...I don't think it is feasible.
    Instead of doing this , create an external interface for transferring the value to SAP through BAPI. this would involve integration and may be as per defined SAP standards you can use CSV files or XML files for the integration process.
    This would be a better option than fiddling with SAP system
    Regards
    Nikhil

  • Map vertical scrollbar - FV60 - Withholding tax

    I have a problem in transaction FV60 (Park Vendor Invoice), I am doing batch input.
    Via withholding tax I can't map okcode vertical Scrollbar. Buttons Next page, Previous page, First Page and Last Page aren't configureted for this table control - screen 0120 in program SAPLFWTD.
    The values in this table control are fill automaticaly, than my unique possibilit is the map vertical scrollbar.
    I tried to use the BAPI's BAPI_ACC_DOCUMENT_POST and  BAPI_ACC_GL_POSTING_POST but i can't created park document.
    I need to use the transaction FV60 because I need simulation tax before post document.
    Thanks in advanced,

    Please use Transaction FBV1 for Batchinput technologie, because FV60 is a Enjoy-Transaction, which is not supported for Batchinput technology.
    Joachim

  • Calculate Withholding taxes for VEndor Invoices using ABAP program.

    Hi All,
    I have to upload Vendor Invoices using FB60/Fb01 tcodes. I am able to post the Invoices using FB01/Fb60
    but I have to calculate extended withholding taxes also using this program for the Invoices.
    Is it possible to upload vendor Invoices and calculate withholding taxes using Program?
    If yes,
    Does anyone has any idea how do you calculate extended withholding taxes using any BAPI's?
    I have used these two BAPI's
    BAPI_ACC_DOCUMENT_POST
    BAPI_acc_invoice_receipt_post
    they are working fine but without withholding tax.
    This is a requirement for country India.
    Regards,
    Sushil

    Hi,
    Imho, you need to get (meaning, extract into separate fields) the different supplier types from Table1 first. Your key for Table1 is the vendor no, which is also the key in Table2 (or the key for Table2 is Vendor no & Type).
    For better performance, better select multiple/all required entries from Table1 instead of doing a select endselect.
    Depending on the format of the vendortypes in Table1, put them in a new itab (for our purpose named Table1New where vendor no & type are the only 2 fields. For example, if the type length is fixed to 2 chars, or divided by space,... use your coding accordingly.
    Next step is to select all vendor no's in Table2 which you have selected in Table1. If in Table2, the vendor no is the only key (and the all vendor types are filled in a single record), then loop check the vendor types from Table1New against the types in Table2.
    If the key of Table2 is vendor no & vendor type, then do a read table for the key.
    The logic in pseudo-code:
    Select from Table1 into table. If you'd like to limit the selection size, add package size statement.
         extract the vendor types in to itab Table1New.
         Select the vendor & types from Table2 by using the for all entries option (better performance).
         loop at Table1New
              check in Table2:
                   if the unique key is vendor no: check all fields for the vendor type from Table1New
                   if the unique key combo is vendor no & type: check by using a read table.
              If not found => add entry to Table2
         endloop.
    endselect Table1 (when using package size)
    I guess the most difficult step is to extract the types from Table1 into separate fields, all the rest seems straight forward. Please keep in mind the itab type definitions for a better performance.
    Good luck!
    Best regards,
    Zhou

  • Withholding taxes not updated when program run in background

    Hi,
    in a z1 report i do:
      SUBMIT z2
      VIA JOB lc_jobname
       NUMBER v_jobcount
         WITH p_fecha  = p_fecha                               
         WITH p_file   = v_file_in
         WITH p_e_file = p_efile 
         WITH p_client = p_client
         WITH p_test   = p_test  
          AND RETURN.
    within this z2 report i do:
              PERFORM mrm_invoice_create_call(saplmrm_bapi)     USING     s_rbkpv
                                                           tab_frseg[]
                                                           tab_co[]
                                                           tab_ma[]
                                                           c_rbstat_posted
                                                           space
                                                 CHANGING  invoicedocnumber
                                                           fiscalyear
                                                           return[]
                                                           f_subrc.
              IF test IS INITIAL.
                COMMIT WORK AND WAIT.
              ELSE.
                ROLLBACK WORK.
              ENDIF.
    the question is that if i run z1 report online there is no problem but if
    i run z1 report in background, withholding taxes are not calculated.
    After debugging this is what i´ve found out:
    1.- in PERFORM mrm_invoice_create_call(saplmrm_bapi) there is a call to fm FI_WT_POST IN UPDATE TASK
    2.- in FI_WT_POST table WITH_ITEM is updated
    i guess this could be due to a delay in updating the table so i´m considering doing a WAIT UP TO X SECONDS.
    why is it working in online mode but not in background mode?
    any idea?
    Best regards.

    Hi,
    in case someone is interested this is how i solved the question:
    i had badi MRM_WT_SPLIT_UPDAT implemented.
    in this badi implementation i had this code (among other checks too):
    CHECK sy-tcode = 'MIR4' OR sy-tcode = 'MIR7'.
    this code avoided the background job case.
    It seems that In a background job sy-tcode is empty.
    so i just needed to add this:
    CHECK sy-tcode = 'MIR4' OR sy-tcode = 'MIR7' OR  sy-batch = 'X'.
    and then withholding taxes reappeared again.
    (so sad, so true... one day of debugging,  sigh)
    Best regards.
    Edited by: Pablo Casamayor on Feb 2, 2012 4:53 PM

  • Brazil - Withholding tax in A/R credit memos / notes

    Hi all,
    We have implemented a proto-type of SAP ERP in Brazil to check out the taxes and in particularly the withholding taxes (WHT). We now have a test customer and test vendor for which withholding taxes have been activated and as a result, a withholding tax windows pops up while making a manual entry in FB01. The result of 4 test cases is as follows:
    1) Manual entry A/P invoice => WHT data can be entered in pop-up window => OK
    2) Manual entry A/P credit note => WHT data can be entered in pop-up window => OK
    3) Manual entry A/R invoice => WHT data can be entered in pop-up window => OK
    4) Manual entry A/R credit note => Pop-up window does not appear so WHT data can NOT be entered => not OK
    I am puzzled why the WHT pop-up window does not show for case 4. I must be able to post a credit memo in case an incorrect outgoing invoice was originally posted in the external system according to the following workflow:
    1) Outgoing A/R invoice is issued including WHT with doc.number 123456
    2) More invoices to other customers are issued with doc. numbers 123457 and 123458
    3) We now find that the invoice 1) was incorrect so want to issue a credit note with the orignal (WHT) values whereby the credit note receives doc.number 123459
    4) Now we re-issue the corrected invoice including WHT with doc.number 123460
    Within SAP, I could use FB08 of course for the reversal, but this won't work in the situation above where my document number is provided by the external system.
    Does anyone have experiences with WHT in Brazil and is our customising incorrect or is anyone aware of a common business practise why the WHT pop-up window does not appear for the outgoing A/R credit note.
    Thanks a lot in advance.
    René

    Hi Rene,
    I'm facing the same problem with the Withholding Tax in Mexico regarding A/R Credti Memos not being able to be posted. You mentioned that a posting key was the solution, could you please explain to me in more detail how does this posting key solution works?
    I have reviewed all of the configuration and nothing seems to work.
    Thanks a lot in advance!
    Nataly Hernández

Maybe you are looking for

  • Do I need to upgrade to OS 10.4.10  ?

    From my software updates, I think I need to upgrade to 10.4.10. It says I can if I have a Power PC Mac, or Intel-based Mac. I THINK I have a Power PC Mac. Is this going to cost me more money to upgrade or just time.... (I don't have fast internet ) W

  • Error on smb2 after updating to mavericks

    I updated an OS X 10.8 Server to Mavericks Server and I had some problems with Password Server that I Fixed ... but still 10.9 clients can't access to the shared folders using the Finder's side bar access while 10.8 clients can. As you'll probably kn

  • HT2500 Mail Sender Thumbnail Pic.

    Why do I only get some thumbnail pictures of senders of mail in my boxes when others [who are also in my contact book with a picture] don't show  and how do I fix it so all show please ?

  • Question about distribution of binary packages..

    Hi!! When I have built a package with makepkg, is that all that is needed to later share that pkg-file for the public? (i have no specifik optimizations)

  • BEx - Query Analiser - 500 Internal Error

    Hi ALL, When I execute Query in BEx, the PORTAL logon is displayed and after input the user and pass shows the 500 Internal Error. Caused by: com.sap.mw.jco.JCO$Exception: (102) RFC_ERROR_COMMUNICATION: Connect to message server host failed Connect_P