增强IBAPI_ALM_ORD_MODIFY后无数据传输

2020-09-16 16:50发布

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

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

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


嗨,

我很犹豫要发布这个问题,因为它很长而且涉及很多。

(注意:我已经进行了大量的谷歌搜索和调试工作,但无法解决此问题,因此,如果您可以将我指向指向有助于解决此问题的链接或SAP注释,将不胜感激。)

我将使用链接到间接活动的PM活动类型创建具有间接费用的业务。 问题是,一个订单可能附有300条通知。 我们有外部合作伙伴创建通知(链接到订单)并通过自定义企业服务更改通知。

因为这些间接成本可能是说:"交通管理",所以我需要能够知道哪个操作/成本与哪个通知活动相关联。 费用未存储在通知中。 因此,如果对于noti 1234,活动组/代码CO9001的成本从$ 200变为$ 300,我不知道要更新哪个订单操作,因为该订单上可能存在PM活动类型CO9001的多个操作。 (我可以对此进行修改,以存储不是if +活动号的objectkey,但这不是我要在本文中解决的问题,它更多的是数据转换器。一旦工作,我就可以将存储的内容更改为 使解决方案更好。)

我也没有从合作伙伴那里得到订单更新,我得到了通知/活动更新,并且不得不根据该信息进行订单操作更新。 因此,需要将通知编号与订单操作相关联。 我无法为此找到更好的解决方案,但请记住,我真的没有时间尝试许多实验性解决方案。

这就是我所做的:

我在AFVC的1个字段中添加了一个追加结构-ZZQMNUM。

我在AFVGD的1个字段中添加了一个附加结构-ZZQMNUM

我实现了IBAPI_ALM_ORD_MODIFY的增强功能

我调用了函数BAPI_ALM_ORDER_MAINTAIN,并将通知号传递到extension_in参数中。

在" IF_EX_IBAPI_ALM_ORD_MODIFY〜MODIFY_INPUT_DATA"方法中,将通知号传递到表CT_OPERATION中。

这一切都有效,但不会传递到最终的AFVC更新。

我调试到:

BAPI_ALM_ORDER_MAINTAIN

IBAPI_PROC_METHOD_TABLE_EXEC

使用ls_proc_levelIBAPI_H_CREATE_INTERNAL执行PERFORM order_maintain

此时表it_oper_tab包含条目,其通知编号在ZZQMNUM中

IBAPI_H_CREATE_INTERNAL

(LIBAPI_HFE4)PERFORM操作保持使用ls_proc_level

IBAPI_ORDER_OPERATION_CREATE

使用ls_afvgd_in" 669370 来执行copy_appends_to_afvgd

在"复制附加"的最后一步之前,值实际上一直存在,直到传递完为止。

我希望这里有经验丰富的ABAP专家可以为您提供帮助,如果您之前没有解决过此类问题,那么我不介意建议,但疯狂的猜测并不会真正提供帮助。 过去,当我问一个问题时,我曾遇到过一些这样的事情,有人可能会建议他们从未尝试过的事情。 这通常会使事情变得不清楚。

注意:我还用ZZQMNUM =" X"设置了表CT_OPERATION。

因此在子程序OPERATION_MAINTAIN

数据在表it_oper_tab中

此后立即在子例程COPY_APPENDS_TO_AFVGD

但是此时数据已丢失:

(17.2 kB)
1条回答
N-Moskvin
2020-09-16 17:17

好的,我想我可以提供一个观点。 我的项目有一个类似的问题,但与MIGO交易有关。 我的问题的背景-似乎MIGO事务的标准SAP行为不允许我们在更改物料文档时保存除标题字段等四个字段以外的其他字段。 经过彻底调试,我们发现在多个位置进行了检查,以禁止保存除原始四个字段之外的任何字段。 这实际上意味着,如果我们增强MATDOC表(我们在S/4 HANA上,那么就没有直接的MKPF-MSEG),那么由于这些检查,我们也不能直接保存自定义字段。

最终,我们计划实现隐式增强。 如果有更多信息,将使您保持最新状态。

一周热门 更多>