Beispielcoding um ein Kontrakt auf Positionsebene zu ändern. In diesem Beispiel wurde das Vertragsbeginn- Vertragsendedatum auf Positionsebene geändert.
ls_contract_inx-itm_number = ‚000010‘.
ls_contract_inx-con_st_dat = ‚X‘.
ls_contract_inx-con_en_dat = ‚X‘.
APPEND ls_contract_inx TO lt_contract_inx.
ls_contract-itm_number = ‚000010‘.
ls_contract-con_st_dat = ‚20200101‘.
ls_contract-con_en_dat = ‚99991231‘.
APPEND ls_contract TO lt_contract.
Über die Itm-Number = ‚000000‘ ändern Sie den Vertragskopf.
ls_contract_inx-itm_number = ‚000000‘.
ls_contract_inx-con_st_dat = ‚X‘.
ls_contract_inx-con_en_dat = ‚X‘.
APPEND ls_contract_inx TO lt_contract_inx.
ls_contract-itm_number = ‚000000‘.
ls_contract-con_st_dat = gv_vbegdat.
ls_contract-con_en_dat = gv_venddat.
APPEND ls_contract TO lt_contract.
* Report ZTEST_CUSTOMERCONTRACT_CHANGE
*---------------------------------------------------------------------*
*
*---------------------------------------------------------------------*
REPORT ZTEST_CUSTOMERCONTRACT_CHANGE.
DATA:ls_header TYPE bapisdh1,
ls_headerx TYPE bapisdh1x,
lt_pos TYPE TABLE OF bapisditm,
ls_pos TYPE bapisditm,
lt_posx TYPE TABLE OF bapisditmx,
ls_posx TYPE bapisditmx,
lt_return TYPE TABLE OF bapiret2,
lt_contract_inx TYPE TABLE OF bapictrx,
ls_contract_inx TYPE bapictrx,
lt_contract TYPE TABLE OF bapictr,
ls_contract TYPE bapictr.
ls_contract_inx-itm_number = '000010'.
ls_contract_inx-con_st_dat = 'X'.
ls_contract_inx-con_en_dat = 'X'.
APPEND ls_contract_inx TO lt_contract_inx.
ls_contract-itm_number = '000010'.
ls_contract-con_st_dat = '20200101'.
ls_contract-con_en_dat = '99991231'.
APPEND ls_contract TO lt_contract.
*Vertragskopf
CLEAR ls_headerx.
ls_headerx-updateflag = 'U'. "Mussfeld beim Updaten
*Vertragsposition
CLEAR lt_pos.
* REFRESH lt_pos.
CLEAR lt_posx.
* REFRESH lt_posx.
CLEAR ls_pos.
CLEAR ls_posx.
ls_pos-itm_number = '000010'.
APPEND ls_pos TO lt_pos.
ls_posx-itm_number = '000010'.
ls_posx-updateflag = 'U'.
APPEND ls_posx TO lt_posx.
CALL FUNCTION 'BAPI_CUSTOMERCONTRACT_CHANGE'
EXPORTING
salesdocument = '0430014144'
contract_header_in = ls_header
contract_header_inx = ls_headerx
* SIMULATION =
* BEHAVE_WHEN_ERROR = ' '
* INT_NUMBER_ASSIGNMENT = ' '
* LOGIC_SWITCH =
* NO_STATUS_BUF_INIT = ' '
TABLES
return = lt_return
contract_item_in = lt_pos
contract_item_inx = lt_posx
* PARTNERS =
* PARTNERCHANGES =
* PARTNERADDRESSES =
* CONDITIONS_IN =
* CONDITIONS_INX =
* CONTRACT_CFGS_REF =
* CONTRACT_CFGS_INST =
* CONTRACT_CFGS_PART_OF =
* CONTRACT_CFGS_VALUE =
* CONTRACT_CFGS_BLOB =
* CONTRACT_CFGS_VK =
* CONTRACT_CFGS_REFINST =
* CONTRACT_TEXT =
CONTRACT_DATA_IN = lt_contract
CONTRACT_DATA_INX = lt_contract_inx
* CONTRACT_KEYS =
* extensionin =
.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
* EXPORTING
* WAIT =
* IMPORTING
* RETURN =
.