TCP/IP 整合:從兩個不同端口掃描資料,比較資料後有條件列印
問題
在整合過程中,是否可以從兩個不同的來源讀取資料,將資料進行比較,然後根據比較結果有條件地列印文件?
答案
是的,這確實是可行的。以下是一個範例(使用 TCP/IP socket)。
1.-
以下的整合檔案展示了如何建立一個 TCP/IP 或序列埠整合,先掃描第一組資料(會保留在 %EventData%),然後再建立一個額外的動作來掃描第二組資料(我將其存到一個名為 %SecondScan% 的變數中)。
當你擁有兩組資料後,可以透過 PowerShell 腳本進行比較:
$First = "%EventData%"
$Second = "%SecondScan%"
$Result = $First.equals($Second)
$Result
比較結果會寫入第三個整合變數 %Result%。
最後,你可以根據 %Result% 的值,執行有條件的「列印文件」動作。如果結果為 True,文件就會被列印(在我的範例中,由於「等於」True 的比較無法運作,所以我用「開頭為」T 來判斷)。
2.-
一些截圖說明:
最初的 TCP/IP 偵測設定為讀取 5 個字元後停止:
第二次從網路 socket 讀取(這次作為一個動作),操作方式完全相同,但會開啟一個新連線:
執行比較的 PowerShell 指令:
有條件的列印文件動作:
更多資訊(內部)
整合檔案和 Hydrashok 檔案(這是一個 Seagull 工具,用來透過序列埠或 TCP/IP 埠發送資料)可以從這裡下載:
https://seagull/confluence/pages/viewpage.action?pageId=36799556
關於 Hydrashok 的設定,我建立了兩個觸發器,一個在 5 秒時觸發,會提供 TCP/IP 整合所需的資料,另一個在 15 秒時觸發,會提供「從網路 socket 讀取」動作所需的資料。