Commanderによる自動発行基本編

Commander による自動発行
(Automation 版以上)
目次
Commanderの概要 ................................................................................................................................... 1
チュートリアル ....................................................................................................................................... 2
様々なコマンド ....................................................................................................................................... 7
Commanderの運用 ................................................................................................................................... 8
ネットワークでの利用 ............................................................................................................................ 9
よくある質問 ......................................................................................................................................... 11
Commander の概要
Commanderは上位アプリケーションからの印刷指示(トリガ)を受けて、BarTenderでラベルの自動発行を行うミ
ドルウェアです。
簡単な発行指示であればほぼプログラミングなしで実現できるほか、Commander スクリプト や XML スクリプ
トによりトリガファイルにドキュメント名や出力先プリンタを記述することで、非常に柔軟な発行を実現できます。
発行指示を出すシステムはテキストファイルが作成できればよいため、開発言語や OS を選びません。
▼Commander の概念図
トリガ(CSV,XML等)を作成
上位システム
(Windows,
UNIX系OS,
Webシステム)
計測器など
ラベル発行PC
ファイル
監視フォルダ
パケット
TCP/IPソケット
!
タスクに従って処理
コマンドハンドラ
印刷
コマンド
Commander
BarTender
BarTender
プロセス
BarTender
テキスト
シリアルポート
ドキュメント(レイアウト)
Commander は BarTender の Automation 版以上に含まれます。
最上位製品の Enterprise Automation 版では、ネットワーク経由でのトリガ着信、XML での発行指示に対応、
複数の BarTender プロセスによる負荷分散など、大規模発行に適した機能が追加されています。
1 / 12
チュートリアル
このチュートリアルは、Windows XP SP3 上の BarTender 10.0SR1 で、フォルダに配置された CSV ファイルを検出
して、指定した BarTender ドキュメントを指定したプリンタから印刷する例です。
BarTender Automation 版以上、および期限切れでないトライアル版で確認できます。
1. フォルダの準備
C:\Commander フォルダを作成し、その中に Formats, Scan, Triggers フォルダを作成します。
2. ドキュメントの作成
メモ帳に以下の内容を入力し、“Sample.csv”として、C:\Commander\Formats フォルダ内に保存します。
このデータはラベルの作成時に利用され、Commander の実行時にはトリガファイルに差し替えられます。
"Name","Code"
"TEST","12345678"
BarTender でドキュメントを新規作成し、任意のプリンタを選択して、以下のようなラベルを作成します。
データベースとして先程作成したテキストファイル“Sample.csv”に接続します。
形式は[複合した引用符とコンマ]、先頭行はヘッダとします。
ラベル上のテキストのデータソースはデータベースフィールド”Name”を選択、
バーコードのデータソースはデータベースフィールド“Code”を選択します。
(データベースへの接続手順については、別資料 「テキストファイル(CSV)との接続.pdf」を参考にしてください。)
プレビューか印刷が正しく出力されたら、C:\Commander\Formats フォルダ内に“Sample.btw”として保存します。
2 / 12
3. Commander タスクの作成
Commander を開きます。メニューの タスク>追加 でタスクを追加します。
トリガで[ファイル]を選択し、トリガタブでは
検出方法:
即時
スキャンするフォルダ: C:\Commander\Scan
スキャンするファイル: *.csv
検出の応答方法:
ファイル名の変更
新しい拡張子:
dat
とします。
‧
検出方法は、通常は[即時]を選びます。
他のコンピュータ上のフォルダなどで[即時]で検出できない場合は[ポーリング]を選択してください。
‧
スキャンするフォルダは監視対象のフォルダです。このフォルダにトリガファイルがコピーされると、コマンドの
内容が実行されます。
‧
スキャンするファイルにはワイルドカード(*,?) が使用できます。
[*.dd] の場合は拡張子が dd のファイルを全てトリガとみなします。
[A*.csv]の場合には、A で始まり拡張子が CSV のファイルをトリガとみなします。
‧
検出の応答方法は、トリガファイルのデータを BarTender で利用する場合は [ファイル名の変更]としてくださ
い。印刷後にトリガを削除するときは、コマンド/DD (処理が完了したらファイルを削除)を使います。
3 / 12
4. BarTender コマンドの作成
コマンド タブで、コマンドタイプ[BarTender]を選択します。
コマンド右の[...]のボタンより、BarTender コマンドオプションを開きます。
ドキュメントタブでは、使用するドキュメントとして[C:\Commander\Formats\Sample.btw]を選択します。
(PC 上のフォルダのほか、Librarian のライブラリに格納されたドキュメントも利用できます)
使用するプリンタとして、任意のプリンタを選びます。
ドキュメントで指定:バーテンダーファイル(BTW)ファイル内の印刷で設定されているプリンタに印刷されます。
システムプリンタ:リストボックス内で選択したプリンタに印刷されます。
4 / 12
テキストファイル タブで、テキストデータベースとして使用するファイルを指定します。
[テキストファイル]をチェックし、値は %Trigger File Name% のままにします。
(%Trigger File Name%は、検出したトリガファイルをデータベースとして利用するという意味の変数です。)
印刷後トリガファイルを削除するときは[処理が完了したらファイルを削除]をチェックします。
[OK]をクリックしてコマンドを作成します。
複数のタスクを作成することで、複数のフォルダを監視する、ファイル名によって処理を分けるといったことが可
能になります。
一連のタスクは、タスクリストとして保存できます。
▼複数のタスクを含むタスクリストの例
ファイルメニュー>名前をつけて保存 で、現在のタスクリストをタスクリスト(*.tl ファイル)に保存します。
5 / 12
5. 印刷内容を含むトリガファイルの作成
メモ帳に以下のような内容を入力します。
"Name","Code"
"John","00335599"
"Jenny","00482541"
“Trigger.csv”として、C:\Commander\Triggers フォルダ内に保存します。
6. タスクの実行
Commander で検出の開始ボタンを押して、タスクの検出を開始します。
トリガ Trigger.csv ファイルをコピーして、Scan フォルダに貼り付けてみてください。
ファイル名が Trigger.dat に変更されたのち削除され、
指定されたプリンタからラベルが 2 枚発行されます。
うまくいかないときは、巻末のP.11よくある質問 を参考にしてください。
6 / 12
様々なコマンド
各タスクは、ひとつまたは複数のコマンドを実行できます。
複数のコマンドを設定した場合、コマンドは上から順に実行されます。
BTXML スクリプト(Enterprise Automation 版のみ)
XML スクリプトにより、ひとつのトリガファイルの中で複数のドキュメントを順番に発行する、ドキュメント上のデー
タソース名(変数)に値を代入するなど、柔軟な発行を行うことができます。また、発行の結果やエラーが XML で
レスポンスとして返されるので、上位アプリケーション等で実行結果を確認できます。
詳しくは別資料 CommanderXML スクリプトサンプル.pdf を参考にしてください。
BarTender コマンド
チュートリアルで説明している方法です。コマンドの処理内容をダイアログで指定できます。
出力するドキュメントとプリンタの組み合わせが多い場合には、多くのタスクが必要になります。その場合は
Commander スクリプトや XML スクリプトの利用を考慮してください。
Commander スクリプト
トリガファイル(CSV 等)の先頭に、発行するドキュメントやプリンタ名を記述することができます。ドキュメントとプリ
ンタの組み合わせが多い場合、また、Commander の設定を問わず上位システムから出力方法を指定したい場
合に便利です。
▼ドキュメントとプリンタを指定し、埋め込みの CSV で発行する Commander スクリプトトリガの例
%BTW% /AF="C:\Doc1.btw " /PRN="Canon LX 760" /P /D="%Trigger File Name%" /R=3 /DD
%END%
"PID","PNAME"
,"LABELS"
"C01","うめ納豆","20"
"C78","ミト納豆","45"
詳しくは別資料 Commander スクリプトサンプル.pdf を参考にしてください。
TCP/IP ソケットに送信、ウェブサーバに送信、ファイルへ保存(Enterprise Automation 版のみ)
トリガの内容や BTXML スクリプトのレスポンスを送信・保存できます。
オペレーティングシステム
ファイルの名前変更、削除などの OS のコマンドや他のアプリケーションを実行できます。
変換(Enterprise Automation 版のみ)
SAP AII、Oracle WMS/MSCA などの発行指示を、Commander の BTXML 形式に変換できます。また[検索と置
換]や XSL 変換により、他システム用の発行指示をカスタムの変換式で BTXML スクリプトや Commander スクリ
プトに変換することができます。
7 / 12
Commander の運用
基本的に、CommanderはWindowsの起動時に自動的にサービスとして起動します。また、Commander Service
が起動したときは、前回利用していたタスクリスト(*.tlファイル)を読み込み、前回の検出状態を引き継ぎます。
したがってCommanderがタスクの検出を開始した状態からコンピュータを再起動すると、再起動後にも引き続き
同じ設定でタスクの検出と印刷を行うことができます。
ネットワークフォルダ上のトリガをスキャンする場合や、他のコンピュータ上で共有されたプリンタから印刷する場
合は、P.9 ネットワークでの利用 を参考にしてください。
サービスの管理
Commander のサービスの動作は、管理者メニュー>サービスの設定 を開きます。
実行オプション
[アプリケーション] ログインユーザーの権限で、アプリケーションとして動作します。
[サービス]
Commander Service サービスのログオン設定で指定されたユーザーの権限で、サービス
として動作します。
スタートアップタイプ
[自動]
Windows 起動時に自動的に起動します。
[自動(遅延開始)] Windows 起動時に他のサービスの 2 分後に自動起動します。
[手動]
Windows 起動時には自動的に起動しません。Commander を開くなどして開始します。
[無効]
Commander を起動しません。
スタートアップ設定
Commander 開始時の動作は、ツールメニュー>環境設定>スタートアップタブより設定できます。
8 / 12
コマンドハンドラの設定
タスクのコマンドは、実行させる BarTender を個別に指定することもできます。
例えばプリンタ A に印刷するタスクは BarTender1 を利用、プリンタ B に印刷するタスクは BarTender2 を利用、
といった形で並列に動作させることができます。
[プロセスの再起動]
より安定した動作のために一定時間ごとに BarTender プロセスを再起動します
[プロセス] (Enterprise Automation 版のみ)
タスクを複数の BarTender プロセスで並列に処理し負荷を分散します
[スタートアップコマンド]
起動時にドキュメントを開くなど、特定のコマンドを実行できます。
[表示されるウィンドウ](アプリケーションとして動作時のみ)
起動した BarTender プロセスの画面を表示できます。([開始位置]ダイアログとは、1 ページに複数のラベル
をレイアウトした場合、何番目のラベルから印刷するかを選択する画面です。BarTender のページ設定>印
刷の順序タブ>[印刷時に開始位置を選択]で指定します。)
ネットワークでの利用
Commander をサービスとして実行した場合、デフォルトでは Commander サービス(Commander Service)は、ロー
カルシステムアカウント(SYSTEM)ユーザーで動作します。このユーザーはローカルコンピュータの管理者権限
がありますが、ネットワークリソース(他のコンピュータ)へのアクセス権限がありません。
このため、デフォルトの設定では、以下の作業ができません。
・ネットワークフォルダ上のトリガファイルをスキャンする
・ネットワークフォルダ上のドキュメント(btw ファイル)を開く
・他のコンピュータにインストールされ、共有されているプリンタから印刷する
これを回避するには、次のいずれかの方法を利用します。
9 / 12
Commander をアプリケーションとして実行する
Commander の管理者メニュー>サービスの設定 より、実行する方法で[アプリケーション]を選択し、
ファイル>保存 で現在のタスクリストを保存します。
アプリケーションモードでは、Commander は現在のログインユーザーの権限で動作します。
サービス動作時の自動スタートアップのように自動でスタートする設定はありませんので、
Commander アプリケーション (Cmdr.exe)を必要に応じて起動し、画面を表示しない場合は最小化してください。
Commander サービスのログオンユーザーを変更する
Commander の管理者メニュー>サービスの設定より、[サービスの管理]ボタンで、Windows 管理ツールのサービ
スを開くことができます。
ここでリストから Commander Service を選び、ログオンタブのアカウントより、ローカルの管理者権限と、ネット
ワークにアクセス権のあるユーザーを指定し、その後 Commander サービスを再起動します。
Commander をサービスとして動作し、コマンドハンドラのログオンユーザーを変更する
何らかの理由で Commander サービスを起動するユーザーを変更できない場合や、Commander のタスクごとに
異なるユーザーで BarTender プロセスを起動する場合は、コマンドハンドラごとに実行するユーザーを指定する
こともできます。
Commander でタスクの検出を停止した状態で、検出メニュー>BarTender コマンドハンドラのセットアップ より、
ユーザーアカウントタブの[指定したアカウントで BarTender を実行]をチェックして、
ユーザー名(ドメインユーザーの場合は ドメイン名\ユーザー名)、パスワードを指定します。
10 / 12
よくある質問
・ Commander サービスが起動しません
コントロールパネルのプログラムの追加と削除より、.net Framework のサービスパックが適用されているか確
認してください。Windows Vista 以前の OS の場合は、.net Framework 2.0 SP2 を適用する必要があります。
Commander サービスのログオンユーザーを指定している場合、パスワードが正しく設定されているか確認して
ください。該当ユーザーのパスワードを変更した場合、サービスのログオン設定のパスワードも変更する必要
があります。
・ トリガが検出されません
タスクオプションで、スキャンするフォルダが適切に設定されていること、タスクの検出が開始されていること、
BarTender プロセスが起動していることを確認してください。(タスクマネージャでは、BarTender プロセスは
bartend.exe として表示されます。)
サービス動作でトリガが検出されない場合、アプリケーション動作で検出されるかどうか試してみてください。
スキャンするフォルダが他のコンピュータ上のネットワークフォルダにある場合、スキャンフォルダはマップされ
たネットワークドライブ名(Z:\SHARED 等)でなく、UNCパス(\\SERVERZ\SHARED\ 等)で指定してください。また、
P.9 ネットワークでの利用 を参考にしてください。
・ トリガは検出されますが印刷されません
トリガに CSV ファイルやデータを含む Commander スクリプトを利用する場合、検出時にトリガを削除してしまう
と印刷できません。検出時の応答は[名前の変更]として、トリガを削除するには、コマンドのテキストファイルタ
ブより[処理が完了したらファイルを削除]をチェックしてください。(Commander スクリプトの場合、/DD オプショ
ンを指定します。)
タスクを実行している BarTender 側でエラーが発生した場合、Commander の画面やログにはエラーが記録さ
れません。BarTender 側でログを有効にして、エラーを確認してください。
BarTender の管理者>ログの設定 より、メッセージのログを有効にできます。
Commander をアプリケーションモードで動作させ、タスクの検出中に、検出メニュー>[実行中のすべての
BarTender を表示]を選ぶと、BarTender の画面を表示した状態で Commander を実行でき、BarTender の動作
やエラーメッセージを確認できます。
・ アプリケーション実行ではスキャンできますが、サービス実行ではスキャンできません
サービス実行でネットワークプリンタに印刷できません
P.9 ネットワークでの利用 を参考にしてください。
・ Commander からの発行時、BarTender の画面を表示するには?
トリガの検出時、印刷ダイアログやデータ入力フォームなど、BarTender の画面を表示する場合には、
Commander をアプリケーションとして動作させ、コマンドハンドラの設定で画面を表示する必要があります。
P.8 Commanderの運用 を参考にして設定してください。
・ 発行のパフォーマンスを上げるには?
Enterprise Automation版で大量のタスクを一度に処理させる場合には、処理するBarTenderプロセスの数を増
やすのが有効です。メモリが十分にあり、CPUのコア数(スレッド数)が複数ある場合には、CPUのコア数の分
だけBarTenderのプロセス数を増やしてみてください。また、印刷後にドキュメントを閉じない(/Closeを設定しな
い)ことで、ドキュメントキャッシュが有効になり、ドキュメントの読み込み時間を短縮することができます。
P.8 Commanderの運用 を参考にして設定してください。
・ 発行の結果を上位アプリケーションに返すには?
Enterprise Automation 版の BarTender XML スクリプトコマンドを利用すると、印刷した内容や日時を XML レス
ポンスとして上位アプリケーションに返すことができます。
11 / 12
タスクで [BTXML スクリプト コマンド]を実行した後に、続くコマンドで[ファイルへ保存]を選んで[BTXML スクリ
プトコマンドの応答]を UTF-16 テキストとして保存したり、[TCP/IP ソケットに送信]や[ウェブサーバに送信]で
ネットワーク上のサーバに送信できます。
Seagull 製プリンタドライバを利用時に、印刷時のプリンタの状態(印刷完了、用紙切れなど)を返す場合には、
以下のように設定します。
・ プリンタドライバのプロパティで、ポートタブで双方向サポートを有効にし、ツールタブ>ステータスモニ
タリングを有効にして、ステータスモニタリングの[ジョブの立証]タブで[次ジョブ送信前にジョブの完了
を確認]を有効にします。
・ Printer Maestro サービスがインストールされ、動作していることを確認します。
(ツールメニュー>Printer Maestro を実行して、プリンタの状態が表示されれば OK です)
・ XML スクリプトの Print タグで、WaitForJobToComplete 属性を True, Timeout 属性で、スプール完了
後に印刷完了を待つ時間を指定します。
BTXML スクリプト コマンドの例-印刷開始後 10 秒待ちます
<?xml version="1.0"?>
<XMLScript Version="2.0">
<Command>
<Print WaitForJobToComplete="true" Timeout="10000" >
<Format SaveAtEndOfJob="false">C:\Commander\Formats\A.btw</Format>
<PrintSetup>
<Printer>Zebra TLP3844-Z</Printer>
</PrintSetup>
</Print>
</Command>
</XMLScript>
指定時間内に印刷が完了した場合は、レスポンス内に次のように記述されます。
JobLastStatus="Sent (Printing Verified)" JobCompleted="true"
12 / 12