Dear experts,
I am using BAPI_MATERIAL_SAVEDATA in order to update certain fields from table MARC.
I would also like to update the custom fields, which are not updated by default.
In order to do this, I have to fill the EXTENSIONIN and EXTENSIONINX table parameters of the BAPI_MATERIAL_SAVEDATA.
My BAPI_TE_MARC structure is not maintained with all custom fields of the MARC table. My MARC table has the Z-fields in APPEND structures.
I have to mention that I would not like to update the structure BAPI_TE_MARC manually. My update solution has to work for every client and regardless of how many fields the customer may add in MARC as Z-fields, the extension of the BAPI_TE_MARC structure has to be done at runtime
Does the EXTENSIONIN-STRUCTURE (char30) require the name of the dictionary structure BAPI_TE_MARC, for example, or is it possible to create a structure at runtime with the name /NAMESPACE/BAPI_TE_MARC and pass it on to the EXTENSIONIN-STRUCTURE parameter?
Is it recommanded to change the BAPI_TE_MARC structure at runtime or to create a new /NAMESPACE/BAPI_TE_MARC structure at runtime with function module DDIF_TABL_PUT and DDIF_TABL_ACTIVATE? I can delete it later in the program with DDIF_OBJECT_DELETE.
If the structure BAPI_TE_MARC has to be extended at runtime, how is that possible?
My MARC table has the Z-fields in APPEND structures. In both cases, how can I add the APPEND structures to my new/extended structure, as they are APPENDs, not INCLUDEs and can be used only once? By creating a new /NAMESPACE/BAPI_TE_MARC structure with the DDIF_TABL_PUT function, I can choose the names of my Z-fields from the DD03P_TAB table and create a new structure, but in order to activate the new structure I also need to add my namespace to every field /NAMESPACE/ZFIELD of the new structure. Would this not affect the update possibility of the custom fields in the function module, as the names of the custom fields differ from the actual MARC custom fields?
Also, is it possible to pass the EXTENSIONIN-STRUCTURE as a field symbol or somehow dynamically, without activating it in the dictionary in the first place? If yes, how?
Thank you for your help!
BR,
Matei