如何用代码填充S/4HANA销售订单行项目的数量字段

举报
汪子熙 发表于 2021/12/25 21:21:16 2021/12/25
【摘要】 我的任务是用代码生成S/4HANA销售订单(Sales Order)的行项目,并且填充对应的quantity(数量)值。最开始我用了下面的代码,把quantity的值写入item字段target_qty:ls_order_items_in-item_categ = 'TAN'.ls_order_items_in-material = 'REDUCER_A'.ls_order_items_in...

我的任务是用代码生成S/4HANA销售订单(Sales Order)的行项目,并且填充对应的quantity(数量)值。

最开始我用了下面的代码,把quantity的值写入item字段target_qty:

ls_order_items_in-item_categ = 'TAN'.

ls_order_items_in-material = 'REDUCER_A'.

ls_order_items_in-target_qty = 999.

ls_order_items_in-itm_number = 10.

ls_order_item_x-item_categ = 'X'.

ls_order_item_x-material = 'X'.

ls_order_item_x-target_qty = 'X'.

ls_order_item_x-itm_number = 'X'.

ls_order_item_x-updateflag = 'I'.

APPEND ls_order_item_x TO lt_order_item_x.

APPEND ls_order_items_in TO lt_order_items_in.

执行后发现不工作。

研究了一个维护有正确quantity的行项目,发现这个quantity字段实际上是维护在item的schedule line上的:

而我们在item上看到的order quantity,从F1帮助文档里已经看得很清楚了,是一个累加值,所有schedule line的quantity的求和。

所以正确的代码应该是还得创建item的schedule line:

ls_schdlin-itm_number = 10.

ls_schdlin-req_qty = 3.

ls_schdlinx-itm_number = 'X'.

ls_schdlinx-itm_number = 'X'.

ls_schdlinx-updateflag = 'X'.

APPEND ls_schdlin TO lt_schdlin.

APPEND ls_schdlinx TO lt_schdlinx.

完整代码下图所示:

为什么CRM Opportunity的删除会触发一个通向BW系统的RFC

今天工作时我发现,我在SE38里用函数CRM_ORDER_DELETE删除一个Opportunity,居然弹出下图这个SAP Logon的屏幕,要连接BR1。这是什么鬼?!

查了一下,BR1是BW系统。这就更奇怪了,我在CRM系统做业务数据的删除,关BW系统什么事呢?

还是老老实实debug吧。

CRM_ORDER_DELETE会调CRM_ORDER_DELETE_MULTI_OW, 后者又会掉CRM_ORDER_DELETE_SINGLE_OW:

删除之前先调用enqueue_order上锁:

上锁的subroutine里会调一个函数CRM_OPPORT_SEM_INIT,这个有点可疑。

找到问题症结了。通过调试,发现这里有一个RFC调用:

那个奇怪的SEM函数和transaction type里这个SEM Planning profile有关:

最后发现有一个配置表CRMC_MKTPL_BW来控制是否往BW系统发起RFC调用:

SPRO路径:Customer Relationship management->Marketing->Marketing Planning and Campaign Management->System landscape->Active SAP Netweaver BW Update:

RFC destination的配置维护在这张表里:

谜题解开了。通过修改这张配置表的entry,可以避免这个BW RFC调用。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。