根据oracle表中的status列触发Informatica工作流

时间:2014-11-07 08:26:03

标签: informatica

我想在不使用pl / sql过程或触发器

的情况下实现以下场景
  1. 我有一张名为emp_details的表格,其中有coulmns(empno,ename,salary,emp_status,flag,date1)。

  2. 如果有人更新了列emp_status='abc'flag='y',则Informatica WF 1将处于持续运行状态,并检查emp_status值“ABC”

  3. 如果找到记录/记录,则查询所有记录,然后调用WF 2.

  4. WF 1会将值ename,salary,Date1传递给WF 2(Wf2将填充将记录插入到表emp_details2中)。

  5. 如何使用informatica方法而不是plsql或触发器?

3 个答案:

答案 0 :(得分:0)

如果要实时实现此目的,请将WF1的输出写入消息队列,在第二个工作流程中,WF2订阅从WF1生成的消息队列。

如果您有批处理过程。从WF1生成输出文件并在WF2中使用此输出文件。您可以使用作业调度程序轻松设置此依赖关系。

答案 1 :(得分:0)

我不明白为什么你首先需要两个工作流程。为什么不使用寻找差异的相同工作流来完成emp_details2表更新。

无论如何,这可以使用指标文件来完成:

  1. 连续运行的WF1应该在找到任何更改后创建文件。
  2. WF2应该连续运行,EventWait设置为等待上面指定的指标文件。找到后,应使用Assignment Task重命名/删除文件并从源中获取所需数据并填充emp_details2表。
  3. 如果您需要这种方式,可以通过指标文件传递数据

答案 2 :(得分:0)

您可以在单个工作流程中执行此操作,创建一个虚拟会话,根据以下链接条件将流量分成两部分后检查表格中的标志,

流程一:链接条件,Session.Status = SUCCEEDED和SOURCE_SUCCESS_ROWS(计数)> = 1然后运行您的实际会话,这将加载数据

流程二:链接条件,Session.Status = SUCCEEDED和SOURCE_SUCCESS_ROWS = 0,将其连接到控制任务并将工作流标记为完成。

确保您在Informatica级别安排工作流程以便连续运行。

干杯