Изменить блок оплаты программно (MIRO) - PullRequest
0 голосов
/ 05 сентября 2018

Можно ли изменить блок оплаты через BAPI, FM или код?

Payment Block

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Я всегда использовал FI_DOCUMENT_CHANGE. Посмотрите этот пример.

Надеюсь, это поможет.

  " VARIABLES
  DATA: LT_ACCCHG TYPE TABLE OF ACCCHG.
  DATA: LS_ACCCHG TYPE ACCCHG.

  DATA: LV_AWTYP  TYPE AWTYP.
  DATA: LV_AWSYS  TYPE AWSYS.
  DATA: LV_AWREF  TYPE AWREF.
  DATA: LV_AWORG  TYPE AWORG.
  DATA: LV_LIFNR  TYPE LIFNR.

  " Fill variables here 
  " Can be found in tables BKPF AND BSIK

  " SET VALUES FOR NEW PAYMENT BLOCK
  " P = Payment request, A = Blocked for payment
  " Check T008 for more Payment Block values
  LS_ACCCHG-FDNAME = 'ZLSPR'. "Payment Block
  LS_ACCCHG-NEWVAL = 'P'.    
  APPEND LS_ACCCHG TO LT_ACCCHG.

  " CHANGE PAYMENT BLOCK
  CALL FUNCTION 'FI_DOCUMENT_CHANGE'
    EXPORTING
      I_AWTYP              = LV_AWTYP
      I_AWREF              = LV_AWREF
      I_AWORG              = LV_AWORG
      I_AWSYS              = LV_AWSYS
      I_LIFNR              = LV_LIFNR
    TABLES
      T_ACCCHG             = LT_ACCCHG.
0 голосов
/ 05 сентября 2018

Используйте BAdi INVOICE_UPDATE для изменения этого метода CHANGE_BEFORE_UPDATE.

Пример реализации здесь .

Для изменения блока оплаты через BAPI используйте BAPI_ACC_PYMNTBLK_UPDATE_POST.

Пример вызова FM:

DATA:
it_return   TYPE STANDARD TABLE OF BAPIRET2,"tables param
wa_return   LIKE LINE OF it_return  .

DATA ld_referenceinv TYPE BAPIACPMBLK;

MOVE IT_BKFP-AWKEY  TO  ld_referenceinv-OBJ_KEY.
MOVE IT_BKFP-AWTYP  TO  ld_referenceinv-OBJ_TYPE.
MOVE IT_BKFP-AWSYS  TO  ld_referenceinv-OBJ_SYS.
MOVE IT_BKFP-BUKRS  TO  ld_referenceinv-COMP_CODE.

CALL FUNCTION 'BAPI_ACC_PYMNTBLK_UPDATE_POST'
  EXPORTING
    referenceinv =   ld_referenceinv
  TABLES
    return =         it_return .  

IF SY-SUBRC EQ 0.
  "Everything OK"
ENDIF.
...