购买要求-BAPI

2020-08-17 16:38发布

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

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


pr.txt 嗨,

我是BAPI的新手,我已经使用'BAPI_PR_CREATE'创建了PR,但是却遇到了运行时错误。" 在FM中,您只能指定特定长度且位于PR标头下的字段

请帮助我解决这个问题。

我在这里粘贴了一段代码:-

pr.txt (1.9 kB)

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

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


pr.txt 嗨,

我是BAPI的新手,我已经使用'BAPI_PR_CREATE'创建了PR,但是却遇到了运行时错误。" 在FM中,您只能指定特定长度且位于PR标头下的字段

请帮助我解决这个问题。

我在这里粘贴了一段代码:-

pr.txt (1.9 kB)
付费偷看设置
发送
6条回答
渐行渐远_HoldOn
1楼 · 2020-08-17 17:38.采纳回答

你好森提尔·加延德兰

这是我对您的代码的评论。

数据:wa_header TYPE bapimereqheader-preq_no VALUE'0010000004',
       wa_headerx TYPE bapimereqheaderx-preq_no VALUE'X',

应将WA_HEADER和WA_HEADERX定义为结构。

数据:wa_header TYPE bapimereqheader,
       wa_headerx TYPE bapimereqheaderx。

在这些结构中,您应该提供与整个PR文档创建相关的任何必需和重要信息。 在大多数情况下,您不应提供PR文档编号(除非此文档类型的编号范围定义为外部)。 文件编号将由系统自动生成。

您已经正确定义了项目结构。 另外,项目的内部表也很好。

 it_item bapimereqitemimp的类型表,
       wa_item TYPE bapimereqitemimp,

       it_itemx bapimereqitemx的类型表,
       wa_itemx TYPE bapimereqitemx,


 **为商品的...指定值
 wa_item-preq_item ='10'。
 wa_item-pur_group ='WIN'。
 wa_item-material ='E001789'。
 wa_item-plant ='1000'。
 wa_item-store_loc ='9000'。

 wa_item-preq_item ='X'。
 wa_item-pur_group ='X'。
 wa_item-material ='X'。
 wa_item-plant ='X'。
 wa_item-store_loc ='X'。

但是,您不会在填充结构后将项目结构添加到项目表中。

您需要使用APPEND或INSERT语句。 例如:

 APPEND wa_item到it_item。

此外,您还为分配给修改字段的信息分配了不正确的结构。 您应该使用WA_ITEM结构,而应该使用WA_ITEMX结构。

WA_ITEMX结构的PREQ_ITEM字段应具有该结构用于保存其信息的项目编号。

 wa_itemx-preq_item ='10'。
 wa_itemx-pur_group ='X'。
 wa_itemx-material ='X'。
 wa_itemx-plant ='X'。
 wa_itemx-store_loc ='X'。
 将wa_itemx附加到it_itemx。

如果要获取已创建文档的编号,则需要取消注释该函数的NUMBER参数。 如果要获取有关文档标题的更多详细信息,请使用PRHEADEREXP参数。

通话功能" BAPI_PR_CREATE"
  出口
    prheader = wa_header
    prheaderx = wa_headerx
 * TESTRUN =
   输入
     NUMBER = lv_number
     prheaderexp = wa_doc
   桌子
    返回= it_return
     pritem = it_item
    pritemx = it_itemx。
 * PRITEMEXP =
 * PRITEMSOURCE =
 * PRACCOUNT =
 * PRACCOUNTPROITSEGMENT =
 * PRACCOUNTX =
 * PRADDRDELIVERY =
 * PRITEMTEXT =
 * PRHEADERTEXT =
 * EXTENSIONIN =
 * EXTENSIONOUT =
 * PRVERSION =
 * PRVERSIONX =
 * ALLVERSIONS = 

NUMBER是BANFN类型,而PRHEADEREXP是BAPIMEREQHEADER类型的结构。

数据:
   lv_number TYPE banfn,
   wa_doc TYPE bapimereqheader。

这里是如何使用BAPI的另一个示例: https://answers.sap .com/answers/7128805/view.html

亲切的问候,

Mateusz
灬番茄
2楼-- · 2020-08-17 17:32

将您的代码作为一个表彰,以便清晰可见:

表:eban。

 数据:wa_header TYPE bapimereqheader-preq_no VALUE'0010000004',
       wa_headerx TYPE bapimereqheaderx-preq_no VALUE'X',
 * wa_doc TYPE bapimereqheader-pr_type VALUE'NS',

       it_item bapimereqitemimp的类型表,
       wa_item TYPE bapimereqitemimp,

       it_itemx bapimereqitemx的类型表,
       wa_itemx TYPE bapimereqitemx,

       it_return bapiret2的类型表,
       wa_return TYPE bapiret2。

 **为商品的...指定值

 wa_item-preq_item ='10'。
 wa_item-pur_group ='WIN'。
 wa_item-material ='E001789'。
 wa_item-plant ='1000'。
 wa_item-store_loc ='9000'。

 wa_item-preq_item ='X'。
 wa_item-pur_group ='X'。
 wa_item-material ='X'。
 wa_item-plant ='X'。
 wa_item-store_loc ='X'。

 BREAK-POINT。

 通话功能'BAPI_PR_CREATE'
  出口
    prheader = wa_header
    prheaderx = wa_headerx
 * TESTRUN =
 *重要
 * NUMBER =
 * prheaderexp = wa_doc
   桌子
    返回= it_return
     pritem = it_item
    pritemx = it_itemx。
 * PRITEMEXP =
 * PRITEMSOURCE =
 * PRACCOUNT =
 * PRACCOUNTPROITSEGMENT =
 * PRACCOUNTX =
 * PRADDRDELIVERY =
 * PRITEMTEXT =
 * PRHEADERTEXT =
 * EXTENSIONIN =
 * EXTENSIONOUT =
 * PRVERSION =
 * PRVERSIONX =
 * ALLVERSIONS =


 WRITE:/'TYPE:',wa_return-type,
         /'Id:',wa_return-id,
         /'消息:',wa_return-message。

 通话功能'BAPI_TRANSACTION_COMMIT'
 *出口
 *等待=
  输入
    return = wa_return。
 
大简至美
3楼-- · 2020-08-17 17:18

你好 senthil gajendran

这里的明显错误是 您不填写it_item或it_itemx内部表并将其空传递给BAPI_PR_CREATE。 您只需维护表的工作区域,即wa_item结构。

此外,您在以下位置使用wa_item而不是wa_itemx:

 wa_item-preq_item ='X'。
 wa_item-pur_group ='X'。
 wa_item-material ='X'。
 wa_item-plant ='X'。
 wa_item-store_loc ='X'。

最诚挚的问候

Dominik Tylczynski

我是小鹏鹏啊
4楼-- · 2020-08-17 17:18

谢谢。

敬上,
Mateusz
黑丝骑士
5楼-- · 2020-08-17 17:32

Dominik Tylczynski。 感谢您的回复...

我如下更改了" wa_itemx"。

wa_itemx-preq_item ='X'.wa_itemx-pur_group ='X'。 wa_itemx-material ='X'。 wa_itemx-plant ='X'。 wa_itemx-store_loc ='X'。 但是如上所述," <我的错误在PR标头中"" 在FM中,您只能指定特定长度且在PR标头下的字段... "请帮助...

梦想连接
6楼-- · 2020-08-17 17:31

您好森提尔·加杰德兰(senthil gajendran)

请使用"评论"选项来询问或向其添加其他信息 问题/答案。

亲切的问候,
Mateusz

一周热门 更多>