MDG-M:在运行期间存储"物料描述"

2020-09-08 05:53发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我不明白在运行期间材料描述如何存储在变更请求上下文中。

实体MATERIAL中有属性TXTMI。 但是MDG如何存储用于材料描述的多个条目?

假设有2种描述:一种是英语,另一种是西班牙语。 我如何读取和处理这些cr数据?

我尝试使用便捷api(方法:READ_ENTITY_DATA)读取实体数据。 但是然后我只得到其中一项,而没有有关键(语言代码)的信息。 存储的语言代码和描述的组合在哪里?

最诚挚的问候,

Hannes

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我不明白在运行期间材料描述如何存储在变更请求上下文中。

实体MATERIAL中有属性TXTMI。 但是MDG如何存储用于材料描述的多个条目?

假设有2种描述:一种是英语,另一种是西班牙语。 我如何读取和处理这些cr数据?

我尝试使用便捷api(方法:READ_ENTITY_DATA)读取实体数据。 但是然后我只得到其中一项,而没有有关键(语言代码)的信息。 存储的语言代码和描述的组合在哪里?

最诚挚的问候,

Hannes

付费偷看设置
发送
4条回答
Nan4612
1楼 · 2020-09-08 06:24.采纳回答

不费吹灰之力,而无需详细说明如何存储在哪里:如果使用IV_STRUCT = GC_STRUCT_KEY_TXT_LANGU调用READ_ENTITY_DATA,则可以检索依赖于语言的文本。

数据:lr_api类型参考if_usmd_conv_som_gov_api。
DATA:lt_key类型usmd_gov_api_ts_ent_tabl。
DATA:ls_key TYPE usmd_gov_api_s_ent_tabl。
DATA:lt_entity类型usmd_gov_api_ts_ent_tabl。
DATA:lr_key_struc类型REF数据参考表。 br>
FIELD-SYMBOLS:任何类型。
FIELD-SYMBOLS:任何类型的表。
FIELD-SYMBOLS:任何类型。

lr_api = cl_usmd_conv_som_gov_api => get_instance(iv_model_name = if_mdg_bs_mat_gen_c => gc_model_mm)。搜索结果,呼叫的方法lr_api-> if_usmd_conv_som_gov_entity〜get_entity_structure结果,输出问题,点击iv_entity_name = if_mdg_bs_mat_gen_c => gc_entity_material结果iv_struct_type = cl_usmd_conv_som_gov_api => gc_struct_key_txt_langu < br> IMPORTING
er_structure = lr_key_struc
er_tabl e = lr_key_table。

ASSIGN lr_key_struc-> *至
ASSIGN组件if_mdg_bs_mat_gen_c => gc_attr_material的结构
='IBTEST'。 "或其他任何MATNR
ASSIGN lr_key_table-> * TO
插入到表

ls_key-entity = if_mdg_bs_mat_gen_c => gc_entity_material。
ls_key -tabl = lr_key_table。
插入ls_key到表lt_key。

调用方法lr_api-> if_usmd_conv_som_gov_entity〜read_entity_data
导出
iv_struct = if_usmd_conv_som_gov_entity =>
接收
rt_entity_data = lt_entity。

祝你好运,IngoBruß

huskylover
2楼-- · 2020-09-08 06:46

谢谢Ingo,我明白了。这对我很有帮助!

最诚挚的问候,

Hannes

Nir深蓝
3楼-- · 2020-09-08 06:47

你好 Ingo Bruss

我也尝试以相同的方式添加多种语言。 当尝试使用结构为/mdgmm/_st_mm_pp_material的MATERIAL实体时,我们无法同时添加基本数据和描述数据。 添加代码以供参考

数据:gt_entity_keys类型usmd_gov_api_ts_ent_tabl,
wa_entity_keys类型usmd_govity_api_s_ent_tabl。
数据:gt_entity_data类型TYPE usmd_gov_api_ts_ent_data,
wa_ent_data_type。

