流程订单组件变更

2020-08-26 16:36发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家您好,请帮助我 我们...

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

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


专家您好,请帮助我

我们正在尝试通过上传文件更改流程订单数量。

但是组件数量的第一行发生了变化,而剩余数量没有变化。 代码如下。

这里i_up_comp是内部表,具有多个组件....

在i_up_comp INTO中循环运行

is_order_key = w_up_comp-ponumber。"'010000037413'。""""要求数据

选择单个*从resb INTO wa_resb
在哪里 aufnr EQ is_order_key
AND rsnum EQ w_up_comp-res_no
AND rspos EQ w_up_comp-res_item
AND charg EQ w_up_comp-batchno。
* AND bwart EQ'261'
* AND charg <>' '。

将wa_resb移动到is_order_component_key。

qty = w_up_comp-derivedweight。
is_requirement_quantity-quantity = qty。" w_up_comp-derivedweight。 " '10 .23'。""""需求数据
is_requirement_quantity-uom = wa_resb-meins。"'KG'。
is_requirement_quantityx-quantity ='X'。
is_requirement_quantityx-uom ='X'。

i_material = w_up_comp-itemcode。" wa_resb-matnr。"""" REQ.DATA
i_materialx ='X'。

is_storage_location-werks = w_up_comp-plant。" wa_resb- 怪癖。 """"要求 数据
is_storage_locationx-werks ='X'。
is_storage_location-lgort = w_up_comp-storageloc。"'SF01'。""""要求数据
is_storage_locationx-lgort ='X'。
< br> i_batch = wa_resb-charg。
i_batchx ='X'。

从afpo选择单个* aufnr = is_order_key。

i_mi_configuration_object = afpo-cuobj。
> i_mi_configuration_objectx ='X'。

通话功能'CO_XT_COMPONENT_CHANGE'
导出
is_order_key = is_order_key
is_order_component_key = is_order_component_key
is_requirement_quantity = is_requirement_t = is_confirmed_quantity结果is_confirmed_quantityx = is_confirmed_quantityx结果i_material = i_material结果i_materialx = i_materialx结果* IS_ORDER_OPERATION_KEY = IS_ORDER_OPERATION_KEY结果* IS_ORDER_OPERATION_KEYX = IS_ORDER_OPERATION_KEYX结果* IS_REQUIREMENT_DATE = IS_REQUIREMENT_DATE结果* IS_REQUIREMENT_DATEX = IS_REQUIREMENT_DATEX <无线电通信 > is_sto rage_location = is_storage_locationx
is_storage_locationx = is_storage_locationx
i_batch = i_batch
i_batchx = i_batchx
i_mi_configuration_object = i_mi_configuration_object
i_mi_configuration_objectx = i_mi_configuration_ObjectX I_CH_BATJ * I_XFEHL = I_XFEHL
* I_XFEHLX = I_XFEHLX
* I_SOBKZ = I_SOBKZ
* I_SOBKZX = I_SOBKZX
* I_KDAUF = I_KDAUF
* I_KDAUFX = I_KDDAU = I_KDAU I_KDPOSX = I_KDPOSX
* I_PSPEL = I_PSPEL
* I_PSPELX = I_PSPELX
* I_KZAUS = I_KZAUS
* I_KZAUSX = I_KZAUSX
* I_NAFKZ = I_NAFKZ
= I_NOMAT
* I_NOMATX = I_NOMATX
* I_NFUML = I_NFUML
* I_NFUMLX = I_NFUMLX
* I_NFPKZ = I_NFPKZ
* I_NFPKZX = I_NFPKZX
* I_NOMNG = I_NOMNG = I I_NOMNGX
正在导入
es_bapireturn = es_bapireturn"初始
e_error_occurred = e_error_occurred。 "空白未显示'X'。


如果es_bapireturn-message消息是INITIAL。

呼叫功能'CO_XT_ORDER_PREPARE_COMMIT'。

进行工作并等待。

endloop。

谢谢。

帕特尔帕特

1条回答
小c菟菟
2020-08-26 16:52

你好。

因为在循环中使用了功能模块'CO_XT_ORDER_PREPARE_COMMIT'。

完成RESB表的更新时,应使用此功能。

数据:ls_return TYPE bapiret2,
         lv_order_number TYPE bapi_order_key-order_number,
         lt_return bapiret的类型标准表。

 FIELD-SYMBOLS:类型任何表。

 在 ASSIGNING ...中循环。

 SELECT * FROM resb到表@DATA(lt_resb)的位置....
 
 循环至lt_resb分配...。
    在此处使用FM'CO_XT_COMPONENT_CHANGE'作为必要的材料
 结局。

 ASSIGN('((SAPLCOBC)RESB_BT []')TO 。

 如果syst-subrc EQ 0和不是INITIAL。
   从表修改resb。
 万一。

 ******************************************************  **************
 * FM CO_XT_ORDER_PREPARE_COMMIT清除(SAPLCOBC)RESB_BT [] *
 ******************************************************  **************
         如果ls_return是INITIAL。
             通话功能'CO_XT_ORDER_PREPARE_COMMIT'
               输入
                 e_order_key = lv_order_number
                 es_bapireturn = ls_return
                 e_error_occurred = e_error_occurred
               桌子
                 et_bapireturn = lt_return。
             提交工作。
           万一。


 ENDLOOP。

一周热门 更多>