在并行处理情况下,如何在SAP-MDGM中读取CR特定数据。

2020-08-27 11:57发布

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

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


大家好,

背景:

我们已经定义了业务类型为'MAT2'的MDG-M的更改请求(Z_MAT02),并对于'并行更改请求处理'声明为"有效"。

场景:

物料号:7000012345

提到的材料已锁定在2个CR中,以便在不同的工厂中扩展。

喜欢

CR1:工厂'P1'的扩展名

CR2:工厂'P2'的扩展名

CR1和CR2处于活动状态,并且类型相同= Z_MAT02。

问题:

在代码中,我们想使用

来获取CR特定数据

呼叫方法io_model-> read_entity_data_all(
导出
i_fieldname ='MATERIAL'
if_active = abap_false
i_crequest = l_crequest_id
IMPORTING
et_data_entity = li_data_entity)。

在LI_DATA_ENTITY中,即使我们在I_CREQUEST_ID中传递了CR1或CR2,我们也同时获得了植物(P1和P2)。

查询:如何在代码中获取CR特定数据,即,如果我们将CR1作为请求ID传递,则应该仅在LI_DATA_ENTITY中填充P1。

挑战/原因:在CR1的用户界面上,我们收到了P2的验证错误,因为该错误在该CR中不存在。

谢谢。

Saurabh

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

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


大家好,

背景:

我们已经定义了业务类型为'MAT2'的MDG-M的更改请求(Z_MAT02),并对于'并行更改请求处理'声明为"有效"。

场景:

物料号:7000012345

提到的材料已锁定在2个CR中,以便在不同的工厂中扩展。

喜欢

CR1:工厂'P1'的扩展名

CR2:工厂'P2'的扩展名

CR1和CR2处于活动状态,并且类型相同= Z_MAT02。

问题:

在代码中,我们想使用

来获取CR特定数据

呼叫方法io_model-> read_entity_data_all(
导出
i_fieldname ='MATERIAL'
if_active = abap_false
i_crequest = l_crequest_id
IMPORTING
et_data_entity = li_data_entity)。

在LI_DATA_ENTITY中,即使我们在I_CREQUEST_ID中传递了CR1或CR2,我们也同时获得了植物(P1和P2)。

查询:如何在代码中获取CR特定数据,即,如果我们将CR1作为请求ID传递,则应该仅在LI_DATA_ENTITY中填充P1。

挑战/原因:在CR1的用户界面上,我们收到了P2的验证错误,因为该错误在该CR中不存在。

谢谢。

Saurabh

付费偷看设置
发送
2条回答
DafaDDDa
1楼 · 2020-08-27 12:40.采纳回答

大家好,

我找到了一种解决上述情况的方法:

数据:l_lo_changelist类型参考if_usmd_cr_changelist。

l_lo_changelist = cl_usmd_cr_changelist => get_instance(iv_crequest_id = cr_number

iv_model ='MM')。

上面的接口具有方法" is_entity_assigned",该方法将确认CR中锁定的Entity的值。

l_lo_changelist-> is_entity_assigned(iv_entity_type ='MARCBASIC'

is_entity_key = )= LV_FLAG。

其中是MARCBASIC实体的工作区。

如果LV_FLAG ='X'。 ->实体出现在变更请求中。

如果LV_FLAG =''->变更请求中不存在实体。

类似地,我们也可以检查实体的其余部分。

感谢
Saurabh

粗暴的香蕉
2楼-- · 2020-08-27 12:39

嗨,Saurabh,

要读取并行更改请求,请使用方法read_char_value。

谢谢!

Logan.D

一周热门 更多>