因为在一个bapi成功执行后,需要调用 BAPI_TRANSACTION_COMMIT来提交所做得更改,那么这个提交操作要等待一定的时间,我们 调用的时候,通常 BAPI_TRANSACTION_COMMIT的WAIT参数是空的,那么就会导致commit work and wait不会执行,而是简单的 commit work操作,这样后续的BAPI可能需要上一个bapi所作操作的数据,而恰巧这些数据...
prd.Repository.ClearFunctionMetadata(); //貌似这句可以省略… RfcFunctionMetadata BAPI_COMPANYCODE_GETDETAIL_MD1 = prd.Repository.GetFunctionMetadata(”BAPI_TRANSACTION_COMMIT”); IRfcFunction function1 = null; function1 = BAPI_COMPANYCODE_GETDETAIL_MD1.CreateFunction(); function1.SetValue(”WAIT”,...
首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用。它功劳很大,在SAP里面很多的BAPI直接调用是不会有结果的,因为需要COMMIT一下才能生效,比如生成资产编号的BAPI:BAPI_FIXEDASSET_CREATE1,如果对他直接在SE37中调用运行或者使用SE38调用它,虽然可以得到一个资产编号,但是在AS03里面查询,系统会很白痴得提示你:该资产编号...
首先得明白BAPI_TRANSACTION_COMMIT这个BAPI的作用。它功劳很大,在SAP里面很多的BAPI直接调用是不会有结果的,因为需要COMMIT一下才能生效,比如生成资产编号的BAPI:BAPI_FIXEDASSET_CREATE1,如果对他直接在SE37中调用运行或者使用SE38调用它,虽然可以得到一个资产编号,但是在AS03里面查询,系统会很白痴得提示你:该资产编号...
调用bapi都需要判断return消息类型,如果没有报错则BAPI_TRANSACTION_COMMIT和COMMIT WORK AND WAIT.,否则BAPI_TRANSACTION_ROLLBACK。 同时,部分bapi调用之后还需调用特定的函数进行垃圾回收,否则会造成duplicate问题。 常用的处理方式: LOOP AT lt_return INTO wa_return. IF wa_return-type EQ 'E' OR wa_return-...
在先前发行版的 SAP 中,某些 BAPI 编码为执行落实。 从 SAP R4.0A 开始,BAPI 发出单独的 BAPI_TRANSACTION_COMMIT 以强制执行更新(以代替执行落实工作)更为有效。 通过使用此方法,可以先执行 BAPI 调用,然后再以批处理工作单元形式落实工作。 要确定某个 BAPI 是否编码为执行落实,请参阅 BAPI 的文档。
CommitXML=newSystem.Xml.XmlDocument();CommitXML.LoadXml(@"<ns0:BAPI_TRANSACTION_COMMIT xmlns:ns0=""http://Microsoft.LobServices.Sap/2007/03/Bapi/BUS2032/""><ns0:WAIT>X</ns0:WAIT></ns0:BAPI_TRANSACTION_COMMIT>");BAPICommitRequest=CommitXML;BAPICommitRequest(Microsoft.Adapters.SAP...
When theTransaction modeproperty on theSAPRequestnode is set toYes, the adapter is instructed to issue the SAP commit on completion of the message flow in line with other database commits. You can set theUse wait parameter before calling BAPI commitparameter in the Adapter Connection wizard that...
In this case you have to commit each bapi call and make use of the return parameter of BAPI_TRANSACTION_COMMIT, for this you have to pass wait = X becasue when sy-subrc is 4 after a synchronous call then it implies error. In your case you can do this, Call your bapi with required...
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT' EXPORTING wait = 'X'. ELSE. CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'. ENDIF. "过账发货相关函数 DATA: lv_vbeln TYPE bapiobdlvhdrcon-deliv_numb, ls_header_data LIKE bapiobdlvhdrcon, ls_header_control LIKE bapiobdlvhdrctrlcon, ...