点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,SCN,
我已经花了大约一周的时间来寻找答案,但是我仍然很简短。 我正在尝试使用FM或Class来为我们正在构建的移动应用程序确认POD。
我当前正在尝试使用FM WS_DELIVERY_UPDATE,它似乎可以工作,因为它会更新POD确认日期和时间。 但是,它不会将POD确认状态从A更新为C,这是我要实现的关键更改。
我还注意到有时我会收到异常CX_SY_OPEN_SQL_DB,但我不确定为什么吗?
我是否正使用此FM更新POD确认状态? 还是有另一种方式? 我不确定直接更新数据库是否值得?
这是我正在使用的代码:
报告z_del_confirm。 数据:ef_error_any_0 TYPE xfeld, ef_error_in_item_deletion_0 TYPE xfeld, ef_error_in_pod_update_0 TYPE xfeld, ef_error_in_interface_0 TYPE xfeld, ef_error_in_goods_issue_0 TYPE xfeld, ef_error_in_final_check_0 TYPE xfeld, ef_error_partner_update TYPE xfeld, ef_error_sernr_update TYPE xfeld。 数据:ls_ret TYPE bapiret2, ct_return bapiret2的类型表。 数据:lt_lips嘴唇的类型表, lt_prot普罗特类型表, lt_verko verko类型表, lt_verpo verpo类型表, lt_vbpok vbpok类型表, ls_vbpok TYPE vbpok, ls_vbkok TYPE vbkok, lv_vbeln TYPE likp-vbeln, lv_posnr类型lips-posnr。 lv_vbeln ='0080013339'。 ls_vbkok-podat ='20040227'。 ls_vbkok-potim ='031800'。 ls_vbkok-kzpod ='D'。 选择*从嘴唇到表lt_lips 其中vbeln = lv_vbeln。 *提货分拣接口表 循环到lt_lips ASSIGNING FIELD-SYMBOL()。 清除ls_vbpok。 将 移动到ls_vbpok中。 ls_vbpok-vbeln = -vbeln。 ls_vbpok-vbeln_vl = -vbeln。 ls_vbpok-posnr_vl = -posnr。 ls_vbpok-posnn = -posnr。 ls_vbpok-pikmg = -lgmng。 "拣选数量 * ls_vbpok-matnr = -matnr。 * ls_vbpok-matnr = -matnr。 * ls_vbpok-charg = -charg。 ls_vbpok-lfimg = -lfimg。 * ls_vbpok-vrkme = -vrkme。 * ls_vbpok-brgew = -brgew。 * ls_vbpok-ntgew = -ntgew。 * ls_vbpok-gewei = -gewei。 * ls_vbpok-volum = -volum。 * ls_vbpok-voleh = -voleh。 ls_vbpok-lianp ='X'。 * ls_vbpok-kzbrg ='X'。 * ls_vbpok-kzntg ='X'。 * ls_vbpok-kzvol ='X'。 附加ls_vbpok至lt_vbpok。 结局。 尝试。 通话功能'WS_DELIVERY_UPDATE' 出口 vbkok_wa = ls_vbkok 同步='X' no_messages_update ='' commit ='X' 交付= lv_vbeln update_picking ='X' * nicht_sperren ='X' * IF_CONFIRM_CENTRAL ='' * IF_WMPP ='' * IF_GET_DELIVERY_BUFFERED ='' * IF_NO_GENERIC_SYSTEM_SERVICE ='' * IF_DATABASE_UPDATE ='1' * IF_NO_INIT ='' * IF_NO_READ ='' if_error_messages_send_0 ='' * IF_NO_BUFFER_REFRESH ='' * IT_PARTNER_UPDATE = * IT_SERNR_UPDATE = * IF_NO_REMOTE_CHG ='' * IF_NO_MES_UPD_PACK ='' * IF_LATE_DELIVERY_UPD ='' 输入 ef_error_any_0 = ef_error_any_0 ef_error_in_item_deletion_0 = ef_error_in_item_deletion_0 ef_error_in_pod_update_0 = ef_error_in_pod_update_0 ef_error_in_interface_0 = ef_error_in_interface_0 ef_error_in_goods_issue_0 = ef_error_in_interface_0 ef_error_in_final_check_0 = ef_error_in_final_check_0 ef_error_partner_update = ef_error_partner_update ef_error_sernr_update = ef_error_sernr_update 桌子 vbpok_tab = lt_vbpok prot = lt_prot * VERKO_TAB = * VERPO_TAB = * VBSUPCON_TAB = * IT_VERPO_SERNR = * IT_PACKING = * IT_PACKING_SERNR = * IT_REPACK = * IT_HANDLING_UNITS = * IT_OBJECTS = * ET_CREATED_HUS = * TVPOD_TAB = * IT_TMSTMP = * IT_BAPIADDR1 = * IT_TEXTL = * IT_TEXTH = * IT_AAC_ITEM_BLOCK = * IT_HU_HEADER_EPC = * IT_HU_ITEMS_EPC = 。 捕获cx_root INTO DATA(lx_data_root)。 消息lx_data_root-> get_longtext()类型'I'。 ENDTRY。 在lt_prot ASSIGNING FIELD-SYMBOL( )处循环播放。 *清除ct_return。 如果 -msgty ='E'或 -msgty ='A'。 *发生错误。 DATA(ef_error_occured)='X' 万一。 ls_ret-type = -msgty。 ls_ret-id = -msgid。 ls_ret-number = -msgno。 ls_ret-message_v1 = -msgv1。 ls_ret-message_v2 = -msgv2。 ls_ret-message_v3 = -msgv3。 ls_ret-message_v4 = -msgv4。 将ls_ret附加到ct_return。 ENDLOOP。
任何帮助将不胜感激。
谢谢
B
如果您只想完全确认POD,则可以使用具有以下参数的BAPI WS_DELIVERY_UPDATE_2:
但是,请务必注意,WS_DELIVERY_UPDATE或WS_DELIVERY_UPDATE_2从未被SAP正式发布过。 因此,根据您的版本/EHP,它可能不起作用且不受支持。
如果交货数量和客户确认数量之间没有差异,则当通过VLPOD或VLPODQ确认交货时,系统会自动将状态更改为" C"。 让我知道您的情况是否有所不同。 顺便说一句,如果您是技术人员,您是否与应该知道这一点的职能团队讨论。
您好,
您已传递ls_vbpok-KZPOD中的值
谢谢
一周热门 更多>