Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

BAPI for FI POSTING

Former Member
0 Likes
3,907

Hello everyone.

I need a BAPI to replace posting with FB01 and postings with FB05.

What can i use?

Currently i'm using RFBIBL00 for postings but i would like to replace the postings with BAPI's.

Thanks in advance.

Mário

1 ACCEPTED SOLUTION
Read only

Former Member
0 Likes
1,083

<b>BAPI_ACC_DOCUMENT_POST</b>

data:gt_accountgl type table of bapiacgl09 with header line,

gt_accountpayable type table of bapiacap09 with header line,

gt_currencyamount type table of bapiaccr09 with header line,

gt_return type table of bapiret2 with header line.

data:wa_documentheader type bapiache09,

vcounter type i.

tables:bdcmsgcoll.

  • TABLE TO READ FILE DATA

data: begin of gt_uploadfile occurs 0,

input(200) type c,

end of gt_uploadfile,

  • TABLE FOR DOWNLOAD FILE

begin of gt_downloadfile occurs 0,

output type string,

end of gt_downloadfile,

  • TO HOLD HEADER DATA

begin of gt_header occurs 0,

counter(1),

identifier(2),

bukrs(5),

accnt(10),

bldat like sy-datum,

budat like sy-datum,

wrbtr(10),

end of gt_header,

begin of gt_item occurs 0,

counter(1),

identifier(2),

hkont(10),

wrbtr(10),

kostl(10),

end of gt_item,

  • INTERNAL TABLE TOI DISPLAY ERRORS.

begin of gt_summery occurs 0,

identifier(2),

bukrs(5),

accnt(10),

msgv1 like bdcmsgcoll-msgv2,

msgv2 like bdcmsgcoll-msgv2,

msgnr type string,

end of gt_summery,

v_upload type string,

v_download type string,

msg type string,

v_hkont type string,

v_kostl type string,

date1 type datum,

date2 type datum,

v_refkey like bapiache09-obj_key.

*CREATING SELECTION CREITERIA

parameters:p_gfile like ibipparms-path,

p_test as checkbox.

  • P_DFILE LIKE IBIPPARMS-PATH.

at selection-screen on value-request for p_gfile.

perform f4help_upload.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DFILE.

  • PERFORM F4HELP_DOWNLOAD.

start-of-selection.

v_upload = p_gfile.

  • V_DOWNLOAD = P_DFILE.

perform uploadfile.

perform sendinto_head_item.

perform buildbapi.

end-of-selection.

perform disp_report.

&----


*& Form F4HELP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f4help_upload .

call function 'F4_FILENAME'

exporting

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

field_name = 'P_GFILE'

importing

file_name = p_gfile

.

endform. " F4HELP

&----


*& Form F4HELP_DOWNLOAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f4help_download .

  • CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

    • PROGRAM_NAME = SYST-CPROG

    • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = 'P_DFILE'

  • IMPORTING

  • FILE_NAME = P_DFILE

  • .

endform. " F4HELP_DOWNLOAD

&----


*& Form UPLOADFILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form uploadfile .

call function 'GUI_UPLOAD'

exporting

filename = v_upload

  • FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = '|'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE = VIRUS_SCAN_PROFILE

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

  • HEADER = HEADER

tables

data_tab = gt_uploadfile

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.

endform. " UPLOADFILE

&----


*& Form SENDINTO_HEAD_ITEM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form sendinto_head_item .

loop at gt_uploadfile.

if gt_uploadfile-input+0(1) = '1'.

split gt_uploadfile-input at cl_abap_char_utilities=>horizontal_tab

into

gt_header-counter

gt_header-identifier

gt_header-bukrs

gt_header-accnt

gt_header-bldat

gt_header-budat

gt_header-wrbtr.

append gt_header.

clear gt_header.

else.

split gt_uploadfile-input at cl_abap_char_utilities=>horizontal_tab

into gt_item-counter

gt_item-identifier

gt_item-hkont

gt_item-wrbtr

gt_item-kostl.

append gt_item.

clear gt_item.

endif.

  • BREAK-POINT.

endloop.

endform. " SENDINTO_HEAD_ITEM

&----


*& Form BUILDBAPI

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form buildbapi .

loop at gt_header.

  • GT_HEADER-BUDAT = sy-datum - 5.

  • GT_HEADER-BLDAT = sy-datum.

vcounter = 1.

gt_header-wrbtr = gt_header-wrbtr * -1.

