Fiori工作流中的异常问题

2020-09-26 10:47发布

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

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


我不得不在Fiori上批准自定义工作流程。 所有设置均已完成,应用程序正在运行。 在应用程序中,我们有两个选项,批准和不批准。


在工作流中,批准步骤是活动,它具有四个结果。 这些结果之一是默认结果,而其他三个输出是通过 INSTMNTPLN 标准对象的 DECIDE 方法的例外定义的。

这些是例外:

在该方法中,当通过SAP GUI正常执行工作流时,这些异常将通过宏EXIT_RETURN抛出。

问题在于,在FIORI中,我无法在BADI中使用此宏

/IWWRK/ES_WF_WI_BEFORE_UPD_IB (建议在FIORI中实施的BADI)。

因此,对于用户通过FIORI批准WorkItem的情况,由于遵循"执行步骤"的流程,因此流程通常遵循。 当用户拒绝时,我应该将流程转移到异常1001,而BADI无法做到这一点。

有人知道在这种情况下如何进行吗?

(19.9 kB)

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

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


我不得不在Fiori上批准自定义工作流程。 所有设置均已完成,应用程序正在运行。 在应用程序中,我们有两个选项,批准和不批准。


在工作流中,批准步骤是活动,它具有四个结果。 这些结果之一是默认结果,而其他三个输出是通过 INSTMNTPLN 标准对象的 DECIDE 方法的例外定义的。

这些是例外:

在该方法中,当通过SAP GUI正常执行工作流时,这些异常将通过宏EXIT_RETURN抛出。

问题在于,在FIORI中,我无法在BADI中使用此宏

/IWWRK/ES_WF_WI_BEFORE_UPD_IB (建议在FIORI中实施的BADI)。

因此,对于用户通过FIORI批准WorkItem的情况,由于遵循"执行步骤"的流程,因此流程通常遵循。 当用户拒绝时,我应该将流程转移到异常1001,而BADI无法做到这一点。

有人知道在这种情况下如何进行吗?

(19.9 kB)
付费偷看设置
发送
4条回答
浮生未央
1楼 · 2020-09-26 11:22.采纳回答

我同意Mike的观点,尽管某些SAP工作流是通过这种方式设计的(或者在控制选项卡上可以拒绝Flag过程的标准功能会引发异常),但是这是一个糟糕的设计

但是请注意 2378748 –"我的"不支持带有批准步骤的工作流程,但有例外情况 收件箱会正式通知您,myInbox中的异常无效。

欢呼

Stephane

大道至简
2楼-- · 2020-09-26 11:11

Stéphane,谢谢您向我展示SAP Note 2378748!

正如我向Mike解释的那样,我必须重新设计WF。

谢谢!

:)

宇峰
3楼-- · 2020-09-26 11:10

这是错误的设计。 异常表示错误(通常是技术错误,或者是意外情况或罕见情况),不应将其用于对标准业务流程进行建模。

在此向用户显示两个按钮,并使用两种不同的处理类型处理结果。 不好,正是您所遇到的原因。

这是SAP标准对象,但它是1997年创建并在R/3 3.1g中发布的非常老的对象,因此是有史以来创建的第一个工作流位。 我猜想当时的设计考虑和Fiori互操作性并不是问题。 :-)

我会抓住机会,在OO中重写函数,或者至少重新设计WF以使用标准决策任务。

My梦
4楼-- · 2020-09-26 11:22

嗨,迈克! 再次感谢。

感谢您的回答以及您给我的所有选择。

当您说" 将原始对象附加为临时对象时,我总是同意您的看法,如果需要,始终可以打开完整视图。" 事实是WF非常大,并且在这一点上,如果我替换步骤(如您在第一个选项中所述),Workflow Builder将删除所有后续步骤。

在我之后 阅读Stéphane的答案,我很高兴知道有一个SAP注意,该注释建议您无法使用Fiori控制异常。 因此,我发现我的解决方案在WF中重新设计了一个流程。 我在WF容器中创建了一个新属性,并在REJECT情况下将值设置为这些属性。 在WF中,我检查APPROVAL流中REJECT的新属性。 看起来不太好,但这是最好的选择。

谢谢!

一周热门 更多>