Configuration Change Via BAPI
Configuration Change Via BAPI
2003 Page 1
________________________________________________________________________
Number 562124
Version 4 from 06.12.2002
Status Released for Customer
Set on 06.12.2002
Language EN
Master language DE
Short text Configuration change via BAPI
Responsible SAP AG
Component SD-SLS-GF-VA
SD BOM, Variant processing
________________________________________________________________________
Long text
Symptom
A sales order contains configured items.You want to change the
characteristic valuation via BAPI.
Solution
This note provides an example report which changes the valuation of an
existing configuration. This report is meant to be an example report.
Text symbols:
under 'PURPOSE'
o R/3 configurator
o Database update
If you want to save the result of the report on the database, set
this flag.
Page 3
o New characteristics
________________________________________________________________________
Valid releases
Software Component Release
from to
________________________________________________________________________
________________________________________________________________________
Page 4
*$*$----------------------------------------------------------------$*$*
*$ Correction Inst. 0120061532 0000473124 $*
*$--------------------------------------------------------------------$*
*$ Valid for : $*
*$ Software Component SAP_APPL SAP Application $*
*$ Release 46B All Support Package Levels $*
*$ Release 46C All Support Package Levels $*
*$ Release 470 All Support Package Levels $*
*$--------------------------------------------------------------------$*
*$ Changes/Objects Not Contained in Standard SAP System $*
*$*$----------------------------------------------------------------$*$*
*&---------------------------------------------------------------------*
*& Object REPS Z_BAPI_CHANGE_CFG
*& Object Header PROG Z_BAPI_CHANGE_CFG
*&---------------------------------------------------------------------*
*& REPORT Z_BAPI_CHANGE_CFG
*&---------------------------------------------------------------------*
*>>>> START OF INSERTION <<<<
*&---------------------------------------------------------------------*
*& Report Z_BAPI_CHANGE_CFG *
*& *
*&---------------------------------------------------------------------*
*& This report can be used to change the characteristic value *
*& assignment of the configuration in existing sales documents easily. *
*&---------------------------------------------------------------------*
REPORT z_bapi_change_cfg .
* Data Declaration
INCLUDE z_bapi_change_cfg_data.
* Forms
INCLUDE z_bapi_change_cfg_forms.
*----------------------------------------------------------------------*
* Selection Screen
SELECTION-SCREEN BEGIN OF BLOCK text-001
WITH FRAME TITLE text-001.
PARAMETERS: p_vbeln TYPE vbak-vbeln OBLIGATORY.
SELECTION-SCREEN END OF BLOCK text-001.
p_test AS CHECKBOX,
p_ls_nos LIKE bapisdls-nostructure,
p_ls_pr LIKE bapisdls-pricing,
p_ls_atp LIKE bapisdls-atp_wrkmod,
p_ls_sch LIKE bapisdls-scheduling.
SELECTION-SCREEN END OF BLOCK text-003.
*----------------------------------------------------------------------*
START-OF-SELECTION.
ls_vbeln-vbeln = p_vbeln.
APPEND ls_vbeln TO lt_vbeln.
ELSE.
MESSAGE i001(cuib1).
ENDIF.
ELSE.
LOOP AT lt_cuval_ch.
READ TABLE lt_cuvals INTO ls_cuvals WITH KEY
config_id = lt_cuval_ch-config_id
inst_id = lt_cuval_ch-inst_id
charc = lt_cuval_ch-charc.
IF sy-subrc = 0 AND
ls_cuvals-author is initial.
ls_cuvals-value = lt_cuval_ch-value.
MODIFY lt_cuvals FROM ls_cuvals INDEX sy-tabix.
ELSE.
MESSAGE e111(cu) WITH lt_cuval_ch-charc
lt_cuval_ch-value
text-006.
ENDIF.
ENDLOOP.
ENDIF.
EXPORTING
salesdocument = p_vbeln
order_header_inx = lt_header_x
logic_switch = ls_logic
TABLES
return = lt_return
order_item_in = lt_items
order_item_inx = lt_item_x
order_cfgs_ref = lt_cfgs_ref
order_cfgs_inst = lt_inst
order_cfgs_part_of = lt_parts
order_cfgs_value = lt_values
order_cfgs_blob = lt_cublob
order_cfgs_vk = lt_cuvk
order_cfgs_refinst = lt_curef.
* Database update
IF NOT p_test IS INITIAL.
COMMIT WORK.
ENDIF.
* Return Table
WRITE: / text-007,
AT /(5) 'TYPE' COLOR COL_HEADING,
AT (15) 'ID' COLOR COL_HEADING,
AT (7) 'NUMBER' COLOR COL_HEADING,
AT (80) 'MESSAGE' COLOR COL_HEADING.
ENDIF.
*>>>> END OF INSERTION <<<<<<
...
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
*& Object REPS Z_BAPI_CHANGE_CFG_DATA
*& Object Header PROG Z_BAPI_CHANGE_CFG_DATA
*&---------------------------------------------------------------------*
*>>>> START OF INSERTION <<<<
*----------------------------------------------------------------------*
* INCLUDE Z_BAPI_CHANGE_CFG_DATA *
*----------------------------------------------------------------------*
* Data declaration
DATA: ls_val(180) TYPE C,
ls_vbeln TYPE sales_key,
lt_vbeln TYPE TABLE OF sales_key,
ls_bapi_view TYPE order_view,
ls_logic TYPE bapisdls,
lt_header TYPE TABLE OF bapisdhd,
lt_header_x TYPE bapisdh1x,
ls_item TYPE bapisdit,
ls_items TYPE bapisditm,
Page 8
*----------------------------------------------------------------------*
* INCLUDE Z_BAPI_CHANGE_CFG_FORMS *
*----------------------------------------------------------------------*
*----------------------------------------------------------------------*
* Data conversion:
* BAPISDORDER_GETDETAILEDLIST => BAPI_SALESORDER_CHANGE
*----------------------------------------------------------------------*
FORM convert_cfg_data.
Page 9
ls_cuvk-factor = ls_cuvks-factor.
APPEND ls_cuvk TO lt_cuvk.
ENDLOOP.