透過網路服務整合以單一列印作業列印資料庫記錄
概述
您很可能正在考慮建立 Web 服務整合,以利用雙向通訊的優勢,讓我們能回報更多有關觸發檔案接收狀況的資訊。此外,您可能會傳送變數資料給 BarTender,讓每張標籤都能使用不同的資料。不過,您可能不喜歡每傳送一筆資料就產生一個獨立的列印工作。有些客戶也會遇到印表機在每個列印工作之間需要執行某些作業的情況,這會大幅增加您想要列印標籤數量時所需的總列印時間。
這個範例方法讓我們可以利用 Web 服務整合的觸發處理,同時將您想要列印的多筆資料合併成一個列印工作,這是透過 Print Command Script(列印指令腳本)來實現的。
實作方式
思考任何整合時,最好的方式是至少將發生的事件分成兩部分:觸發整合的事件,以及收到觸發後要執行的事件。這篇文章「我可以在 Web 服務整合中傳送多筆資料嗎?」主要說明了整合的第一部分。正如文章所述,您可以設定 POST Web 服務整合,並傳送多筆資料,類似下圖所示:
請注意,這只是其中一種方法,使用者選擇不僅放入相關資料,還定義了每筆資料的標籤和印表機。您也可以嘗試其他方式。例如,這是我設計要傳送給整合的資料結構:
比較棘手的部分(也是 Integration Builder 強大之處)在於收到資料後該怎麼處理。此時,Web 服務整合並不知道這些資料是什麼或用途為何。我們希望能將傳送過來的資料包裝成某種資料集。這樣一來,就能用動態建立的資料庫來列印我們想要的文件。
範例檔案
以下是您可以用來搭配本教學的範例檔案,或您也可以自行建立:
建立範例資料庫檔案
首先,建立一個範例資料庫,模擬您將從整合傳送的資料格式。在這個例子中,我每張標籤會傳送兩個資料欄位:追蹤號碼和序號。因此,我建立了一個以逗號分隔的文字資料庫,內容如下,並將其儲存為 TESTDB.txt:
TrackingNumber,SerialNumber,
T456826,S956845
建立 BarTender 文件
我們需要先準備標籤,讓它能接收我們透過整合傳送的追蹤號碼和序號,這需要將資料庫連結到標籤上的對應物件。
- 開啟 ShippingLabel.btw。
- 使用 BarTender 的「資料庫連線設定」功能,將您的資料庫(TESTDB.txt)連接到 BarTender(可參考這篇說明:資料庫連線入門(影片 - 5:20))
- 將資料表的標題欄位對應到標籤範本上的對應物件(這部分在上述支援文章中也有說明)
- 儲存標籤。
建立整合
接下來我們要建立整合。由於這個範例會使用 POST 請求方式,我們要建立一個 Web 服務整合。
- 開啟 Integration Builder
- 選擇 建立新整合
- 選擇 Web 服務 作為整合類型,然後點選 確定。
- 在 輸入資料 下方,確認「輸入資料格式」設定為 非結構化。
- 在 回應 部分,您可以撰寫想要回傳的回應內容。以下是一個範例回應,您可以參考:
Print Job Status = %PrintJobStatus%
Print Job Messages = %PrintJobMessages% - 在「動作」區塊,點選右側紅色 X 刪除「列印文件」動作。然後,點選藍色加號,新增您想要在整合中執行的其他動作:
- 新增三個動作:
文字轉換為資料集
寫入檔案
列印指令腳本 - 在 文字轉換為資料集 指令中,請做以下設定:
在 文字資料庫連線設定 選項中,將 TESTDB.txt 連接到整合。
確認 文字來源 設為變數,並填入 %EventData%
確認 輸出 設定為將資料儲存到 %EventData% 變數 - 在 寫入檔案 指令中,請做以下設定:
將 來源 設為變數 %EventData%
將 目的地 設為您想要儲存資料庫檔案的位置。請確保整合有足夠權限存取該位置。本範例將檔案存放在 C:\test。
檔案名稱可自訂,下一步會用到這個檔名。
選擇當資料庫檔案已存在時要採取的動作。本範例選擇 若檔案已存在則取代。 - 在 列印指令腳本 指令中,請做以下設定:
選擇 來源 為「內嵌腳本」。
在 腳本 視窗中,輸入以下內容:
在 列印選項覆寫 中,勾選「提示輸入資料」。%BTW% /AF="C:\test\ShippingLabelMod.btw" /D="C:\test\TestResult.txt" /P
%END%
測試整合
在部署整合之前,您需要先確認整合運作正常!請在 Integration Builder 的主選單點選 測試整合,或在視窗下方的「屬性」旁邊點選「測試」分頁。
REST Client 設定
- 我們需要使用 REST client 來測試傳送 POST 請求給 BarTender。您可以使用任何 REST client。本範例使用 Insomnia,您可以在這裡下載:Insomnia Rest Client
- 安裝好 REST Client 後,建立一個新的 POST 請求,並選擇「other」作為文字格式選項。
- 請輸入以下資料。基本上,我們的請求格式就像一個資料庫,每一行是一筆資料。本範例會列印五張標籤,每行分別代表追蹤號碼和序號,格式與 TESTDB.txt 範例資料庫相同。
T456826,S956845,
T456827,S956846,
T456828,S956847,
T456829,S956848,
T456820,S956849 - 編輯網址,填入會觸發整合的網址。格式如下:
http://<host>/Integration/WebServiceIntegration/Execute
您可以在整合的 服務 分頁中找到這個網址。<host> 是您電腦的主機名稱。如果不確定,可以開啟命令提示字元,輸入「hostname」並按 Enter。
這裡就是輸入完整網址(包含您的主機名稱)的地方:
測試整合
- 在主選單點選 測試整合。
- 點選測試視窗右上角的 開始 按鈕,啟動整合。
- 在 REST Client 中點選「Send」。稍等幾秒,您就會在 REST Client 和整合測試視窗中看到回應結果:
部署整合
- 在 Integration Builder 工具列上,點選
部署整合,開啟 新增部署 對話框。 - 在 新增部署 對話框中,輸入部署名稱和描述。
- 確認 整合檔案 設定為 IntegrationFile.btin(或您儲存整合時的檔名)。
- 在 目標伺服器 中,新增您要部署整合檔案的伺服器。
- 設定所需的 錯誤處理 選項。
- 點選 確定 關閉對話框並部署整合檔案。
- 管理主控台會自動切換到 整合 節點,顯示您的整合。