Ugi4cl Ar Article Maint Api
Ugi4cl Ar Article Maint Api
public
final
create public .
public section.
types:
BEGIN OF ty_db_fields,
type TYPE ddobjname,
fields TYPE abap_component_tab,
END OF ty_db_fields .
types:
tt_mfhm TYPE STANDARD TABLE OF mfhm WITH EMPTY KEY .
types:
tt_wlk2 TYPE STANDARD TABLE OF wlk2 WITH EMPTY KEY .
types:
tt_maw1 TYPE STANDARD TABLE OF maw1 WITH EMPTY KEY .
types:
tt_mlea TYPE STANDARD TABLE OF mlea WITH EMPTY KEY .
types:
BEGIN OF ty_plant_notes,
matnr TYPE matnr,
werks TYPE werks_d,
langu TYPE spras,
tdid TYPE tdid,
note TYPE systring,
END OF ty_plant_notes .
types:
tt_mpgd TYPE STANDARD TABLE OF mpgd WITH EMPTY KEY .
types:
tt_plant_notes TYPE STANDARD TABLE OF ty_plant_notes WITH EMPTY KEY .
types:
tt_ltx1 TYPE STANDARD TABLE OF ltx1 WITH EMPTY KEY .
types:
BEGIN OF ty_mara_key,
matnr TYPE matnr,
END OF ty_mara_key .
types:
BEGIN OF ty_marc_key,
matnr TYPE matnr,
werks TYPE werks_d,
END OF ty_marc_key .
types:
BEGIN OF ty_maw1_key,
matnr TYPE matnr,
END OF ty_maw1_key .
types:
BEGIN OF ty_makt_key,
matnr TYPE matnr,
END OF ty_makt_key .
types:
BEGIN OF ty_marm_key,
matnr TYPE matnr,
END OF ty_marm_key .
types:
BEGIN OF ty_mean_key,
matnr TYPE matnr,
END OF ty_mean_key .
types:
BEGIN OF ty_mard_key,
matnr TYPE matnr,
werks TYPE werks_d,
lgort TYPE lgort_d,
END OF ty_mard_key .
types:
BEGIN OF ty_mbew_key,
matnr TYPE matnr,
bwkey TYPE bwkey,
bwtar TYPE bwtar_d,
END OF ty_mbew_key .
types:
BEGIN OF ty_mlgn_key,
matnr TYPE matnr,
lgnum TYPE lgnum,
END OF ty_mlgn_key .
types:
BEGIN OF ty_mlgt_key,
matnr TYPE matnr,
lgnum TYPE lgnum,
lgtyp TYPE lgtyp,
END OF ty_mlgt_key .
types:
BEGIN OF ty_mvke_key,
matnr TYPE matnr,
vkorg TYPE vkorg,
vtweg TYPE vtweg,
END OF ty_mvke_key .
types:
BEGIN OF ty_msta_key,
matnr TYPE matnr,
END OF ty_msta_key .
types:
BEGIN OF ty_seasons_key_read,
matnr TYPE matnr,
attyp TYPE mara-attyp,
satnr TYPE mara-satnr,
END OF ty_seasons_key_read .
types:
BEGIN OF ty_wtaddi_key_read,
matnr TYPE matnr,
lfdnr TYPE addi_wtkey,
END OF ty_wtaddi_key_read .
types:
tt_wtaddi_key_read TYPE STANDARD TABLE OF ty_wtaddi_key_read .
types:
tt_seasons_key_read TYPE STANDARD TABLE OF ty_seasons_key_read .
types:
BEGIN OF ty_fsh_seasons.
INCLUDE TYPE fsh_seasons_mat.
TYPES: updkz TYPE char1,
END OF ty_fsh_seasons .
types:
tt_fsh_seasons TYPE STANDARD TABLE OF ty_fsh_seasons WITH DEFAULT KEY
.
types:
BEGIN OF ty_keys,
mara_keys TYPE STANDARD TABLE OF pre03 WITH NON-UNIQUE DEFAULT
KEY,
maw1_keys TYPE STANDARD TABLE OF pre03 WITH NON-UNIQUE DEFAULT
KEY,
makt_keys TYPE STANDARD TABLE OF pre09 WITH NON-UNIQUE DEFAULT
KEY,
marm_keys TYPE STANDARD TABLE OF pre11 WITH NON-UNIQUE DEFAULT
KEY,
mean_keys TYPE STANDARD TABLE OF pre03 WITH NON-UNIQUE DEFAULT
KEY,
marc_keys TYPE STANDARD TABLE OF pre01 WITH NON-UNIQUE DEFAULT
KEY,
mard_keys TYPE STANDARD TABLE OF pre08 WITH NON-UNIQUE DEFAULT
KEY,
* mdma_keys TYPE STANDARD TABLE OF pre27 WITH NON-UNIQUE DEFAULT
KEY,
mbew_keys TYPE STANDARD TABLE OF pre04 WITH NON-UNIQUE DEFAULT
KEY,
mlgn_keys TYPE STANDARD TABLE OF pre12 WITH NON-UNIQUE DEFAULT
KEY,
mlgt_keys TYPE STANDARD TABLE OF pre13 WITH NON-UNIQUE DEFAULT
KEY,
mvke_keys TYPE STANDARD TABLE OF pre10 WITH NON-UNIQUE DEFAULT
KEY,
msta_keys TYPE STANDARD TABLE OF pre03 WITH NON-UNIQUE DEFAULT
KEY,
mlan_keys TYPE STANDARD TABLE OF pre19 WITH NON-UNIQUE DEFAULT
KEY,
wlk2_keys TYPE STANDARD TABLE OF pre23 WITH NON-UNIQUE DEFAULT
KEY,
mamt_keys TYPE STANDARD TABLE OF pre03 WITH NON-UNIQUE DEFAULT
KEY,
mlea_keys TYPE STANDARD TABLE OF pre03 WITH NON-UNIQUE DEFAULT
KEY,
season_keys TYPE STANDARD TABLE OF ty_seasons_key_read WITH NON-
UNIQUE DEFAULT KEY,
wtaddi_keys TYPE STANDARD TABLE OF ty_wtaddi_key_read WITH NON-
UNIQUE DEFAULT KEY,
END OF ty_keys .
types:
tt_mara_key TYPE STANDARD TABLE OF ty_mara_key .
types:
tt_maw1_key TYPE STANDARD TABLE OF pre03 .
"ty_maw1_key .
types:
tt_mamt_key TYPE STANDARD TABLE OF pre03 .
types:
tt_mlea_key TYPE STANDARD TABLE OF pre03 .
types:
tt_wlk2_key TYPE STANDARD TABLE OF pre23 .
types:
tt_makt_key TYPE STANDARD TABLE OF ty_makt_key .
types:
tt_marm_key TYPE STANDARD TABLE OF ty_marm_key .
types:
tt_mean_key TYPE STANDARD TABLE OF pre03 .
"ty_mean_key .
types:
tt_marc_key TYPE STANDARD TABLE OF ty_marc_key .
types:
tt_mard_key TYPE STANDARD TABLE OF ty_mard_key .
types:
BEGIN OF ty_steu,
matnr TYPE matnr,
lfdnr TYPE tafol,
aland TYPE aland,
tatyp TYPE tatyp,
taxkm TYPE taxkm,
kzexi TYPE xfeld,
kzref TYPE xfeld,
kzvor TYPE xfeld,
END OF ty_steu .
types:
tt_steu TYPE STANDARD TABLE OF ty_steu WITH KEY matnr aland tatyp .
types:
BEGIN OF ty_steumm,
matnr TYPE matnr,
aland TYPE aland,
taxim TYPE taxim1,
kzexi TYPE xfeld,
kzref TYPE xfeld,
kz_init TYPE xfeld,
END OF ty_steumm .
types:
tt_steumm TYPE STANDARD TABLE OF ty_steumm WITH KEY matnr aland taxim
.
types:
BEGIN OF ty_mara.
INCLUDE TYPE mara.
TYPES: is_new TYPE abap_bool,
END OF ty_mara .
types:
tt_mara TYPE STANDARD TABLE OF ty_mara WITH DEFAULT KEY .
types:
BEGIN OF ty_structs,
makt TYPE makt,
mara TYPE mara,
maw1 TYPE maw1,
marc TYPE marc,
mard TYPE mard,
marm TYPE marm,
mbew TYPE mbew,
mean TYPE mean,
mlan TYPE mlan,
mlgn TYPE mlgn,
mlgt TYPE mlgt,
mvke TYPE mvke,
steuer TYPE mg03steuer,
steumm TYPE mg03steumm,
mpop TYPE mpop,
mfhm TYPE tt_mfhm,
mpgd TYPE mpgd,
wlk2 TYPE wlk2,
malg TYPE malg,
END OF ty_structs .
types:
BEGIN OF ty_tables,
t_makt TYPE makt_tab,
t_mara TYPE mara_tab,
t_marc TYPE marc_tab, "STANDARD TABLE OF v_marc_md WITH
EMPTY KEY,
t_mard TYPE mard_tab, "STANDARD TABLE OF v_mard_md WITH
EMPTY KEY,
t_marm TYPE marm_tab,
t_mbew TYPE mbew_tab, "STANDARD TABLE OF v_mbew_md WITH
EMPTY KEY,
t_mean TYPE mean_tab,
t_mlan TYPE mlan_tab,
t_mlgn TYPE mlgn_tab,
t_mlgt TYPE mlgt_tab,
t_mvke TYPE mvke_tab,
t_steuertab TYPE tt_steu,
t_steummtab TYPE tt_steumm,
t_mpop TYPE mpop_tab,
t_mfhm TYPE tt_mfhm,
t_mpgd TYPE tt_mpgd,
t_ltx1 TYPE tt_ltx1,
t_ltx1_del TYPE tt_ltx1,
* t_text TYPE cmd_bs_mat_t_notes,
* t_plant_text TYPE tt_plant_notes,
* t_sales_text TYPE cmd_bs_mat_t_notes_sales,
t_maw1 TYPE tt_maw1,
t_mamt TYPE mamt_tty,
t_mlea TYPE mlea_tty,
t_wlk2 TYPE tt_wlk2,
t_malg TYPE malg_tty,
t_fsh_seasons TYPE tt_fsh_seasons,
END OF ty_tables .
types:
BEGIN OF ty_tables_pmd,
t_mara TYPE mara_tab,
t_makt TYPE makt_tab,
t_marc TYPE marc_tab, "STANDARD TABLE OF v_marc_md WITH
EMPTY KEY,
t_mard TYPE mard_tab, "STANDARD TABLE OF v_mard_md WITH
EMPTY KEY,
t_marm TYPE marm_tab,
t_mbew TYPE mbew_tab, "STANDARD TABLE OF v_mbew_md WITH
EMPTY KEY,
t_mean TYPE mean_tab,
t_mlan TYPE mlan_tab,
t_mlgn TYPE mlgn_tab,
t_mlgt TYPE mlgt_tab,
t_mvke TYPE mvke_tab,
t_steuertab TYPE tt_steu,
t_steummtab TYPE tt_steumm,
t_mpop TYPE mpop_tab,
t_mfhm TYPE tt_mfhm,
t_mpgd TYPE tt_mpgd,
* t_ltx1 TYPE tt_ltx1,
t_text TYPE cmd_bs_mat_t_notes,
t_plant_text TYPE tt_plant_notes,
t_sales_text TYPE cmd_bs_mat_t_notes_sales,
t_maw1 TYPE tt_maw1,
t_mamt TYPE mamt_tty,
t_mlea TYPE mlea_tty,
t_wlk2 TYPE tt_wlk2,
t_malg TYPE malg_tty,
iv_failure TYPE char1,
END OF ty_tables_pmd .
types:
tt_tables TYPE STANDARD TABLE OF ty_tables .
types:
tt_mbew_key TYPE STANDARD TABLE OF ty_mbew_key .
types:
tt_mlgn_key TYPE STANDARD TABLE OF ty_mlgn_key .
types:
tt_mlgt_key TYPE STANDARD TABLE OF ty_mlgt_key .
types:
tt_mvke_key TYPE STANDARD TABLE OF ty_mvke_key .
types:
tt_msta_key TYPE STANDARD TABLE OF ty_msta_key .
types TT_MARC type MARC_TAB .
types TT_MARD type MARD_TAB .
types TT_MBEW type MBEW_TAB .
types:
tt_mea1 TYPE STANDARD TABLE OF mea1 .
types:
ty_t_prof TYPE STANDARD TABLE OF prof .
types:
ty_t_pre08 TYPE STANDARD TABLE OF pre08 .
types:
BEGIN OF ty_altmara ,
matkl TYPE
mara-matkl
,
mstae TYPE
mara-mstae
,
END OF ty_altmara .
types:
BEGIN OF ty_neumara ,
matkl TYPE
mara-matkl
,
mstae TYPE
mara-mstae
,
END OF ty_neumara .
types:
tt_t130f TYPE STANDARD TABLE OF st130f .
types:
tt_smeinh TYPE STANDARD TABLE OF smeinh .
types:
tt_steumm1 TYPE STANDARD TABLE OF mg03steumm .
types:
tt_mlgt TYPE STANDARD TABLE OF mlgt .
types:
tt_mlgn TYPE STANDARD TABLE OF mlgn .
types:
tt_malg TYPE STANDARD TABLE OF malg .
types:
tt_mamt TYPE STANDARD TABLE OF mamt .
types:
tt_wsteuertab TYPE STANDARD TABLE OF mg03steuer .
types:
BEGIN OF ty_product_neuflag,
product TYPE matnr,
neuflag TYPE char1,
END OF ty_product_neuflag .
types:
BEGIN OF gty_s_descr_struc,
name_component TYPE name_komp,
name_line_type TYPE ddobjname,
is_table TYPE boole_d,
struc_components TYPE abap_component_tab,
END OF gty_s_descr_struc .
types:
gty_ts_descr_struc TYPE SORTED TABLE OF gty_s_descr_struc
WITH UNIQUE KEY name_component "primary key
"primary key "primary key
WITH NON-UNIQUE SORTED KEY line_type COMPONENTS
name_line_type .
types:
BEGIN OF ty_cr_details,
usmdkarmara TYPE usmd_tech_key,
armara TYPE /ugi4/matnr,
seqnr TYPE usmd_seqnr_obj,
lartn TYPE mlea-lartn,
ean11 TYPE ean11,
usmd_crequest TYPE usmd_crequest,
usmd_value TYPE usmd_value,
usmd_creq_status TYPE usmd_crequest_status,
txtmi TYPE usmd_txtmi,
END OF ty_cr_details .
types:
ty_t_crdetails TYPE STANDARD TABLE OF ty_cr_details .
types:
BEGIN OF s_log_phys_name_type,
entity TYPE usmd_entity,
entity_cont TYPE usmd_entity,
kind TYPE char4,
sub_kind TYPE usmd_subkind, "usmd1_cs_tabl_kind
sub_kind_desc TYPE char255,
log_name TYPE fieldname,
phys_name TYPE fieldname,
version TYPE char4,
no_of_records TYPE i,
no_of_inact_records TYPE i,
unique_records TYPE i,
"only relevant for subkind = oattr
END OF s_log_phys_name_type .
types:
t_log_phys_name_type TYPE STANDARD TABLE OF s_log_phys_name_type .
types:
BEGIN OF ty_var_struc,
matnr TYPE matnr,
varnr TYPE matnr,
atinn TYPE atinn,
atnam TYPE atnam,
atwrt TYPE atwrt,
atflb TYPE atflb,
atflv TYPE atflv,
atzhl TYPE ibsegmcnt,
END OF ty_var_struc .
types:
tt_var_struc TYPE STANDARD TABLE OF ty_var_struc .
types:
BEGIN OF ty_class_gen,
mara TYPE /ugi4/matnr,
class_var TYPE /ugi4/class_var,
klart_var TYPE /ugi4/klart_var,
select_all TYPE boolean,
END OF ty_class_gen .
types:
tt_class_gen TYPE STANDARD TABLE OF ty_class_gen .
class-methods PROCESS
importing
!IM_DB_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IM_CREQ_ATTR type /UGI4/CREQ_ATTR_API
exporting
!ET_MESSAGE type BAPIRETTAB .
methods MAP
importing
!IS_RFM_API type /UGI4/RFM_S_DBSTRUC_IN
!IM_CREQ_ATTR type /UGI4/CREQ_ATTR_API optional
exporting
!ET_MESSAGE type USMD_T_MESSAGE
!EO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API .
class-methods GET_DESCR_STRUC
importing
!IV_NAME_STRUC type NAME_KOMP
!IV_COMPDESCR type BOOLE_D optional
changing
!CTS_DESCR_STRUC type GTY_TS_DESCR_STRUC .
methods FILL_DB_ATTR
changing
!CS_DB_ATTR type /UGI4/RFM_S_DBSTRUC_IN .
methods MAP_TO_API_STRUCTURE
importing
!IS_DB_ATTR type /UGI4/RFM_S_DBSTRUC_IN
exporting
!ES_DB_ATTR type /UGI4/RFM_S_DBSTRUC_IN .
methods READ_VARIANTS
importing
!IS_VARIANTS type /UGI4/CMD_RFM_T_VARIANTS
exporting
!ET_VARIANTS type TT_VAR_STRUC .
class-methods GENERATE_VARIANTS
importing
!IT_MATNR type TT_CLASS_GEN
!IT_RESTRICT type /UGI4/CMD_RFM_T_RESTRTICT
exporting
!ET_VARIANTS type /UGI4/CMD_RFM_T_VARIANTS .
class-methods GET_VARIANT_CHAR
importing
!IV_CHARP type KLASSE_D optional
!IV_MATKL type MATKL optional
!IV_KLART type /UGI4/KLART_VAR optional
!IV_CHAR_TYPE type CHAR1 optional
exporting
!ET_CHARVAL type /UGI4/AR_TT_CHARVAL
!ET_CHARVALT type /UGI4/AR_TT_CHARVALT
!ET_FEATURES type /UGI4/MERKMALE_T .
methods FIND_CR_BY_MATNR
importing
!IM_MATNR_SEL type FSH_MATNR_RANGE_T
exporting
!ET_CR_DETAILS type TY_T_CRDETAILS
!ET_MESSAGES type USMD_T_MESSAGE .
methods FIND_CR_BY_IDNLF
importing
!IM_IDNLF_SEL type WPOCS_IDNLF_RANGE_TAB
exporting
!ET_CR_DETAILS type TY_T_CRDETAILS
!ET_MESSAGES type USMD_T_MESSAGE .
methods FIND_CR_BY_GTIN
importing
!IM_SEL_RANGE type CMD_MATERIAL_T_RANGE_EAN11
exporting
!ET_CR_DETAILS type TY_T_CRDETAILS
!ET_MESSAGES type USMD_T_MESSAGE .
methods READ_VALUES
importing
!I_MATNR type MATNR
exporting
!ET_DATA type /UGI4/RFM_S_DBSTRUC_IN
!ES_CREQDET type /UGI4/CREQ_ATTR_API .
protected section.
methods READ_ALL_VARIANTS_SEASONS
importing
!IT_SEASONS_KEYS_READ type TT_SEASONS_KEY_READ
!IT_MARA_DB type MARA_TAB .
methods MAP_2_DB_API
importing
!IM_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IM_CREQ_ATTR type /UGI4/_T_CREQUEST_ATTR .
methods MAP_USMD_MESS_TO_BAPIRET
importing
!IT_USMD_MESSAGE type USMD_T_MESSAGE
changing
!CT_BAPIRETTAB type BAPIRETTAB .
methods CALC_AZSUB
importing
!IT_UNITOFMSR type /UGI4/T_AR_PP_UNITOFMSR
!IV_MESUB type MEINH
changing
!CV_AZSUB type MEANZSUB .
methods CHECK_INTERNAL
importing
!IS_MARA_DATA type CMD_BS_MAT_T_MARA
!IO_CREQUEST type ref to IF_USMD_CONV_SOM_GOV_API .
methods MAP_MODEL_2_STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IS_TEXT type BOOLEAN optional
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional .
methods MAP_NOSMT_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
changing
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional .
methods MAP_MPOP_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IT_T001W type /UGI4/T001W
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional .
methods MAP_DCST_TAB_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IT_T001W type /UGI4/T001W
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_FMS_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE optional
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_TAB_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_UNITOFMSR_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_MARA_DATA type CMD_BS_MAT_T_MARA
!IS_MARM_DATA type CMD_BS_MAT_T_MARM
!IS_MAW1_DATA type CMD_PRD_T_MAW1_DATA
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_TEXTFIBR_COMP
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods GET_INTERNAL_NUMBER
importing
!IM_MATNR type MATNR
!IM_MTART type MTART
!IM_MATNR_TMP type BOOLEAN
exporting
!EX_ERROR type BOOLEAN
!EX_INT_MATNR type MATNR
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API .
methods MAP_TEXT_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_MEAN_GTIN
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MARA_MANDATORY_CHECKS
importing
!IS_MARA type CMD_BS_MAT_S_MARA
!IS_CREQ_ATTR type /UGI4/CREQ_ATTR_API
exporting
!EV_ERROR type BOOLEAN
changing
!CT_MESSAGE type BAPIRET2_TAB .
methods ADD_MESSAGE
changing
!CT_MESSAGE type BAPIRET2_TAB .
methods GET_COMPONENTS
importing
!IV_LEVEL type I optional
!IS_DATA type ANY
exporting
!ET_COMPONENTS type ABAP_COMPONENT_VIEW_TAB .
methods READ
importing
!IS_KEYS type TY_KEYS
exporting
!ET_MEAN_ME_TAB type MAT_EAN
!ES_TBL_DB type TY_TABLES .
methods MAP_MAKT_STAG
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IS_TEXT type BOOLEAN optional
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods WRITE_ENTITY_DATA
importing
!IT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API .
methods DELETE_ENTITY_DATA
importing
!IT_ENTITY_DATA type USMD_GOV_API_TS_ENT_TABL
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API .
methods MAP_VARIANTS_STAG
importing
!IV_ENTITY type USMD_ENTITY
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_RESTRICT_STAG
importing
!IV_ENTITY type USMD_ENTITY
!IS_API_SOURCE type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_MLANPURCH_TAX_STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_TAX_2_STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_CLASS_GEN_STAG
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_CHARACVAL_STAG
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL optional
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods MAP_ART_IMG_2STA
importing
!IV_ENTITY type USMD_ENTITY
!IV_TARGET_STRUC type SMT_STRUCTURE
!IS_API_DATA type /UGI4/RFM_S_DBSTRUC_IN
!IO_CONV_API type ref to IF_USMD_CONV_SOM_GOV_API
exporting
!ET_MESSAGE type USMD_T_MESSAGE
changing
!CT_ENTITY_DEL type USMD_GOV_API_TS_ENT_TABL
!CT_ENTITY_DATA type USMD_GOV_API_TS_ENT_DATA .
methods CARE_CODE_CONVERT_MARA2EXT
importing
!IP_MARA_CARE_CODE type WRF_CARE_CODE optional
!IP_REGION type WRF_COUNTRY_GROUP optional
exporting
!ES_CARE_CODES_EXT type WRF_CARE_CODE_DETAIL_ISO
changing
!ET_MESSAGE type USMD_T_MESSAGE optional .
methods CARE_CODE_CONVERT_INT2EXT
importing
!IP_CARE_TYPE type WRF_CARE_TYPE optional
!IP_REGION type WRF_COUNTRY_GROUP optional
!IP_CARE_CODE_INT type WRF_GLOBAL_CARE_CODE optional
exporting
!EP_CARE_CODE_EXT type WRF_CARE_CODE_REGION
changing
!ET_MESSAGE type USMD_T_MESSAGE optional .
private section.
ENDCLASS.
METHOD map_makt_stag.
DATA: lr_source TYPE REF TO data,
lr_target TYPE REF TO data,
ls_api_data TYPE /ugi4/rfm_s_dbstruc_in ##NEEDED.
DATA : lt_makt_api_x TYPE cmd_bs_mat_t_makt_x,
ls_makt_api_x TYPE cmd_bs_mat_s_makt_x ##NEEDED,
ls_entity TYPE usmd_gov_api_s_ent_tabl.
* lt_entity TYPE usmd_gov_api_ts_ent_tabl.
FIELD-SYMBOLS : <fs_target> TYPE any,
<fs_source> TYPE any,
<lt_api_source> TYPE ANY TABLE,
<lt_api_source_x> TYPE ANY TABLE,
<ls_api_source> TYPE any.
CHECK is_api_data IS NOT INITIAL.
ls_api_data = is_api_data.
IF iv_entity = 'MARA'.
IF is_text = abap_false.
DATA(lv_x_tabname) = 'MARA_X_TAB'. DATA(lv_tabname) =
'MARA_TAB'.
ELSE.
lv_tabname = 'MAKT_TAB'.lv_x_tabname = 'MAKT_X_TAB'.
ENDIF.
ELSE.
RETURN.
ENDIF.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_txt_langu
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key
IMPORTING
er_structure = lr_struc_makt_key
er_table = lr_table_makt_key
).
ENDIF.
IF is_text EQ abap_true.
CREATE DATA lr_target LIKE LINE OF <lt_data>.
ASSIGN lr_target->* TO <fs_target>.
ELSE.
CREATE DATA lr_target TYPE (lv_target).
ASSIGN lr_target->* TO <fs_target>.
ENDIF.
IF <lt_api_source> IS ASSIGNED.
LOOP AT <lt_api_source> ASSIGNING <ls_api_source>.
IF <fs_source> IS ASSIGNED AND <fs_target> IS ASSIGNED.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
ENDMETHOD.
METHOD map_mean_gtin.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key
IMPORTING
er_structure = lr_struc_del
er_table = lr_table_del
).
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
* MEAN_TAB.
LOOP AT is_api_data-mean_tab ASSIGNING FIELD-SYMBOL(<fs_api_mean>).
MOVE-CORRESPONDING <fs_api_mean> TO <fs_source>.
IF <fs_source> IS ASSIGNED AND <fs_target> IS ASSIGNED.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
ls_entity_data-entity = iv_entity.
GET REFERENCE OF <lt_data> INTO ls_entity_data-entity_data.
* INSERT ls_entity_data INTO TABLE lt_entity_data.
INSERT ls_entity_data INTO TABLE ct_entity_data.
ENDIF.
ENDMETHOD.
METHOD map_mlanpurch_tax_sta.
* IF is_text EQ abap_false.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
DATA : lr_struc_tax_key TYPE REF TO data,
lr_table_tax_key TYPE REF TO data.
IF <lt_api_source> IS ASSIGNED.
LOOP AT <lt_api_source> ASSIGNING <ls_api_source>.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
ENDIF.
ENDMETHOD.
METHOD map_model_2_sta.
IF iv_entity = 'MARA'.
IF is_text = abap_false.
DATA(lv_x_tabname) = 'MARA_X_TAB'. DATA(lv_tabname) =
'MARA_TAB'.
ELSE.
lv_tabname = 'MAKT_TAB'.lv_x_tabname = 'MAKT_X_TAB'.
ENDIF.
ELSEIF iv_entity = 'MAW1'.
lv_tabname = 'MAW1_TAB'.lv_x_tabname = 'MAW1_X_TAB'.
ELSEIF iv_entity = 'TAX'.
lv_tabname = 'TAX_TAB'.
ELSEIF iv_entity = 'MALG' .
lv_tabname = 'MALG_TAB'.
ELSEIF iv_entity = 'MLGN' .
lv_tabname = 'MLGN_TAB'.
ELSEIF iv_entity = 'MLGT' .
lv_tabname = 'MLGT_TAB'.
ELSEIF iv_entity = 'MVKE' .
lv_tabname = 'MVKE_TAB'.
ELSEIF iv_entity = 'WLK2' .
lv_tabname = 'WLK2_TAB'.
ELSEIF iv_entity = 'MLGN' ##BOOL_OK.
lv_tabname = 'MLGN_TAB'.
ELSEIF iv_entity = 'MLGT' .
lv_tabname = 'MLGT_TAB'.
ELSEIF iv_entity = 'MARD' .
lv_tabname = 'MARD_TAB'.
ELSEIF iv_entity = 'MAMT'.
lv_tabname = 'MAMT_TAB'.
elseif iv_entity = 'WRPL'.
lv_tabname = 'WRPL_TAB'.
elseif iv_entity = 'MLANPURCH'.
lv_tabname = 'MLAN_PURCHASE_TAB'.
ELSE.
RETURN.
ENDIF.
IF is_text EQ abap_true.
CREATE DATA lr_target LIKE LINE OF <lt_data>.
ASSIGN lr_target->* TO <fs_target>.
ELSE.
CREATE DATA lr_target TYPE (lv_target).
ASSIGN lr_target->* TO <fs_target>.
ENDIF.
IF <lt_api_source> IS ASSIGNED.
LOOP AT <lt_api_source> ASSIGNING <ls_api_source>.
IF <fs_source> IS ASSIGNED AND <fs_target> IS ASSIGNED.
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
if iv_entity eq 'MARA'.
CALL FUNCTION 'WRF_CARE_CODES_GET_REGION'
IMPORTING
ep_region = lv_region_cc.
ASSIGN COMPONENT 'REGION_CC' OF STRUCTURE <fs_target> TO
FIELD-SYMBOL(<fs_region_cc>).
* MOVE lv_region_cc TO <fs_region_cc>.
<fs_region_cc> = lv_region_cc .
ASSIGN COMPONENT 'CARE_CODE' OF STRUCTURE <fs_target> TO
FIELD-SYMBOL(<fs_care_code>).
lv_care_code = <fs_care_code>.
me->care_code_convert_mara2ext(
EXPORTING
ip_mara_care_code = lv_care_code
ip_region = lv_region_cc
IMPORTING
es_care_codes_ext = ls_care_code_iso ).
endif.
ASSIGN COMPONENT 'TXTMI' OF STRUCTURE <fs_target> TO FIELD-
SYMBOL(<txtmi>).
IF sy-subrc EQ 0.
ASSIGN COMPONENT 'MAKTX' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<fs_maktx>).
IF sy-subrc EQ 0.
<txtmi> = <fs_maktx>.
ENDIF.
ENDIF.
* CLEAR : lt_entity_data,ls_entity_data,<lt_data>.
ENDMETHOD.
METHOD map_mpop_2sta.
DATA: lr_source TYPE REF TO data,
lr_target TYPE REF TO data.
FIELD-SYMBOLS : <fs_target> TYPE any,
<fs_source> TYPE any,
* <ls_ddic_api> TYPE gty_s_descr_struc,
<lt_api_source> TYPE ANY TABLE,
<ls_api_source> TYPE any,
<ls_model_data> TYPE any.
DATA : ls_entity_data TYPE LINE OF usmd_gov_api_ts_ent_data.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
IF <lt_api_source> IS ASSIGNED.
vlfkz = 'A'.
IF sy-subrc = 0 AND iv_entity EQ 'MPOP_ST'.
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
* <lfs_matnr> = <lfs_mat>.
* <lfs_matnr> = gv_matnr_final.
DATA(lv_new) = abap_true.
ENDIF.
vlfkz = 'B'.
IF sy-subrc = 0 AND iv_entity EQ 'MPOP_DC'.
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
* <lfs_matnr> = <lfs_mat>.
* <lfs_matnr> = gv_matnr_final.
lv_new = abap_true.
ENDIF.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
* TRY.
* co_conv_api->write_entity_data( it_entity_data = lt_entity_data
).
* CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
* CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
* CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
* ENDTRY.
* CLEAR : lt_entity_data,ls_entity_data,<lt_data>.
CLEAR lv_new.
ENDMETHOD.
METHOD map_nosmt_2sta.
DATA: "lsr_model_data TYPE REF TO data,
lv_tab TYPE name_komp,
lv_var TYPE string.
IF iv_entity = 'BOM'.
lv_tab = 'BOM_TAB'.
ELSEIF iv_entity = 'ASSORT'.
lv_tab = 'WLK1_TAB'.
ELSEIF iv_entity = 'MEAN_GTIN'.
lv_tab = 'MLEA_TAB'.
ELSEIF iv_entity = 'ARTHIER'.
lv_tab = 'WRF_MATGRP_SKU_TAB'.
ELSEIF iv_entity = 'DRADBASIC'.
lv_tab = 'DRAD_DATA-DRAD_TAB'.
ELSEIF iv_entity = 'DRADTXT'.
lv_tab = 'DRAD_DATA-DRAD_NOTES_TAB'.
ELSEIF iv_entity = 'CLASSASGN'.
lv_tab = 'CLF_DATA-CLASSASGN'.
ELSEIF iv_entity = 'VALUATION'.
lv_tab = 'CLF_DATA-VALUATION'.
ENDIF.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
ASSIGN lr_table_key->* TO <lt_data>.
ASSIGN lr_struc_key->* TO <ls_model_data>.
* Model Structure
* CLEAR lsr_model_data.
* CREATE DATA lsr_model_data LIKE LINE OF ct_model_data.
* ASSIGN lsr_model_data->* TO <ls_model_data>.
IF <lt_api_source> IS ASSIGNED.
LOOP AT <lt_api_source> ASSIGNING FIELD-SYMBOL(<ls_api_source>).
MOVE-CORRESPONDING <ls_api_source> TO <ls_model_data>.
IF iv_entity = 'BOM'.
ASSIGN COMPONENT 'MARA_BOM' OF STRUCTURE <ls_model_data> TO
FIELD-SYMBOL(<lfs_bom>).
ASSIGN COMPONENT 'IDNRK' OF STRUCTURE <ls_api_source> TO FIELD-
SYMBOL(<lfs_idnrk>).
IF <lfs_bom> IS ASSIGNED AND <lfs_idnrk> IS ASSIGNED.
<lfs_bom> = <lfs_idnrk>.
ENDIF.
ASSIGN COMPONENT 'UOM_MARA' OF STRUCTURE <ls_model_data> TO
FIELD-SYMBOL(<lfs_uom>).
ASSIGN COMPONENT 'BOM_UOM' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<lfs_unit>).
IF <lfs_uom> IS ASSIGNED AND <lfs_unit> IS ASSIGNED.
<lfs_uom> = <lfs_unit>.
ENDIF.
ASSIGN COMPONENT 'QTY' OF STRUCTURE <ls_model_data> TO FIELD-
SYMBOL(<lfs_cqty>).
ASSIGN COMPONENT 'COMP_QTY' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<lfs_cmpqty>).
IF <lfs_cqty> IS ASSIGNED AND <lfs_cmpqty> IS ASSIGNED.
<lfs_cqty> = <lfs_cmpqty>.
ENDIF.
IF iv_entity = 'ASSORT'.
ASSIGN COMPONENT 'FILIA' OF STRUCTURE <ls_api_source> TO FIELD-
SYMBOL(<lfs_filia>).
ASSIGN COMPONENT 'ASSORTMEN' OF STRUCTURE <ls_model_data> TO
FIELD-SYMBOL(<lfs_assort>).
IF <lfs_assort> IS ASSIGNED AND <lfs_filia> IS ASSIGNED.
<lfs_assort> = <lfs_filia>.
ENDIF.
IF iv_entity EQ 'DRADTXT'.
ASSIGN COMPONENT 'LANGUCODE' OF STRUCTURE <ls_model_data> TO
FIELD-SYMBOL(<lfs_langu>).
ASSIGN COMPONENT 'LANGU' OF STRUCTURE <ls_api_source> TO FIELD-
SYMBOL(<lfs_spras>).
IF <lfs_langu> IS ASSIGNED AND <lfs_spras> IS ASSIGNED.
<lfs_langu> = <lfs_spras>.
ENDIF.
IF iv_entity EQ 'CLASSASGN'.
ASSIGN COMPONENT 'KEY-ID-CLASS' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<lfs_cl>).
ASSIGN COMPONENT 'CLASS' OF STRUCTURE <ls_model_data> TO FIELD-
SYMBOL(<lfs_class>).
IF <lfs_class> IS ASSIGNED AND <lfs_cl> IS ASSIGNED.
<lfs_class> = <lfs_cl>.
ENDIF.
ENDIF.
IF iv_entity EQ 'VALUATION'.
ENDIF.
* TRY.
* co_conv_api->write_entity_data( it_entity_data =
lt_entity_data ).
* CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
* CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
* CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
* ENDTRY.
* CLEAR : lt_entity_data,ls_entity_data.
ENDIF.
ENDMETHOD.
METHOD map_restrict_stag.
DATA: lr_source TYPE REF TO data,
lr_target TYPE REF TO data,
lv_tab TYPE name_komp ##NEEDED.
IF iv_entity = 'ADDITIONA'.
lv_tab = 'ADDITIONAL_TAB'.
ELSEIF iv_entity = 'PURCHINFO'.
lv_tab = 'EINE_TAB'.
ELSEIF iv_entity = 'PURCHEINA'.
lv_tab = 'EINA_TAB'.
ENDIF.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
ASSIGN lr_table_key->* TO <lt_data>.
ASSIGN lr_struc_key->* TO <ls_model_data>.
METHOD map_tab_2sta.
TYPES: BEGIN OF lty_klah,
clint TYPE clint,
class TYPE klasse_d,
klart TYPE klassenart,
END OF lty_klah.
IF iv_entity = 'ADDITIONA'.
lv_tab = 'ADDITIONAL_TAB'.
ELSEIF iv_entity = 'PURCHINFO'.
lv_tab = 'EINE_TAB'.
ELSEIF iv_entity = 'PURCHEINA'.
lv_tab = 'EINA_TAB'.
ENDIF.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
IF <lt_api_source> IS ASSIGNED.
LOOP AT <lt_api_source> ASSIGNING <ls_api_source>.
IF <fs_source> IS ASSIGNED AND <fs_target> IS ASSIGNED.
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
IF iv_entity = 'ADDITIONA'.
ASSIGN COMPONENT 'SEQUENCE' OF STRUCTURE <fs_source> TO
FIELD-SYMBOL(<lfs_seq>).
ASSIGN COMPONENT 'LFDNR' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<lfs_seq1>).
IF <lfs_seq> IS ASSIGNED AND <lfs_seq1> IS ASSIGNED.
<lfs_seq> = <lfs_seq1>.
ENDIF.
ASSIGN COMPONENT 'UNIT_ADD' OF STRUCTURE <fs_source> TO
FIELD-SYMBOL(<lfs_unit>).
ASSIGN COMPONENT 'ADDIVKME' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<lfs_vkme>).
IF <lfs_unit> IS ASSIGNED AND <lfs_vkme> IS ASSIGNED.
<lfs_unit> = <lfs_vkme>.
ENDIF.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
if iv_entity eq 'PURCHINFO' and ls_eina is NOT INITIAL.
move-CORRESPONDING ls_eina to <fs_target>.
endif.
IF iv_entity = 'ADDITIONA'.
ASSIGN COMPONENT 'ADDICLINT' OF STRUCTURE <fs_source> TO
FIELD-SYMBOL(<add_clint>).
IF <add_clint> IS ASSIGNED AND <add_clint> IS NOT INITIAL.
SELECT SINGLE clint class klart FROM klah INTO lwa_klah
WHERE clint = <add_clint>.
IF sy-subrc EQ 0.
ASSIGN COMPONENT 'CLAS_ADD' OF STRUCTURE <fs_target> TO
FIELD-SYMBOL(<clas_add>).
IF sy-subrc EQ 0.
<clas_add> = lwa_klah-class.
ENDIF.
ASSIGN COMPONENT 'KLAS_ADD' OF STRUCTURE <fs_target> TO
FIELD-SYMBOL(<klas_add>).
IF sy-subrc EQ 0.
<klas_add> = lwa_klah-klart.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
METHOD map_tax_2_sta.
DATA: lr_source TYPE REF TO data,
lr_target TYPE REF TO data,
ls_api_data TYPE /ugi4/rfm_s_dbstruc_in ##NEEDED.
DATA : lt_tax_api_x TYPE cmd_bs_mat_t_steu_x,
ls_tax_api_x TYPE cmd_bs_mat_s_steu_x,
ls_entity TYPE usmd_gov_api_s_ent_tabl,
lt_entity TYPE usmd_gov_api_ts_ent_tabl ##NEEDED.
FIELD-SYMBOLS : <fs_target> TYPE any,
<fs_source> TYPE any,
<lt_api_source> TYPE ANY TABLE,
<lt_api_source_x> TYPE ANY TABLE,
<ls_api_source> TYPE any.
CHECK is_api_data IS NOT INITIAL.
ls_api_data = is_api_data.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key
IMPORTING
er_structure = lr_struc_tax_key
er_table = lr_table_tax_key
).
* ENDIF.
IF <lt_api_source> IS ASSIGNED.
LOOP AT <lt_api_source> ASSIGNING <ls_api_source>.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
* TRY.
* io_conv_api->write_entity_data( it_entity_data =
lt_entity_data ).
* CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
* CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
* CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
* ENDTRY.
* CLEAR : lt_entity_data,ls_entity_data,<lt_data>.
ENDIF.
ENDMETHOD.
METHOD map_textfibr_comp.
DATA: lr_source TYPE REF TO data,
lr_target TYPE REF TO data,
ls_api_data TYPE /ugi4/rfm_s_dbstruc_in ##NEEDED,
* lsr_model_data TYPE REF TO data,
* lt_message TYPE usmd_t_message,
lv_textseq TYPE /ugi4/seq,
lv_fibrseq TYPE /ugi4/seq,
lv_new TYPE /ugi4/seq.
* lsr_model_del TYPE REF TO data.
DATA:
* lo_usmd_model_ext TYPE REF TO if_usmd_model_ext,
lt_text_comp TYPE STANDARD TABLE OF /ugi4/_s_ar_pp_textcomp,
ls_text_comp TYPE /ugi4/_s_ar_pp_textcomp,
lt_text_fibr TYPE STANDARD TABLE OF /ugi4/_s_ar_pp_textfibr,
ls_text_fibr TYPE /ugi4/_s_ar_pp_textfibr.
ls_api_data = is_api_data.
DATA : lt_entity_data TYPE usmd_gov_api_ts_ent_data ##NEEDED,
ls_entity_data TYPE LINE OF usmd_gov_api_ts_ent_data.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
WHEN 'TEXTFIBR'.
CLEAR lv_textseq.
LOOP AT is_api_data-textile_comp INTO DATA(ls_comp).
lv_textseq = lv_textseq + 1.
CLEAR lv_fibrseq.
lv_new = 1.
LOOP AT is_api_data-textile_fibr INTO DATA(ls_fibr) WHERE
textil_comp_pos = ls_comp-textil_comp_pos. "#EC CI_SORTSEQ
lv_fibrseq = lv_fibrseq + 1.
ls_fibr-textil_fibr_pos = lv_fibrseq.
ls_fibr-textil_comp_pos = lv_textseq.
MOVE-CORRESPONDING ls_fibr TO <fs_source>.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
METHOD map_text_2sta.
DATA:" lsr_model_data TYPE REF TO data,
lr_source TYPE REF TO data,
lr_target TYPE REF TO data,
lv_var TYPE string,
lv_tab TYPE name_komp,
lv_comp TYPE name_komp.
DATA(ls_data) = is_api_data .
IF iv_entity EQ 'MVKETEXT'.
lv_tab = 'SALES_NOTES_LINES_TAB'.
lv_comp = 'TXTMVKE'.
ELSEIF iv_entity = 'BASIDTEXT'.
lv_tab = 'NOTES_LINES_TAB'.
lv_comp = 'TXTBASIC'.
ELSEIF iv_entity = 'INSPETEXT'.
lv_tab = 'INS_LINES_TAB'.
lv_comp = 'TXTINSPEC'.
ELSEIF iv_entity = 'BPORDTEXT'.
lv_tab = 'BPORD_LINES_TAB'.
lv_comp = 'TXTBPORD'.
ENDIF.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_txt_langu
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
IF iv_entity = 'INSPETEXT'.
ASSIGN COMPONENT 'INS_TAB'
OF STRUCTURE ls_data TO <lt_api_source>.
IF <lt_api_source> IS ASSIGNED.
IF iv_entity = 'BPORDTEXT'.
ASSIGN COMPONENT 'SPRAS' OF STRUCTURE <ls_model_data> TO
FIELD-SYMBOL(<lfs_spras>).
ASSIGN COMPONENT 'TDSPRAS' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<lfs_tdspras>).
IF <lfs_spras> IS ASSIGNED AND <lfs_tdspras> IS ASSIGNED.
<lfs_spras> = <lfs_tdspras>.
ENDIF.
ASSIGN COMPONENT 'TXTBPORD' OF STRUCTURE <ls_model_data> TO
FIELD-SYMBOL(<lfs_potxt>).
ASSIGN COMPONENT 'LONGTEXT' OF STRUCTURE <ls_api_source> TO
FIELD-SYMBOL(<lfs_text>).
IF <lfs_potxt> IS ASSIGNED AND <lfs_text> IS ASSIGNED.
<lfs_potxt> = <lfs_text>.
ENDIF.
ENDIF.
IF iv_entity = 'MVKETEXT'.
IF <lfs_vkor> IS ASSIGNED AND <lfs_vkorg> IS ASSIGNED
AND
<lfs_vtwe> IS ASSIGNED AND <lfs_vtweg> IS ASSIGNED.
ENDMETHOD.
METHOD map_to_api_structure.
IF is_db_attr IS NOT INITIAL.
DATA(ls_db_attr) = is_db_attr.
fill_db_attr(
CHANGING
cs_db_attr = ls_db_attr
).
es_db_attr = ls_db_attr.
ENDIF.
ENDMETHOD.
METHOD map_unitofmsr_2sta.
ls_marm_data = is_marm_data.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
IF <ls_marm>-meinh EQ <ls_mara>-meins.
<fs_kzbme> = abap_true.
<fs_NTGEW> = <ls_mara>-ntgew.
ENDIF.
lt_zam_t_za_pp_unitofmsr = <lt_data>.
* new changes.
IF wa_uom-kzbme = /ugi4/if_mdg_bs_art_c=>gc_x.
lv_ntgew = wa_uom-ntgew.
ELSE.
lv_ntgew = 1.
ENDIF.
DO.
IF sy-subrc EQ 0.
IF wa_uom1-kzbme = /ugi4/if_mdg_bs_art_c=>gc_x.
IF wa_uom-kzbme = /ugi4/if_mdg_bs_art_c=>gc_x.
ELSE.
CATCH SYSTEM-EXCEPTIONS arithmetic_errors = 5 ##NO_HANDLER.
IF sy-subrc EQ 6.
* wa_message_info-msgid =
/ugi4/if_mdg_bs_art_c=>gc_message.
* wa_message_info-msgty = 'W'.
* wa_message_info-msgno = 230.
* APPEND wa_message_info TO et_message_info.
ENDIF.
ENDIF.
EXIT.
ELSE.
lv_mesub = wa_uom1-mesub.
* {{
* sap note 2770464
READ TABLE it_uom1 with KEY qteunit = lv_mesub kzbme = 'X'
TRANSPORTING NO FIELDS.
if sy-subrc ne 0.
wa_uom-ntgew = lv_ntgew * lv_azsub * wa_uom1-ntgew.
MODIFY it_uom FROM wa_uom.
READ TABLE <lt_data> ASSIGNING <fs_data> WITH KEY
(lv_qteunit) = wa_uom-qteunit. "#EC CI_ANYSEQ
IF sy-subrc EQ 0.
ENDIF.
ENDDO.
ENDLOOP.
* {{
* sap note 2770464
READ TABLE it_uom_temp INTO wa_uom WITH KEY kzbme =
/ugi4/if_mdg_bs_art_c=>gc_x.
IF sy-subrc EQ 0.
LOOP AT <lt_data> ASSIGNING <fs_data>.
MOVE-CORRESPONDING <fs_data> TO wa_uom1.
* ASSIGN COMPONENT 'QTEUNIT' OF STRUCTURE <fs_data> TO FIELD-
SYMBOL(<fs_qteunit>).
* ASSIGN COMPONENT 'MESUB' OF STRUCTURE <fs_data> TO FIELD-
SYMBOL(<mesub>).
ASSIGN COMPONENT 'NTGEW' OF STRUCTURE <fs_data> TO <fs_ntgew>.
*}
*}
* sap Note : 2770464
* caluc
ENDMETHOD.
METHOD map_usmd_mess_to_bapiret.
DATA: l_bapiret2 TYPE bapiret2.
METHOD map_variants_stag.
DATA: "lsr_model_data TYPE REF TO data,
* lr_source TYPE REF TO data,
* lr_target TYPE REF TO data,
lrt_data TYPE REF TO data,
lv_variant_seperator TYPE /ugi4/rfm_var_split,
lv_cawnt1 TYPE string,
lv_cawnt TYPE string,
lv_var_comb TYPE string,
lv_var_comb1 TYPE string,
lrs_data TYPE REF TO data,
* lt_message TYPE usmd_t_message,
lv_tab TYPE name_komp.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
read_variants(
EXPORTING
is_variants = <lt_api_source> " Table type for
Variants
IMPORTING
et_variants = DATA(lt_variants)
).
DATA(lt_variants1) = lt_variants.
SORT lt_variants BY varnr.
DELETE ADJACENT DUPLICATES FROM lt_variants COMPARING varnr.
SORT lt_variants BY varnr atnam.
LOOP AT lt_variants INTO DATA(wa_var).
READ TABLE lt_variants1 INTO DATA(ls_var1) WITH KEY varnr =
wa_var-varnr.
IF sy-subrc = 0.
DATA(lv_tabix) = sy-tabix.
IF lv_cawnt1 IS INITIAL.
lv_cawnt1 = ls_var1-atwrt.
ELSE.
CONCATENATE lv_cawnt1 lv_variant_seperator ls_var1-atwrt
INTO lv_cawnt.
lv_cawnt1 = lv_cawnt.
ENDIF.
IF lv_var_comb1 IS INITIAL.
lv_var_comb1 = ls_var1-atnam.
ELSE.
CONCATENATE lv_var_comb1
/ugi4/if_mdg_bs_art_c=>gc_character_separator ls_var1-atnam INTO
lv_var_comb.
lv_var_comb1 = lv_var_comb.
ENDIF.
ENDLOOP.
ENDMETHOD.
METHOD mara_mandatory_checks.
DATA: it_taba TYPE STANDARD TABLE OF dd07v,
it_tabb TYPE STANDARD TABLE OF dd07v.
IF is_mara-matkl IS INITIAL.
MESSAGE e031(/ugi4/_ar_msg) INTO DATA(lv_message) WITH 'MATKL'
##NEEDED.
add_message( CHANGING ct_message = ct_message "
Error Messages
).
ev_error = abap_true.
ELSE.
CALL FUNCTION 'T023_SINGLE_READ'
EXPORTING
* KZRFB = ' '
t023_matkl = is_mara-matkl
* IMPORTING
* WT023 =
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e199(mh) WITH is_mara-matkl INTO lv_message.
add_message( CHANGING ct_message = ct_message "
Error Messages
).
ev_error = abap_true.
ENDIF.
ENDIF.
IF is_mara-attyp IS INITIAL.
ENDIF.
ENDIF.
ENDIF.
IF is_mara-mtart IS INITIAL.
MESSAGE e031(/ugi4/_ar_msg) INTO lv_message WITH 'MTART'.
add_message( CHANGING ct_message = ct_message "
Error Messages
).
ev_error = abap_true.
ELSE.
CALL FUNCTION 'T134_SINGLE_READ'
EXPORTING
t134_mtart = is_mara-mtart
* IMPORTING
* WT134 =
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE e031(/ugi4/_ar_msg) INTO lv_message WITH 'MTART'.
add_message( CHANGING ct_message = ct_message "
Error Messages
).
ev_error = abap_true.
ENDIF.
ENDIF.
IF is_creq_attr-creq_text IS INITIAL AND is_creq_attr-crequest_id
IS INITIAL.
MESSAGE ID 'USMD2' TYPE 'E' NUMBER '281'
INTO lv_message.
add_message( CHANGING ct_message = ct_message "
Error Messages
).
ev_error = abap_true.
ENDIF.
ENDMETHOD.
METHOD process.
DATA : lo_api TYPE REF TO /ugi4/cl_ar_article_maint_api.
DATA : ls_db_data TYPE /ugi4/rfm_s_dbstruc_in.
DATA:
ls_usmd_value TYPE usmd_s_value,
lt_crequest TYPE usmd_ts_crequest,
lt_usmd_message TYPE usmd_t_message,
lt_usmd_value TYPE usmd_ts_value.
ls_db_data = im_db_data.
lo_crequest->read_objectlist(
EXPORTING
iv_entity_type = 'MARA' " Entity Type
IMPORTING
et_entity = DATA(lt_entity_table) "
ChangeRequest Entity TableType
* et_message = " Messages
).
ENDIF.
ENDIF.
ELSEIF im_creq_attr-matnr IS NOT INITIAL.
ls_usmd_value-fieldname = 'MARA'.
ls_usmd_value-value = im_creq_attr-matnr.
INSERT ls_usmd_value INTO TABLE lt_usmd_value.
" If Material is associated with any change request then reject
the material
CALL METHOD
cl_usmd_crequest_api=>if_usmd_crequest_api~retrieve_crequest
EXPORTING
iv_entity = 'MARA'
it_entity_key = lt_usmd_value
iv_model = 'AR'
if_activeonly = abap_true
IMPORTING
et_crequest = lt_crequest
et_message = lt_usmd_message.
if lt_crequest is NOT INITIAL.
LOOP AT lt_crequest INTO ls_crequest WHERE usmd_creq_status =
'05' OR usmd_creq_status = '06' . "#EC CI_SORTSEQ
" Status 05 = 'Final Check Approved'; 06 = 'Final Check
Rejected'
lv_create_in_staging = abap_true. " If CRequest status is 05
or 06 (already approved or rejected), then the object is not locked in
Staging
* EXIT.
ENDLOOP.
IF lv_mand_check IS INITIAL.
lo_api->map(
EXPORTING
is_rfm_api = ls_db_data " Data Mat value
im_creq_attr = im_creq_attr " Change Request
Attributes
IMPORTING
et_message = DATA(lt_message) " Messages
eo_conv_api = DATA(lo_conv_api) " Governance
API: Single Chg. Req. Convenience Governance API
) ##NEEDED.
ENDIF.
lo_api->map_usmd_mess_to_bapiret(
EXPORTING
it_usmd_message = lt_message " Messages
CHANGING
ct_bapirettab = et_message " Table with BAPI
Return Information
).
ELSE.
TRY.
CALL METHOD
('/UGIRMP/CL_MDG_RFM_MASS_UTIL')=>('PROCESS_EXT_RMP_CR')
EXPORTING
im_db_data = ls_db_data " Unified API
Article Master Data Structure
im_creq_attr = im_creq_attr " Change Request Attributes
IMPORTING
et_message = et_message. " Table with BAPI
Return Information
lo_api->map_usmd_mess_to_bapiret(
EXPORTING
it_usmd_message = lt_message "
Messages
CHANGING
ct_bapirettab = et_message " Table
with BAPI Return Information
).
CATCH cx_root INTO DATA(lo_cx_root) ##NO_HANDLER ##NEEDED.
ENDTRY.
ENDIF.
ENDMETHOD.
METHOD read.
DATA: lv_kzrfb TYPE kzrfb VALUE 'X', "Set Reset
Buffer to X, so as to follow stateless model.
lv_sperrmodus TYPE spera, "Lock type-> external
appl should lock the materials, cl_cmd_bs_mat_api no lock on read
lv_kzref TYPE t130f-kzref VALUE ' ',
FIELD-SYMBOLS:
* <mt_mara_in> TYPE mara,
* <mt_marc_in> TYPE marc,
* <mt_mard_in> TYPE mard,
* <mt_mbew_in> TYPE mbew,
* <mt_mlgn_in> TYPE mlgn,
* <mt_mlgt_in> TYPE mlgt,
* <mt_mvke_in> TYPE mvke,
<fs_mara_keys> TYPE pre03,
<fs_marc_keys> TYPE pre01,
<fs_mvke_keys> TYPE pre10,
<fs_mt_product_neuflag> TYPE ty_product_neuflag.
ls_keys = is_keys.
ENDIF.
IF is_not_material EQ abap_true.
**** Access to table MAW1 *****************
CALL FUNCTION 'MAW1_ARRAY_READ'
EXPORTING
kzrfb = lv_kzrfb
TABLES
maw1_tab = es_tbl_db-t_maw1
ipre03 = lt_maw1_key.
* --------------------------------MLAN-----------------------------------
------------
CALL FUNCTION 'MLAN_REFRESH'.
CLEAR lt_steuertab.
ENDLOOP.
SORT es_tbl_db-t_steummtab BY matnr aland taxim.
DELETE ADJACENT DUPLICATES FROM es_tbl_db-t_steummtab.
*** --------------------------------MLGN---------------------------------
--------------
*
* LOOP at ms_tbl_in-t_mlgn ASSIGNING <mt_mlgn_in> WHERE matnr is NOT
INITIAL and matnr ne '0'.
* ls_mlgn_key-matnr = <mt_mlgn_in>-matnr.
* ls_mlgn_key-lgnum = <mt_mlgn_in>-lgnum.
* append ls_mlgn_key to lt_mlgn_key.
* ENDLOOP.
ENDIF.
* MPGD read
DATA(mpgd_keys) = is_keys-marc_keys.
CALL FUNCTION 'MPGD_ARRAY_READ'
EXPORTING
kzrfb = lv_kzrfb
TABLES
ipre01 = mpgd_keys
mpgd_tab = es_tbl_db-t_mpgd.
* IF kz_verw = x.
*** read all MOFFs to Materials which are being extended
*** read all MARCs and MVKEs to those materials which
*** a) are being created
*** b) have a MARC segment
* REFRESH ipre03_moff. REFRESH ipre03_msta.
* LOOP AT amara_ueb_t INTO amara_ueb WHERE tcode = 'MM01' OR tcode =
'MM11' "SDIMP ZJK I306463
* AND NOT matnr IS INITIAL
* AND matnr NE '0'.
* ipre03_moff-matnr = amara_ueb-matnr.
* APPEND ipre03_moff.
* READ TABLE amarc_ueb_t INTO amarc_ueb WITH KEY matnr =
amara_ueb-matnr. "SDIMP ZJK I306463
* IF sy-subrc IS INITIAL.
* APPEND ipre03_moff TO ipre03_msta."for MVKE/MARC
* ENDIF.
* ENDLOOP.
* CALL FUNCTION 'MOFF_ARRAY_READ_MATNR_ALL'
* EXPORTING
* kzrfb = lv_kzrfb
* neuflag = lv_neuflag
* TABLES
* ipre03 = lt_moff_key
* EXCEPTIONS
* enqueue_mode_changed = 1
* OTHERS = 2.
* ipre03_moff[] = ipre03_msta[].
* CALL FUNCTION 'MARC_ARRAY_READ_MATNR_ALL'
** EXPORTING
** KZRFB = ' '
** SPERRMODUS = ' '
** STD_SPERRMODUS = ' '
** EXCEPTION_ON_LOCK = ' '
* TABLES
* ipre03 = lt_moff_key
** MARC_TAB =
* EXCEPTIONS
* enqueue_mode_changed = 1
* lock_system_error = 2
* lock_on_marc = 3
* OTHERS = 4.
* CALL FUNCTION 'MVKE_ARRAY_READ_MATNR_ALL'
** EXPORTING
** KZRFB = ' '
** SPERRMODUS = ' '
** STD_SPERRMODUS = ' '
** EXCEPTION_ON_LOCK = ' '
* TABLES
* ipre03 = lt_msta_key
** MVKE_TAB =
* EXCEPTIONS
* enqueue_mode_changed = 1
* lock_system_error = 2
* lock_on_mvke = 3
* OTHERS = 4.
****************************** LONG
TEXTS*********************************
* IF IV_COMPLETE_PRODUCT EQ abap_true.
* LOOP AT is_keys-mara_keys ASSIGNING <fs_mara_keys>.
*
* DATA: ls_prd_text TYPE cmd_bs_mat_s_notes,
* ls_plant_text TYPE ty_plant_notes,
* ls_sales_text TYPE cmd_bs_mat_s_notes_sales,
* lt_read_text TYPE TABLE OF tline,
* ls_read_text TYPE tline,
* lv_string TYPE string,
* lt_stxl TYPE TABLE OF stxl,
* lv_tdname TYPE tdobname.
* CLEAR lt_stxl. REFRESH lt_stxl.
* CLEAR lv_tdname.
* CONCATENATE <fs_mara_keys>-matnr '' INTO lv_tdname RESPECTING
BLANKS.
* REPLACE SECTION OFFSET 40 OF lv_tdname WITH '%'.
* SELECT * FROM stxl INTO CORRESPONDING FIELDS OF TABLE lt_stxl
WHERE tdname LIKE lv_tdname.
* LOOP AT lt_stxl INTO DATA(ls_stxl).
* IF strlen( ls_stxl-tdname ) <= 40.
* ls_prd_text-matnr = <fs_mara_keys>-matnr.
* ls_prd_text-langu = ls_stxl-tdspras.
* ls_prd_text-tdid = ls_stxl-tdid.
* CALL FUNCTION 'READ_TEXT'
* EXPORTING
** client = SY-MANDT " Client
* id = ls_stxl-tdid " Text ID of text
to be read
* language = ls_stxl-tdspras " Language of
text to be read
* name = ls_stxl-tdname " Name of text
to be read
* object = 'MATERIAL' " Object of text to
be read
* TABLES
* lines = lt_read_text
* EXCEPTIONS
* id = 1
* language = 2
* name = 3
* not_found = 4
* object = 5
* reference_check = 6
* wrong_access_to_archive = 7
* OTHERS = 8.
* IF sy-subrc EQ 0.
* CLEAR lv_string.
* LOOP AT lt_read_text INTO ls_read_text.
* CONCATENATE lv_string ls_read_text-tdline INTO
lv_string.
* ENDLOOP.
* ls_prd_text-note = lv_string.
* ENDIF.
* INSERT ls_prd_text INTO TABLE ES_tbl_db-t_text.
* CLEAR ls_prd_text.
* ELSEIF strlen( ls_stxl-tdname ) > 40 AND strlen( ls_stxl-
tdname ) <= 45.
*
* ls_plant_text-matnr = <fs_mara_keys>-matnr.
* ls_plant_text-werks = substring( val = ls_stxl-tdname off =
41 len = 4 ).
* ls_plant_text-tdid = ls_stxl-tdid.
* ls_plant_text-langu = ls_stxl-tdspras.
* CALL FUNCTION 'READ_TEXT'
* EXPORTING
** client = SY-MANDT " Client
* id = ls_stxl-tdid " Text ID of text
to be read
* language = ls_stxl-tdspras " Language of
text to be read
* name = ls_stxl-tdname " Name of text
to be read
* object = 'MDTXT' " Object of text to be
read
* TABLES
* lines = lt_read_text
* EXCEPTIONS
* id = 1
* language = 2
* name = 3
* not_found = 4
* object = 5
* reference_check = 6
* wrong_access_to_archive = 7
* OTHERS = 8.
* IF sy-subrc EQ 0.
* CLEAR lv_string.
* LOOP AT lt_read_text INTO ls_read_text.
* CONCATENATE lv_string ls_read_text-tdline INTO
lv_string.
* ENDLOOP.
* ls_plant_text-note = lv_string.
* ENDIF.
* INSERT ls_plant_text INTO TABLE ES_tbl_db-t_plant_text.
* CLEAR ls_plant_text.
* ELSEIF strlen( ls_stxl-tdname ) > 45 AND strlen( ls_stxl-
tdname ) <= 47.
* ls_sales_text-matnr = <fs_mara_keys>-matnr.
* ls_sales_text-langu = ls_stxl-tdspras.
* ls_sales_text-tdid = ls_stxl-tdid.
* ls_sales_text-vkorg = substring( val = ls_stxl-tdname off =
40 len = 4 ).
* ls_sales_text-vtweg = substring( val = ls_stxl-tdname off =
44 len = 2 ).
* CALL FUNCTION 'READ_TEXT'
* EXPORTING
** client = SY-MANDT " Client
* id = ls_stxl-tdid " Text ID of text
to be read
* language = ls_stxl-tdspras " Language of
text to be read
* name = ls_stxl-tdname " Name of text
to be read
* object = 'MVKE' " Object of text to be
read
* TABLES
* lines = lt_read_text
* EXCEPTIONS
* id = 1
* language = 2
* name = 3
* not_found = 4
* object = 5
* reference_check = 6
* wrong_access_to_archive = 7
* OTHERS = 8.
* IF sy-subrc <> 0.
** message id sy-msgid type sy-msgty number sy-msgno
** with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
* ELSE.
* CLEAR lv_string.
* LOOP AT lt_read_text INTO ls_read_text.
* CONCATENATE lv_string ls_read_text-tdline INTO
lv_string.
* ENDLOOP.
* ls_sales_text-note = lv_string.
* ENDIF.
* INSERT ls_sales_text INTO TABLE ES_tbl_db-t_sales_text.
* CLEAR ls_sales_text.
* ENDIF.
* ENDLOOP.
* ENDLOOP.
* ENDIF.
**************************LONG TEXTS********************************
ENDMETHOD.
METHOD read_all_variants_seasons.
SORT lt_matnr_season_db.
DELETE ADJACENT DUPLICATES FROM lt_matnr_season_db.
* generic article in front of variants
INSERT <fs_it_seasons_keys_read>-matnr INTO
lt_matnr_season_db INDEX 1.
ELSE.
IF <fs_it_seasons_keys_read>-attyp = '00' OR ls_mara-attyp =
'00' OR <fs_it_seasons_keys_read>-attyp = '10' OR ls_mara-attyp = '10' OR
<fs_it_seasons_keys_read>-attyp = '11' OR ls_mara-attyp =
'11' OR <fs_it_seasons_keys_read>-attyp = '12' OR ls_mara-attyp = '12'.
APPEND <fs_it_seasons_keys_read>-matnr TO
lt_matnr_season_db.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
* DB Read
IF lt_matnr_season_db IS NOT INITIAL.
cl_rfm_article_season_data=>fetch_db_data( it_matnr =
lt_matnr_season_db ).
mt_seasons_db = cl_rfm_article_season_data=>mt_seasons_mat_db.
ENDIF.
METHOD read_values.
* * TAX Data.
DATA : lt_steur TYPE STANDARD TABLE OF mg03steuer.
CALL FUNCTION 'STEUERTAB_READ_RT'
EXPORTING
kzrfb = abap_true
matnr = i_matnr
TABLES
steuertab = lt_steur
EXCEPTIONS
wrong_call = 1
steuertab_empty = 2
OTHERS = 3.
IF sy-subrc = 0.
LOOP AT lt_steur INTO DATA(ls_steur).
MOVE-CORRESPONDING ls_steur TO ls_tax_tab ##ENH_OK.
ls_tax_tab-matnr = p_mat_to.
INSERT ls_tax_tab INTO TABLE lt_tax_tab.
* Implement suitable error handling here
ENDLOOP.
ENDIF.
* malg.
ls_rfm_api-data-mara_tab = lt_mara_tab.
ls_rfm_api-data-makt_tab = lt_makt_tab.
ls_rfm_api-data-maw1_tab = lt_maw1_tab.
ls_rfm_api-data-marm_tab = lt_marm_tab.
ls_rfm_api-data-tax_tab = lt_tax_tab.
ls_rfm_api-data-textile_comp = lt_textile_comp.
ls_rfm_api-data-textile_fibr = lt_textile_fibr.
ls_rfm_api-data-bom_tab = lt_bom_tab.
ls_rfm_api-data-malg_tab = lt_malg_tab.
ls_rfm_api-data-additional_tab = lt_additionals_tab.
ls_rfm_api-data-marc_tab = lt_marc_tab.
ls_rfm_api-data-mvke_tab = lt_mvke_tab.
ls_rfm_api-data-mpop_tab = lt_mpop_tab.
ls_rfm_api-data-wlk1_tab = lt_wlk1_tab.
ls_rfm_api-data-mbew_tab = lt_mbew_tab.
ls_rfm_api-data-wrf_matgrp_sku_tab = lt_wrf_matgrp_sku.
ls_rfm_api-data-wlk2_tab = lt_wlk2_tab.
ls_rfm_api-data-mlgn_tab = lt_mlgn_tab.
ls_rfm_api-data-mlgt_tab = lt_mlgt_tab.
ls_rfm_api-data-variants_tab = lt_variants.
ls_rfm_api-data-restrict_tab = lt_restrict.
DATA(ls_class) =
/ugi4/mdg_bs_ecc_ar_services=>get_conf_class_new_gen( EXPORTING iv_satnr
= i_matnr ).
ls_class_gen-mara = i_matnr.
ls_class_gen-klart_var = ls_class-klart.
ls_class_gen-class_var = ls_class-class.
INSERT ls_class_gen INTO TABLE lt_class_gen.
ls_rfm_api-data-class_gen_tab = lt_class_gen.
ls_rfm_api-data-mean_tab = lt_mean_tab.
ls_rfm_api-data-mlea_tab = lt_mlea_tab.
ls_rfm_api-data-eina_tab = lt_eina_tab.
ls_rfm_api-data-eine_tab = lt_eine_tab.
ls_rfm_api-data-mamt_tab = lt_mamt_tab.
ls_rfm_api-data-fsh_seasons_mat_tab = lt_sesons_tab.
IF lv_class NE ls_mara_tab-matkl.
IF lv_class IS NOT INITIAL.
ls_char_prof-matnr = p_mat_to .
ls_char_prof-charp = lv_class.
INSERT ls_char_prof INTO TABLE lt_char_prof.
ENDIF.
ENDIF.
IF it_value_assigned IS NOT INITIAL.
LOOP AT it_char INTO ls_char .
CLEAR lv_valcnt.
LOOP AT it_value_assigned INTO ls_value_assigned WHERE atinn =
ls_char-atinn.
ls_value-charid = ls_value_assigned-atinn.
ls_value-classtype = '026'. " Default Class.
* ls_value-valcnt = lv_valcnt.
IF ls_value_assigned-atzhl IS NOT INITIAL.
ls_value-valcnt = ls_value_assigned-atzhl.
ELSE.
lv_valcnt = lv_valcnt + 1.
ls_value-valcnt = lv_valcnt.
ENDIF.
ls_value-ataw1_chr = ls_value_assigned-ataw1.
ls_value-atawe_chr = ls_value_assigned-atawe.
ls_value-atcod_chr = ls_value_assigned-atcod.
ls_value-atflb_chr = ls_value_assigned-atflb.
ls_value-atflv_chr = ls_value_assigned-atflv.
ls_value-atwrt2 = ls_value_assigned-atwrt.
ls_value-atsrt_chr = ls_value_assigned-atsrt.
ls_value-atnam2_ch = ls_value_assigned-atnam.
* ls_value-atwrt_val = ls_valuation-value.
** MOVE-CORRESPONDING ls_value TO <fs_data>.
INSERT ls_value INTO TABLE lt_characval.
ENDLOOP.
ENDLOOP.
ENDIF.
ls_rfm_api-data-characval_tab = lt_characval.
ls_rfm_api-data-char_prof_tab = lt_char_prof.
DATA :ls_creq_attr TYPE /ugi4/creq_attr_api.
ls_creq_attr-cr_type = 'AR01'.
ls_creq_attr-creq_text = 'GDS_API'.
ls_creq_attr-due_date = '99991231'.
*ls_creq_attr-action = '00'.
ls_creq_attr-action = cl_usmd_crequest_action=>gc_draft_action-
submit.
ls_creq_attr-save_mode = 'B'.
et_data = ls_rfm_api-data.
es_creqdet = ls_creq_attr.
ENDMETHOD.
METHOD read_variants.
DATA : lt_variants TYPE /ugi4/cmd_rfm_t_variants.
DATA : lt_var_temp TYPE tt_var_struc,
lv_field TYPE ddobjname,
ls_var_temp TYPE ty_var_struc.
* DATA : lv_atinn TYPE atinn,
* lv_atnam TYPE atnam,
* lv_atwrt TYPE atwrt.
et_variants = lt_var_temp.
ENDMETHOD.
METHOD write_entity_data.
DATA : lt_entity_data TYPE usmd_gov_api_ts_ent_data.
DATA(lt_entity_write) = it_entity_data.
READ TABLE lt_entity_write INTO DATA(ls_entity_data) WITH KEY entity
= 'MARA'.
IF sy-subrc EQ 0.
DELETE lt_entity_write WHERE entity = 'MARA'.
INSERT ls_entity_data INTO TABLE lt_entity_data.
CLEAR ls_entity_data.
TRY.
co_conv_api->write_entity_data( it_entity_data = lt_entity_data
).
co_conv_api->confirm_entity_data( ).
CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
CLEAR lt_entity_data.
CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
CLEAR lt_entity_data.
CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
DATA(lt_messages) = co_conv_api->get_messages( ).
APPEND LINES OF lt_messages TO et_message.
ENDTRY.
* REFRESH lt_entity_data.
CLEAR lt_entity_data.
ENDIF.
ENDMETHOD.
METHOD add_message.
* *--------------------------------------------------------------------
*
* This message adds the last system message to the given message table.
* Pay attention: the fields sy-msgid, sy-msgty, sy-msgno, ... must be
* filled before this method is called, e.g. by a call of statement
* 'MESSAGE ... into lv_message' where lv_message is of type STRING.
*--------------------------------------------------------------------*
*---------------------------------------------------------------------*
* D A T A - D E C L A R A T I O N *
*---------------------------------------------------------------------*
DATA: ls_message LIKE LINE OF ct_message.
*---------------------------------------------------------------------*
* S O U R C E - C O D E *
*---------------------------------------------------------------------*
ls_message-id = sy-msgid.
ls_message-type = sy-msgty.
ls_message-number = sy-msgno.
ls_message-message_v1 = sy-msgv1.
ls_message-message_v2 = sy-msgv2.
ls_message-message_v3 = sy-msgv3.
ls_message-message_v4 = sy-msgv4.
ENDMETHOD.
METHOD calc_azsub.
*************************************************************************
****
* This method calculates the AZSUB field of UNITOFMSR recursively.
*************************************************************************
****
lt_unitofmsr[] = it_unitofmsr[].
LOOP AT lt_unitofmsr INTO ls_unitofmsr.
IF ls_unitofmsr-qteunit EQ iv_mesub.
IF cv_azsub IS NOT INITIAL AND ls_unitofmsr-umrez IS NOT INITIAL
AND ls_unitofmsr-umren IS NOT INITIAL.
cv_azsub = cv_azsub / ( ls_unitofmsr-umrez / ls_unitofmsr-umren
).
DELETE lt_unitofmsr INDEX sy-tabix.
ENDLOOP.
RETURN.
ENDMETHOD.
METHOD care_code_convert_int2ext.
DATA: wa_message LIKE LINE OF et_message.
DATA: lv_region_text TYPE val_text ##NEEDED,
ls_care_types_t TYPE wrf_care_types_t,
lt_dd07v_tab TYPE TABLE OF dd07v,
ls_dd07v_tab TYPE dd07v.
CLEAR: ep_care_code_ext.
IF ip_care_type IS INITIAL
OR ip_region IS INITIAL
OR ip_care_code_int IS INITIAL.
wa_message-msgid = /ugi4/if_mdg_bs_art_c=>gc_message.
wa_message-msgno = 169.
wa_message-msgty = 'E'.
APPEND wa_message TO et_message.
CLEAR wa_message.
ENDIF.
IF sy-subrc <> 0.
lv_region_text = ip_region.
IF sy-subrc = 0.
SORT lt_dd07v_tab BY domvalue_l.
IF sy-subrc <> 0.
ls_care_types_t-care_type_descr = ip_care_type.
ENDIF.
wa_message-msgid = /ugi4/if_mdg_bs_art_c=>gc_message.
wa_message-msgno = 170.
wa_message-msgty = 'E'.
wa_message-msgv1 = ip_care_code_int.
wa_message-msgv2 = ls_care_types_t-care_type_descr.
ENDIF.
ENDMETHOD.
METHOD care_code_convert_mara2ext.
CLEAR: es_care_codes_ext.
es_care_codes_ext-region = ip_region.
ls_care_codes_int-washcode = ip_mara_care_code+lv_offset(2).
ENDIF.
READ TABLE lt_wrf_care_types INTO ls_wrf_care_types
WITH KEY care_type = '2'
BINARY SEARCH.
IF sy-subrc = 0.
lv_offset = ls_wrf_care_types-index_pos.
ls_care_codes_int-bleachcode = ip_mara_care_code+lv_offset(2).
ENDIF.
ls_care_codes_int-ironingcode = ip_mara_care_code+lv_offset(2).
ENDIF.
ls_care_codes_int-drycleancode = ip_mara_care_code+lv_offset(2).
ENDIF.
ls_care_codes_int-thumblecode = ip_mara_care_code+lv_offset(2).
ENDIF.
ls_care_codes_int-wetcleancode = ip_mara_care_code+lv_offset(2).
ENDIF.
* Conversion of the internal care codes into the external care codes
IF ls_care_codes_int-washcode IS NOT INITIAL.
me->care_code_convert_int2ext(
EXPORTING
ip_care_type = '1'
ip_region = ip_region
ip_care_code_int = ls_care_codes_int-washcode
IMPORTING
ep_care_code_ext = es_care_codes_ext-washcode
CHANGING
et_message = et_message ).
ENDIF.
ENDMETHOD.
METHOD check_internal.
DATA: lv_matnr TYPE matnr,
ls_t134 TYPE t134,
lv_flag1(1) TYPE c,
ls_mara_read TYPE mara ##NEEDED,
lv_matnr_final TYPE matnr.
ls_mara-matnr = lv_matnr.
ENDIF.
ELSE.
lv_matnr_final = ls_mara-matnr.
ENDIF.
ENDIF.
ELSE.
lv_matnr_final = ls_mara-matnr.
ENDIF.
ENDIF.
CLEAR gv_matnr_final.
gv_matnr_final = lv_matnr_final.
IF gv_matnr_final IS INITIAL.
gv_matnr_final = ls_mara-matnr.
ENDIF.
ENDMETHOD.
METHOD delete_entity_data.
DATA: lt_messages TYPE usmd_t_message.
TRY.
co_conv_api->delete_entity_data(
EXPORTING
it_entity_keys = it_entity_data " MDG:
Table Type for Table of Entities Structure
* iv_struct = gc_struct_key_attr " Type of Data Structure
).
CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
lt_messages = co_conv_api->get_messages( ).
CATCH cx_usmd_gov_api_entity_del. " Error While
Deleting an Entity
lt_messages = co_conv_api->get_messages( ).
CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
lt_messages = co_conv_api->get_messages( ).
* DATA(lt_messages) = co_conv_api->get_messages( ).
APPEND LINES OF lt_messages TO et_message.
ENDTRY.
ENDMETHOD.
METHOD fill_db_attr.
DATA:ls_mara TYPE cmd_bs_mat_s_mara,
ls_maw1 TYPE cmd_prd_s_maw1_data,
ls_makt TYPE cmd_bs_mat_s_makt,
ls_marm TYPE cmd_bs_mat_s_marm,
ls_mean TYPE cmd_bs_mat_s_mean,
ls_marc TYPE cmd_bs_mat_s_marc,
ls_mard TYPE cmd_bs_mat_s_mard,
ls_mbew TYPE cmd_bs_mat_s_mbew,
ls_mlgn TYPE cmd_bs_mat_s_mlgn,
ls_mlgt TYPE cmd_bs_mat_s_mlgt,
ls_mvke TYPE cmd_bs_mat_s_mvke,
ls_mlan_purchase TYPE cmd_bs_mat_s_steumm,
ls_mlan_sales TYPE cmd_bs_mat_s_steu,
ls_wlk2 TYPE cmd_prd_s_wlk2_data,
ls_mamt TYPE cmd_prd_s_mamt_data,
ls_mlea TYPE cmd_prd_s_mlea_data,
ls_fsh_seasons_mat TYPE cmd_prd_s_fsh_seasons_mat_data,
ls_keys TYPE ty_keys.
*--------------------------------------------------------------------*
* MARA DB Mapping
IF ls_tbl_db-t_mara IS NOT INITIAL.
get_components(
EXPORTING
is_data = ls_mara
IMPORTING
et_components = DATA(lt_components)
).
*--------------------------------------------------------------------*
* MAW1 mapping
IF ls_tbl_db-t_maw1 IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_maw1
IMPORTING
et_components = lt_components
).
*--------------------------------------------------------------------*
* MAKT mapping
IF ls_tbl_db-t_makt IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_makt
IMPORTING
et_components = lt_components
).
* SORT ls_tbl_db-t_makt BY matnr spras.
LOOP AT cs_db_attr-makt_tab ASSIGNING FIELD-SYMBOL(<ls_makt_attr>).
LOOP AT lt_components ASSIGNING <ls_components>.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_makt_attr> TO <lv_attr_val>.
CHECK <lv_attr_val> IS ASSIGNED.
READ TABLE cs_db_attr-makt_x_tab ASSIGNING FIELD-
SYMBOL(<ls_makt_attr_x>) WITH KEY matnr = <ls_makt_attr>-matnr
spras = ls_makt_db-spras.
IF sy-subrc NE 0.
INSERT ls_makt_db INTO TABLE cs_db_attr-makt_tab.
ENDIF.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_marm IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_marm
IMPORTING
et_components = lt_components
).
*--------------------------------------------------------------------*
* MEAN Mapping
IF ls_tbl_db-t_mean IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mean
IMPORTING
et_components = lt_components
).
meinh = <ls_mean_attr>-meinh
meinh = <ls_mean_attr>-meinh
*--------------------------------------------------------------------*
IF ls_tbl_db-t_marc IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_marc
IMPORTING
et_components = lt_components
).
werks = <ls_marc_attr>-werks
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_marc_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_marc INTO DATA(ls_marc_db) WITH KEY
matnr = <ls_marc_attr>-matnr
werks = <ls_marc_attr>-werks
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_marc_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mard IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mard
IMPORTING
et_components = lt_components
).
werks = <ls_mard_attr>-werks
lgort = <ls_mard_attr>-lgort.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mard_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mard INTO DATA(ls_mard_db) WITH KEY
matnr = <ls_mard_attr>-matnr
werks = <ls_mard_attr>-werks
lgort = <ls_mard_attr>-lgort.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_mard_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mbew IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mbew
IMPORTING
et_components = lt_components
).
bwkey = <ls_mbew_attr>-bwkey
bwtar = <ls_mbew_attr>-bwtar .
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mbew_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mbew INTO DATA(ls_mbew_db) WITH KEY
matnr = <ls_mbew_attr>-matnr
bwkey = <ls_mbew_attr>-bwkey
bwtar = <ls_mbew_attr>-bwtar.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_mbew_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mlgn IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mlgn
IMPORTING
et_components = lt_components
).
lgnum = <ls_mlgn_attr>-lgnum .
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mlgn_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mlgn INTO DATA(ls_mlgn_db) WITH KEY
matnr = <ls_mlgn_attr>-matnr
lgnum = <ls_mlgn_attr>-lgnum.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_mlgn_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mlgt IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mlgt
IMPORTING
et_components = lt_components
).
lgnum = <ls_mlgt_attr>-lgnum
lgtyp = <ls_mlgt_attr>-lgtyp.
"" BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mlgt_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mlgt INTO DATA(ls_mlgt_db) WITH KEY
matnr = <ls_mlgt_attr>-matnr
lgnum = <ls_mlgt_attr>-lgnum
lgtyp = <ls_mlgt_attr>-lgtyp.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_mlgt_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mvke IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mvke
IMPORTING
et_components = lt_components
).
vkorg = <ls_mvke_attr>-vkorg
vtweg = <ls_mvke_attr>-vtweg.
"" BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mvke_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mvke INTO DATA(ls_mvke_db) WITH KEY
matnr = <ls_mvke_attr>-matnr
vkorg = <ls_mvke_attr>-vkorg
vtweg = <ls_mvke_attr>-vtweg.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_mvke_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mlan IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mlan_purchase
IMPORTING
et_components = lt_components
).
aland = <ls_mlan_purchase_attr>-aland.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mlan_purchase_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mlan INTO DATA(ls_mlan_purchase_db) WITH
KEY matnr = <ls_mlan_purchase_attr>-matnr
aland = <ls_mlan_purchase_attr>-aland
taxim = <ls_mlan_purchase_attr>-taxim.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
ls_mlan_purchase_db TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mlan_sales
IMPORTING
et_components = lt_components
).
aland = <ls_mlan_sales_attr>-aland.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mlan_sales_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mlan INTO DATA(ls_mlan_sales_db) WITH
KEY matnr = <ls_mlan_sales_attr>-matnr
aland = <ls_mlan_sales_attr>-aland.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
ls_mlan_sales_db TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_wlk2 IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_wlk2
IMPORTING
et_components = lt_components
).
vkorg = <ls_wlk2_attr>-vkorg
vtweg = <ls_wlk2_attr>-vtweg
werks = <ls_wlk2_attr>-werks.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_wlk2_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_wlk2 INTO DATA(ls_wlk2_db) WITH KEY
matnr = <ls_wlk2_attr>-matnr
vkorg = <ls_wlk2_attr>-vkorg
vtweg = <ls_wlk2_attr>-vtweg
werks = <ls_wlk2_attr>-werks.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_wlk2_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mamt IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mamt
IMPORTING
et_components = lt_components
).
spras = <ls_mamt_attr>-spras
meinh = <ls_mamt_attr>-meinh
mtxid = <ls_mamt_attr>-mtxid
lfdnr = <ls_mamt_attr>-lfdnr.
"" BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mamt_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mamt INTO DATA(ls_mamt_db) WITH KEY
matnr = <ls_mamt_attr>-matnr
spras = <ls_mamt_attr>-spras
meinh = <ls_mamt_attr>-meinh
mtxid = <ls_mamt_attr>-mtxid
lfdnr = <ls_mamt_attr>-lfdnr.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_mamt_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_mlea IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_mlea
IMPORTING
et_components = lt_components
).
meinh = <ls_mlea_attr>-meinh
lifnr = <ls_mlea_attr>-lifnr
lfnum = <ls_mlea_attr>-lfnum .
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_mlea_attr_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_mlea INTO DATA(ls_mlea_db) WITH KEY
matnr = <ls_mlea_attr>-matnr
meinh = <ls_mlea_attr>-meinh
lifnr = <ls_mlea_attr>-lifnr
lfnum = <ls_mlea_attr>-lfnum .
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE ls_mlea_db
TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
*--------------------------------------------------------------------*
IF ls_tbl_db-t_fsh_seasons IS NOT INITIAL.
CLEAR lt_components.
get_components(
EXPORTING
is_data = ls_fsh_seasons_mat
IMPORTING
et_components = lt_components
).
fsh_season = <ls_fsh_seasons_mat_attr>-fsh_season
fsh_season_year = <ls_fsh_seasons_mat_attr>-fsh_season_year
fsh_collection = <ls_fsh_seasons_mat_attr>-fsh_collection
fsh_theme = <ls_fsh_seasons_mat_attr>-fsh_theme .
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
<ls_fsh_seasons_mat_x> TO <lv_attr_val_x>.
CHECK <lv_attr_val_x> IS ASSIGNED.
CHECK <lv_attr_val_x> = abap_false. "AND <lv_attr_val> IS
INITIAL.
READ TABLE ls_tbl_db-t_fsh_seasons INTO DATA(ls_fsh_seasons_db)
WITH KEY matnr = <ls_fsh_seasons_mat_attr>-matnr
fsh_sgt = <ls_fsh_seasons_mat_attr>-fsh_sgt
fsh_season = <ls_fsh_seasons_mat_attr>-fsh_season
fsh_season_year = <ls_fsh_seasons_mat_attr>-fsh_season_year
fsh_collection = <ls_fsh_seasons_mat_attr>-fsh_collection
fsh_theme = <ls_fsh_seasons_mat_attr>-fsh_theme.
*
BINARY SEARCH.
CHECK sy-subrc = 0.
ASSIGN COMPONENT <ls_components>-name OF STRUCTURE
ls_fsh_seasons_db TO <lv_attr_db_val>.
<lv_attr_val> = <lv_attr_db_val>.
ENDLOOP.
ENDLOOP.
ENDIF.
*--------------------------------------------------------------------*
ENDMETHOD.
METHOD find_cr_by_gtin.
CLEAR ls_log_phys_name.
CATCH cx_abap_not_a_table .
RETURN.
CATCH cx_abap_not_in_package .
RETURN.
ENDTRY.
DATA(lv_mean_gtin) = lv_table1.
ENDIF.
CATCH cx_abap_not_a_table .
RETURN.
CATCH cx_abap_not_in_package .
RETURN.
ENDTRY.
DATA(lv_mapping_mara) = lv_table2.
ENDIF.
TRY.
SELECT usmdkarmara AS mara /1md/arean11m AS ean11 FROM
(lv_mean_gtin) INTO TABLE
lt_mean_gtin WHERE /1md/arean11m IN im_sel_range.
IF sy-subrc EQ 0.
IF NOT lt_mean_gtin IS INITIAL.
SELECT usmdkarmara AS mara /1md/armara AS armara FROM
(lv_mapping_mara) INTO TABLE lt_mara_mapping FOR ALL ENTRIES IN
lt_mean_gtin WHERE usmdkarmara = lt_mean_gtin-mara.
ENDIF.
ENDTRY.
et_cr_details = lt_cr_details.
ENDMETHOD.
METHOD find_cr_by_idnlf.
TYPES : BEGIN OF ty_mean_gtin,
mara TYPE usmd_tech_key,
ean11 TYPE ean11,
lartn TYPE idnlf,
END OF ty_mean_gtin.
DATA :
* lt_log_phys_name_new TYPE
* t_log_phys_name_type,
* ls_log_phys_name_new LIKE LINE OF lt_log_phys_name_new,
lt_log_phys_name TYPE
if_usmd_model_gen_adapter=>t_log_phys_name.
DATA:
lt_message TYPE usmd_t_message,
ls_log_phys_name TYPE
if_usmd_model_gen_adapter=>s_log_phys_name,
lo_model_gen_adapter TYPE REF TO if_usmd_model_gen_adapter,
lf_sid TYPE usmd_flg.
DATA : "lv_table_prop TYPE tabname16,
lv_table1 TYPE tabname16,
lv_table2 TYPE tabname16.
CLEAR lt_message.
CALL METHOD lo_model_gen_adapter->get_generated_objects
EXPORTING
if_former_versions = if_former_versions
if_sid_tab = lf_sid
IMPORTING
et_message = lt_message
et_log_phys_name = lt_log_phys_name.
CLEAR ls_log_phys_name.
ENDIF.
CATCH cx_abap_not_a_table .
RETURN.
CATCH cx_abap_not_in_package .
RETURN.
ENDTRY.
DATA(lv_mean_gtin) = lv_table1.
ENDIF.
CATCH cx_abap_not_a_table .
RETURN.
CATCH cx_abap_not_in_package .
RETURN.
ENDTRY.
DATA(lv_mapping_mara) = lv_table2.
ENDIF.
CREATE DATA lr_mean_gtin TYPE TABLE OF (lv_mean_gtin).
ASSIGN lr_mean_gtin->* TO <ft_mean_gtin>.
TRY.
SELECT usmdkarmara AS mara /1md/arean11m AS ean11 /1md/arlartn
AS idnlf FROM (lv_mean_gtin) INTO TABLE
lt_mean_gtin WHERE /1md/arlartn IN im_idnlf_sel.
IF sy-subrc EQ 0.
IF NOT lt_mean_gtin IS INITIAL.
SELECT usmdkarmara AS mara /1md/armara AS armara FROM
(lv_mapping_mara) INTO TABLE lt_mara_mapping FOR ALL ENTRIES IN
lt_mean_gtin WHERE usmdkarmara = lt_mean_gtin-mara.
ENDIF.
IF sy-subrc EQ 0.
LOOP AT lt_cr_details ASSIGNING FIELD-
SYMBOL(<fs_cr_details>).
SHIFT <fs_cr_details>-usmd_value LEFT DELETING LEADING
space.
lv_value = <fs_cr_details>-usmd_value.
READ TABLE lt_mara_mapping INTO ls_mara_mapping WITH KEY
mara = lv_value.
IF sy-subrc EQ 0.
<fs_cr_details>-armara = ls_mara_mapping-armara.
ENDIF.
READ TABLE lt_mean_gtin INTO ls_mean_gtin WITH KEY mara =
lv_value.
IF sy-subrc EQ 0.
<fs_cr_details>-lartn = ls_mean_gtin-lartn.
ENDIF.
* WRITE :/ <fs_cr_details>-usmd_crequest,<fs_cr_details>-
armara,<fs_cr_details>-usmd_creq_status,<fs_cr_details>-txtmi.
ENDLOOP.
ENDIF.
ENDIF.
CATCH cx_sy_dynamic_osql_semantics ##NO_HANDLER.
ENDTRY.
et_cr_details = lt_cr_details.
ENDMETHOD.
METHOD find_cr_by_matnr.
TYPES:
t_log_phys_name_type TYPE STANDARD TABLE OF s_log_phys_name_type
WITH DEFAULT KEY ##NEEDED.
DATA :
* lt_log_phys_name_new TYPE
* t_log_phys_name_type,
* ls_log_phys_name_new LIKE LINE OF lt_log_phys_name_new,
lt_log_phys_name TYPE
if_usmd_model_gen_adapter=>t_log_phys_name.
DATA:
lt_message TYPE usmd_t_message,
ls_log_phys_name TYPE
if_usmd_model_gen_adapter=>s_log_phys_name,
CLEAR lt_message.
CALL METHOD lo_model_gen_adapter->get_generated_objects
EXPORTING
if_former_versions = if_former_versions
if_sid_tab = lf_sid
IMPORTING
et_message = lt_message
et_log_phys_name = lt_log_phys_name.
CATCH cx_abap_not_a_table .
RETURN.
CATCH cx_abap_not_in_package .
RETURN.
ENDTRY.
DATA(lv_mara_check) = lv_table1.
ENDIF.
CATCH cx_abap_not_a_table .
RETURN.
CATCH cx_abap_not_in_package .
RETURN.
ENDTRY.
DATA(lv_mapping_mara) = lv_table2.
ENDIF.
CREATE DATA lr_mara_check TYPE TABLE OF (lv_mara_check).
ASSIGN lr_mara_check->* TO <ft_mara_check>.
ENDTRY.
ENDMETHOD.
METHOD generate_variants.
DATA: ls_matnr LIKE LINE OF it_matnr,
lv_var TYPE numc3,
* lt_mass_data TYPE /ugirmp/mass_tt,
lt_charval TYPE /ugi4/ar_tt_charval,
ls_charval LIKE LINE OF lt_charval,
lt_charval_tmp TYPE /ugi4/ar_tt_charval,
lt_charvalt TYPE /ugi4/ar_tt_charvalt,
lt_features TYPE /ugi4/merkmale_t,
ls_features LIKE LINE OF lt_features,
ls_charvalt LIKE LINE OF lt_charvalt,
ls_variant_stag TYPE LINE OF /ugi4/cmd_rfm_t_variants,
lt_charvalt_tmp LIKE lt_charvalt. "",
* ls_variant_stag TYPE /ugirmp/variant,
* lt_variants TYPE TABLE OF /ugirmp/variant,
* ls_mass_data_new LIKE LINE OF lt_mass_data,
* ls_mass_data_res LIKE LINE OF lt_mass_data,
* ls_matnr1 LIKE LINE OF it_matnr,
* ls_delta LIKE LINE OF
/ugirmp/cl_mdg_rfm_mass_access=>gt_delta_chg,
* ls_mass_data LIKE LINE OF lt_mass_data.
DATA:
it_temp TYPE STANDARD TABLE OF ty_variants_all,
it_temp1 TYPE STANDARD TABLE OF ty_variants_all,
it_temp_restr TYPE STANDARD TABLE OF ty_variants_all,
it_temp_restr1 TYPE STANDARD TABLE OF ty_variants_all,
wa_temp1 TYPE ty_variants_all,
wa_temp TYPE ty_variants_all,
lv_temp_var_comb TYPE string,
IF it_temp IS INITIAL.
atwrt = ls_charvalt-atwrt.
IF <ft_res_data> IS ASSIGNED.
READ TABLE <ft_res_data> TRANSPORTING NO FIELDS WITH KEY
('MATNR') = <lv_matnr> ('ATWRT') = ls_charvalt-atwrt
('ATINN') = ls_charvalt-atinn.
IF sy-subrc EQ 0.
wa_temp-var_comb = ls_features-atnam.
wa_temp-char_key = ls_charvalt-atwrt.
wa_temp-char_key_text = ls_charvalt-atwtb.
wa_temp-atwrt1 = ls_charvalt-atwrt.""atwtb.
wa_temp-srtpo1 = ls_charval-srtpo.
wa_temp-atinn1 = ls_charval-atinn.
APPEND wa_temp TO it_temp.
APPEND wa_temp TO it_temp_restr.
* CLEAR wa_temp.
ELSE.
READ TABLE <ft_res_data> TRANSPORTING NO FIELDS WITH
KEY ('MATNR') = <lv_matnr> .
IF sy-subrc NE 0.
wa_temp-var_comb = ls_features-atnam.
wa_temp-char_key = ls_charvalt-atwrt.
wa_temp-char_key_text = ls_charvalt-atwtb.
wa_temp-atwrt1 = ls_charvalt-atwrt.""atwtb.
wa_temp-srtpo1 = ls_charval-srtpo.
wa_temp-atinn1 = ls_charval-atinn.
atwrt = ls_charvalt-atwrt.
IF <ft_res_data> IS ASSIGNED.
READ TABLE <ft_res_data> TRANSPORTING NO FIELDS WITH
KEY ('MATNR') = <lv_matnr> ('ATWRT') = ls_charval-atwrt
('ATINN') = ls_charval-atinn.
* if sy-subrc ne 0.
* READ TABLE <ft_res_data> TRANSPORTING NO FIELDS
WITH KEY ('MATNR') = <lv_matnr> ('ATINN') = ls_charval-atinn.
* endif.
IF sy-subrc EQ 0.
wa_temp1-char_key = wa_temp-char_key.
wa_temp-char_key = lv_temp_char_key.
wa_temp1-char_key_text = wa_temp-char_key_text.
wa_temp-char_key_text = lv_temp_char_key_text.
wa_temp1-var_comb = wa_temp-var_comb.
wa_temp-var_comb = lv_temp_var_comb.
APPEND wa_temp TO it_temp1.
* CLEAR wa_temp.
ELSE.
ENDLOOP.
ENDLOOP.
CLEAR: wa_temp1.
atwrt = ls_charvalt-atwrt.
IF <ft_res_data> IS ASSIGNED.
READ TABLE <ft_res_data> TRANSPORTING NO FIELDS WITH
KEY ('MATNR') = <lv_matnr> ('ATWRT') = ls_charvalt-atwrt
('ATINN') = ls_charvalt-atinn.
IF sy-subrc EQ 0.
wa_temp1-char_key = wa_temp-char_key.
wa_temp-char_key = lv_temp_char_key.
wa_temp1-char_key_text = wa_temp-char_key_text.
wa_temp-char_key_text = lv_temp_char_key_text.
wa_temp1-var_comb = wa_temp-var_comb.
wa_temp-var_comb = lv_temp_var_comb.
APPEND wa_temp TO it_temp_restr1.
* CLEAR wa_temp.
ENDIF.
ENDIF.
wa_temp-char_key = wa_temp1-char_key.
wa_temp-char_key_text = wa_temp1-char_key_text.
wa_temp-var_comb = wa_temp1-var_comb.
ENDLOOP.
ENDLOOP.
it_temp = it_temp1 .
it_temp_restr = it_temp_restr1.
* REFRESH: it_temp1, it_temp_restr1.
CLEAR : it_temp1, it_temp_restr1.
CLEAR: wa_temp1.
ENDIF.
ENDIF.
ENDLOOP.
DATA: lv_count TYPE i,
lv_field TYPE string,
lv_field1 TYPE string,
lv_count_str TYPE string.
IF ls_matnr-select_all EQ abap_true.
ls_variant_stag-variant_create = abap_true.
ENDIF.
* ls_variant_stag-status = '~Icon/EditedItem'.
APPEND ls_variant_stag TO et_variants.
CLEAR ls_variant_stag.
* ls_matnr1 = ls_matnr.
* APPEND ls_matnr1 TO et_matnr.
ENDLOOP.
lv_counter = '1'.
ENDLOOP.
ENDMETHOD.
METHOD get_components.
DATA:lo_stru_descr TYPE REF TO cl_abap_structdescr,
lo_tabl_descr TYPE REF TO cl_abap_tabledescr,
lo_ref_descr TYPE REF TO cl_abap_refdescr.
CLEAR: et_components.
DATA(lo_type_descr) = cl_abap_typedescr=>describe_by_data( is_data ).
IF lo_type_descr IS BOUND.
CASE lo_type_descr->kind.
WHEN cl_abap_typedescr=>kind_table.
lo_tabl_descr ?= lo_type_descr.
IF lo_tabl_descr IS BOUND.
lo_stru_descr ?= lo_tabl_descr->get_table_line_type( ).
ENDIF.
WHEN cl_abap_typedescr=>kind_struct.
lo_stru_descr ?= lo_type_descr.
WHEN cl_abap_typedescr=>kind_ref.
lo_ref_descr ?= lo_type_descr.
IF lo_ref_descr IS BOUND.
lo_stru_descr ?= lo_ref_descr->describe_by_data_ref( is_data
).
ENDIF.
WHEN OTHERS.
ASSERT 1 = 2.
ENDCASE.
et_components = lo_stru_descr->get_included_view( ).
ENDIF.
ENDMETHOD.
METHOD get_descr_struc.
DATA:
ls_descr_struc TYPE gty_s_descr_struc.
DATA:
lo_descr_struc TYPE REF TO cl_abap_structdescr,
lo_descr_table TYPE REF TO cl_abap_tabledescr.
DATA:
lt_component TYPE abap_component_tab.
"cl_abap_structdescr=>component_table.
FIELD-SYMBOLS:
<component> TYPE abap_componentdescr.
TRY.
CATCH cx_sy_move_cast_error.
ASSERT 1 = 0.
ENDTRY.
ENDMETHOD.
METHOD get_internal_number.
* * data declaration
DATA :
lx_usmd_gov_api TYPE REF TO cx_usmd_gov_api,
lr_key_struc TYPE REF TO data,
lr_key_table TYPE REF TO data ##NEEDED.
* p_lt_error TYPE usmd_t_message,
* p_lt_message TYPE usmd_t_message.
* Field- sybols
FIELD-SYMBOLS: <fs_mat_key_str> TYPE any,
* <fs_ext_int_mat> TYPE any,
<fs_int_mat> TYPE any.
CLEAR: ex_error, ex_int_matnr.
* check article is in internal or external range
CALL FUNCTION 'PRICAT_MATERIAL_NUMBER_CHECK'
EXPORTING
iv_matnr = im_matnr
iv_mtart = im_mtart
EXCEPTIONS
materialart_not_found = 1
no_internal_number_allowed = 2
number_not_correct = 3
OTHERS = 4.
IF sy-subrc <> 0 OR im_matnr_tmp IS NOT INITIAL.
TRY.
co_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = 'MARA'
iv_struct_type = co_conv_api->gc_struct_key
IMPORTING
er_structure = lr_key_struc " Return Structure
er_table = lr_key_table " Return Table
).
CATCH cx_usmd_gov_api INTO lx_usmd_gov_api.
et_message = lx_usmd_gov_api->mt_messages.
IF et_message IS NOT INITIAL.
ex_error = abap_true.
* EXIT.
RETURN.
ENDIF.
ENDTRY.
if ex_int_matnr is INITIAL.
ex_int_matnr = IM_MATNR.
endif.
gv_matnr_final = ex_int_matnr.
ENDMETHOD.
METHOD get_variant_char.
DATA:
it_clint TYPE RANGE OF clint,
wa_clint LIKE LINE OF it_clint.
IF /ugi4/mdg_bs_ecc_ar_services=>is_new_generic_article_storage( ) EQ
abap_true AND ( iv_char_type EQ 'R' OR iv_char_type EQ 'V' ).
wa_classdata-class = iv_charp.
wa_classdata-klart = iv_klart.
wa_classdata-spras = sy-langu.
APPEND wa_classdata TO it_classdata.
ELSE.
wa_classdata-class = iv_charp.
wa_classdata-klart = '026'.
wa_classdata-spras = sy-langu.
APPEND wa_classdata TO it_classdata.
ENDIF.
IF sy-subrc <> 0.
CLEAR lv_clint.
ENDIF.
ENDWHILE.
ENDIF.
IF it_clint[] IS NOT INITIAL.
ENDIF.
wa_features-imerk = wa_ksml-imerk.
wa_features-relev = wa_ksml-relev.
wa_features-atnam = wa_ksml-atnam.
APPEND wa_features TO it_features.
ENDLOOP.
ENDIF.
ENDIF.
/ugi4/mdg_bs_ecc_ar_services=>get_charval_values_read_all(
EXPORTING atinn = wa_features-imerk
it_char_valt = it_wrf_charvalt ).
et_features = it_features.
ENDMETHOD.
METHOD map.
DATA : lo_conv_api TYPE REF TO
if_usmd_conv_som_gov_api,
lo_conv_api_rfm TYPE REF TO
/ugi4/cl_usmd_conv_som_gov_api,
lt_message TYPE usmd_t_message,
lx_usmd_conv_som_gov_api TYPE REF TO
cx_usmd_conv_som_gov_api,
lx_usmd_app_context_cons_error TYPE REF TO
cx_usmd_app_context_cons_error ##NEEDED,
lx_usmd_gov_api TYPE REF TO cx_usmd_gov_api,
it_t001w TYPE STANDARD TABLE OF t001w,
"#EC NEEDED
lt_messages TYPE usmd_t_message ##NEEDED,
lx_usmd_gov_api_core_error TYPE REF TO
cx_usmd_gov_api_core_error.
DATA : lt_mdg_entities TYPE usmd_gov_api_ts_ent_data,
lt_mdg_entities_makt TYPE usmd_gov_api_ts_ent_data.
/ugi4/cl_mdg_bs_article_acces=>gv_upload_x =
/ugi4/if_mdg_bs_art_c=>gc_x.
/ugi4/cl_mdg_fl_article=>gv_dtimport = /ugi4/if_mdg_bs_art_c=>gc_x.
/ugi4/cl_mdg_bs_article_acces=>gv_called_from_dtimport =
/ugi4/if_mdg_bs_art_c=>gc_x.
lo_conv_api->refresh_buffers( ).
IF im_creq_attr-crequest_id IS NOT INITIAL.
TRY.
lo_conv_api->set_environment(
EXPORTING
iv_crequest_id = im_creq_attr-crequest_id
" Change Request
iv_crequest_type = im_creq_attr-cr_type "
Type of Change Request
).
CATCH cx_usmd_conv_som_gov_api_env INTO DATA(lo_conv_error). "
Consistency Error While Setting the Environment Variable
lt_message = lo_conv_error->mt_messages.
APPEND LINES OF lt_message TO et_message.
* REFRESH lt_message.
CLEAR lt_message.
ENDTRY.
ELSE.
TRY.
lo_conv_api->set_environment(
EXPORTING
iv_crequest_type = im_creq_attr-cr_type
iv_create_crequest = abap_true ).
CATCH cx_usmd_conv_som_gov_api_env INTO lo_conv_error. "
Consistency Error While Setting the Environment Variable
lt_message = lo_conv_error->mt_messages.
APPEND LINES OF lt_message TO et_message.
* REFRESH lt_message.
CLEAR lt_message.
ENDTRY.
ENDIF.
READ TABLE et_message TRANSPORTING NO FIELDS WITH KEY msgty = 'E'.
IF sy-subrc EQ 0.
RETURN.
ENDIF.
TRY.
lo_conv_api->enqueue_crequest( EXPORTING iv_lock_mode = 'E' ).
CATCH cx_usmd_gov_api_core_error INTO DATA(lo_usmd_api_error)
##NEEDED. " CX_USMD_CORE_DYNAMIC_CHECK
lt_message = lo_conv_error->mt_messages.
APPEND LINES OF lt_message TO et_message.
* REFRESH lt_message.
CLEAR lt_message.
CATCH cx_usmd_gov_api INTO lx_usmd_gov_api. " General
Processing Error GOV_API
lt_message = lo_conv_error->mt_messages.
APPEND LINES OF lt_message TO et_message.
* REFRESH lt_message.
CLEAR lt_message.
ENDTRY.
lo_crequest->read_objectlist(
EXPORTING
iv_entity_type = 'MARA' " Entity Type
IMPORTING
et_entity = DATA(lt_entity_table) "
ChangeRequest Entity TableType
* et_message = " Messages
).
READ TABLE lt_entity_table INTO DATA(ls_entity_table) INDEX 1
##NEEDED.
IF sy-subrc EQ 0.
gv_matnr_final = ls_entity_table-usmd_value.
ENDIF.
ENDIF.
ENDIF.
* TRY.
* lo_conv_api->set_crequest_attributes(
* EXPORTING
* iv_crequest_text = 'GDS_API'
** iv_priority =
* iv_due_date = '99991231'
** iv_reason =
** iv_reason_rejected =
* ).
* CATCH cx_usmd_gov_api_core_error INTO lx_usmd_gov_api_core_error.
" General Processing Error (CX_USMD_CORE_DYNAMIC_CHECK)
* lt_message = lx_usmd_gov_api_core_error->mt_messages.
* IF lt_message IS NOT INITIAL.
* APPEND LINES OF lt_message TO et_message.
* REFRESH lt_message.
* EXIT.
* ENDIF.
* CATCH cx_usmd_gov_api INTO lx_usmd_gov_api. " General
Processing Error GOV_API
* lt_message = lx_usmd_gov_api->mt_messages.
* ENDTRY.
gt_entity_struc = lt_entity_struc.
*/UGI4/RFM_S_DBSTRUC_IN
DATA : ls_rfm_data TYPE /ugi4/rfm_s_dbstruc_in.
ls_rfm_data = is_rfm_api.
lo_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = 'MARA'
iv_struct_type = lo_conv_api->gc_struct_key
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
ls_mara-mbrsh = '1'.
me->get_internal_number(
EXPORTING
im_matnr = ls_mara-matnr " Material
Number
im_mtart = ls_mara-mtart " Material
type
im_matnr_tmp = ls_mara-is_matnr_tmp "
Boolean Variable (X = True, - = False, Space = Unknown)
IMPORTING
ex_error = DATA(lv_error) " Boolean
Variable (X = True, - = False, Space = Unknown)
ex_int_matnr = DATA(lv_matnr_int) " Material
Number
et_message = lt_message " Messages
CHANGING
co_conv_api = lo_conv_api
) ##NEEDED.
ENDIF.
ELSE.
gv_matnr_final = ls_mara-matnr.
gv_matnr_is_new = abap_false.
ENDIF.
ENDIF.
* REFRESH : lt_message.
CLEAR: lt_message.
TRY.
lo_conv_api->enqueue_entity(
EXPORTING
it_entity_keys = lt_entity_keys
).
CATCH cx_usmd_gov_api_core_error INTO
DATA(lx_core_error). " CX_USMD_CORE_DYNAMIC_CHECK
lt_message = lx_core_error->mt_messages.
APPEND LINES OF lt_message TO et_message.
CATCH BEFORE UNWIND cx_usmd_gov_api_entity_lock INTO
DATA(lx_lock). " Error while blocking an entity
lt_message = lx_lock->mt_messages.
APPEND LINES OF lt_message TO et_message.
CATCH cx_usmd_gov_api INTO DATA(lx_gov_api).
" General Processing Error GOV_API
lt_message = lx_gov_api->mt_messages.
APPEND LINES OF lt_message TO et_message.
ENDTRY.
ENDIF.
WHEN 'CHARACVAL'.
me->map_characval_stag( EXPORTING iv_entity =
<ls_entity_struc>-entity
iv_target_struc = <ls_entity_struc>-
structure
is_api_data = ls_rfm_data
io_conv_api = lo_conv_api
IMPORTING
et_message = lt_messages
CHANGING
ct_entity_data = lt_mdg_entities
ct_entity_del = lt_entity_del ).
IF <ls_entity_struc>-is_txt-boole IS INITIAL.
ELSE.
me->map_makt_stag( EXPORTING iv_entity = <ls_entity_struc>-
entity
iv_target_struc =
<ls_entity_struc>-structure
is_api_data = ls_rfm_data
is_text = <ls_entity_struc>-
is_txt-boole
io_conv_api = lo_conv_api
ct_entity_del = lt_entity_del
).
ENDIF.
WHEN 'MEAN_GTIN'.
me->map_mean_gtin( EXPORTING iv_entity = <ls_entity_struc>-
entity
iv_target_struc =
<ls_entity_struc>-structure
is_api_data =
ls_rfm_data
io_conv_api =
lo_conv_api
IMPORTING
et_message = lt_messages
CHANGING
ct_entity_data = lt_mdg_entities
ct_entity_del = lt_entity_del
).
WHEN 'BASIDTEXT' OR 'MVKETEXT' OR 'INSPETEXT' OR 'PIR_NOTE' OR
'BPORDTEXT' OR 'PORD_TEXT' .
me->map_text_2sta( EXPORTING iv_entity = <ls_entity_struc>-
entity
is_api_data = ls_rfm_data
io_conv_api = lo_conv_api
CHANGING
ct_entity_data = lt_mdg_entities
).
**
WHEN 'BOM' OR 'ASSORT' OR 'ARTHIER' OR 'DRADBASIC' OR 'DRADTXT'
OR 'VALUATION' OR 'CLASSASGN'.
me->map_nosmt_2sta( EXPORTING iv_entity = <ls_entity_struc>-
entity
is_api_data = ls_rfm_data
io_conv_api = lo_conv_api
CHANGING
ct_entity_data =
lt_mdg_entities
ct_entity_del =
lt_entity_del ).
WHEN 'VARIANTS'.
me->map_variants_stag(
EXPORTING iv_entity = <ls_entity_struc>-entity
is_api_data = ls_rfm_data
io_conv_api = lo_conv_api
CHANGING ct_entity_data =
lt_mdg_entities
ct_entity_del = lt_entity_del ).
WHEN 'RESTRICT'.
me->map_restrict_stag( EXPORTING
iv_entity = <ls_entity_struc>-entity
is_api_source = ls_rfm_data
io_conv_api = lo_conv_api
CHANGING
ct_entity_data = lt_mdg_entities
ct_entity_del = lt_entity_del ).
iv_target_struc = <ls_entity_struc>-structure
is_marm_data = ls_rfm_data-marm_tab
is_mara_data = ls_rfm_data-mara_tab
is_maw1_data = ls_rfm_data-maw1_tab
io_conv_api = lo_conv_api
IMPORTING
et_message = lt_messages
CHANGING
ct_entity_data = lt_mdg_entities
ct_entity_del = lt_entity_del
).
WHEN 'TEXTCOMP' OR 'TEXTFIBR'.
me->map_textfibr_comp( EXPORTING iv_entity = <ls_entity_struc>-
entity
iv_target_struc = <ls_entity_struc>-structure
is_api_data = ls_rfm_data
io_conv_api = lo_conv_api
IMPORTING
et_message = lt_messages
CHANGING
ct_entity_data = lt_mdg_entities
ct_entity_del = lt_entity_del
).
WHEN 'IMAGEURL'.
me->map_art_img_2sta( EXPORTING iv_entity = <ls_entity_struc>-
entity
iv_target_struc = <ls_entity_struc>-structure
is_api_data = ls_rfm_data
io_conv_api = lo_conv_api
IMPORTING
et_message = lt_messages
CHANGING
ct_entity_data = lt_mdg_entities
ct_entity_del = lt_entity_del
).
WHEN OTHERS.
IF lo_handler IS BOUND.
TRY.
CALL BADI lo_handler->map_2_stag
EXPORTING
iv_entity = <ls_entity_struc>-entity
iv_target_struc = <ls_entity_struc>-structure
is_api_data = ls_rfm_data
IMPORTING
et_message = lt_messages
CHANGING
co_conv_api = lo_conv_api
ct_entity_data = lt_mdg_entities
ct_entity_data_del = lt_entity_del.
" MDG: Table Type for Table of Entities Structure
CATCH cx_root INTO DATA(lx_root) ##NEEDED.
CLEAR lt_messages.
ENDTRY.
ENDIF.
ENDCASE.
ENDLOOP.
TRY.
lo_conv_api_rfm->save(
if_include_check_in_save_only = abap_false
).
lt_message = lo_conv_api_rfm->get_messages( ).
APPEND LINES OF lt_message TO et_message.
CATCH cx_usmd_gov_api_core_error INTO lx_usmd_gov_api_core_error.
" CX_USMD_CORE_DYNAMIC_CHECK
lt_message = lx_usmd_gov_api_core_error->mt_messages.
APPEND LINES OF lt_message TO et_message.
* REFRESH lt_message.
CLEAR lt_message.
CATCH cx_usmd_gov_api INTO lx_usmd_gov_api.
lt_message = lx_usmd_gov_api->mt_messages.
APPEND LINES OF lt_message TO et_message.
* REFRESH lt_message.
CLEAR lt_message.
ENDTRY.
ENDIF.
lo_conv_api_rfm->dequeue_entity_all( ).
lo_conv_api_rfm->dequeue_crequest( ).
COMMIT WORK.
ENDMETHOD.
ENDMETHOD.
METHOD map_art_img_2sta.
DATA : lrt_data TYPE REF TO data,
lrs_data TYPE REF TO data,
lt_art_img TYPE /ugi4/_t_img_url_api,
* lsr_model_del TYPE REF TO data,
* lt_art_img_t type /ugi4/art_img,
ls_entity TYPE usmd_gov_api_s_ent_tabl,
lt_art_img_d TYPE TABLE OF /ugi4/art_img,
ls_art_img_d TYPE /ugi4/art_img.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
img_seq = <fs_class_api>-img_seq.
IF sy-subrc NE 0.
IF <ls_img_guid> IS ASSIGNED.
<ls_img_guid> = <fs_class_api>-img_guid.
ENDIF.
ELSE.
IF <ls_img_guid> IS ASSIGNED.
<ls_img_guid> = ls_art_img_temp-img_guid.
ENDIF.
ENDIF.
ENDMETHOD.
METHOD map_characval_stag.
*
* TRY.
* co_conv_api->write_entity_data( it_entity_data = lt_entity_data
).
* CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
* CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
* CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
* ENDTRY.
* CLEAR : lt_entity_data,ls_entity_data,<lt_data>.
ENDMETHOD.
METHOD map_class_gen_stag.
IF iv_entity = 'CLASS_GEN'.
DATA(lv_tabname) = 'CLASS_GEN_TAB'.
ELSEIF iv_entity = 'CHAR_PROF'.
lv_tabname = 'CHAR_PROF_TAB'.
ENDIF.
* TRY.
* co_conv_api->write_entity_data( it_entity_data = lt_entity_data
).
* CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
* CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
* CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
* ENDTRY.
* CLEAR : lt_entity_data,ls_entity_data,<lt_data>.
ENDMETHOD.
METHOD map_dcst_tab_2sta.
DATA: lr_source TYPE REF TO data,
lr_target TYPE REF TO data,
ls_api_data TYPE /ugi4/rfm_s_dbstruc_in.
FIELD-SYMBOLS : <fs_target> TYPE any,
<fs_source> TYPE any,
<lt_api_source> TYPE ANY TABLE,
<lt_data> TYPE ANY TABLE,
<ls_api_source> TYPE any,
<ls_model_data> TYPE any.
ls_api_data = is_api_data.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
vlfkz = 'A'.
IF sy-subrc = 0 AND ( iv_entity EQ 'MARCST' OR iv_entity EQ
'MPOP_ST' ).
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
DATA(lv_new) = abap_true.
ENDIF.
vlfkz = 'B'.
IF sy-subrc = 0 AND ( iv_entity EQ 'MARCDC' OR iv_entity EQ
'MPOP_DC' ).
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
lv_new = abap_true.
ENDIF.
vlfkz = 'A'.
IF sy-subrc = 0 AND iv_entity EQ 'MBEW_ST' .
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
lv_new = abap_true.
ENDIF.
vlfkz = 'B'.
IF sy-subrc = 0 AND iv_entity EQ 'MBEW_DC'.
MOVE-CORRESPONDING <ls_api_source> TO <fs_source>.
lv_new = abap_true.
ENDIF.
IF <fs_source> IS ASSIGNED AND <fs_target> IS ASSIGNED AND
lv_new IS NOT INITIAL.
/ugi4/cl_mdg_bs_article_acces=>smt_mapping_2sta(
EXPORTING
i_entity = iv_entity
is_source = <fs_source>
IMPORTING
es_target = <fs_target> ).
* TRY.
* co_conv_api->write_entity_data( it_entity_data =
lt_entity_data ).
* CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
* CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
* CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
* ENDTRY.
* CLEAR : lt_entity_data,ls_entity_data,<lt_data>.
ENDIF.
ENDMETHOD.
METHOD map_fms_2sta.
DATA: lr_source TYPE REF TO data,
lr_target TYPE REF TO data,
lt_message TYPE usmd_t_message,
lv_tab TYPE name_komp.
IF iv_entity = 'SEASON'.
lv_tab = 'FSH_SEASONS_MAT_TAB'.
ELSEIF iv_entity = 'SGTMARM'.
lv_tab = 'SGT_MARM'.
ELSEIF iv_entity = 'SGTMLGT'.
lv_tab = 'SGT_MLGT'.
ELSEIF iv_entity = 'SGTMLGN'.
lv_tab = 'SGT_MLGN'.
ELSEIF iv_entity = 'SGTMVKE'.
lv_tab = 'SGT_MVKE'.
ELSEIF iv_entity = 'SGTMRP'.
lv_tab = 'SGT_MRP'.
ELSEIF iv_entity = 'SGTMRPGN'.
lv_tab = 'SGT_MRP_GN'.
ELSEIF iv_entity = 'SGTMADKA'.
lv_tab = 'SGT_MADKA'.
ELSEIF iv_entity = 'SGTEIN'.
lv_tab = 'EINSGT'.
ELSEIF iv_entity = 'WRF_FOLUP'.
lv_tab = 'FOLUP'.
ENDIF.
* Model Structure
DATA : "lt_entity_data TYPE usmd_gov_api_ts_ent_data,
ls_entity_data TYPE LINE OF usmd_gov_api_ts_ent_data ##NEEDED.
io_conv_api->get_entity_structure(
EXPORTING
iv_entity_name = iv_entity
iv_struct_type = io_conv_api->gc_struct_key_attr
IMPORTING
er_structure = lr_struc_key
er_table = lr_table_key
).
IF <lt_api_source> IS ASSIGNED.
* TRY.
* co_conv_api->write_entity_data( it_entity_data =
lt_entity_data ).
* CATCH cx_usmd_gov_api_core_error. "
CX_USMD_CORE_DYNAMIC_CHECK
* CATCH BEFORE UNWIND cx_usmd_gov_api_entity_write. " RESUMABLE
Error While Writing an Entity
* CATCH cx_usmd_gov_api. " General
Processing Error GOV_API
* ENDTRY.
* CLEAR : lt_entity_data,ls_entity_data,<lt_data>.
ENDIF.
ENDMETHOD.
ENDCLASS.