簡體   English   中英

有沒有辦法取消Mirth Channel目標文件編寫器?

[英]Is there a way to cancel a Mirth Channel destination file writer?

當沒有返回數據時,有沒有辦法取消Mirth Channel目標文件寫入器。 我不想每次運行通道時都創建一個文件。 該通道需要每2-5分鍾運行一次,以處理sql server中隊列中的所有未決記錄。

我正在使用一個Mirth通道來查詢sql服務器數據庫並將數據輸出為CSV文件。 我正在使用Mirth Connect Server 3.2.0.7628。

這是我在目標轉換器上的腳本。 如果result.Size()不大於零,我試圖跳過添加到tmp的操作。 在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();

您始終可以從該目標中排除該消息。

例如,如果某個頻道有多個目標,並且每個消息僅需要由一個目標處理,則通過在源轉換器中調用destinationSet.removeAllExcept(connectorName),只有該目標才能接收到該消息。 這些目標將不存儲任何數據,也不會顯示在消息瀏覽器中。 這是對每個目標進行篩選的替代方法,可以節省處理時間和磁盤空間。

將您的代碼放入目標過濾器而不是Transformer應該起作用。

在if語句之后,添加:

else {
return false;
}

如果您有數據,它將運行您的轉換並將其傳遞到目標。 如果您不這樣做,它將過濾郵件,並且對目標不執行任何操作。

暫無
暫無

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

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