abap se37测试bapi后显示成功但找不到单据

  • A+
所属分类:SAP

今天在写Hybris销售订单回传ECC的接口,需要调用ECC的bapi函数来实现电商的销售订单在ECC中创建。使用的bapi是BAPI_SALESORDER_CREATEFROMDAT2。

SE37传了几个参数进去测了一下:

凭证抬头
字段名 技术名称 例子
凭证类型 ZOR2
销售组织 2000
分销渠道 00
产品组 22
售达方 注意:在tables中传(AG,RE,RG,WE) 11000008
采购订单编号 BSTKD Hybris SO
交货冻结 VBAK-LIFTK 传空值,电商单据不需要财务复核
行项目
物料号 VBAP-MATNR 60000000
订单数量 VBAP-WMENG 10
工厂 VBAP-WERKS 2000

显示已经成功了:

abap se37测试bapi后显示成功但找不到单据

但是VA03和SE16查询表都查不到单据:abap se37测试bapi后显示成功但找不到单据

后来在itpub上查询了一下,发现有人也遇到这样的问题,原因是有的bapi是需要commit的,而se37直接运行bapi没有这个动作,所以实际上并没有创建so。

在se37 中单独测试,提示创建成功,可是在前台找不到数据的。
但是单独写个报表程序,在调用完bapi后 CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'就可以正常的创建成功了。

应用一个未知的新bapi的方法:
1,在se 37中看bapi的输入输出,并且测试,最好填参数的时候每次保存一下,直到reture的结果没有E或者A
2,写个简单的报表程序,将测试时候的参数直接填入,然后调用,最后需要写段代码做 BAPI_TRANSACTION_COMMIT
3,将直接填入的参数替换掉,完善程序的输入输出

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: