Enterprise Resource Planning Blogs by Members
Gain new perspectives and knowledge about enterprise resource planning in blog posts from community members. Share your own comments and ERP insights today!
cancel
Showing results for 
Search instead for 
Did you mean: 
JonathanEemans
Active Contributor

Introduction


Financial accounting documents are updated online via transactions FB02 (change document) / FB09 (change line item) or Fiori apps such as Manage Journal Entries. Certain business cases require the documents to be changed via interface (from file or other source). When changing accounting documents via interface and not directly online in your SAP environment, the function module FI_DOCUMENT_CHANGE can be used. In this blog post I share a test program to change a financial document using function module FI_DOCUMENT_CHANGE.

 

Test program to change FI document using function module FI_DOCUMENT_CHANGE


*&---------------------------------------------------------------------*
*& Report ZTEST
*&---------------------------------------------------------------------*
*& Test program: Update FI document
*&---------------------------------------------------------------------*
report ztest.

* Constants document to be changed - TO BE CHANGED
constants:
lc_bukrs type bukrs value 'BEN0',
lc_belnr type belnr_d value '0560000096',
lc_gjahr type gjahr value '2017',
lc_buzei type buzei value '001'.


* Constants
constants:
lc_k type koart value 'K', " Vendor Account Type
lc_gname type eqegraname value 'BKPF', " Elementary Lock of Lock Entry (Table Name)
lc_zuonr type char05 value 'ZUONR'. " Field name for assignment at line item


* Variables
data: lv_garg type eqegraarg. " Argument String of Lock Entry

* Structures
data: ls_accchg type accchg. " Changing FI Document Work Area

* Tables
data:
lt_accchg type standard table of accchg, " Changing FI Document
lt_enq type standard table of seqg3. " Lock entry details

* Filling the fields to be changed
ls_accchg-fdname = lc_zuonr.
ls_accchg-newval = 'TEST UPDATE'. " New value assignment field - TO BE CHANGED
append ls_accchg to lt_accchg.

** UPDATE FI DOCUMENT
if lt_accchg is not initial.
* Check if there is lock on document before proceeding
call function 'ENQUEUE_READ'
exporting
gclient = sy-mandt
gname = lc_gname " BKPF
garg = lv_garg
tables
enq = lt_enq
exceptions
communication_failure = 1
system_failure = 2
others = 3.

if sy-subrc eq 0 and lt_enq is initial.

* Call the FM to update the FI document
call function 'FI_DOCUMENT_CHANGE'
exporting
i_bukrs = lc_bukrs
i_belnr = lc_belnr
i_gjahr = lc_gjahr
i_buzei = lc_buzei
tables
t_accchg = lt_accchg
exceptions
no_reference = 1
no_document = 2
many_documents = 3
wrong_input = 4
overwrite_creditcard = 5
others = 6.

if sy-subrc = 0.
* Commit the changes
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'.
endif.
endif.
endif.

 

Conclusion


Function module FI_DOCUMENT_CHANGE can be used to update financial accounting documents in your SAP environment.

 

Useful reference


Knowledge base article 2713775: https://launchpad.support.sap.com/#/notes/2713775
8 Comments
Labels in this area