ソケットまたはWebサービスのPOST統合で複数レコードを使用する方法
概要
ソケット経由やWebサービス連携でデータを送信する際、ファイル連携のテーブル構造のように、複数のレコードをまとめて送信することができます。これにより、1つのトリガーファイルでより多くの情報を送ることが可能です。
新しい連携を作成した場合、デフォルトでは1件のレコードのみを読み取り・処理します。ただし、追加のアクションを設定することで、複数レコードの処理も可能になります。
対象製品
BarTender 2019以降
Automation Edition以上
情報
下記の例のように、すでに「テーブル状」の構造を持つデータをTCPやPOSTで送信することが可能です:

「フラット」ファイルの内容を変数として利用するには、まず「各データベースレコードごとに処理」と「テキストをレコードセットに変換」の2つのアクションを追加する必要があります:
これら2つのアクションは「連携の種類に関係なく」使用できます。%EventData%変数の値をもとに動作するためです。この変数には連携で受信したすべてのデータが保存されます。
「テキストをレコードセットに変換」アクションは、CSVやタブ区切りなどのテキストベースのデータベースのみ対応しています。XMLやJSONなど、より複雑なテキストベースのデータベースには対応していません。
「テキストをレコードセットに変換」アクションの設定
最初に設定する必要があるのは「テキストをレコードセットに変換」アクションです(このアクションでデータをデータベースのような構造に変換します):
- まず、受信データの構造を定義するための「サンプル」ファイルを用意します。たとえば、TCPやPOSTで送信するデータと同じ構造のサンプルドキュメントを使用します。
- 「データベース接続の設定...」ボタンをクリックし、ウィザードを使って「サンプル」データベースファイルを連携にリンクします。データベースの接続が完了したら、ダイアログを閉じます。
- 「テキストソース」オプションで、「変数」が「%EventData%」になっていること、出力も「%EventData%」になっていることを確認します。
この設定により、アクションが使用するデータは「%EventData%」変数内のものとなります。連携では受信したすべてのデータが自動的にこの変数に保存されます。
「各データベースレコードごとに処理」アクションの設定
データがレコードごとに分割された後、連携はこれらのレコードをどのように処理するかを知る必要があります。「各データベースレコードごとに処理」アクションの子として「ドキュメントの印刷」アクションをネストすることで、印刷時に各レコードが個別に印刷されるようになります:
「各データベースレコードごとに処理」アクション自体には特別な設定は不要ですが、ラベル上でデータをどのように配置するかは「ドキュメントの印刷」アクションで設定します。
- まず、ラベルにすべての値を「名前付きデータソース」として設定しておきます。
- 「ドキュメント設定のインポート」ボタンをクリックし、「名前付きデータソース」名をインポートして入力します。
- 次に、ラベルの「名前付きデータソース」とサンプルデータベースのフィールド名を一致させます。フィールド名を割り当てていない場合は、自動生成されたField1、Field2などの名前になります。
- 「名前付きデータソース」テーブルの変数アイコンを選択し、ダイアログからフィールド名を挿入します。フィールド名は下記のように「アクション」セクションに表示されます:
フィールド名が分かっている場合は、%FIELDNAME% という書式で手入力することもできます。