【问题标题】:trigger Informatica workflow based on the status column in oracle table根据 oracle 表中的状态列触发 Informatica 工作流
【发布时间】:2014-11-20 00:54:52
【问题描述】:

我想在不使用 pl/sql 过程或触发器的情况下实现以下场景

  1. 我有一个名为 emp_details 的表,其中包含列 (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 中)。

如何使用 informatica 方法而不是 plsql 或触发器来做到这一点?

【问题讨论】:

    标签: informatica


    【解决方案1】:

    如果您想实时实现这一点,请将 WF1 的输出写入消息队列,并在第二个工作流 WF2 中订阅从 WF1 生成的消息队列。

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

    【讨论】:

    • 您好 Bharadwaj,感谢您的回复。但我对消息队列概念一无所知.. 你能详细说明一下吗?
    • 您好,您可以使用免费的 JMS 创建消息队列,也可以使用 IBM Websphere for MQ。然后,您可以从 Informatica 创建 MQ 源和目标,然后您必须创建与该队列的连接。使用该连接读取或写入队列中的数据。如何创建 MQ 可能超出范围,因为需要大量的编码和配置设置。
    • 嗨 Bhardwaj,有没有其他不使用消息队列的方法?
    【解决方案2】:

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

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

    1. 如果发现任何更改,连续运行的 WF1 应创建一个文件。
    2. WF2 应该连续运行,EventWait 设置为等待上面指定的指标文件。一旦找到它应该使用Assignment Task 重命名/删除文件并从源中获取所需的数据并填充emp_details2 表。

    如果你需要这种方式,你可以通过指标文件传递数据

    【讨论】:

      【解决方案3】:

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

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

      流程二:Link Condition, Session.Status=SUCCEEDED and SOURCE_SUCCESS_ROWS=0,将此连接到控制任务并将工作流标记为完成。

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

      干杯

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-12
        相关资源
        最近更新 更多