*FILLING INPORTING PARAMETER STRUCTURE.

wa_documentheader-comp_code = gt_header-bukrs.

wa_documentheader-doc_date = gt_header-bldat.

wa_documentheader-pstng_date = gt_header-budat.

wa_documentheader-username = sy-uname.

wa_documentheader-bus_act = 'RFBU'.

wa_documentheader-doc_type = 'KR'.

gt_accountpayable-itemno_acc = vcounter.

gt_accountpayable-vendor_no = gt_header-accnt.

append gt_accountpayable.

clear gt_accountpayable.

gt_currencyamount-itemno_acc = vcounter.

gt_currencyamount-currency = 'INR'.

gt_currencyamount-amt_doccur = gt_header-wrbtr.

append gt_currencyamount.

clear gt_currencyamount.

loop at gt_item where identifier = gt_header-identifier.

vcounter = vcounter + 1. .

gt_accountgl-itemno_acc = vcounter.

call function 'CONVERSION_EXIT_ALPHA_INPUT'

exporting

input = gt_item-hkont

importing

output = gt_item-hkont.

gt_accountgl-gl_account = gt_item-hkont.

call function 'CONVERSION_EXIT_ALPHA_INPUT'

exporting

input = gt_item-kostl

importing

output = gt_item-kostl.

gt_accountgl-costcenter = gt_item-kostl.

gt_accountgl-pstng_date = gt_header-budat.

append gt_accountgl.

clear gt_accountgl.

gt_currencyamount-itemno_acc = vcounter.

gt_currencyamount-currency = 'INR'.

gt_currencyamount-amt_doccur = gt_item-wrbtr.

append gt_currencyamount.

clear gt_currencyamount.

endloop.

call function 'BAPI_ACC_DOCUMENT_POST'

exporting

documentheader = wa_documentheader

  • CUSTOMERCPD = CUSTOMERCPD

  • CONTRACTHEADER = CONTRACTHEADER

importing

  • OBJ_TYPE = OBJ_TYPE

obj_key = v_refkey

  • OBJ_SYS = OBJ_SYS

tables

accountgl = gt_accountgl

  • ACCOUNTRECEIVABLE = ACCOUNTRECEIVABLE

accountpayable = gt_accountpayable

  • ACCOUNTTAX = ACCOUNTTAX

currencyamount = gt_currencyamount

  • CRITERIA = CRITERIA

  • VALUEFIELD = VALUEFIELD

  • EXTENSION1 = EXTENSION1

return = gt_return

  • PAYMENTCARD = PAYMENTCARD

  • CONTRACTITEM = CONTRACTITEM

  • EXTENSION2 = EXTENSION2

  • REALESTATE = REALESTATE

.

break-point.

if p_test is initial.

call function 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT = WAIT

  • IMPORTING

  • RETURN = RETURN

.

endif. .

endloop.

endform. " BUILDBAPI

&----


*& Form disp_report

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form disp_report .

loop at gt_return.

write:/ gt_return-type,

gt_return-id,

gt_return-number,

gt_return-message,

gt_return-log_no,

gt_return-log_msg_no,

gt_return-message_v1,

gt_return-message_v2,

gt_return-message_v3,

gt_return-message_v4,

gt_return-parameter,

gt_return-row,

gt_return-field,

gt_return-system.

endloop..

endform. " disp_report

5 REPLIES 5
Read only

Former Member
0 Likes
1,084

<b>BAPI_ACC_DOCUMENT_POST</b>

data:gt_accountgl type table of bapiacgl09 with header line,

gt_accountpayable type table of bapiacap09 with header line,

gt_currencyamount type table of bapiaccr09 with header line,

gt_return type table of bapiret2 with header line.

data:wa_documentheader type bapiache09,

vcounter type i.

tables:bdcmsgcoll.

  • TABLE TO READ FILE DATA

data: begin of gt_uploadfile occurs 0,

input(200) type c,

end of gt_uploadfile,

  • TABLE FOR DOWNLOAD FILE

begin of gt_downloadfile occurs 0,

output type string,

end of gt_downloadfile,

  • TO HOLD HEADER DATA

begin of gt_header occurs 0,

counter(1),

identifier(2),

bukrs(5),

accnt(10),

bldat like sy-datum,

budat like sy-datum,

wrbtr(10),

end of gt_header,

begin of gt_item occurs 0,

counter(1),

identifier(2),

hkont(10),

wrbtr(10),

kostl(10),

end of gt_item,

  • INTERNAL TABLE TOI DISPLAY ERRORS.

begin of gt_summery occurs 0,

identifier(2),

bukrs(5),

accnt(10),

msgv1 like bdcmsgcoll-msgv2,

msgv2 like bdcmsgcoll-msgv2,

msgnr type string,

end of gt_summery,

v_upload type string,

v_download type string,

msg type string,

v_hkont type string,

v_kostl type string,

date1 type datum,

date2 type datum,

v_refkey like bapiache09-obj_key.

*CREATING SELECTION CREITERIA

parameters:p_gfile like ibipparms-path,

p_test as checkbox.

  • P_DFILE LIKE IBIPPARMS-PATH.

at selection-screen on value-request for p_gfile.

perform f4help_upload.

*AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_DFILE.

  • PERFORM F4HELP_DOWNLOAD.

start-of-selection.

v_upload = p_gfile.

  • V_DOWNLOAD = P_DFILE.

perform uploadfile.

perform sendinto_head_item.

perform buildbapi.

end-of-selection.

perform disp_report.

&----


*& Form F4HELP

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f4help_upload .

call function 'F4_FILENAME'

exporting

  • PROGRAM_NAME = SYST-CPROG

  • DYNPRO_NUMBER = SYST-DYNNR

field_name = 'P_GFILE'

importing

file_name = p_gfile

.

endform. " F4HELP

&----


*& Form F4HELP_DOWNLOAD

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form f4help_download .

  • CALL FUNCTION 'F4_FILENAME'

  • EXPORTING

    • PROGRAM_NAME = SYST-CPROG

    • DYNPRO_NUMBER = SYST-DYNNR

  • FIELD_NAME = 'P_DFILE'

  • IMPORTING

  • FILE_NAME = P_DFILE

  • .

endform. " F4HELP_DOWNLOAD

&----


*& Form UPLOADFILE

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form uploadfile .

call function 'GUI_UPLOAD'

exporting

filename = v_upload

  • FILETYPE = 'ASC'

  • HAS_FIELD_SEPARATOR = '|'

  • HEADER_LENGTH = 0

  • READ_BY_LINE = 'X'

  • DAT_MODE = ' '

  • CODEPAGE = ' '

  • IGNORE_CERR = ABAP_TRUE

  • REPLACEMENT = '#'

  • CHECK_BOM = ' '

  • VIRUS_SCAN_PROFILE = VIRUS_SCAN_PROFILE

  • NO_AUTH_CHECK = ' '

  • IMPORTING

  • FILELENGTH = FILELENGTH

  • HEADER = HEADER

tables

data_tab = gt_uploadfile

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.

endform. " UPLOADFILE

&----


*& Form SENDINTO_HEAD_ITEM

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form sendinto_head_item .

loop at gt_uploadfile.

if gt_uploadfile-input+0(1) = '1'.

split gt_uploadfile-input at cl_abap_char_utilities=>horizontal_tab

into

gt_header-counter

gt_header-identifier

gt_header-bukrs

gt_header-accnt

gt_header-bldat

gt_header-budat

gt_header-wrbtr.

append gt_header.

clear gt_header.

else.

split gt_uploadfile-input at cl_abap_char_utilities=>horizontal_tab

into gt_item-counter

gt_item-identifier

gt_item-hkont

gt_item-wrbtr

gt_item-kostl.

append gt_item.

clear gt_item.

endif.

  • BREAK-POINT.

endloop.

endform. " SENDINTO_HEAD_ITEM

&----


*& Form BUILDBAPI

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form buildbapi .

loop at gt_header.

  • GT_HEADER-BUDAT = sy-datum - 5.

  • GT_HEADER-BLDAT = sy-datum.

vcounter = 1.

gt_header-wrbtr = gt_header-wrbtr * -1.

*FILLING INPORTING PARAMETER STRUCTURE.

wa_documentheader-comp_code = gt_header-bukrs.

wa_documentheader-doc_date = gt_header-bldat.

wa_documentheader-pstng_date = gt_header-budat.

wa_documentheader-username = sy-uname.

wa_documentheader-bus_act = 'RFBU'.

wa_documentheader-doc_type = 'KR'.

gt_accountpayable-itemno_acc = vcounter.

gt_accountpayable-vendor_no = gt_header-accnt.

append gt_accountpayable.

clear gt_accountpayable.

gt_currencyamount-itemno_acc = vcounter.

