Kontraktposition ändern

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        =
  .
Tagged , , .Speichere in deinen Favoriten diesen permalink.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert