首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过JCo通过事务方式调用BAPI

通过JCo通过事务方式调用BAPI
EN

Stack Overflow用户
提问于 2021-08-17 10:19:58
回答 1查看 213关注 0票数 3

首先,我不是SAP/BAPI开发人员。我们有一个java应用程序,它使用JCo库在RFCs上调用一些BAPI。问题是,是否有任何方法在一个交易中调用其中的几个。

我相信正确的方法是

  • begin JCoContext
  • 执行一些RFCs
  • 调用BAPI_TRANSACTION_COMMIT
  • 端JCoContext

我们想这样称呼那些系统bapis : BAPI_CATIMESHEETMGR_INSERT BAPI_CATIMESHEETMGR_CHANGE

但出于某种原因,不管我们做什么,所有的东西都会被背出来。我想了解到底是什么在记录这些数据。是提交那些BAPI的一部分,还是某种JCo的“特性”?

EN

回答 1

Stack Overflow用户

发布于 2021-08-18 12:54:13

学习RFC事务模型的一个好地方是这份帮助,在这里您可以阅读有关创建自定义BAPI的指南:

浸信会不能执行“提交工作”命令。原因:调用方应该控制事务。几个浸信会应该能够结合在一个LUW内。有关更多信息,请参见开发BAPI的事务模型。不得使用下列命令:

  • 呼叫事务
  • 提交报告
  • 提交报告和返回数据库更改只能通过更新进行。 原因: RFC执行隐式数据库提交

所以是的,通常您的假设是正确的,隐式提交发生在RFC中。

此外,“开发BAPI的事务模型”帮助部分包含关于您的场景的重要说明:

以下限制适用于将几个BAPI合并在一个LUW中:

  • 如果一个实例是由写BAPI创建、修改或删除的,那么read只能在发生提交工作时访问最近的数据。
  • 不可能在一个LUW中对同一个实例进行两个写访问。例如,您不能首先在同一个LUW.中创建对象,然后更改对象。
  • 但是,您可以在LUW中创建相同对象类型的多个实例。

因此,您将无法在一个LUW (BAPI_CATIMESHEETMGR_INSERT)中实现所需的内容: create (BAPI_CATIMESHEETMGR_CHANGE)和change (BAPI_CATIMESHEETMGR_CHANGE)时间表。

它必须在两个LUW(两个RFC调用)中完成。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68815610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档