通过SAP_WAPI_ADM_WORKFLOW_CANCEL取消工作流导致隐式提交工作

2020-08-22 04:17发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)你好 我正在使用功能模块SAP...

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

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


你好

我正在使用功能模块SAP_WAPI_ADM_WORKFLOW_CANCEL取消工作流程。

一切正常,除了隐式提交工作。 它发生在里面:

CL_SWF_RUN_WIM_STATE-> DYN_CANCEL_CHILD_ITEMS

....
调用方法lh_wfm-> cancel()。

....

其中lh_wfm是CL_SWF_RUN_WFM类的实例

然后调用CL_SWF_RUN_WFM->清理方法和CL_SWF_RUN_WFM->保存方法

CL_SWF_RUN_WFM-> save方法在内部进行

调用方法lh_transaction_manager->提交。

commit方法执行COMMIT CONNECTION(我-> m_database_connection)。

在我的情况下,它是DEFAULT连接,即使不需要,也会导致隐式提交事务中的所有数据。

我想避免这种行为。

除了在工作流中的事件和特定处理之外,我还能在WF之外使用什么以一致和事务的方式取消它?

我的交易提交后,我需要立即取消工作流程。

5条回答
野沐沐
2020-08-22 04:39

嗨,Rob,
我们知道这一点,我们希望避免这种情况。 因为这种方法给我们的工作流程带来了不必要的例行程序和复杂性。
从某种意义上说,每个WF都有一些棘手的要求,即无法(由用户)取消它。 每个WF根据自己的逻辑发出有关该情况的信号。 因此,这不是一个简单的全局1:2分支。
我们还具有复杂的请求处理框架,每个请求都紧密链接到自己的工作流(例如在Process和Forms中),在某些情况下,我们还具有父子请求关系 需要立即取消所有操作而没有任何延迟和不希望的后果(如果在不同的WP中通过tRFC下的不同LUW取消操作)
对于我们来说,最好的情况是在一个事务中取消所有操作,并在失败时进行回滚

一周热门 更多>