纯SAP小白,现在在做java通过sapjco3对接sap系统,主要实现对sap系统中函数的调用。我想在一个事务中调用多个函数,
代码:
JCoContext.begin(jcoDestination);
String tid = jcoDestination.createTid();
JCoFunction function1 = jcoDestination.getRepository().getFunction("function1");
function1.execute(jcoDestination,tid );
JCoFunction function2 = jcoDestination.getRepository().getFunction("function1");
function2.execute(jcoDestination,tid );
JCoFunction commitFunction = jcoDestination.getRepository().getFunction("BAPI_TRANSACTION_COMMIT");
commitFunction.execute(jcoDestination,tid );
JCoContext.end(jcoDestination);
这段代码测试的时候出现了几个问题:
1. 函数BAPI_TRANSACTION_COMMIT提交的好像是所有的事务,而且提交事务没有用到事务id(tid)参数。请问只提交某一个特定事务id的事务。
2. function1我填写的数据都是正确的,function2我填写了错误的数据,最后提交的时候function1的数据还是保存到表里面了,并没有实现事务的一致性,即一个报错另外一个也不会保存成功。请问是为什么。
请各位大佬指教一下,到底是哪里出了问题,还是我对sap的事务理解有问题。