Posting Clearing document through function module POSTING_INTERFACE_CLEARING
*** Header and line item diffrentiation:
LCF_STYPE_K TYPE STYPE_PI VALUE ‘K’, ” HEADER Line
LCF_STYPE_P TYPE STYPE_PI VALUE ‘P’, ” Line Item
*** Populate and map FTCLEAR to POSTING_INTERFACE_CLEARING
LDS_FTCLEAR–AGKOA = ‘K’ or ‘D’ ( based on account type, Vendor or Customer for Out Going / Incoming Payments.
LDS_FTCLEAR–AGBUK = <company_code>.
LDS_FTCLEAR–XNOPS = ‘X’.
LDS_FTCLEAR–SELFD = <referece_document_number>
LDS_FTCLEAR–SELVON = <reference_field> ” SELFD is value of the filed assigned here.
APPEND LDS_FTCLEAR TO P_LDT_FTCLEAR.
*** FTPOST sample filling data
LDS_FTPOST–STYPE = P_LCF_STYPE.
LDS_FTPOST–COUNT = P_LDF_COUNT.
LDS_FTPOST–FNAM = P_LCF_FNAM.
LDS_FTPOST–FVAL = P_FVAL.
APPEND LDS_FTPOST TO P_LDT_FTPOST.
Call the below function modules in following order.
- POSTING_INTERFACE_START
- POSTING_INTERFACE_CLEARING
- POSTING_INTERFACE_END
POSTING_INTERFACE_START :
CALL FUNCTION ‘POSTING_INTERFACE_START’
EXPORTING
I_CLIENT = SY–MANDT
I_FUNCTION = ‘C’ ( Function: BDC, Call Trans. Using, internal interface)
I_MODE = MODE ( N – no screen, A – all screen, E – Error –> Mode we use in Call transaction)
I_USER = SY–UNAME
EXCEPTIONS
CLIENT_INCORRECT = 1
FUNCTION_INVALID = 2
GROUP_NAME_MISSING = 3
MODE_INVALID = 4
UPDATE_INVALID = 5
OTHERS = 6.
IF SY–SUBRC <> 0.
MESSAGE ID SY–MSGID TYPE SY–MSGTY NUMBER SY–MSGNO
WITH SY–MSGV1 SY–MSGV2 SY–MSGV3 SY–MSGV4.
ENDIF.
POSTING_INTERFACE_CLEARING:
CALL FUNCTION ‘POSTING_INTERFACE_CLEARING’
EXPORTING
I_AUGLV = ‘AUSGZAHL’ ” Follow below mentioned table
I_TCODE = ‘FB05’
I_SGFUNCT = ‘C’
IMPORTING
E_MSGID = LDS_RETURN–ID
E_MSGNO = LDS_RETURN–NUMBER
E_MSGTY = LDS_RETURN–TYPE
E_MSGV1 = LDS_RETURN–MESSAGE_V1
E_MSGV2 = LDS_RETURN–MESSAGE_V2
E_MSGV3 = LDS_RETURN–MESSAGE_V3
E_MSGV4 = LDS_RETURN–MESSAGE_V4
* E_SUBRC = SY-SUBRC
TABLES
T_BLNTAB = LDT_BLNTAB
T_FTCLEAR = LDT_FTCLEAR
T_FTPOST = LDT_FTPOST
T_FTTAX = LDT_FTTAX
EXCEPTIONS
CLEARING_PROCEDURE_INVALID = 1
CLEARING_PROCEDURE_MISSING = 2
TABLE_T041A_EMPTY = 3
TRANSACTION_CODE_INVALID = 4
AMOUNT_FORMAT_ERROR = 5
TOO_MANY_LINE_ITEMS = 6
COMPANY_CODE_INVALID = 7
SCREEN_NOT_FOUND = 8
NO_AUTHORIZATION = 9
OTHERS = 10.
AUGLV | Purpose |
AUSGZAHL | Outgoing payment |
EINGZAHL | Incoming payment |
GUTSCHRI | Credit memo |
UMBUCHNG | Transfer posting with clearing |
Note the following :
- The data is marked with a record type (header, code = K; item, code = P) and counter. – LCF_STYPE_K and LCF_STYPE_S
- Up to 950 line items can be transferred.
- The data is transferred with the field name and field value.
- The data must be transferred in the following sequence:
- Document header data ( K 1)
- Document item 1 ( P 1)
- Document item 2 ( P 2) etc.
- The field names are the same as those used on the entry screen (e.g. ‘BKPF-WAERS’, ‘BSEG-WRBTR’, ‘COBL-GSBER’…).
- Suppose if it Cost Center / Profit Center – its COBL-KOSTL and COBL-PRCTR
- The footer data can be transferred using the following fields:
- Posting key: RF05A-NEWBS or BSEG-BSCHL
- Account number: RF05A-NEWKO or BSEG-KONTO
or BSEG-KUNNR (for customer accounts)
or BSEG-LIFNR (for vendor accounts)
or BSEG-HKONT (for G/L accounts) - Special G/L indicator: RF05A-NEWUM or BSEG-UMSKZ
- Company code (for intercompany posting):
RF05A-NEWBK or BSEG-BUKRS. - The field names are analyzed by the function module so that the data can be assigned to the right screens. Field names for one-time data or data for an alternative payer must start with ‘BSEC-‘, for example (see screen SAPLFCPD 0100).
Processing with ‘Call Transaction … Using ‘
If processing takes place with ‘Call Transaction .. Using’, the initiator can see whether processing was successful by looking at the export parameter’SUBRC’.
SUBRC = 0 means that the document was posted. The document number is stored in table T_BLNTAB. For intercompany documents, several document numbers are stored here.
SUBRC <> 0 means that the document could not be posted. Information concerning the error which has arisen is returned via the message fields MSGID, MSGNO, etc.
Support of transaction ‘FBB1’
If you want to access transaction FBB1, you should note the following:
- Enter the foreign currency key in field BKPF-WAERS.
- In this transaction you should enter the local currency amount in field BSEG-WRBTR for each document item.
POSTING_INTERFACE_END:
CALL FUNCTION ‘POSTING_INTERFACE_END’
EXPORTING
I_BDCIMMED = ‘X’
EXCEPTIONS
SESSION_NOT_PROCESSABLE = 1
OTHERS = 2.
Notes are very helpful.
Hello Ramkrishna,
This is very helpful. I am in the process of writing one such program where I am posting a few entries and clearing some open items at the same time. But, the requirement here is a little unique where the clearing is not based on just one field but based on two fields (BELNR and XREF3 ) with an AND condition between them. Is this even possible to do ?
If yes, can you please suggest me a way to do this ?
Thank you once again for the information you have posted here.
Hi Santosh,
Don’t think this is possible through FB05. The reason am saying this is we can have only one additional selection (its radio button).
Just to give a try, do the following:
*** Populate and map FTCLEAR to POSTING_INTERFACE_CLEARING
LDS_FTCLEAR–AGKOA = ‘K’ or ‘D’
LDS_FTCLEAR–AGBUK = <company_code>.
LDS_FTCLEAR–XNOPS = ‘X’.
LDS_FTCLEAR–SELFD = ‘BELNR’
LDS_FTCLEAR–SELVON = ‘BELNR’ value
APPEND LDS_FTCLEAR TO P_LDT_FTCLEAR.
LDS_FTCLEAR–AGKOA = ‘K’ or ‘D’
LDS_FTCLEAR–AGBUK = <company_code>.
LDS_FTCLEAR–XNOPS = ‘X’.
LDS_FTCLEAR–SELFD = ‘XREF3’ ” you may not have this filed in selection, use OTHERS.
LDS_FTCLEAR–SELVON = ‘XREF3’ value
APPEND LDS_FTCLEAR TO P_LDT_FTCLEAR.
Once you try this, leave the results here. It may be helpful for others; even me.
Thanks
There is an error.
I wonder why noone didn’t catch it yet.
SELFD = Field Name from the Document Index
SELVON = Input Field for Search Criterion for Selecting Open Items.
Just need to swap these two values.
🙂
Hi All,
Using these FMs i am able to successfully post/clear the document against each open document. ( one clear document generated for one open document )
But my requirement is to create only one clear document against all open documents of the same customer .
Would some one help me in this case how to fill these FTPOST and FTCLEAR tables.
Appreciate your valuable inputs .
Thank you.