2011 Feb 22 10:27 PM
Hi Experts,
Present I am working BAPI to provide similar functionality like f-26 transaction. I am able to post G/l Accounts, customer payments using BAPI_ACC_DOCUMENT_POST bapi. But, when I try to post the Invoice amount, its posting but its not clearing invoice. When I check BKPF and BSEG tables. BKPF table looks good. In BSEG augdt, augbl, nebtr fields are not updating. Any solution please let me know when you have the time.
Thanks,
Srini
Edited by: Thomas Zloch on Feb 23, 2011 1:12 PM - priority reduced
2011 Feb 23 12:17 PM
This BAPI doesn't clear the Invoice. It just create an accounting document. You may have to use standard transaction code to do the Document Clearing.(may be with F.13 or F-35. Better to get the Functional Consultant's help for this)
2011 Feb 24 8:23 AM
2011 Feb 28 5:12 PM
Thanks Vinod. Its creating posting document. But its not clearing. So, I tried with automatic clearing account set up in FI config. it didn't worked out. So I used clear_documents function module. Now I am able to clear the documents.
2012 Jan 17 5:06 AM
Hi Sri,
Could you help me with the parameters to be passed in this FM?
I'm trying but it says ,the line XXX in document is already cleared .
will be of great help.
thanks
Sachin
2012 Jan 22 5:57 PM
Hi Sachin,
first try through fi config.
spro-->financial accounting --> g/l accounts --> open item clearing --> prepare automatic clearing
in this set up rules for open item clearing.
still you are not able clear the open items, then use CLEAR_DOCUMENTS funcation module after BAPI_ACC_DOCUMENT_POST bapi. CLEAR_DOCUMENTS function module requires T_AUSZ1 & T_AUSZ2 data to clear the open item.
1. a)get belnr, bukrs, gjahr & buzei from bsid table for invoice and append to T_AUSZ1
b)T_AUSZ1-BUKRS, 'A', OBJ_KEY+0(10)(which you get from BAPI_ACC_DOCUMENT_POST bapi), posting date, posting date year pass it to T_AUSZ2-BUKRS, T_AUSZ2-AKTIO, T_AUSZ2-AUGBL, T_AUSZ2-AUGDT & T_AUSZ2-AUGGJ and append it.
2. a)get BELNR, BUKRS, GJAHR, BLART & BUDAT from bkpf where awkey = OBJ_KEY(which you get from BAPI_ACC_DOCUMENT_POST bapi)
b) get belnr, bukrs, gjahr & buzei from bsid table where BELNR EQ bkpf-BELNR AND
ZUONR EQbkpf-BELNR AND
BLART EQ bkpf-BLART AND
GJAHR EQ bkpf-GJAHR AND
BUDAT EQ bkpf-BUDAT
and append to T_AUSZ1
c) T_AUSZ1-BUKRS, 'A', OBJ_KEY+0(10)(which you get from BAPI_ACC_DOCUMENT_POST bapi), posting date, posting date year pass it to T_AUSZ2-BUKRS, T_AUSZ2-AKTIO, T_AUSZ2-AUGBL, T_AUSZ2-AUGDT & T_AUSZ2-AUGGJ and append it.
delete duplicates from T_AUSZ2.
then pass the T_AUSZ1 & T_AUSZ2 to CLEAR_DOCUMENTS function module.
Do you have any issue, please let me know.
Best Regards,
Srini
2014 Oct 20 9:33 AM
2016 May 31 9:40 AM
Hi, Srinivas Kuchadi
Thanks for sharing. May you share your full code to clearing using BAPI_ACC_DOCUMENT_POST and CLEAR_DOCUMENTS too? I am already try your instruction to clear using these BAPI and function but my documents still not clear? Please help...
Best Regards
2016 Jun 07 5:10 AM
hi...
Using BAPI and function module, I want to post Incoming Payments (Transaction F-28) & clear respective open items in transaction FBL5N through program automatially.
i'm using BAPI_ACC_DOCUMENT_POST to post customer payment. & it is posting succesfully.
But it is not clearing open customer Line Items when i see in FBL5N transaction.
I found my problem similar to yours. So, if possible please help me,
Thanks & regards...
Siddhesh
2016 Jun 07 5:46 AM
Hi Siddesh,
BAPI_ACC_DOCUMENT_POST bapi alone will not clear the customer or vendor open line items, additionally you need to call FM: CLEAR_DOCUMENTS also.
Its worked for me.
Please find the coding snippet for clearing customer open line items.
*&---------------------------------------------------------------------*
*& Report ZR_kunnr_CLEAR
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT zr_kunrr_clear NO STANDARD PAGE HEADING LINE-SIZE 160.
TABLES: bsid.
TYPES: BEGIN OF ty_budat,
sign(1),
option(2),
low TYPE budat,
high TYPE budat,
END OF ty_budat.
TYPES: BEGIN OF ty_kunnr,
sign(1),
option(2),
low TYPE kunnr,
high TYPE kunnr,
END OF ty_kunnr.
DATA: l_kunnr TYPE kunnr VALUE '474',
t_budat TYPE TABLE OF ty_budat,
w_budat TYPE ty_budat,
t_kunnr TYPE TABLE OF ty_kunnr,
w_kunnr TYPE ty_kunnr,
t_zdt_cust_det TYPE TABLE OF zdt_cust_det,
w_zdt_cust_det TYPE zdt_cust_det,
t_errormsg TYPE TABLE OF zst_errormsg1,
w_errormsg TYPE zst_errormsg1,
t_bsid TYPE TABLE OF bsid,
w_bsid TYPE bsid,
l_fiyrs TYPE budat,
l_fiyrt TYPE allgstid,
l_index TYPE sy-index,
l_belnr TYPE belnr_d,
l_message TYPE char20,
l_postingdate TYPE budat,
e_recordcount TYPE int4.
SELECT-OPTIONS: so_kunnr FOR bsid-kunnr.
PARAMETERS : p_fiyrt TYPE char4 OBLIGATORY DEFAULT '2010',
p_bukrs TYPE bukrs OBLIGATORY DEFAULT '1000'.
CLEAR: w_kunnr, w_budat, l_kunnr,l_fiyrs,l_fiyrt,l_postingdate.
CONCATENATE p_fiyrt '1231' INTO l_postingdate.
l_fiyrs = '19500101'.
CONCATENATE p_fiyrt '1231' INTO l_fiyrt .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = l_kunnr
IMPORTING
output = l_kunnr.
w_budat-sign = 'I'.
w_budat-option = 'BT'.
w_budat-low = l_fiyrs.
IF l_fiyrt IS NOT INITIAL.
w_budat-high = l_fiyrt.
ELSE.
w_budat-high = l_fiyrs.
ENDIF.
APPEND w_budat TO t_budat.
SELECT * FROM bsid INTO TABLE t_bsid WHERE bukrs = p_bukrs AND
kunnr IN so_kunnr AND
budat IN t_budat.
SORT t_bsid[] BY kunnr ASCENDING.
DELETE ADJACENT DUPLICATES FROM t_bsid COMPARING kunnr.
IF t_bsid[] IS NOT INITIAL.
CALL FUNCTION 'ZFM_KUNNR_CLEAR'
EXPORTING
i_bukrs = p_bukrs
i_fiyrt = p_fiyrt
IMPORTING
e_recordcount = e_recordcount
TABLES
t_bsid = t_bsid
et_zdt_cust_det = t_zdt_cust_det
et_errormsg = t_errormsg.
ELSE.
w_errormsg-sno = 1.
w_errormsg-kunnr = ' '.
w_errormsg-msg = 'No records found for search criteria'.
APPEND w_errormsg TO t_errormsg.
ENDIF.
IF t_errormsg[] IS NOT INITIAL.
WRITE:'Error Entries:'.
SKIP.
ENDIF.
LOOP AT t_errormsg INTO w_errormsg.
IF sy-tabix = 1.
WRITE:/1 'S.NO', 15 'KUNNR', 22 'MESSAGE'.
ULINE.
SKIP.
ENDIF.
WRITE:/1 w_errormsg-sno, 15 w_errormsg-kunnr, 22 w_errormsg-msg.
ENDLOOP.
ULINE.
SKIP 3 .
WRITE:'Success Entries:'.
SKIP.
LOOP AT t_zdt_cust_det INTO w_zdt_cust_det.
IF sy-tabix = 1.
WRITE:/1 'Record Count:',e_recordcount.
WRITE:/1 'S.NO',35 'BUKRS', 45 'KUNNR', 56 'BELNR', 71 'STATUS'.
ULINE.
SKIP.
ENDIF.
WRITE:/1 w_zdt_cust_det-z_sno, 35 w_zdt_cust_det-z_bukrs, 45 w_zdt_cust_det-z_kunnr, 55 w_zdt_cust_det-z_belnr, 70 w_zdt_cust_det-z_desc.
ENDLOOP.
*-------------------------------------------------------------------------------------------------------------------------------*
FUNCTION zfm_kunnr_clear.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(I_BUKRS) TYPE BUKRS OPTIONAL
*" VALUE(I_FIYRT) TYPE CHAR4 OPTIONAL
*" EXPORTING
*" VALUE(E_RESULT) TYPE CHAR20
*" VALUE(E_RECORDCOUNT) TYPE INT4
*" TABLES
*" T_BSID STRUCTURE BSID OPTIONAL
*" ET_ZDT_CUST_DET STRUCTURE ZDT_CUST_DET OPTIONAL
*" ET_ERRORMSG STRUCTURE ZST_ERRORMSG1 OPTIONAL
*"----------------------------------------------------------------------
DATA: w_bsid TYPE bsid,
t_lineitems TYPE TABLE OF bapi3007_2,
w_lineitems TYPE bapi3007_2,
w_return TYPE bapireturn,
l_kunnr TYPE kunnr VALUE '474',
t_zdt_cust_det TYPE TABLE OF zdt_cust_det,
w_errormsg TYPE zst_errormsg1.
DATA: w_doc_header TYPE bapiache09,
t_accountreceivable TYPE TABLE OF bapiacar09,
w_accountreceivable TYPE bapiacar09,
t_accountpayable TYPE TABLE OF bapiacap09,
w_accountpayable TYPE bapiacap09,
t_accounttax TYPE TABLE OF bapiactx09,
w_accounttax TYPE bapiactx09,
t_currencyamount TYPE TABLE OF bapiaccr09,
w_currencyamount TYPE bapiaccr09,
t_extension2 TYPE TABLE OF bapiparex,
w_extension2 TYPE bapiparex,
t_extension1 TYPE TABLE OF bapiacextc,
w_extension1 TYPE bapiacextc,
t_accountgl TYPE TABLE OF bapiacgl09,
w_accountgl TYPE bapiacgl09,
t_return TYPE TABLE OF bapiret2,
l_amount TYPE char18,
l_dmbtrp TYPE bapidmbtr,
l_result TYPE bapidmbtr,
l_dmbtrn TYPE bapidmbtr,
lv_type TYPE bapiache09-obj_type,
lv_key TYPE bapiache09-obj_key,
lv_sys TYPE bapiache09-obj_sys,
l_fiyrs TYPE budat,
l_fiyrt TYPE allgstid,
l_index TYPE sy-index,
l_belnr TYPE belnr_d,
l_datum TYPE bapi3007-key_date,
l_message TYPE char20,
l_postingdate TYPE budat,
l_count TYPE i.
CONCATENATE i_fiyrt '1231' INTO l_fiyrt.
l_postingdate = l_fiyrt.
REFRESH: et_zdt_cust_det[],et_errormsg[].
CLEAR: l_kunnr,l_belnr.
LOOP AT t_bsid INTO w_bsid.
l_kunnr = w_bsid-kunnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = l_kunnr
IMPORTING
output = l_kunnr.
REFRESH t_lineitems[].
CALL FUNCTION 'BAPI_AR_ACC_GETOPENITEMS'
EXPORTING
companycode = i_bukrs
customer = l_kunnr
keydate = l_fiyrt
IMPORTING
return = w_return
TABLES
lineitems = t_lineitems.
DELETE t_lineitems WHERE clr_doc_no <> space.
*---Fill GL details-----*
CLEAR: w_accountgl,w_doc_header,w_accountpayable,
w_currencyamount, l_dmbtrp,l_dmbtrn,w_return,w_errormsg.
REFRESH: t_accountgl[],t_accountpayable[],t_currencyamount[],
t_extension1[],t_return[].
w_accountgl-itemno_acc = '0000000001'.
IF i_bukrs = '5000'.
w_accountgl-gl_account = '0000111200'.
ELSE.
w_accountgl-gl_account = '0000113100'.
ENDIF.
w_accountgl-item_text = 'Test'.
w_accountgl-comp_code = i_bukrs.
w_accountgl-value_date = l_postingdate.
w_accountgl-pstng_date = l_postingdate.
w_accountgl-doc_type = 'SA'.
w_accountgl-fis_period = l_postingdate+4(2).
w_accountgl-fisc_year = l_fiyrt.
APPEND w_accountgl TO t_accountgl.
*---Fill Header details-----*
w_doc_header-bus_act = 'RFBU'.
w_doc_header-obj_type = 'BKPFF'.
w_doc_header-obj_key = '$'.
w_doc_header-obj_sys = 'T90CLNT090'.
w_doc_header-username = sy-uname.
w_doc_header-header_txt = 'Customer Openitem clearance'.
w_doc_header-comp_code = i_bukrs.
w_doc_header-doc_date = l_postingdate.
w_doc_header-pstng_date = l_postingdate.
w_doc_header-doc_type = 'SA'.
*---Fill Vendor details---------*
w_accountreceivable-itemno_acc = '0000000002'.
w_accountreceivable-customer = l_kunnr.
w_accountreceivable-comp_code = i_bukrs.
APPEND w_accountpayable TO t_accountpayable.
*------Segregating Positive and Negative Amounts---------------------*
SORT t_lineitems[] ASCENDING BY amt_doccur.
CLEAR: w_lineitems.
LOOP AT t_lineitems INTO w_lineitems.
IF w_lineitems-db_cr_ind = 'S'.
l_dmbtrp = w_lineitems-lc_amount + l_dmbtrp.
ELSE.
l_dmbtrn = w_lineitems-lc_amount + l_dmbtrn.
ENDIF.
ENDLOOP.
l_dmbtrn = -1 * l_dmbtrn.
l_result = l_dmbtrp + l_dmbtrn.
*------Segregating Positive and Negative Amounts--------------------*
*------Fill Currency Amount and posting key if amount is Positive---*
IF l_dmbtrp IS NOT INITIAL.
w_currencyamount-itemno_acc = '0000000001'.
w_currencyamount-currency_iso = 'EUR'.
w_currencyamount-amt_doccur = l_dmbtrp.
APPEND w_currencyamount TO t_currencyamount.
l_dmbtrp = -1 * l_dmbtrp.
w_currencyamount-itemno_acc = '0000000002'.
w_currencyamount-currency_iso = 'EUR'.
w_currencyamount-amt_doccur = l_dmbtrp.
APPEND w_currencyamount TO t_currencyamount.
w_extension1-field1 = '000000000140'.
APPEND w_extension1 TO t_extension1.
w_extension1-field1 = '000000000237'.
APPEND w_extension1 TO t_extension1.
ENDIF.
*------Fill Currency Amount and posting key if amount is Positive----*
*------Fill Currency Amount and posting key if amount is negative------*
IF l_dmbtrn IS NOT INITIAL.
IF l_dmbtrp IS INITIAL.
w_currencyamount-itemno_acc = '0000000001'.
w_extension1-field1 = '000000000150'.
ELSE.
w_currencyamount-itemno_acc = '0000000003'.
w_extension1-field1 = '000000000350'.
ENDIF.
w_currencyamount-currency_iso = 'EUR'.
w_currencyamount-amt_doccur = l_dmbtrn.
APPEND w_currencyamount TO t_currencyamount.
APPEND w_extension1 TO t_extension1.
l_dmbtrn = -1 * l_dmbtrn.
IF l_dmbtrp IS INITIAL.
w_currencyamount-itemno_acc = '0000000002'.
w_extension1-field1 = '000000000227'. "posting key
ELSE.
w_currencyamount-itemno_acc = '0000000004'.
w_extension1-field1 = '000000000427'. "posting key
ENDIF.
w_currencyamount-currency_iso = 'EUR'.
w_currencyamount-amt_doccur = l_dmbtrn.
APPEND w_currencyamount TO t_currencyamount.
APPEND w_extension1 TO t_extension1.
ENDIF.
*------Fill Currency Amount and posting key if amount is negative----*
CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
EXPORTING
documentheader = w_doc_header
TABLES
accountgl = t_accountgl
accountreceivable = t_accountreceivable
currencyamount = t_currencyamount
extension1 = t_extension1
return = t_return.
REFRESH: t_return[].
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = w_doc_header
IMPORTING
obj_type = lv_type
obj_key = lv_key
obj_sys = lv_sys
TABLES
accountgl = t_accountgl
accountreceivable = t_accountreceivable
currencyamount = t_currencyamount
extension1 = t_extension1
return = t_return.
READ TABLE t_return INTO w_return WITH KEY type = 'E'.
IF sy-subrc <> 0.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
*------Clear Customer Open lineitems--------*
l_belnr = lv_key+0(10).
CLEAR: l_message.
WAIT UP TO 1 SECONDS.
CALL FUNCTION 'ZFM_CLEAR_DOCUMENTS_KUNNR'
EXPORTING
i_kunnr = l_kunnr
i_belnr = l_belnr
i_keydate = l_postingdate
i_fisyr = i_fiyrt
i_bukrs = i_bukrs
IMPORTING
e_message = l_message
e_recordcount = e_recordcount
TABLES
et_zdt_vend_det = t_zdt_cust_det
it_lineitems = t_lineitems.
*------Clear Customer Open lineitems--------*
ELSE.
LOOP AT t_return INTO w_return.
l_count = l_count + 1.
w_errormsg-sno = l_count.
w_errormsg-kunnr = l_kunnr.
w_errormsg-msg = w_return-message.
APPEND w_errormsg TO et_errormsg.
CLEAR:w_errormsg,w_return,l_belnr,l_kunnr.
ENDLOOP.
ENDIF.
APPEND LINES OF t_zdt_cust_det[] TO et_zdt_cust_det[].
CLEAR: w_lineitems.
ENDLOOP.
ENDFUNCTION.
*-------------------------------------------------------------------------------------------------------------------------------*
FUNCTION zfm_clear_documents_kunnr.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(I_KUNNR) TYPE LIFNR
*" VALUE(I_BELNR) TYPE BELNR_D
*" VALUE(I_KEYDATE) TYPE BAPI3007-KEY_DATE DEFAULT '20141231'
*" VALUE(I_FISYR) TYPE CHAR4
*" VALUE(I_BUKRS) TYPE BUKRS
*" EXPORTING
*" VALUE(E_MESSAGE) TYPE CHAR20
*" VALUE(E_RECORDCOUNT) TYPE INT4
*" TABLES
*" ET_ZDT_CUST_DET STRUCTURE ZDT_VEND_DET OPTIONAL
*" IT_LINEITEMS STRUCTURE BAPI3007_2 OPTIONAL
*"----------------------------------------------------------------------
TYPES: BEGIN OF ty_belnr,
sign(1),
option(2),
low TYPE augbl,
high TYPE augbl,
END OF ty_belnr.
DATA: t_lineitems TYPE TABLE OF bapi3007_2,
w_lineitems TYPE bapi3007_2,
t_belnr TYPE TABLE OF ty_belnr,
w_belnr TYPE ty_belnr,
t_bsad TYPE TABLE OF bsad,
w_bsid TYPE bsid,
w_bsad TYPE bsad,
t_zdt_cust_det TYPE TABLE OF zdt_cust_det,
w_zdt_cust_det TYPE zdt_cust_det,
w_return TYPE bapireturn,
l_kunnr TYPE kunnr VALUE '474',
t_ausz1 TYPE TABLE OF ausz1,
w_ausz1 TYPE ausz1,
t_ausz2 TYPE TABLE OF ausz2,
w_ausz2 TYPE ausz2,
l_belnr TYPE belnr_d,
l_count TYPE int4,
l_fisyr TYPE char4,
l_sno TYPE int4,
l_postingdate TYPE budat,
t_bsik TYPE TABLE OF bsik.
CLEAR: w_ausz1,w_ausz2,w_lineitems,l_count,l_kunnr,
l_postingdate,w_lineitems,l_belnr,l_fisyr,
e_recordcount.
REFRESH: t_lineitems[],t_ausz1,t_ausz2.
l_kunnr = i_kunnr.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = l_kunnr
IMPORTING
output = l_kunnr.
l_belnr = i_belnr.
l_fisyr = i_fisyr.
l_postingdate = i_keydate.
CALL FUNCTION 'BAPI_AP_ACC_GETOPENITEMS'
EXPORTING
companycode = i_bukrs
customer = l_kunnr
keydate = l_postingdate
IMPORTING
return = w_return
TABLES
lineitems = t_lineitems.
SORT t_lineitems BY doc_no ASCENDING.
DELETE t_lineitems WHERE clr_doc_no <> space.
* delete ADJACENT DUPLICATES FROM t_lineitems COMPARING doc_no.
SELECT SINGLE * FROM bsid INTO w_bsid WHERE bukrs = i_bukrs AND
kunnr = l_kunnr AND
belnr = l_belnr.
IF sy-subrc = 0.
SORT t_lineitems[] BY pstng_date ASCENDING item_num ASCENDING.
DESCRIBE TABLE t_lineitems LINES l_count.
LOOP AT t_lineitems INTO w_lineitems.
e_recordcount = e_recordcount + 1.
w_ausz1-belnr = w_lineitems-doc_no.
w_ausz1-bukrs = w_lineitems-comp_code.
w_ausz1-gjahr = w_lineitems-fisc_year.
w_ausz1-buzei = w_lineitems-item_num.
APPEND w_ausz1 TO t_ausz1.
w_ausz2-bukrs = w_bsid-bukrs.
w_ausz2-aktio = 'A'.
w_ausz2-augbl = w_bsid-belnr.
w_ausz2-augdt = l_postingdate.
w_ausz2-auggj = w_bsid-gjahr.
APPEND w_ausz2 TO t_ausz2.
CALL FUNCTION 'CLEAR_DOCUMENTS' " IN UPDATE TASK
TABLES
t_ausz1 = t_ausz1
t_ausz2 = t_ausz2.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
w_belnr-sign = 'I'.
w_belnr-option = 'EQ'.
w_belnr-low = w_lineitems-doc_no.
APPEND w_belnr TO t_belnr.
CLEAR: w_lineitems,w_belnr.
REFRESH: t_ausz2[],t_ausz1[].
ENDLOOP.
SELECT * FROM bsad INTO TABLE t_bsad WHERE bukrs = i_bukrs AND
kunnr = l_kunnr AND
belnr IN t_belnr.
IF t_bsad[] IS NOT INITIAL.
CLEAR: w_lineitems ,w_bsad,w_zdt_cust_det,l_sno.
LOOP AT t_lineitems INTO w_lineitems.
READ TABLE t_bsad INTO w_bsad WITH KEY bukrs = w_lineitems-comp_code
kunnr = w_lineitems-customer
belnr = w_lineitems-doc_no.
CALL FUNCTION 'GUID_CREATE'
IMPORTING
ev_guid_16 = w_zdt_cust_det-z_sno.
IF sy-subrc = 0.
w_zdt_cust_det-z_bukrs = w_bsad-bukrs.
w_zdt_cust_det-z_kunnr = w_bsad-kunnr.
w_zdt_cust_det-z_belnr = w_bsad-belnr.
w_zdt_cust_det-z_status = 'X'.
w_zdt_cust_det-z_clearingdoc = l_belnr.
w_zdt_cust_det-z_desc = 'Cleared'.
APPEND w_zdt_cust_det TO t_zdt_cust_det.
ELSE.
w_zdt_cust_det-z_bukrs = w_lineitems-comp_code.
w_zdt_cust_det-z_kunnr = w_lineitems-customer.
w_zdt_cust_det-z_belnr = w_lineitems-doc_no.
w_zdt_cust_det-z_status = ' '.
w_zdt_cust_det-z_clearingdoc = ' '.
w_zdt_cust_det-z_desc = 'Not cleared'.
APPEND w_zdt_cust_det TO t_zdt_cust_det.
ENDIF.
CLEAR: w_lineitems ,w_bsad,w_zdt_cust_det.
ENDLOOP.
*-----Update Log Table------------*
INSERT zdt_cust_det FROM TABLE t_zdt_cust_det.
IF sy-subrc = 0.
e_message = 'update sucess'.
ELSE.
e_message = 'update fail'.
ENDIF.
et_zdt_cust_det[] = t_zdt_cust_det[].
REFRESH:t_zdt_cust_det[].
ENDIF.
ENDIF.
ENDFUNCTION.
2019 Jun 10 1:12 PM