2015-12-08 90 views
0

當沒有數據返回時,是否有辦法取消Mirth Channel目標文件編寫器?每次運行頻道時我都不想創建文件。通道需要每隔2-5分鐘運行一次,以處理位於sql server中的隊列中的所有待處理記錄。有沒有辦法取消Mirth Channel目標文件編寫器?

我正在使用歡樂通道來查詢sql server數據庫並將數據輸出爲CSV文件。我正在使用歡樂連接服務器3.2.0.7628。

這是我在目標變壓器上的腳本。 我試着跳過添加到tmp如果result.Size()不大於零。 在Mirth Connect文檔中找不到此用例。

var dbConn = DatabaseConnectionFactory.createDatabaseConnection('net.sourceforge.jtds.jdbc.Driver','jdbc:jtds:sqlserver://xx.xx.x.xx:1433/<dbname>',<user>,<password>); 

var result1 = dbConn.executeCachedQuery("exec [z_stored_procedure] param1"); 

var i = 0; 
if (result1.size()>0) 
{ logger.debug(result1.size()) 
    while(result1.next()) 
    {   
      tmp.row += <row> 
      <DataField1>"{result1.getString('DataField1')}"</DataField1> 
      <DataField2>"{result1.getString('DataField2')}"</DataField2>            
      </row>; 
     } 
} 

dbConn.close();

回答

1

它應該把你的代碼在目標篩選而非變壓器

你的if語句後,添加:

else { 
return false; 
} 

如果你有數據,它將運行您的轉型,並將其傳遞到目標。 如果你不這樣做,它會過濾消息,並對目標無所作爲。

0

您可以始終排除處理郵件的目的地。

例如,如果一個信道有多個目的地時,只需要通過一個單一的目的地進行處理,由在源變壓器主叫destinationSet.removeAllExcept(連接器名稱)的每個消息中,只有該目標將接收該消息。這些目標將沒有數據存儲,並且不會顯示在消息瀏覽器中。這是對每個目標進行過濾的替代方法,可以節省處理時間和磁盤空間。

相關問題