点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
大师们,
我需要在PM订单操作中更新外部服务行价格。
我有一个使用BAPI_ALM_ORDER_MAINTAIN的实现。 基本上,我只需要将服务行详细信息传递给表it_servicelines和it_servicelines_up。 我使用BAPI_ALM_ORDER_GET_DETAIL获得的服务线详细信息。
我代码中的摘录:
连接l_aufnr l_vornr INTO l_objectkey。
清除:w_methods。
w_methods-refnumber = l_refnumber。
w_methods-objecttype = c_serviceline。
w_methods-method = c_change。
w_methods-objectkey = l_objectkey。
APPEND将t_method转换为t_method。
清除:w_servicelines。
w_servicelines-activity = w_servicos_upd-vornr。
w_servicelines-outline = w_servicos_upd-outline。
w_servicelines-srv_line = w_servicos_upd-srv_line。
w_servicelines-gross_price = w_servicos_upd-netwr。
APPEND w_servicelines至t_servicelines。
清除:w_servicelines_up。
w_servicelines_up-activity = w_servicos_upd-vornr。
w_servicelines_up-outline = w_servicos_upd-outline。
w_servicelines_up-srv_line = w_servicos_upd-srv_line。
w_servicelines_up-gross_price = c_x。
APPEND w_servicelines_up至t_servicelines_up。
当操作只有一条服务线时,它可以正常工作。
但是当操作有多个服务行(不一定更新多个服务)时,我收到消息 E SRV 007"字段PRICE_UNIT被定制为隐藏模式"。
调试:
在方法 CL_SERVICE_LINE_MMSRV => CHECK_FIELD_SELECTION 中触发了错误(该字段实际上是自定义为"隐藏"模式)。 好吧。
但是问题是:
IM方法 CL_SERVICE_LINE_MMSRV => SET_SERVICE_LINE ,我发现了一个问题。 尝试更新两个正在运行的第一行:
内部表 imt_service_line 和 imt_service_linex 保存来自表it_servicelines和it_servicelines_up的数据。 好吧。
为每个正在运行的服务线迭代此方法。
在第一行中,可以。 在imt_service_linex中,只有字段GROSS_PRICE被标记为" X"。 CL_SERVICE_LINE_MMSRV => CHECK_FIELD_SELECTION可以。
在第二行中,几个字段标记有" X"。 但是我没有为第二条服务线填写表it_servicelines_up。 来到CL_SERVICE_LINE_MMSRV => CHECK_FIELD_SELECTION时,它会返回错误。
这是BAPI中的错误还是局限性?
我的代码类似于以下示例:
我已经和其他人一起来了。
https://archive.sap.com/discussions/thread/3241240
https://apps.support .sap.com/sap/support/knowledge/preview/zh/2524622
"我遇到了 https://apps.support.sap.com/sap/support/knowledge/preview/zh/2524622 是什么意思?
这是预览而不是完整的KBA。 它甚至希望您阅读其他OSS注释。 您是否登录到启动板并阅读了解决方案,您是否按照解决方案中的说明进行操作?
您是否尝试过使用BAPI手动执行正常交易? 您在正常交易中没有收到SRV007错误吗? 根据这些信息,可以决定下一步,无论您是要查看自己的编码还是SAP定制和程序。
您好,我确实阅读了注释2524622。更改自定义选项不是一种选择。 就像我说的 对于第二行,许多字段都带有" X"来更新。
原因
分辨率
就像我说的那样。 它适用于单个服务线。 但前提是该操作只有一条服务线。
在正常事务中-IW32-它可以正常工作。
在早期版本中,BAPI文档中指出"服务线无法更新"。 但是不是我的版本。
对此有任何帮助或想法吗?
一周热门 更多>