我想在不使用pl / sql过程或触发器
的情况下实现以下场景我有一张名为emp_details的表格,其中有coulmns(empno,ename,salary,emp_status,flag,date1)。
如果有人更新了列emp_status='abc'
和flag='y'
,则Informatica WF 1
将处于持续运行状态,并检查emp_status值“ABC”
如果找到记录/记录,则查询所有记录,然后调用WF 2.
WF 1会将值ename,salary,Date1传递给WF 2(Wf2将填充将记录插入到表emp_details2中)。
如何使用informatica方法而不是plsql或触发器?
答案 0 :(得分:0)
如果要实时实现此目的,请将WF1的输出写入消息队列,在第二个工作流程中,WF2订阅从WF1生成的消息队列。
如果您有批处理过程。从WF1生成输出文件并在WF2中使用此输出文件。您可以使用作业调度程序轻松设置此依赖关系。
答案 1 :(得分:0)
我不明白为什么你首先需要两个工作流程。为什么不使用寻找差异的相同工作流来完成emp_details2
表更新。
无论如何,这可以使用指标文件来完成:
EventWait
设置为等待上面指定的指标文件。找到后,应使用Assignment Task
重命名/删除文件并从源中获取所需数据并填充emp_details2
表。如果您需要这种方式,可以通过指标文件传递数据
答案 2 :(得分:0)
您可以在单个工作流程中执行此操作,创建一个虚拟会话,根据以下链接条件将流量分成两部分后检查表格中的标志,
流程一:链接条件,Session.Status = SUCCEEDED和SOURCE_SUCCESS_ROWS(计数)> = 1然后运行您的实际会话,这将加载数据
流程二:链接条件,Session.Status = SUCCEEDED和SOURCE_SUCCESS_ROWS = 0,将其连接到控制任务并将工作流标记为完成。
确保您在Informatica级别安排工作流程以便连续运行。
干杯