数据:g_s_entity TYPE REF TO数据,

g_t_entity TYPE REF TO data。

FIELD-SYMBOLS:类型/mdgmm/_s_mm_pp_material,
任何表类型。

**************************************
*'材料'
******************************************
清除:g_s_entity,g_t_entity。
数据 lv_struct类型usmd_struct。
尝试。
go_mdg_conv-> get_entity_structure(
导出
iv_entity_name ='MATERIAL'
iv_struct_type = go_mdg_conv-> gc_struct_key_attr
" _if_usmd_model_type
er_structure = g_s_entity
er_table = g_t_entity
)。
捕获cx_usmd_gov_api INTO go_error。
g_error_string = go_error-> get_text()。

ENDTRY。 > ASSIGN g_s_entity-> *至
ASSIGN g_t_entity-> * TO

-material = im_matnr。
-mbrsh = im_indsec。< br> -mtart = im_mtype。
-normt = im_mdesc。" txtmi
-meins = im_buom。
-ntgew = im_ntgew。
-brgewmara = im_gtweg。
-gewei_mat = im_gewei。
-txtmi = im_mdesc。
插入 INTO TABLE

清除wa_entity_keys。
wa_entity_keys-entity ='MATERIAL'。
wa_entity_keys-tabl = g_t_entity。
插入wa_entity_keys
INTO <表>。 br>尝试。
go_mdg_conv->入队实体(
导出
it_entity_keys = gt_entity_keys
)。
捕获cx_usmd_gov_api_core_error INTO go_error。 "
g_error_string = go_error-> get_text()。
捕获cx_usmd_gov_api_entity_lock INTO go_error。"
g_error_string = go_error-> get_text()。
CATCH cx_usmd_gov_api INTO go_error。 "
g_error_string = go_error-> get_text()。
lt_message = go_mdg_conv-> get_messages()。
将lt_message的行添加到et_message。
ENDTRY。

清除wa_entity_data。 br> wa_entity_data-entity ='材料'。
wa_entity_data-entity_data = g_t_entity。

插入wa_entity_data插入表gt_entity_data。
**************** *********************
*'材料描述'
****************** *******************
清除:g_s_entity,g_t_entity。

字段符号:类型/mdgmm/_st_mm_pp_material。
FIELD-SYMBOLS:任何表类型。
FIELD-SYMBOLS:任何类型表。
* BREAK jparamas。
TRY。
go_mdg_conv-> get_entity_structure(
导出
> iv_entity_name ='材料'
iv_struct_type = go_mdg_conv-> gc_struct_key_txt_langu
iv_edition = abap_false
IMPORTING
er_structure = g_s_entity
er_table = g_t_govity IN

g_error_string = go_error-> get_text()。
ENDTRY。

ASSIGN g_s_entity-> *到
ASSIGN g_t_entity-> *到


-material = im_matnr。
**从t002选择spras 插入表@DATA(lt_t002)。 "语言
***将lt_t002插入数据(lwa_t002)。
-langu ='E'。" lwa_t002-spras。
-txtmi = im_mdesc。
插入 插入表

-langu ='F'。" lwa_t002-spras。
-txtmi = im_mdesc。
插入插入表
** ENDLOOP。

清除wa_entity_keys。
wa_entity_keys-entity ='MATERIAL'。
wa_entity_keys-tabl = g_t_entity。
插入wa_entity_keys <进入表gt。 br>
清除wa_entity_data。
wa_entity_data-entity ='材料'。
wa_entity_data-entity_data = g_t_entity。


插入wa_entity_data插入表gt_entity_data。

compass1988
4楼-- · 2020-09-08 06:30

您好,这是一个很老的文章,您可能应该打开一个新线程。但是,要知道,您是否尝试使用Write_entity方法将数据写回到实体中。

< p>致谢

帕万

一周热门 更多>