在工作流程模板中使用ParForEach块的问题

2020-09-05 07:02发布

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

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


你好

在工作流程模板中设置动态/并行批准时,我遇到一些问题,每当我开始工作时,我似乎都会发现另一个问题,我希望这里有专家可以提供帮助。

我汇总了工作流程需要做的快速图表,但总结一下:

当发票项目被价格冻结时,我的工作流程开始,并且它使用多个科目分配(此位可以);

我创建了一个新任务,用于根据客户分配查找所有批准人,然后在工作流容器中填充一个名为ApproverTable的表(同样,在我的示例中,它找到了两个批准人)。 在这个阶段,我捕获批准者的数量,并将一个名为Counter的容器变量设置为批准者的数量(因此,在我的示例中再次为2);

然后,对于批准者表中的每个条目,应将决策步骤发送给财务批准者,后者决定批准还是拒绝价格差异。 为此,我使用了一个阻止步骤,将其设置为ParForEach,然后在"并行处理"选项卡上,将多行elemenet输入为ApproverTable(每个批准人都有一个任务);

如果批准者拒绝差异,则应将电子邮件发送给请求者并循环回到起点(似乎可以);

如果批准者接受差异,则单击批准。 在此阶段,我正在使用容器操作,并从Counter中的值减去1;

我有一个循环,直到检查Counter的值是否等于零的步骤为止。 如果是这样,价格块将被删除。

我遇到的问题是,当我在块中使用计数器时,计数器似乎永远不会为零。 好像每个步骤中的计数器都是2,因此在检查之前,它始终为1。 然后,我陷入了一个无休止的循环,在请求者审核时,它才重新开始...

有人知道我可能要去哪里吗?

(23.3 kB)

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

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


你好

在工作流程模板中设置动态/并行批准时,我遇到一些问题,每当我开始工作时,我似乎都会发现另一个问题,我希望这里有专家可以提供帮助。

我汇总了工作流程需要做的快速图表,但总结一下:

当发票项目被价格冻结时,我的工作流程开始,并且它使用多个科目分配(此位可以);

我创建了一个新任务,用于根据客户分配查找所有批准人,然后在工作流容器中填充一个名为ApproverTable的表(同样,在我的示例中,它找到了两个批准人)。 在这个阶段,我捕获批准者的数量,并将一个名为Counter的容器变量设置为批准者的数量(因此,在我的示例中再次为2);

然后,对于批准者表中的每个条目,应将决策步骤发送给财务批准者,后者决定批准还是拒绝价格差异。 为此,我使用了一个阻止步骤,将其设置为ParForEach,然后在"并行处理"选项卡上,将多行elemenet输入为ApproverTable(每个批准人都有一个任务);

如果批准者拒绝差异,则应将电子邮件发送给请求者并循环回到起点(似乎可以);

如果批准者接受差异,则单击批准。 在此阶段,我正在使用容器操作,并从Counter中的值减去1;

我有一个循环,直到检查Counter的值是否等于零的步骤为止。 如果是这样,价格块将被删除。

我遇到的问题是,当我在块中使用计数器时,计数器似乎永远不会为零。 好像每个步骤中的计数器都是2,因此在检查之前,它始终为1。 然后,我陷入了一个无休止的循环,在请求者审核时,它才重新开始...

有人知道我可能要去哪里吗?

(23.3 kB)
付费偷看设置
发送
5条回答
浮生未央
1楼 · 2020-09-05 07:16.采纳回答

嗨,

首先,我的理解是,如果并行步骤之一已获批准,然后您想关闭另一个批准者步骤。 代替阻止步骤,该步骤用来捕获最终用户的操作,我将使用位于"杂项"选项卡下的多行容器元素。 在这里,您还将获得与尝试实现的行为相同的行为。 但是,与这种方法中的阻止步骤相比,您可以定义结束条件。 这或多或少类似于我们为fork步骤定义的相同行为,最终定义了结束条件。 因此,如果批准了任何一项工作项操作,请完成其他工作项。

致谢

Pavan Bhamidipati

callcenter油条
2楼-- · 2020-09-05 07:22

嗨,詹姆斯,

感谢您的努力,并帮助他人提供您提供的想法和解决方案。

谢谢

Pavan

槿木_熙
3楼-- · 2020-09-05 07:18

嗨,詹姆斯

尝试以这种方式进行修改。 取一个Boolean容器元素而不是Counter。 将"批准"后的"容器"操作步骤替换为将布尔值conterner元素设置为X。

在直到步骤的循环中,检查布尔值容器元素= X。

请执行此操作,并告知我们。

谢谢

< p> Anjan

95年老男孩
4楼-- · 2020-09-05 07:23

嗨Anjan

我最初考虑使用布尔值,但是只有在所有用户都批准了任务的情况下,才应删除该块。 还是按批准任务检查布尔值? 抱歉,没有工作流程的经验,所以我想弄清楚我的工作方式! :)

谢谢

落灬小鱼
5楼-- · 2020-09-05 07:10

需要在处理块内部为批准任务定义退出条件。 您应该意识到任务开始和退出条件是由工作流运行时处理的,就像所有其他条件一样,请参见SWWCOND的文档。 我一直选择以编程方式完成所有任务,而不是等待条件被评估。 工作流运行时面临的挑战是它是异步的,您永远不知道任务以什么顺序执行以及何时执行。

一周热门 更多>