ABAP 在增强中COMMIT

前言

呃,又是很磨人的需求,正常情况下是不允许在增强中COMMIT的,会影响源程序本身的逻辑,但是这个需求就得这么干...

就是在交货单增强里面要再调用一次交货单BAPI,通过SO的交货单自动创建STO的交货单,如果无法成功创建STO交货单那么原SO交货单也不允许新建

STO交货单失败的情况很好做,反正都不建报个E类型错就行;但是STO交货单要是创建成功那就要COMMIT了,而且还要写到自建表里面,最后用下面的方法实现了

解决方案

看了别的大佬的博客,用远程RFC可以另起一个会话,在另外的会话中做commit就不会影响原来的bapi,我再wait个半秒钟从自建表里面捞commit的结果就能知道BAPI有没有成功

抄了个大概,要建两个RFC,一个正常的RFC给BAPI调用,一个远程的RFC给正常的RFC调用

增强里面调用正常RFC

正常RFC调用远程RFC,返回uuid给增强程序,后续增强程序根据uuid查询日志自建表判断此次远程调用是否成功并获取消息

远程RFC调用BAPI并COMMIT

重点没什么,其实主要就是STARTING NEW TASK让SAP另起一个异步会话去处理,增强里面直接调远程RFC会报错,所以就用这种间接的方式了

相关推荐
爱喝水的鱼丶12 小时前
SAP-ABAP:通过接口创建生产订单报“没有工艺路线选中”错误解决办法详解
运维·开发语言·sap·abap·bapi·生产订单
duangww1 天前
SAPUI5消费OData例子
abap
goyeer1 天前
14.[SAP ABAP] MESSAGE 消息
sap·abap
abap帅哥2 天前
SAP MIRO/MIR4付款条件消失 :设计逻辑、根本原因与终极解决方案
数据库·后端·sap·abap·erp
SAP小崔说事儿3 天前
在数据库中将字符串拆分成表单(SQL和HANA版本)
java·数据库·sql·sap·hana·字符串拆分·无锡sap
goyeer3 天前
13.[SAP ABAP] RAISE 语句详解
sap·abap
cncdns-james3 天前
SAP Hana Studio备份生产机数据库——【认识SAP HANA Studio篇】
数据库·sap·sap hana studio
SAP小崔说事儿4 天前
自研Rise系列之ERP——基于SAPB1 的前端业务系统
sap·erp·sap b1·business one·b1·思爱普·自研erp
淋了一场太阳雨4 天前
SAP LSMW (二) - Batch Input Recording
sap·batch·lsmw
SAP小崔说事儿5 天前
SAP B1 库龄分析报表(SQL版本&非批次管理)
数据库·sql·sap·sap b1·business one·批次管理·库龄分析