点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
您好,专家们,我是ABAP的新手,也是使用BAPI的新手,需要您的帮助。 如果解决方法非常简单并且我犯了愚蠢的错误,请原谅我。
我要解决此问题,因为需要更新LIKP表中WADAT,KODAT,LDDAT和TDDAT字段的值。
我编写了以下代码,只是为了填充一个字段(即WADAT)一些示例值。
数据:bapiobdlvhdrchg的it_header_data类型表, wa_header_data TYPE bapiobdlvhdrchg。 数据:bapiobdlvhdrctrlchg的it_header_control类型表, wa_header_control类型bapiobdlvhdrctrlchg。 数据:it_return bapiret2的类型表, 数据:it_header_deadlines bapidlvdeadln的类型表, wa_header_deadlines TYPE bapidlvdeadln。 数据:l_delivery TYPE vbeln_vl。 wa_header_data-deliv_numb ='0180190163'。 将wa_header_data附加到it_header_data。 wa_header_control-deliv_numb ='0180190163'。 wa_header_control-gdsi_date_flg ='X'。 wa_header_deadlines-deliv_numb ='0180190163'。 wa_header_deadlines-timetype ='WSHDRWADAT'。 wa_header_deadlines-timestamp_utc ='20180308'。 将wa_header_deadlines附加到it_header_deadlines。 l_delivery ='0180190163'。 通话功能'BAPI_OUTB_DELIVERY_CHANGE' 出口 header_data = wa_header_data header_control = wa_header_control 交付= l_delivery 桌子 header_deadlines = it_header_deadlines return = it_return。 调用功能'BAPI_TRANSACTION_COMMIT'。
运行此代码后,表不会针对给定的字段进行更新,最大的问题是表'it_return'未被任何错误消息填充。
我认为在填充 TIMETYPE 和 TIMESTAMP_UTC 字段时犯了一些错误。
我已经阅读了有关此BAPI的文档,但了解不多。
如果需要为更多参数添加值,请告诉我。 使用参数 HEADER_DEADLINES 的代码示例将不胜感激。
请忽略以下事实:代码包含一些未使用的内部表和工作区。
此外,请让我知道是否有更好的方法来更新LIKP表中的字段 WADAT,KODAT,LDDAT和TDDAT。 我知道我们应该避免对标准表使用MODIFY或INSERT语句的事实。
嗨阿南德,
您正在正确填充HEADER_DEADLINES表。
如果还没有调试BAPI,则对逻辑进行一些解释。
在HEADER_DEADLINES表中使用正确的TIMETYPE填充更多记录可以使您更新这些日期。
实际上,BAPI在包括LV50IF04中调用FORM SPAN VBKOK_OBDLV_FILL,并根据TIMETYPE处理该表以更新CS_VBKOK结构和标志(如果需要使用正确的结构和标志,只需在表单中双击常量即可) 。
最后,BAPI调用FM WS_DELIVERY_UPDATE,后者调用WS_DELIVERY_UPDATE_2。
此FM调用include LV50LF01中的FORM DELIVERY_UPDATE_HEADER,在其中检查先前填充的标志和字段
因此,基本上,您位于正确的路径上,只需要在HEADER_DEADLINES表上添加更多记录,以告知BAPI要更新的正确字段/标志。
该表具有 交货号为关键!
您似乎没有调试代码。
具有相同交货编号的多条记录意味着更新有关MULTIPLE FIELDS的SAME记录(在您的情况下为1条)
一周热门 更多>