如何集成SAP Business Workflow和BOPF?

2020-09-20 02:44发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我的问题很简单:您如何在SAP Business Workflow的后台活动中更改BOPF对象? 问题是工作流运行时执行COMMIT WORK,这与BOPF事务处理不一致。 您如何解决问题?

我认为有两种可能的解决方案:

  • 使用标准事务管理器
  • 使用从属事务管理器

使用标准事务管理器可能会出现问题,因为它会抛出自己的COMMIT WORK或ROLLBACK WORK 而不是工作流运行时的常规COMMIT WORK/ROLLBACK WORK-这些命令稍后会从工作流运行时发出。 我的问题是,这是否会导致麻烦。

第二种解决方案可能如下:

创建一个实现IF_WORKFLOW的对象,从工作流活动中调用它并跨越您的 自己的交易: https://archive.sap.com/documents/docs/DOC- 74901 。 在此解决方案中,您可以控制执行,然后创建一个通知工作流程的工作流程事件。 唯一的问题可能是您在创建控制工作流程执行的工作流程事件之前,在后台活动中触发了COMMIT WORK。 通常我不这样做,而是使用SAP Business Workflow运行时的COMMIT WORK,以便所有操作都在单个LUW中完成。 我的问题是这是否可行或是否会导致工作流问题。

我还考虑过通过执行更新和事务处理功能模块将所有内容移至并行上下文中 并将结果返回给创建可指导工作流程的事件,但我不知道这是否会使所有情况变得更糟,即使您使用PERFORM ON ... COMMIT在DESTINATION NONE中也触发了BOPF事务处理(这将导致其他问题) )。

我知道SAP似乎有解决此问题的方法(请参阅
http://help.sap.com/saphelp_ehsext30/ 07cb5f7c7c402a93744fda1bbad88d/content.htm?frameset =/de/03/57f5a9e2b3479b94a4b5c381984e20/frameset.htm¤t_toc=/de/89/8a926b052548beb 49841a2732700bb/plain.htm&node_id = 10 ),但在此处找不到实现细节。

您如何解决此挑战? 还是上述解决方案有效?

干杯,
Tobias

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我的问题很简单:您如何在SAP Business Workflow的后台活动中更改BOPF对象? 问题是工作流运行时执行COMMIT WORK,这与BOPF事务处理不一致。 您如何解决问题?

我认为有两种可能的解决方案:

  • 使用标准事务管理器
  • 使用从属事务管理器

使用标准事务管理器可能会出现问题,因为它会抛出自己的COMMIT WORK或ROLLBACK WORK 而不是工作流运行时的常规COMMIT WORK/ROLLBACK WORK-这些命令稍后会从工作流运行时发出。 我的问题是,这是否会导致麻烦。

第二种解决方案可能如下:

创建一个实现IF_WORKFLOW的对象,从工作流活动中调用它并跨越您的 自己的交易: https://archive.sap.com/documents/docs/DOC- 74901 。 在此解决方案中,您可以控制执行,然后创建一个通知工作流程的工作流程事件。 唯一的问题可能是您在创建控制工作流程执行的工作流程事件之前,在后台活动中触发了COMMIT WORK。 通常我不这样做,而是使用SAP Business Workflow运行时的COMMIT WORK,以便所有操作都在单个LUW中完成。 我的问题是这是否可行或是否会导致工作流问题。

我还考虑过通过执行更新和事务处理功能模块将所有内容移至并行上下文中 并将结果返回给创建可指导工作流程的事件,但我不知道这是否会使所有情况变得更糟,即使您使用PERFORM ON ... COMMIT在DESTINATION NONE中也触发了BOPF事务处理(这将导致其他问题) )。

我知道SAP似乎有解决此问题的方法(请参阅
http://help.sap.com/saphelp_ehsext30/ 07cb5f7c7c402a93744fda1bbad88d/content.htm?frameset =/de/03/57f5a9e2b3479b94a4b5c381984e20/frameset.htm¤t_toc=/de/89/8a926b052548beb 49841a2732700bb/plain.htm&node_id = 10 ),但在此处找不到实现细节。

您如何解决此挑战? 还是上述解决方案有效?

干杯,
Tobias

付费偷看设置
发送
4条回答
SKY徐
1楼 · 2020-09-20 02:57.采纳回答

今天,我听到了解决问题的开发人员的回答。 实际上,他们以以下方式使用了从属事务管理器:他们在更新任务中执行CALL FUNCTION'/BOBF/TRA_DUMMY_UPDATE_TASK',然后让工作流运行时执行COMMIT WORK。 当然,保存后阶段不能以这种方式执行。 如果无法保存,则它们将引发异常,并让工作流运行时执行ROLLBACK WORK。

悻福寶寶
2楼-- · 2020-09-20 03:01

是的,我认为也是一样。 实际上,我所问的第一个链接只是指向您在链接中提到的从属事务管理器说明的第二部分的链接。 因此,主要问题是是否在SAP Business Workflow的后台方法内执行COMMIT WORK。 通常,我会尽量避免这种情况,因此我对此没有太多经验。

但是让我们讨论从属事务管理器的用法。 我对这种解决方案有深入的了解,我有两个问题:如果COMMIT WORK是由工作流运行时执行的,则无法执行后保存阶段。 您认为这是一个问题吗? 我认为在许多情况下,此阶段并不重要。 第二个问题是:lo_slave_manager-> do_save()失败时该怎么办? 我真的需要做回滚工作吗? 如果是,这是否会导致工作流运行时出现问题?

最好的问候,
Tobias

P.S .:是的,自昨天以来, help.sap.com 遇到了一些麻烦。 但是该链接无法解决此问题。 它链接到一个软件解决方案,该软件解决方案是自己的软件组件中SAP Business Suite的附加组件,因此我无法分析其实现。

CPLASF-自律
3楼-- · 2020-09-20 03:09

Hi Tobias,

该链接 SAP帮助当前对我不起作用。 因此,我希望您不要链接到我的建议;-)

我不是工作流专家,但对我来说,该场景听起来很适合从属事务管理器。

Tilmann 对此写了一篇博客文章:

https://blogs.sap.com/2015/01/17/integration-of-bopf-business-objects-and-existing-applications-part-12/

我希望这会有所帮助!

干杯

马丁

暮风yp
4楼-- · 2020-09-20 03:09

我会说,绝对使用从属事务管理器。 实际上,在所有增强/用户退出方案中都是如此。 在我最近的开发中,在某种增强的实现中,我首先准备了BOPF实例(即生成密钥)并将其发送到从属事务管理器。 接下来,我准备要在更新任务中创建的带有BOPF实例键的工作流事件,并结束我的增强。 当SAP流程决定触发COMMIT WORK时,将使用我准备的键来触发工作流程事件,(自定义)工作流程将启动并完成我想要的所有后处理任务。 有关一些详细信息,请参见功能模块BOPF_COMMIT。


但是,我不确定我是否理解您关于" "的陈述,唯一的问题可能是您在创建控制工作流执行的工作流事件之前,在后台活动中触发了COMMIT WORK。"

一周热门 更多>