Informatica Workflow Manager:如何根据某些条件控制工作流程

问题描述 投票:0回答:3

我有以下场景,我想弄清楚如何实施。

Session0之后,Session1.1或Session1.2将根据会话变量(Var)执行。我只想在 Session1.1 成功或 Session1.2 成功时才执行 Session2。

我尝试过以下解决方案:

  1. 如果我只是将状态条件放在链接C和链接D上。Session2不会执行
  2. 如果我在链接 C 和链接 D 之后放置决策任务来检查 Session1.1 和 Session 1.2 的状态,但工作流仍然不读取决策任务。

informatica informatica-powercenter
3个回答
2
投票

你添加会话2的方式,只有1.1和1.2都执行成功后才会执行。
您可以通过两种方式解决您的问题。
选项 1.使用另一个会话 2 快捷方式。
选项 2.使用决策任务。

1 - 创建会话 2 的快捷方式并将其添加到会话 1.2 和原始会话之后添加到 1.2。
映射应该是这样的 -

          | -> sess 1.1 --> sess 2 
sess 0 -->
          | -> sess 1.2 --> sess 2 (shortcut of original sess2)

2 - 创建决策任务并将其添加到会话 2 之前。条件为 if(sess1.1.status=succeeded 或 sess1.2.status=succeeded,1,0)。然后加入到sess 2。链接条件将是decision.condition=1。
映射应该是这样的 -

          | -> sess 1.1 --> |
sess 0 -->                  | -> decision task -link_cond-> sess 2 
          | -> sess 1.2 --> |

0
投票

另一个选项是保持设计不变(如图所示),在会话 2 中,您需要选中复选框 Treat Input links as- OR

注意:假设链路 c 有一个条件 Sess 1.1 = 成功 并且链路 D 有一个条件 Sess 1.2 = 成功


0
投票

如何让会话2仅在没有更多任务运行时运行? 如果您将“将输入链接视为 -OR”,它将在第一个会话 1.X 结束后立即开始。 但是,如果两者都在运行,我希望它等待两者结束。 或者当其中一个结束但另一个不运行时开始。

© www.soinside.com 2019 - 2024. All rights reserved.