order_save badi,如何知道呼叫者(ECC或CRM系统)

2020-09-29 17:26发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 在Order_save ...

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

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


嗨,

在Order_save badi中,只有几行代码仅在CRM系统中创建或更改订单时才需要执行。 如果订单更改了,或者我们从ECC系统获取了增量更改,我想绕过order_save badi中的代码。

任何想法如何检索order_save badi中调用的系统(ECC或CRM)。

谢谢

安吉

1条回答
SC_Yao
2020-09-29 17:45

嗨安吉,

  • 自定义设置一次,例如 方案A,系统中已准备就绪,在ECC中创建或更改订单将复制到CRM。 来自ECC的数据发送到CRM,并创建bdoc。 BDoc数据将导出到CRM_ORDER_MAINTAIN,最后导出到CRM_ORDER_SAVE。 这是标准行为,这意味着始终调用CRM_ORDER_SAVE来将来自ECC系统的订单的创建或更改数据保存在CRM系统中。

这是调用堆栈

25 FUNCTION CRM_ORDER_SAVE SAPLCRM_ORDER_API

24 FUNCTION CRM_DOWNLOAD_BTMBDOC SAPLCRM_DOWNLOAD_BTMBDOC

23 FUNCTION CRM_DOWNLOAD_BTMBDOC_VAL SAPLCRM_DOWNLOAD_BTMBDOC

  • 一旦调用了CRM_ORDER_SAVE,就会调用所有激活的订单。/li>

调用crm_order_save时,无法得知这是从ECC复制还是在CRM中创建,换句话说,这就是crm_order_save。

这里有一些关于"任何想法如何检索order_save badi中调用的系统(ECC或CRM)的想法。"

1,顺序为adm_h的原始系统(LOGICAL_SYSTEM)

当前,CRM仅支持2个方案,即标准方案和A。

如果使用方案A,则原始系统将始终 CRM。

如果使用的是标准业务情景,则可以参考注释541113。如果订单是在ECC中创建的,crm无法更改该订单,并且origianl系统为ecc。 如果在CRM中创建了订单,则任何人都在ecc中进行了更改,将出现一条信息,即原始系统或订单将更改为ecc,然后根据注释541113,crm将无法更改它。因此,一旦您的order_save badi 被调用,您可以检查orderadm_h-LOGICAL_SYSTEM。

2,如果您只是想在crm中获取erp目的地order_save badi,

您可以 无需任何导入数据即可调用FM crm_get_erp_system。

,也可以如下所示调用FM SMOF_READ_SMOFERPSH。

调用函数'SMOF_READ_SMOFERPSH'
导出
i_sitetypeid ='SMOF_ERPSITE'
>表格
t_erpsites = gt_smof_erpsh。

喷枪

一周热门 更多>