Kundenfelder (Z-Felder) in der Kontraktposition ändern

Oft müssen auch Kundenfelder (Z-Felder) in einer Kontraktposition geändert werden, diese müssen in folgender Strukturen enthalten sein:
– BAPE_VBAP
– BAPE_VBAPX
– VBAPKOZ
– VBAPKOZX
Hierzu gibt es auch einer sehr gute Dokumentation im Funktionsbaustein BAPI_CUSTOMERCONTRACT_CHANGE

hier ein Beispiel bei dem die Konraktposition 10 geändert wurde:

REPORT zextensionin.

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,
     lt_extensionin    TYPE TABLE OF bapiparex WITH HEADER LINE,
     ls_extensionin    TYPE bapiparex,
     l_valuepart1(240) TYPE c,
     l_kreuzleiste     TYPE string.

  DO 15 TIMES.
    CONCATENATE l_kreuzleiste 'X' INTO l_kreuzleiste.
  ENDDO.

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.

CLEAR ls_headerx.
ls_headerx-updateflag = 'U'. "Mussfeld beim Updaten

CLEAR lt_pos.
CLEAR lt_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.

"Erweiterung für die VBAP auffüllen
ls_extensionin-structure    = 'BAPE_VBAP'.
CLEAR: l_valuepart1.

"Hier die Felder die in der Kontraktposition geändet werden sollen:
CONCATENATE
   '0430000667'              "Verkaufsbeleg CHAR10
   '000010'                  "Verkaufsbelegposition NUMC6
   '00000000000000000315'    "Identifikation der Entsorgungsanlage (IS-U-W) CHAR 20
    '    '                   "Nummer der Herkunft CHAR4
    '                    '   "Entsorgungsnachweisnummer CHAR20
    'E'                      "Vorgangsart CHAR1
    'RECHNUNG ANL.KONTR. '   "Entsorgungsanlagenauftragsart CHAR20
    '  '                     "(Z-Feld!)Zusatzfeld , Information - Gutschrift CHAR2
    '100'                    "Abrechnungsanteil NUMC1
    '1992998                       ' "(Z-Feld!)Standplatz des Behälters CHAR30
    '04'                     "Wiegedatenart CHAR2
    'DD'                     "Art der Behandlung des Abfalls CHAR1
    'DK0       '             "Lagertyp (XXX spezifisch) CHAR10
    '          '             "Lagerplatz (XXX spezifisch) CHAR10
    'AVV150199_00      '     "(Z-Feld!)Materialnummer CHAR18

INTO l_valuepart1 RESPECTING BLANKS.
ls_extensionin-l_valuepart1   = l_valuepart1.
"Unsere extensions
APPEND ls_extensionin TO lt_extensionin.

"Füllen der Ankreuzleiste für die Kundenerweiterung
    ls_extensionin-structure     = 'BAPE_VBAPX'.

CONCATENATE
'0430014144' '000010' "Beleg / Pos.

l_kreuzleiste "15 Kreuze für die Updates

INTO l_valuepart1 RESPECTING BLANKS.

ls_extensionin-l_valuepart1 = l_valuepart1.

APPEND ls_extensionin TO lt_extensionin.

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         = lt_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