2007 Oct 29 5:03 PM
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
2007 Oct 29 5:13 PM
<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
2007 Oct 29 5:13 PM
<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
2007 Oct 29 5:24 PM
This replaces FB01 posting, right?
How about Posting with clearing?!?! ->> FB05
Thanks for the help!
2007 Oct 29 5:32 PM
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.......
2007 Oct 29 5:34 PM
Hi,
Please check FM FM_FB05_POSTING_WITH_CLEARING and BAPI BAPI_ACC_GL_POSTING_POST for FB05.
Regards,
Ferry Lianto
2007 Nov 06 10:57 AM