cancel
Showing results for 
Search instead for 
Did you mean: 

Payment term of AP accounting document

Former Member
0 Kudos

Hi Experts,

I have maintained payment term of business partner and left payment term in contract blank.

When i do periodic posting, i find that , payment term of AP accounting document is empty.

Payment term here is supposed to be taken from business parter which i've maintained.

Do you know why it's like this? What logic of payment term is it?

Thanks

Ian

Accepted Solutions (0)

Answers (2)

Answers (2)

franz_posch
Active Contributor
0 Kudos

Hi Ian,

regarding periodic posting with RERAPP the SAP note 1587196 explains the reason. The due date (baseline) date is always set according to the definition in the cashflow items of the contract when performing the periodic posting run.

But you may change this by implementing BADI_REEX_FI_BAPI.

If you want to have the payment term from customer or vendor account in the posted documents you may set ‘*’ for field PMNTTRMS and clear the bline date as shown in the coding example below.

* customer items
  LOOP AT ct_bapi_items_ar ASSIGNING <ls_bapi_items_ar>.
    clear <ls_bapi_items_ar>-bline_date.
    <ls_bapi_items_ar>-pmnttrms = ‘*’.
  ENDLOOP.

* vendor items
  LOOP AT ct_bapi_items_ap ASSIGNING <ls_bapi_items_ap>.
    clear <ls_bapi_items_ap>-bline_date.
    <ls_bapi_items_ap>-pmnttrms = ‘*’.
  ENDLOOP.

Hope this helps.

Best regards,

Franz

yeong-chul_jeong
Active Participant
0 Kudos

Dear Lan.

Even If you setting the business partner synchronization with customer/vendor master, when you

create lease contract , system does not fill this payment term item. you must select this payment term.

so, if you want to fill this filed from vendor master data automatically, you can use below enhancement.

- Enhancement Spot  :  BADI_RE_CN_CN

- Sample : zrevcl_im_recn_contract ==> _checkpaymentterm_method  (private_methods)

-----------------------------------------------------------------------------------

* Debit side?

  check lo_contract->is_debit( ) eq abap_true.

  lo_payment_mngr = lo_contract->get_term_payment_mngr( ).
  lo_payment_mngr->get_list(
  importing et_list = lt_posting_py ).
  lo_payment_mngr->get_list_cdsplit(
  importing et_cdsplit = lt_cd_split ).

  loop at lt_posting_py into ls_posting_py
  where pymtterm is initial.
  ls_posting_py-pymtterm = 'Y000'.
  modify lt_posting_py from ls_posting_py
  transporting pymtterm.
  endloop.

---------------------------------------------------------------------------------

​Best Regards

Yeong-Chul Jeong