簡體   English   中英

Informatica PowerCenter 過濾器中的上一個工作流開始時間作為開始日期

[英]Previous Workflow Start Time as start date in a filter in Informatica PowerCenter

好的,情況看起來是這樣的:我有一個運行許多映射的工作流。 在這些映射中,我需要一個過濾器來設置從 salesforce 到 oracle 數據庫的重新遷移數據的特定增量加載時間。 對於數據的初始加載,我們設置了一個過濾器,如下所示:

CreatedDate >= TO_DATE('01/01/1900','MM/DD/YYYY') and CreatedDate <= $$EXPORTDATE

其中$$EXPORTDATE被分配給Workflow Manager中引用WORKFLOWSTARTTIME的工作流變量。 現在對於重新遷移數據的增量加載,我需要使用上一次運行的開始時間作為開始日期(對於工作流的下一次運行)。

為此,我們創建了一個 oracle 數據庫表,我們在其中手動輸入了運行的開始日期。 該表只有兩列RECIDEXPORTDATE 它們與我正在使用的任何對象或表沒有任何公共列。 任務是使用此表在過濾器中設置開始日期。

我怎樣才能做到這一點? 查找是否可能,我試過了但沒有成功?

你可以做 -

  1. 如果你的源和這個 oracle 表在同一個數據庫中,你可以直接使用它。 如果在其他 Oracle 數據庫鏈接中連接到 Oracle 並直接從該表使用它。
select * from source, oracle_datetab@Oracle_DB OraDT where CreatedDate >= TO_DATE('01/01/1900','MM/DD/YYYY') and CreatedDate <= OraDT.EXPORTDATE
  1. 您可以使用查找然后過濾。 查找將是未連接的,連接條件應該在虛擬數據上。 以及基於此的過濾數據。 返回導出日期。 Lkp 查詢 -
select -99 as dummy_join_condition, EXPORTDATE as EXPORTDATE from oracle_datetab

連接條件應基於 dummy_join_condition。 然后使用過濾器轉換 -
CreatedDate <=:lkp.LKP_oracle_datetab(-99)
如果您遇到任何問題,請告訴我。

  1. 第三種選擇是使用帶有基於虛擬列的源的連接器。
SQ1_source - create a dummy column with value = -99          --->
                                                                  JNR on this dummy column.  --> FIL on CreatedDate <= SQ2.EXPORTDATE
SQ2_oracle_datetab - create a dummy column with value = -99  ---> 

非常感謝您的建議,確實我使用了第三個選項並且效果很好。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM