点击此处---> 群内免费提供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之外使用什么以一致和事务的方式取消它?
我的交易提交后,我需要立即取消工作流程。
嗨,Sergei,
SAP_WAPI_ADM_WORKFLOW_CANCEL具有DO_COMMIT输入参数。 您是否尝试将其设置为ABAP_FALSE?
我现在无法检查,但从其名称看来,它应该提供了所需的行为
Sergei,
我在7.00系统中重现了该问题。
这对我来说也是一个问题,因为我正计划进行类似的开发。 而且它似乎没有SAP注释可以解决此问题,至少到目前为止我还没有找到它。
我当然尝试过,do_commit没有传递给 我提到的代码。
嗨,
我通常使用事件来控制工作流程的取消。 我的大部分工作流程都是从1:2分叉开始的。 一方面,是整个业务流程,另一方面是带有所有等待事件步骤的子流,这使得该流程无效(删除,更改等)。
请问,罗伯·迪勒曼斯
嗨,Rob,
我们知道这一点,我们希望避免这种情况。 因为这种方法给我们的工作流程带来了不必要的例行程序和复杂性。
从某种意义上说,每个WF都有一些棘手的要求,即无法(由用户)取消它。 每个WF根据自己的逻辑发出有关该情况的信号。 因此,这不是一个简单的全局1:2分支。
我们还具有复杂的请求处理框架,每个请求都紧密链接到自己的工作流(例如在Process和Forms中),在某些情况下,我们还具有父子请求关系 需要立即取消所有操作而没有任何延迟和不希望的后果(如果在不同的WP中通过tRFC下的不同LUW取消操作)
对于我们来说,最好的情况是在一个事务中取消所有操作,并在失败时进行回滚 p>
一周热门 更多>