2020-09-08 05:53发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大家好,
我不明白在运行期间材料描述如何存储在变更请求上下文中。
实体MATERIAL中有属性TXTMI。 但是MDG如何存储用于材料描述的多个条目?
假设有2种描述:一种是英语,另一种是西班牙语。 我如何读取和处理这些cr数据?
我尝试使用便捷api(方法:READ_ENTITY_DATA)读取实体数据。 但是然后我只得到其中一项,而没有有关键(语言代码)的信息。 存储的语言代码和描述的组合在哪里?
最诚挚的问候,
Hannes
不费吹灰之力,而无需详细说明如何存储在哪里:如果使用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ß
谢谢Ingo,我明白了。这对我很有帮助!
你好 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。
您好,这是一个很老的文章,您可能应该打开一个新线程。但是,要知道,您是否尝试使用Write_entity方法将数据写回到实体中。
帕万
最多设置5个标签!
不费吹灰之力,而无需详细说明如何存储在哪里:如果使用IV_STRUCT = GC_STRUCT_KEY_TXT_LANGU调用READ_ENTITY_DATA,则可以检索依赖于语言的文本。
数据:lr_api类型参考if_usmd_conv_som_gov_api。任何类型。任何类型的表。任何类型。
。至。
='IBTEST'。 "或其他任何MATNR 。到表。
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的结构
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ß
谢谢Ingo,我明白了。这对我很有帮助!
最诚挚的问候,
Hannes
你好 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,
任何表类型。
**************************************
。。
-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 。
类型/mdgmm/_st_mm_pp_material。任何表类型。任何类型表。
。。
-material = im_matnr。
-langu ='E'。" lwa_t002-spras。
-txtmi = im_mdesc。插入表。
-langu ='F'。" lwa_t002-spras。
-txtmi = im_mdesc。插入表 。
*'材料'
******************************************
清除: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
插入
清除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。
字段符号:
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-> *到
**从t002选择spras 插入表@DATA(lt_t002)。 "语言
***将lt_t002插入数据(lwa_t002)。
插入
插入
** 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。
您好,这是一个很老的文章,您可能应该打开一个新线程。但是,要知道,您是否尝试使用Write_entity方法将数据写回到实体中。
< p>致谢帕万
一周热门 更多>