メインコンテンツへスキップ
印刷は、部品、バッチ、棚、かんばんのビンに物理的なラベルを貼る機能です。管理者がプリンターを接続し、各ステーションで使うプリンターを決めると、倉庫や現場のスタッフは、入荷を転記したとき、バッチを分割したとき、製造指図の最初の工程を終えたときに、自動的にラベルを受け取ります。

概要

印刷システムは 3 つの部分からなります。 これは、請求書、発注書、見積、製造指図の現品票など、ファイルとして届く生成ドキュメントとは異なります。印刷は出力を物理プリンターに送るもので、デフォルトでは、その出力は感熱式の ZPL ラベルです。

形式

ジョブがどのプリンターにルーティングされるかによって、レンダリングの方法が決まります。
  • ZPL は感熱式ラベルプリンターのコマンド言語で、部品ラベルと保管ラベルのデフォルトです。ZPL ラベルは、メディアサイズに ZPL の寸法がある場合にのみレンダリングされます。
  • PDF は完全なドキュメントで、請求書や現品票を生成するのと同じ React-PDF エンジンで描画されます。かんばんカードはPDF のみのため、テンプレートで対応しない限り、ZPL 専用のプリンターに送ると失敗します。

ドキュメントタイプ

3 種類のラベルが定義されています(packages/web/printing/src/registry.ts の documentTypeRegistry)。 どのタイプを印刷できるかは、元のドキュメントによって決まります。出荷を転記すると製品ラベルが、保管ユニットをスキャンすると保管ラベルが作成されます。この検索は getDocumentTypesForSource が行います。

印刷を設定する

1. プリンタールートを追加する

プリンタールートは、1 台の物理プリンターを表します。設定 → 印刷 → プリンターに移動し、プリンターを追加を選択します。

2. プリンターをテストする

すべてのルートにはテストアクションがあり、小さな ZPL ラベルを printerUrl に直接送信するため、使用する前にプリンターに到達できることを確認できます。テストが使えるのは、メディアサイズのある ZPL ルートだけで、成功すると "Test label sent to printer"(テストラベルをプリンターに送信しました)と表示されます。

3. プリンターをコンテキストに割り当てる

ルートはプリンターであり、割り当てがそれをいつ使うかを決めます。設定 → 印刷 → 割り当てを開くと、ロケーションごとにブロックがあります。その中で、各コンテキストにプリンターを割り当てます(packages/web/printing/src/assignments.ts の printerContexts)。 各コンテキストの行には自動印刷スイッチもあり、オンの場合、対応する業務イベントが、誰もクリックしなくても印刷されます。getPrinterContextForSource が元のドキュメントのコンテキストを見つけ、resolveContextAssignment がフォールバックを適用するため、割り当てのないコンテキストは、ロケーションのデフォルトのプリンターを使います。

自動印刷

対応する業務イベントの後、Alforse はロケーションとコンテキストに対するプリンターを見つけ、autoPrint(未設定の場合はオンとして扱われる)を確認して、ジョブをキューに入れます。印刷の失敗が、それを引き起こした入荷、出荷、製造指図をブロックすることはありません。 ステーションを静かにするには、そのロケーションのコンテキストの行で自動印刷をオフにします。

手動で印刷する

関連する画面で印刷を選択するか、元のドキュメントを手動印刷ルート(/x/print)に送信します。リクエストを検証し、同じ種類のジョブをキューに入れます。 印刷の動作は、ロケーションによって異なります。

印刷ジョブキュー

ジョブのステータス

各ジョブは origin を記録します。 ジョブは、sourceDocument、sourceDocumentId、読みやすい ID、contentType、送信先の printerUrl も保存します。

監視と再印刷

設定 → 印刷 → 印刷ジョブを開きます。テーブルは、ステータス、説明、ソース、タイプ、起源、時刻とともにリアルタイムで更新されます。行を展開すると、プリンターの URL、試行回数、タイムスタンプ、エラーが確認できます。行からは次の操作ができます。
  • 内容を表示:ZPL は Labelary でプレビューされ、PDF はインラインフレームで表示されます。
  • 再印刷:origin: "reprint" の新しいジョブが作成されます。
  • 削除。

ラベルサイズ

メディアサイズは、固定のカタログ(packages/web/utils/src/labels.ts)から取得されます。label2x1、label4x2、メートル法の label100x50mm と label50x25mm、PDF 専用の avery5163 です。感熱式プリンターで印刷できるのは ZPL の寸法を持つサイズだけなので、Avery のような PDF 専用のサイズは使えません。 サイズは 2 か所で設定されます。
  • 各プリンタールートは、そのプリンターにセットされたラベルに合わせて、独自の mediaSizeId を固定します。
  • 文書テンプレート画面で設定する、会社のデフォルトの製品ラベルサイズ(companySettings.productLabelSize)は、どのルートもサイズを設定していない場合に、対話型のラベルダウンロードルートで使用されます。
そのデフォルトの場所については会社設定を、組み込みのラベルテンプレートをスタイルするカスタマイザーについてはドキュメントを参照してください。

トラブルシューティング

ラベルが印刷されなかった

次の項目を順に確認してください。
  1. ロケーションとコンテキストにプリンタールートが割り当てられており、その自動印刷スイッチがオンになっている。
  2. ルートに到達可能な printerUrl がある。ない場合、ジョブはレンダリングされますが、配信できません。
  3. ジョブが設定 → 印刷 → 印刷ジョブで失敗になっていない。行を展開して error を読みます。
自動印刷のキュー投入時の失敗は、「Auto-print failed」(自動印刷に失敗しました)としてログに記録されるだけで、入荷や出荷の画面には表示されないため、確認する場所は印刷ジョブ一覧です。ジョブがまったくない場合は、プリンターが解決されず自動印刷もオフだったか、そのイベントは自動印刷の対象ではありません。自動印刷されるのは自動印刷の 4 つのイベントだけです。それ以外は、印刷または手動ルートを使ってください。

エラーメッセージ

関連項目