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
Similar Messages
-
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 -
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.
-
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 dont 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. -
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
Hasanproblem solved,
thank you anyway -
Batch Input Problem with PB10 - Updating IT22 via BDC
Hi out there,
I'm using PB10 to persist new applicants data.
Im processing after save the IT22.
In dialogmode i can just go back without putting input to it22. After going back the new applicant is saved successfully. Now it is possible to use pb30 to maintain (or new creation) of it22 for this applicant.
Now I recorded this "process" and after call transaction the system brings back an error that mandatory field p0022-endda is missing. this error exists also, if i fill the recorded map with data.
Batch Input in Background Mode ->Error
Batch Input in Dialog Mode -> IT22 Dialog appears with empty data
....Using "normal" Dialog Transaction OK!
Here's the code:
PERFORM: bdc_dynpro USING 'SAPMPAP4' '0100',
bdc_field USING 'BDC_OKCODE' '=UPD',
bdc_field USING 'PSPAR-BEGDA' d_beginn,
bdc_field USING 'Q4000-WERKS' '0001',
bdc_field USING 'P0001-BTRTL' '0001',
bdc_field USING 'Q4000-APGRP' '1',
bdc_field USING 'Q4000-APTYP' aptyp,
bdc_field USING 'Q0002-ANREX' anrex,
bdc_field USING 'P0002-VORNA' vorna,
bdc_field USING 'P0002-NACHN' nachn,
bdc_field USING 'Q0002-GBPAS' d_gbpas,
bdc_field USING 'P0002-SPRSL' sprac,
bdc_field USING 'P0002-NATIO' natio,
bdc_field USING 'P0006-LAND1' land1,
bdc_field USING 'P0006-STRAS' stras,
bdc_field USING 'P0006-PSTLZ' pstlz,
bdc_field USING 'P0006-ORT01' ort01,
bdc_field USING 'P0006-TELNR' telnr,
bdc_field USING 'EMAIL' stamm-email,
bdc_field USING 'P4001-SPAPL' aptyp,
*IT22
bdc_dynpro USING 'MP002200' '2000',
bdc_field USING 'BDC_OKCODE' '=UPD',
bdc_field USING 'P0022-BEGDA' d_beginn,
bdc_field USING 'P0022-ENDDA' '31129999',
bdc_field USING 'P0022-SLART' 'XX',
bdc_field USING 'P0022-INSTI' 'FH Irgendwo',
bdc_field USING 'P0022-SLABS' '50',
bdc_field USING 'P0022-EMARK' '1.7',
bdc_field USING 'P0022-SLAND' 'DE',
bdc_dynpro USING 'SAPMPAP4' '0100',
bdc_field USING 'BDC_OKCODE' '/EEBAC'.
CALL TRANSACTION 'PB10' USING bdcdata
MODE 'E'
MESSAGES INTO messtab.
Error in messtab
Edited by: Timo Ehl on Oct 24, 2011 9:05 AMHi Kevin,
Is it really FB01<b>L</b>? I cannot find it in my 46c system?
Anyway, you can control this message as follows. Go to SM30, enter V_T100C and 'Maintain'. Enter 'F5' for application area in the subsequent pop-up.
In the table control, see if message number 192 is already there. If it is there, then change the value under column 'BatchI' to 'I' and save. If it is not there, then enter a new record for 192.
Hope this helps,
Srinivas -
FB60 batch input from MS Excel file
Dear experts,
We want to post regular acquisitions from appr. 200 vendors each month (amounts each month are different). We need to post different vendors to different cost centers, segments and other assignment elements/objects. I suppose that we need to use a batch input by importing a MS Excel spreadsheet, because software where we are tracking those payables makes export just into Excel. In SAP we have separate Vendors Master Data for all 200 vendors. Please help me to create batch input program for this monthly batch postings. How to define SAP field correspondence with Excel cells, and etc.?
(P.S. Im quite new in batch input functionalities )Hi Stephen,
I still not have any responds using LSMW. I tried to use for this <i>Standard Batch/Direct Input Object</i> - <b><i>0100 Financial Documents</i></b> but this object allows to use just t.code FB01, and as you mentioned in your previous message, there no choices to assign Vendor ID field, or Posting Key field. So this option did not pass to me too. Then I found t.code SHDB, maybe it is quite complicated process, but for me it works and I have posted invoices from my 200 vendors. I just convert my data within excel spreadsheet in appropriate manner (rows must be transposed to columns), save it in .txt file and import to SAP within SHDB, and push the button <i>Process</i>. First few times system gave me errors, but there were inaccuracies in .txt file, after little corrections everything started to work.
I am not sure if t.code SHDB will work for you, because you need to upload your legacy and not current data, but you could try. -
Happy new year everyone!
I am writing a piece of ABAP code which creates a batch input session.
In the code I have the following statement:
PERFORM session_insert USING 'F-02'.
However, when I run SM35 and look and display the log, in the transaction
column FB01 appears. There is no reference to F-02.
Does anybody know why this is?
Thanks
AndyHi andy,
1. in your subroutine session_insert,
(or before that, when u open the session),
the session name must be going as FB01.
(the session name and tcode can be different)
regards,
amit m. -
Batch input session for FI postings
At the time of batch input session processing for FI postings (Transaction FB01), session is terminated due to following error message -
Message no. 00349
Field BSEG-PRZNR. does not exist in the screen SAPMF05A 0302
Batch session has been created using LSMW for data upload. As per field status of the GL account, some of the line items may or may not require an entry for particular field. How can we ignore this error during batch input session when a field is not required to be input for a particular GL account. However, flat file format contains this field because it is required for some of the GL accounts.
Let me know if you need more information / example. I desperately need a solution.
Regards,Dear Abhilasha,
Lets assume you have two gl accounts gl1 and gl2. gl1 requires this field to be entered, whereas gl2 does not allow you to enter value.
In this case, modify your logic as below:
I believe you can write code in LSMW as well.
However, if you are using BDC you can write logic as follows:
if gl_account_field = gl1.
PERFORM bdc_field USING 'BSEG-PRZNR'
value.
endif.
Hope this will help.
Regards,
Naveen. -
Regarding document type in batch input session
Hi,
when i run int.cal. (f.16) it is calculating perfect and posting also perfect using TC FB01 when i run batch input session but the deflaut values i.e.. doument type is assigned DA but now the client want to change the document type from DA to DG. How to change the document type in batch input session name RFDZIS00
Advance thanks
Dineshtry to change table t033e ANWND = 5 with tcode se11
A. -
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. -
Problem while executing Batch Input session
HI All,
I am creating batch input session for transaction FB01.After creating the sesson when I am trying to execute it, its giving me the pop up "Session XYZ is being processed by user" and doesnt allow to excute it.
Pease suggest me the solution on this.
I have tried using "COMMIT WORK" , " COMMIT WORK AND WAIT", but it is not working.
Regards
SaurabhHI Saurabh
I guess you are trying to process a session which already being processed. You can check the session that are currently in processing state via tab <b>"In Processing".</b> We an process the sessions that are in <b>"New"</b> or <b>"Incorrect"</b> State.
Kind Regards
Eswar -
About FI DOC batch input, Urgent!
Hi,everybody,
When we use RFBIBL00 to do fi document batch input,we got the error:field cobl-xxxx not exist in SAPLKACB0002, all coding block fields did not show in the customize coding block screen,but if we use fb01 to create a fi doc directly,the coding block screen was good,but in the sm35 session,the SAPLKACB0002 screen did not contain the coding block fields. Does any one can help? Thanks !
Pole
Message was edited by: gw gwHad a quick look at the code for that program which appears to call RFBIBLG0 to build the BDC. I would run it in debug and see how it builds the screens . There is a bunch of condition based processing around the COBL fields in the program. Without your input data file and the exact configuration of yours its hard tell what might be happening. Debug mode is your best bet, and walk thru it...
good luck
J
Message was edited by: J.J
Message was edited by: J.J -
hi guru!!!
you know if exist a standard program for a batch input for a transaction cod fv50? (like a rfbibl00 for a tc fb01)
thank u!
ValerioHi Paul,
You cannot process FV50 in a BDC because it is an Enjoy transaction. You should use the "old" standard transaction instead. Since you were trying to use FV50 "Park G/L account document" then you probably want to create a BDC recording using transaction F-65 instead. This transaction corresponds to the menu path: Accounting -> Financial accounting -> General ledger -> Document entry -> Others -> General document parking.
Regards,
James
Maybe you are looking for
-
Best practice in implementation of SEM-CPM
Is someone have the experiance of implementing SEM-CPM using best practice. and if so, does it reduces implementation time?
-
Scheduling dashboard or flash file
Hello expert, I want to design a WEBI report including multiple tables and a line chart. I want to implement this line chart in xcelsius , and combine it with WEBI in dashboard builder or I can directly develop this report wholly in XCELSIUS
-
Muse will not open or stay open see screen shot
I I have restarted and still it wil not stay open and this comes up. I hit submit and it quits anyway! HELP Message was edited by: christamadden
-
How to set the classpath in NetBeans5.0 (i Need to set the class path, when trying to use packages with in 2-projects) project1 is General Java Application project2 is a web Application How can i access the variables in project1 from project2
-
Syncing Mail Between My iMac and Macbook
I am new to the Mac world (I am a PC convert) and I now have an iMac and a Macbook for work. I have a couple of questions (some of which belong in this group and some elsewhere but I figured someone here could point me in the right direction): 1. My