Eric S
Eric S

Reputation: 133

Change Payment Block programmatically in MIRO tcode?

Is it possible to change the payment block via a BAPI, FM or code?

Payment Block

Upvotes: 2

Views: 6901

Answers (2)

Suncatcher
Suncatcher

Reputation: 10621

Use BAdi INVOICE_UPDATE for changing this, method CHANGE_BEFORE_UPDATE. Implementation sample is here.

For changing payment block via BAPI use BAPI_ACC_PYMNTBLK_UPDATE_POST, here is how to call:

DATA: it_return TYPE STANDARD TABLE OF bapiret2,
      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 = 0.
  " Everything OK
ENDIF.

Upvotes: 5

Matthijs Mennens
Matthijs Mennens

Reputation: 1145

I've always used FI_DOCUMENT_CHANGE. Check out this example.

Hope it helps.

  " 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.

Upvotes: 4

Related Questions