REPORT ZZ_BAPI_PRODUCT_CREATE.
PARAMETERS: p_matnr TYPE matnr.
DATA:
ls_return TYPE bapie1ret2,
lt_return TYPE TABLE OF bapie1ret2,
ls_headdata TYPE bapie1matheader,
lt_headdata TYPE TABLE OF bapie1matheader,
ls_clientdata TYPE bapie1mara,
ls_clientdatax TYPE bapie1marax,
lt_clientdata TYPE TABLE OF bapie1mara,
lt_clientdatax TYPE TABLE OF bapie1marax,
ls_description TYPE bapie1makt,
lt_description TYPE TABLE OF bapie1makt,
ls_extension TYPE bapie1parex,
ls_extensionx TYPE bapie1parexx,
lt_extension TYPE TABLE OF bapie1parex,
lt_extensionx TYPE TABLE OF bapie1parexx,
ls_ext_mara TYPE bapi_te_e1mara,
ls_ext_marax TYPE bapi_te_e1marax.
" General data needed for product creation
ls_headdata-material = p_matnr.
ls_headdata-ind_sector = 'M'.
ls_headdata-matl_type = 'FERT' .
ls_headdata-basic_view = 'X' . " Maintenance status K
INSERT ls_headdata INTO TABLE lt_headdata .
" General data needed for product creation (optional for change)
ls_clientdata-material = ls_headdata-material .
ls_clientdata-base_uom = 'EA' .
INSERT ls_clientdata INTO TABLE lt_clientdata .
ls_clientdatax-material = ls_headdata-material .
ls_clientdatax-base_uom = 'X' .
INSERT ls_clientdatax INTO TABLE lt_clientdatax .
" Description needed for product creation (optional for change)
ls_description-material = ls_headdata-material .
ls_description-langu = 'EN' .
ls_description-matl_desc = 'TEST MPM Creation via BAPI' .
INSERT ls_description INTO TABLE lt_description .
* Extension Field MARA-ZZ1_GENRE_PRD (same name as DB field)
ls_ext_mara-material = ls_headdata-material.
ls_ext_mara-ZZ1_GENRE_PRD = 'SCFI'.
ls_extension-material = ls_headdata-material.
ls_extension-structure = 'BAPI_TE_E1MARA'.
ls_extension-valuepart1 = ls_ext_mara.
INSERT ls_extension INTO TABLE lt_extension.
ls_ext_marax-material = ls_headdata-material.
ls_ext_marax-ZZ1_GENRE_PRD = abap_true.
ls_extensionx-material = ls_headdata-material.
ls_extensionx-structure = 'BAPI_TE_E1MARAX'.
ls_extensionx-valuepart1 = ls_ext_marax.
INSERT ls_extensionx INTO TABLE lt_extensionx.
CALL FUNCTION 'BAPI_MATERIAL_SAVEREPLICA'
EXPORTING
noappllog = ' '
nochangedoc = ' '
testrun = ' '
inpfldcheck = ' '
* IMPORTING
* return = ls_bapiret2
TABLES
headdata = lt_headdata
clientdata = lt_clientdata
clientdatax = lt_clientdatax
materialdescription = lt_description
extensionin = lt_extension
extensioninx = lt_extensionx
returnmessages = lt_return.
COMMIT WORK.
LOOP AT lt_return INTO ls_return.
WRITE: / ls_return-message.
ENDLOOP.
REPORT zz_bapi_classification_create.
PARAMETERS: p_matnr TYPE matnr. " classification should be created for this product
PARAMETERS: p_parent TYPE matnr. " parent product
DATA:
ls_return TYPE bapiret2,
lt_return TYPE TABLE OF bapiret2,
lv_object LIKE bapi1003_key-object,
lv_classnum TYPE klasse_d,
lv_object_prt LIKE bapi1003_key-object, "object key of parent product
ls_classes TYPE bapi1003_alloc_list,
lt_classes TYPE TABLE OF bapi1003_alloc_list,
ls_values_char TYPE bapi1003_alloc_values_char,
lt_values_char TYPE TABLE OF bapi1003_alloc_values_char.
* object key = material number
lv_object_prt = p_parent.
* get assigned classes to determine hierarchy level
CALL FUNCTION 'BAPI_OBJCL_GETCLASSES'
EXPORTING
objectkey_imp = lv_object_prt
objecttable_imp = 'MARA'
classtype_imp = '001'
* READ_VALUATIONS =
* KEYDATE = SY-DATUM
* LANGUAGE = SY-LANGU
* OBJECTKEY_IMP_LONG =
TABLES
alloclist = lt_classes
* ALLOCVALUESCHAR =
* ALLOCVALUESCURR =
* ALLOCVALUESNUM =
return = lt_return.
LOOP AT lt_return INTO ls_return.
WRITE: / ls_return-message.
ENDLOOP.
* based on hierarchy level of parent determine class of the subordinate level
LOOP AT lt_classes INTO ls_classes.
CASE ls_classes-classnum.
WHEN 'MEDIA_PR_FAMILY'.
lv_classnum = 'MEDIA_PRODUCT'.
lv_object = p_matnr.
" characteristic value for parent media product family
ls_values_char-charact = 'MEDIAPRODUCTFAMILY'.
ls_values_char-value_char_long = p_parent.
INSERT ls_values_char INTO TABLE lt_values_char.
WHEN 'MEDIA_PRODUCT'.
lv_classnum = 'MEDIA_ISSUE'.
lv_object = p_matnr.
" characteristic value for parent media product
ls_values_char-charact = 'MEDIAPRODUCT'.
ls_values_char-value_char_long = p_parent.
INSERT ls_values_char INTO TABLE lt_values_char.
WHEN 'MEDIA_ISSUE'. " error case: no subnode possible
EXIT.
ENDCASE.
ENDLOOP.
IF lv_classnum IS NOT INITIAL.
CALL FUNCTION 'BAPI_OBJCL_CREATE'
EXPORTING
objectkeynew = lv_object
objecttablenew = 'MARA'
classnumnew = lv_classnum
classtypenew = '001'
* STATUS = '1'
* STANDARDCLASS =
* CHANGENUMBER =
* KEYDATE = SY-DATUM
* NO_DEFAULT_VALUES = ' '
* OBJECTKEYNEW_LONG =
* IMPORTING
* CLASSIF_STATUS =
TABLES
* ALLOCVALUESNUM =
allocvalueschar = lt_values_char
* ALLOCVALUESCURR =
return = lt_return.
COMMIT WORK.
ENDIF.
LOOP AT lt_return INTO ls_return.
WRITE: / ls_return-message.
ENDLOOP.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
13 | |
10 | |
10 | |
7 | |
7 | |
6 | |
6 | |
5 | |
5 | |
4 |