gt_currencyamount-currency = 'INR'.

gt_currencyamount-amt_doccur = gt_header-wrbtr.

append gt_currencyamount.

clear gt_currencyamount.

loop at gt_item where identifier = gt_header-identifier.

vcounter = vcounter + 1. .

gt_accountgl-itemno_acc = vcounter.

call function 'CONVERSION_EXIT_ALPHA_INPUT'

exporting

input = gt_item-hkont

importing

output = gt_item-hkont.

gt_accountgl-gl_account = gt_item-hkont.

call function 'CONVERSION_EXIT_ALPHA_INPUT'

exporting

input = gt_item-kostl

importing

output = gt_item-kostl.

gt_accountgl-costcenter = gt_item-kostl.

gt_accountgl-pstng_date = gt_header-budat.

append gt_accountgl.

clear gt_accountgl.

gt_currencyamount-itemno_acc = vcounter.

gt_currencyamount-currency = 'INR'.

gt_currencyamount-amt_doccur = gt_item-wrbtr.

append gt_currencyamount.

clear gt_currencyamount.

endloop.

call function 'BAPI_ACC_DOCUMENT_POST'

exporting

documentheader = wa_documentheader

  • CUSTOMERCPD = CUSTOMERCPD

  • CONTRACTHEADER = CONTRACTHEADER

importing

  • OBJ_TYPE = OBJ_TYPE

obj_key = v_refkey

  • OBJ_SYS = OBJ_SYS

tables

accountgl = gt_accountgl

  • ACCOUNTRECEIVABLE = ACCOUNTRECEIVABLE

accountpayable = gt_accountpayable

  • ACCOUNTTAX = ACCOUNTTAX

currencyamount = gt_currencyamount

  • CRITERIA = CRITERIA

  • VALUEFIELD = VALUEFIELD

  • EXTENSION1 = EXTENSION1

return = gt_return

  • PAYMENTCARD = PAYMENTCARD

  • CONTRACTITEM = CONTRACTITEM

  • EXTENSION2 = EXTENSION2

  • REALESTATE = REALESTATE

.

break-point.

if p_test is initial.

call function 'BAPI_TRANSACTION_COMMIT'

  • EXPORTING

  • WAIT = WAIT

  • IMPORTING

  • RETURN = RETURN

.

endif. .

endloop.

endform. " BUILDBAPI

&----


*& Form disp_report

&----


  • text

----


  • --> p1 text

  • <-- p2 text

----


form disp_report .

loop at gt_return.

write:/ gt_return-type,

gt_return-id,

gt_return-number,

gt_return-message,

gt_return-log_no,

gt_return-log_msg_no,

gt_return-message_v1,

gt_return-message_v2,

gt_return-message_v3,

gt_return-message_v4,

gt_return-parameter,

gt_return-row,

gt_return-field,

gt_return-system.

endloop..

endform. " disp_report

Read only

0 Likes
1,083

This replaces FB01 posting, right?

How about Posting with clearing?!?! ->> FB05

Thanks for the help!

Read only

0 Likes
1,083

for fb05 standard sap providing IDOCS

IDOCFIDCC1 IDOC for all FI documents

IDOCFIDCC2 IDOC for all FI documents

IDOCFIDCCH FI document change

IDOCFIDCMT IDoc for FI documents

IDOCFIROLL IDoc for FI rollups

IDOCLOCKBX IDOC for lockbox data

IDOCREMADV IDoc for payment advice notes

IDPKFIDCC1 IDOC package for message type FIDCC1

IDPKFIDCC2 IDOC package for message type FIDCC2

IDPKFIDCCH IDoc packet with message type FIDCCH

IDPKFIDCMT IDoc packet with message type FIDCMT

IDPKFIROLL Mass input for message type FIROLL

IDPKLOCKBX Package of IDOCs with message type LOCKBX

IDPKREMADV Packet of IDocs with message type REMADV

OTHERWISE U CAN GO FOR BAPI_PAYM_ITEM_POST_CLEARING

BUT IAM NOT SURE ...........................

REWARD POINTS IF HELPFUL.......

Read only

ferry_lianto
Active Contributor
0 Likes
1,083

Hi,

Please check FM FM_FB05_POSTING_WITH_CLEARING and BAPI BAPI_ACC_GL_POSTING_POST for FB05.

Regards,

Ferry Lianto

Read only

0 Likes
1,083

Thank you all for your help.