# アクション

> 実行が開始時か完了時に出す、ラベル、レポート、Logic のアクション、データベースの行の名前付きのまとまりです。その指令、ラベルの差し込み項目の対応付け、データベースの行の列、そして手順がそれをどう選ぶかを説明します。

**アクション**は、実行が出す書類の名前付きのひとまとまりです。その中には発行 1 件につき 1 つの**コマンド**があり、それぞれが、何が出るか（ラベルか、レポートか、Logic のアクションの実行か、工場のデータベースへの行か）、いつ出るか（開始時か完了時か）、ステーションのライブラリのどのテンプレートで、どの Logic のアクションで、またはどのデータベースのテーブルへ出るか、そして完了時ならどの総合判定に対して出るかを言います。手順が選ぶのはアクションの全体なので、1 度書いたまとまりが、それを出すすべての手順に効き、指令を直すのは、手順ごとに 1 回ではなく 1 回の編集で済みます。アクションは Process > モデル > モデル > 段取り > **アクション**の下にあります。作ることも、取り除くことも、アクションの名前、その指令、その対応付けを編集することも、すべて同じ**レシピと判定の編集**の権限で守られ、ページもそう言います（「アクションを変えるには「レシピと判定の編集」の権限が必要です。」）。

## アクションのフォルダー {#the-actions-folder}

**アクション**の行を選ぶと、段取りのほかのフォルダーとは違うページが開きます。モデルのアクションの一覧が、その中で選ばれた 1 つの横に並びます。アクションは、その兄弟と並べて読むものだからです。一覧の順が、どの手順もアクションを出す順なので、行の動詞が動かすのはアクションであって、指令ではありません。ページは、用意ができているかを見るために、ステーションの 2 つのライブラリ（ラベルのテンプレートとレポートの様式）を読み込みます。片方が読み込めないときは、通知バーに「共通のラベルのテンプレートを読み込めませんでした：…」または「共通のレポートを読み込めませんでした：…」と出ます。

| 列 | 何を見せるか |
| --- | --- |
| **#** | 一覧の中のアクションの位置です。 |
| **名前** | その場で編集でき、ます目を離れたときに効きます。空の名前は「アクションには、運用で使う名前が必要です。」と言って拒まれます。 |
| **コマンド** | 指令の数と、それが何を出すかです。「0 · まだありません」、または「2 · 開始時のラベル、完了時のラベルとレポート」です。Logic のアクションの指令は「完了時に Logic のアクション」（または「開始時に Logic のアクション 2 件」）と出ます。データベースの行の指令は「完了時にデータベースの行」（または「開始時にデータベースの行 2 件」）と出ます。ツールチップは、それを 1 行に 1 件ずつ、`完了時のラベル · <template>` の形で並べ、Logic のアクションの指令はアクションの名前と一緒に、まだ選んでいなければ「Logic のアクションなし」と並べ、データベースの行の指令は `<device> を通して <table>` の形で、まだテーブルを選んでいなければ「テーブルなし」と並べます。 |
| **状態** | **準備完了**、または、そのアクションかその指令のどれかが足りないときは**要確認**です。 |
| 行の操作 | **アクションを上へ**、**アクションを下へ**、**アクションを削除**（危険の色。「アクションを削除」、「アクションと、その指令を削除します。」を尋ねます）。 |

一覧の横の欄は見出しが**アクション**で、選ばれたアクションの**名前**（ここでも編集できます）、その**コマンド**を、準備完了 / 要確認のピル付きの読み取り専用の行として（「指令は、欄にあるこのアクション自身のページで、この順に編集します。」）、そして足りないものをすべて並べる**確認が必要**の通知バーを見せます。アクションが 1 つもないとき、一覧は「アクションがありません。このモデルの手順がラベルやレポートを出す、Logic のアクションを実行する、データベースに行を書き込むなら、追加してください。」と言い、何も選んでいないとき、欄は「アクションを選ぶと、何を出すのかを読めます。その指令は、欄にあるアクション自身のページで編集します。」と言います。

| 指令 | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| **アクション**（詳細のバー、フォルダーを選んだとき。右クリック**アクションを追加**） | 空の `アクション <n>`（モデルのどのアクションもまだ使っていない最初の番号）を一覧の末尾に足し、欄でそれを選んで、見える位置までスクロールします。 | どれか 1 つのユニットが実行に占められているとき、またはランタイムが停止しているとき。 | レシピと判定の編集がないとき。 |
| 上へ / 下へ / アクションを削除（行の操作） | 並べ替えるか、削除します。 | Process の管理がないとき、エンジニアリングロックの下、ランタイムが停止している間（押すと、操作ログ帯が理由を伝えます）。 | 常に描かれます。 |

## アクションのページ {#the-actions-page}

ツリーでアクションを選ぶと、それが開きます。アクションの名前と指令を数えるピルを持つ見出し、権限とライブラリの通知バー、**名前**の欄を持つ**アクション**のカード（欄を離れたときに効き、空は拒まれます）、そしてその中で選ばれた指令の横に立つ**コマンド**の一覧です。

| 指令 | 何をするか | 灰色になるとき（状況） | 描かれないとき（ロール） |
| --- | --- | --- | --- |
| **指令**（詳細のバー、アクションを選んだとき。右クリック**コマンドを追加**） | **合格**の実行に対して**完了**時に出す、テンプレートのまだない**ラベル**として生まれる指令を一覧の末尾に足し、欄でそれを選んで、見える位置までスクロールします。 | どれか 1 つのユニットが実行に占められているとき、またはランタイムが停止しているとき。 | レシピと判定の編集がないとき。 |
| **アクションを削除**（危険のまとまり。右クリック。フォルダーのページのカードの X） | 「アクションを削除」のあと、そのアクションと指令を削除します。それを選んでいたすべての手順は、それを出さなくなります。 | 同じです。 | レシピと判定の編集がないとき。 |

### 指令の一覧 {#the-commands-list}

| 列 | 何を見せるか |
| --- | --- |
| **#** | アクションの中の指令の位置で、これがアクションの中での発行の順です。 |
| **出すもの** | **ラベル**、**レポート**、**Logic のアクション**、**データベースの行**のどれかです。 |
| **発行タイミング** | **開始**か**完了**です。 |
| **テンプレートまたはアクション** | 4 つの一覧にまたがる 1 つの選択欄です。ラベルの行はラベルのテンプレートを差し出し（「（テンプレートを選択）」）、レポートの行はレポートの様式を差し出し（「（レポートを選択）」）、Logic のアクションの行はステーションの Logic のアクションを差し出します（「（Logic のアクションを選択）」）。どれも Logic のツリーがしまっているフォルダーの下に並び、無効のものは「`<name>`（無効）」と印が付きます。データベースの行は Connector の Database の機器を差し出します（「（Database の機器を選択）」）。一覧がもう持っていない参照は、使えない状態で場所を保ち、「見つからないテンプレート · `<id>`」、「見つからないレポート · `<id>`」、「見つからない Logic のアクション · `<id>`」、または「見つからない機器 · `<id>`」として出ます。ですから、傷んだ指令が、設定していない指令に見えることはありません。 |
| **総合判定** | 開始の指令には「開始時には使いません」です。そうでなければ、チェックの付いた総合判定（「合格、不合格」）か「未選択」です。 |
| **差し込み項目** | 「レポートでは使いません」、「Logic のアクションでは使いません」です。ラベルには「テンプレートなし」、「テンプレートが見つかりません」、「指令なし」（テンプレートにまだプリンターの指令がありません）、「読み取れません」、「固定、差し込み項目なし」、または「`<total>` 件中 `<bound>` 件を割り当て」です。データベースの行には、値のある列の数として「テーブルなし」か「`<total>` 列中 `<n>` 列」です。 |
| **状態** | **準備完了**か**要確認**です。 |
| 行の操作 | **指令を上へ**、**指令を下へ**、**指令を削除**（「指令を削除」、「アクションからこの指令を削除します。」）。 |

指令が 1 つもないとき、一覧は「指令がありません。このアクションでラベルやレポートを出すなら、追加してください。」と言い、何も選んでいないとき、欄は「指令を選ぶと、その全体を 1 か所で編集できます。このアクションでラベルやレポートを出すなら、上のバーから追加してください。」と言います。

### 指令の全体 {#the-command-in-full}

欄は、選ばれた指令を `指令 <n> · <発行タイミング> 時の <種類>` という見出しで開きます。選んだ種類が持つ項目だけを見せます。

| 項目 | 何であるか | 値 / 既定 | 効果（欄の下の行） |
| --- | --- | --- | --- |
| **出すもの** | この指令が出すものです。 | ラベル / レポート / Logic のアクション / データベースの行。作成時はラベルです。 | 「指令のテンプレートからタグを印刷します。この時点でユニットがラベルに選んだキューに送ります。」、「ステーションのライブラリにあるレポートから、実行記録の PDF を発行します。」、「ステーションの Logic のアクションを、アクションのレーンで実行します。」、または「Connector の Database の機器を通して、工場のデータベースのテーブルに行を 1 つ追加します。」種類を変えると、総合判定の絞り込みが新しい種類の既定に座り直します（ラベルは合格、レポート、Logic のアクション、データベースの行はすべての総合判定）。 |
| **発行タイミング** | 実行のどの時点で出るかです。 | 開始 / 完了。作成時は完了です。 | 開始時のラベル：「実行が始まった時点で、まだ結果が何もないうちに作ります。」完了時のラベル：「実行が終わったときに、下で選んだ最終の総合判定について作ります。」開始時のレポート：「実行が始まった時点で発行するので、まだ何も記録していない章は省きます。」完了時のレポート：「実行が終わったときに、下で選んだ最終の総合判定について発行します。」開始時の Logic のアクション：「実行が始まった時点でキューに入ります。実行はその完了を待ちません。」完了時の Logic のアクション：「実行が保存されたあとに、下で選んだ最終の総合判定について実行し、終わった実行を LastRun で読みます。」開始時のデータベースの行：「実行が始まった時点で、その実行が確定したメタデータから書き込みます。実行はデータベースを待ちません。」完了時のデータベースの行：「実行が保存されたあとに、下で選んだ最終の総合判定について、終わった実行から書き込みます。実行はデータベースを待ちません。」 |
| **Logic のアクション**（Logic のアクションの指令） | この指令が実行する、ステーションの Logic のアクションです。 | 「（Logic のアクションを選択）」か、1 つのアクション。作成時はなしです。 | 説明の行：「この指令が実行する Logic のアクションです。識別子で指定するので、アクションの名前を変えてもここに残ります。」効果：「アクションを選んでください。選ぶまで、この指令は何も実行しません。」、「参照している Logic のアクションはもうありません。この指令は何も実行しません。」、「`<action>` をアクションのレーンで実行します。」、または「`<action>` は無効です。この指令が動くたびに、アクションは実行を断り、その理由を記録します。」 |
| **レポート**（レポートの指令） | PDF を発行するのに使う、ステーションのライブラリの様式です。 | 「（レポートを選択）」か、1 つの様式。作成時はなしです。 | 「PDF を発行しません。」、「参照しているレポートがライブラリにありません。」、「実行が始まるときに PDF を発行します。」 / 「… 実行が終わるときに …」で、印刷が入のときは「… し、ユニット上のこの指令の印刷キューに送ります。」が付きます。 |
| **レポートの印刷：自動で印刷する**（様式が解決すると出ます） | 発行した PDF を、この発行タイミングについて、ユニットのレポートのキューにも送るかどうかです。 | 作成時は切です。 | 説明の行：「PDF はどちらの場合も、実行のこの時点で発行します。印刷の設定は、キューにも送るかどうかだけを決めます。」入：「PDF はユニット上のこの指令の印刷キューにも送ります。そのキューはプリンターの画面で選びます。」切：「PDF はレポートのフォルダーに発行し、それ以上は送りません。」 |
| **レポートの保存：実行記録の中に残す**（様式が解決すると出ます） | できあがった PDF を実行記録ファイルの中に保存するかどうかです。そうすると、様式を編集したり削除したりしたあとでも、再送はそのバイト列そのものを出し直します。 | 作成時は切です。 | 説明の行：「実行記録が文書として残すもので、後から再送するときに送るものです。」入：「実行記録ごとに、できあがった PDF を数百 KB で持ちます。再送はその文書そのものを送ります。」切：「実行記録は発行した PDF を指すだけなので、再送では後から作り直したものを送ります。」 |
| **共通テンプレート**（ラベルの指令） | この指令が印刷する、ステーションのライブラリのラベルのテンプレートです。その差し込み項目を、下で割り当てます。 | 「（テンプレートを選択）」か、1 つのテンプレート。作成時はなしです。1 つ選ぶと、そのテンプレートが宣言していて、この指令がまだ割り当てていないすべての差し込み項目について、対応付けの行ができます。 | 「テンプレートを選んでください。その差し込み項目を、この指令が埋めます。」、「参照しているテンプレートは、ライブラリにもうありません。」、「このテンプレートには、まだプリンターの指令がないので、送るものがありません。」、「このテンプレートの差し込み項目を読み取れません。」、「差し込み項目なし。条件に合うどの実行でも、同じバイト列を送ります。印刷キューはユニットが選びます。」、または「差し込み項目 `<n>` 件。それぞれに、この実行で固定した値 1 つを下で割り当てます。印刷キューはユニットが選びます。」 |
| **最終の総合判定が次のときに出す**（完了時のみ） | どの最終の総合判定がこの指令を動かすかです。 | 4 つのチェック：**合格**、**不合格**、**判定不能**、**総合判定なし**。ラベルは合格だけで始まります。レポートは 4 つすべてで始まります。何も判断しない手順は総合判定なしで終わるのに、それでも文書を出さなければならないからです。Logic のアクションも 4 つすべてで始まります。別のシステムへ送る実行記録が、誰にも知らされずに不合格の品を飛ばしてはならないからです（総合判定はスクリプトが自分で読めます）。 | 指令は、チェックの付いた総合判定で終わった実行についてだけ撃たれます。開始の指令にはまだ総合判定がないので、絞り込みを読みません。 |

項目の下の**確認が必要**の通知バーが、その指令に足りないものをすべて並べます（下の「用意ができているか」を参照）。

印字される文書がどのキューに行くかは、指令の項目ではありません。指令の種類と発行タイミングから、ユニットの 4 つのプリンターの枠を通して解決されるので、同じ組み合わせの 2 つの指令は、意図してプリンターを共有します。[プリンター](process-printers)を参照してください。Logic のアクションの指令は何も印刷せず、枠を持ちません。

### Logic のアクションの指令 {#logic-action-commands}

Logic のアクションの指令は、実行がステーションをプログラムする人に残しておく掛け金です。区切りで [Logic](logic-actions) のアクションを 1 つ実行し、そのアクションは、どのドライバーを通してでも実行を別のシステムへ送ったり、ランプを点けたり、カウンターを 0 に戻したりできます。アクションは識別子で選ぶので、Logic のページで名前を変えても、ここは何も変わりません。アクション自身の編集画面は、**使っている場所**のカードにこの指令を並べます。

| 観点 | 開始時 | 完了時 |
| --- | --- | --- |
| いつ実行されるか | 実行が始まった時点で、同じ時点のラベルとレポートより先に、アクションのレーンのキューに入ります。 | 実行が保存され、ユニットの [LastRun](process-addresses#lastrun) がそれを持ったあとです。 |
| 実行が何を待つか | 何も待ちません。アクションが遅くても、断られても、失敗しても、実行はそのまま進みます。 | 何も待ちません。実行はもう終わっています。 |
| どの実行が呼び出すか | 始まるすべての実行です。 | チェックの付いた総合判定で終わるすべての実行です。ただし失敗で終わった実行は何も呼び出しません。 |
| アクションが実行から読むもの | `Procedure.Metadata.<Field>`、つまり始まる実行が固定した値です。 | `LastRun.*`、つまりその実行の識別子、状態、総合判定、時刻、メタデータ、すべての判定基準の結果です。 |

同じ時点の Logic のアクションの指令がいくつかあれば、下の発行の順に 1 つずつ実行され、前のものがまだ動いているからといって飛ばされるものはありません。どの実行にも、それぞれの 1 回があります。実行がアクションに何をしたかは、アクションのページで読みます。その**最後の実行**の欄は、実行を `Process · <unit> · <action>` と名指し、エラーや断られた書き込みがあればそれも並べ、診断ログがそれを残します。実行記録ファイルには何も書きません。指令を設定したあとに削除されたアクションは飛ばされ、診断ログに警告が残ります。無効のアクションは実行を断り、その理由を記録します。

### データベースの行の指令 {#database-row-commands}

**データベースの行**の指令は、工場のデータベースのテーブル、つまり MES がすでに持っているトレーサビリティのテーブルに、行を 1 つ追加します。部品のシリアル番号、総合判定、測定した値を、そのテーブルがすでに持っている列の名前で書き込みます。行は Connector のページにある [Database](driver-database) のドライバーの機器を通り、接続とサインインはその機器が持っているので、指令はサーバーを名指さず、パスワードも持ちません。テーブルはすでにあるもので、ステーションがテーブルを作ることも変えることもなく、行を追加するだけです。

| 欄 | 何か | 値 / 既定 | 効果（欄の下の行） |
| --- | --- | --- | --- |
| **Database の機器** | 行を通す機器です。 | 「（Database の機器を選択）」か、Connector の Database の機器のどれかです。作成時はありません。 | 凡例：「行を通す Connector の Database の機器です。接続とサインインはこの機器が持っているので、ここでは何も入力しません。」効果：「機器を選んでください。選ぶまで、この指令は何も書き込みません。」、「参照している機器はもうありません。この指令は何も書き込みません。」、または「`<device>` を通して書き込みます。」 |
| **データベースのテーブル** | 行を追加するテーブルです。 | 「（テーブルを選択）」か、機器のデータベースのテーブルのどれかです。テーブルは指令を開いているあいだに機器を通して読み取り、基本テーブルだけを、接続が既定で読まないスキーマならそのスキーマ付きで並べます。データベースがもう並べないテーブルは、使えない状態で場所を保ち、「`<table>`（データベースにありません）」として出ます。 | 凡例：「行を追加するテーブルです。データベースにすでにあるテーブルで、ステーションがテーブルを作ることはありません。」効果：選ぶまでは「テーブルを選んでください。その列はデータベースから読み取ります。」です。テーブルを選ぶと、その列を読み取ります。 |

テーブルを読み取っているあいだ、選択欄の下の行は「データベースのテーブルを読み取っています…」と言います。読み取れないときは理由を言い（「`<device>` のテーブルを読み取れませんでした：`<cause>`」）、テーブルが 500 を超えるデータベースでは「データベースには一覧に出ている以上のテーブルがあります。最初の 500 件を表示しています。」と言います。データベースの行は、レポートと同じく、すべての最終の総合判定に対して出る状態で作られます。

欄の下の**テーブルの列**は、テーブルの列ごとに 1 行を、テーブルの順に並べます。どの列にも、データベースが書くとおりの型が付き、その列に値のない行をテーブルが断るところ（空の値を受け付けず、既定値がなく、ID の列でも自動採番の列でも計算列でもない列）には**テーブルで必須**の印が付きます。どの列にも**値**を 1 つ選びます。データベースに任せた列は行から外れるので、データベースが自分の既定値で埋めます。

| 値 | 開始時 | 完了時 | 送られる形 |
| --- | --- | --- | --- |
| （データベースに任せる） | はい | はい | なし：その列は行で名指されません |
| 固定の文字（**書き込む文字**に入力） | はい | はい | 文字。どの行でも同じです |
| メタデータ · 一覧の項目（**一覧のメタデータ**で選ぶ） | はい | はい | 文字：実行がその項目に確定した値です |
| 実行記録 · 識別子、手順 · 名前、ユニット · 名前、ユニット · コード、実行記録 · 最終状態、実行記録 · 総合判定 | いいえ | はい | 文字（`Completed` か `Aborted`、`Ok`、`Nok`、`Indeterminate` か `None`） |
| 実行記録 · 開始日時、実行記録 · 終了日時 | いいえ | はい | 日時。ステーションの現地時刻です |
| 実行記録 · 所要時間（秒） | いいえ | はい | 数値 |
| 実行記録 · サイクル数、実行記録 · NOK のサイクル数 | いいえ | はい | 整数 |
| 判定基準 · 結果、判定基準 · 上下限（**判定基準**で選ぶ） | いいえ | はい | 文字 |
| 判定基準 · 合格 | いいえ | はい | 真か偽 |
| 判定基準 · 測定値、判定基準 · 最小値、判定基準 · 最大値、判定基準 · 最悪の逸脱 | いいえ | はい | 数値 |
| 判定基準 · NOK のサイクル数 | いいえ | はい | 整数 |

完了時の値は、ユニットの [LastRun](process-addresses#lastrun) が Logic に渡す値と同じで、判定基準は判定したすべてのサイクルにわたってまとめた値です。実行が尋ねなかった項目と、判定しなかった判定基準は、値を出しません（NULL）。一覧の見出しにある**列を読み直す**は、データベースからテーブルの列を読み直します。列は割り当てた値を保ち、新しい列は値なしで一覧に加わり、テーブルにもうない列は一覧から外れます。

| 観点 | 開始時 | 完了時 |
| --- | --- | --- |
| 行が出るとき | 実行が始まった時点で、実行が確定したメタデータから出ます。 | 実行が保存され、ユニットの LastRun がそれを持ったときです。 |
| 実行が待つもの | なし：行は機器自身のキューで待ち、実行は進みます。 | なし：実行はもう終わっています。 |
| 行を書き込む実行 | 始まるすべての実行です。 | 印を付けた総合判定で終わるすべての実行です。ただし、失敗で終わる実行は何も書き込みません。 |

行は、値のある列を名指す 1 つの INSERT で、どの値もその型のパラメーターとして送り、文の中に文字として書き込むことはありません。ですから、引用符や SQL の語を含むシリアル番号も、そのままの文字として保存されます。データベースは、どの値も、ほかの値と同じように列の型に変換します。行を断ったデータベース、ドライバーの 10 秒のうちに答えないデータベース、届かないデータベースは、知らせるだけです。実行は影響を受けず、診断ログがその断りを記録し、実行記録が、行をその断りと理由とともに、[履歴](histories-documents#database-rows)の**データベースの行**の書類に残します。あとで送るために取っておくものはなく、そこの**再送**が、同じ値を手で送ります。同じ時点の複数のデータベースの行は、下の発行の順に 1 つずつ出ます。

データベースの行の指令に足りないものは、下の「用意ができているか」の一覧に、直す順で入ります：「Database の機器を選んでください。」、「指定した Database の機器はもうありません。」、「指定した機器 `<device>` は Database の機器ではありません。」、「テーブルを選んでください。」、「少なくとも 1 つの列に値を割り当ててください。列のない行は書き込まれません。」、「`<column>` はテーブルが必須とする列ですが、値がありません。」、「`<column>`：この値は開始時にはまだありません。開始時にあるのはメタデータ項目と固定テキストだけです。」、「`<column>`：このモデルのメタデータ一覧から項目を選んでください。」、「`<column>`：このモデルのいずれかの判定から判定基準を選んでください。」。データベースだけが言えることは、このページで指令を開いているあいだに読み取り、同じ一覧に入ります：「テーブル `<table>` はもうデータベースにありません。」、「`<column>` はもうテーブルの列ではありません。列を読み直してください。」、「テーブルには、この指令がまだ読み取っていない列があります：`<columns>`。列を読み直してください。」、「データベースからテーブルを読み取れませんでした：`<cause>`」。アクションを選ぶ手順は、列について足りないものを言います：「列 `<column>` は、この手順が尋ねないメタデータ項目を読みます。上のメタデータで印を付けてください。」、「列 `<column>` は判定基準の結果を読みますが、この手順は判定を行いません。」、または「列 `<column>` は、この手順の判定が宣言していない判定基準を読みます。」

### 差し込み項目 {#markers}

差し込み項目は、ラベルのテンプレートが実行に埋めさせるために残す `{{NAME}}` の場所なので、この節はラベルの指令にだけ描かれ、ほかには描かれません。その状態はテンプレートに従います。

| 状態 | 節が何を見せるか |
| --- | --- |
| テンプレートを選んでいない | 「差し込み項目を割り当てるテンプレートを選んでください。」前のテンプレートからの対応付けが保存されているときは、「テンプレートが見つからない間も、保存した対応付けは残ります。」と、その差し込み項目の名前が出ます。 |
| テンプレートがライブラリから消えた | 「テンプレートを利用できません」と、同じ保存された一覧です。 |
| テンプレートにプリンターの指令がない | 通知バーに「「`<template>`」には、まだプリンターの指令がありません。テンプレート ▸ ラベル で書くか取り込むまで、送るものも、割り当てる差し込み項目もありません。」と出ます。 |
| 差し込み項目を読み取れない | 通知バーに「「`<template>`」の差し込み項目を読み取れません：`<error>`」と出て、「保存した対応付けは残しました」と「これらのバインドを変える前に、テンプレートを直すか置き換えてください。」が続きます。 |
| テンプレートに差し込み項目がない | 「固定のテンプレート」と「このテンプレートには差し込み項目がなく、条件に合うどの実行でも同じバイト列を送ります。」です。 |
| 差し込み項目が見つかった | 差し込み項目 1 つにつき 1 行で、その差し込み項目と**割り当て済み** / **必須**のピルを見出しに持ち、下の項目が続きます。 |

| 項目 | 何であるか | 値 / 既定 |
| --- | --- | --- |
| **固定した値の取得元** | 差し込み項目に入れる、実行の値 1 つです。 | 「（未割り当て）」と、下の表の取得元です。開始の指令は、開始時に使える取得元だけを並べます。完了の指令はすべてを並べます。「メタデータ · 一覧の項目」は、モデルのメタデータの一覧に項目があるときだけ出ます。判定基準の取得元は、モデルのどれかの判定が判定基準を宣言しているときだけ出ます。今の発行タイミングでは答えられない取得元は、使えない状態で場所を保ち、「…（この指令では使えません）」として出ます。取得元を変えると、前の取得元について選んだ項目、サイクル、書式が消えます。 |
| **一覧のメタデータ**（メタデータの取得元） | モデルの一覧のどの項目かです。 | 「（一覧のメタデータを選択）」、消えた項目には「見つからない項目 · `<id>`」、そのあとにすべての項目が「`<name>` · 文字 / 数値 / 連番」として並びます。 |
| **判定基準**（判定基準の取得元） | モデルのどの判定の、どの判定基準かです。 | 「（判定基準を選択）」、「見つからない判定基準 · `<id>`」、そのあとにすべての判定基準が「`<evaluation>` · `<criterion or Criterion n>` · `<channel>`」として並びます。 |
| **サイクル（0 から数える）**（判定基準の取得元） | どのサイクルの結果かです。ほのめかしでは決して決まらず、打ち込まなければなりません。 | 0 から、モデルのどれかの手順が走らせる最大のサイクル数から 1 を引いた数までです。入力例は「必須」です。その外の数は、欄の下で拒まれます。 |
| **値の書式**（日付と時刻の取得元） | その時点をどう書くかです。 | 記録したまま（既定）、ステーションの日付、ステーションの時刻、ステーションの日付と時刻、ISO 8601 形式です。 |
| **小数点以下の桁数**（数値の取得元と、数値のメタデータの項目） | 決まった桁数の小数です。 | 0 から 9。入力例は「自動」です（ステーション自身の好みに従います）。 |
| **正しくない書式を消す** | 取得元が使えない書式を対応付けが持っているときに描かれるボタンです（日付に小数桁、数値に日付の書式、文字にそのどちらか）。 | その項目を元に戻します。 |

取得元は、選択欄が並べる順に次のとおりです。

| 取得元 | 開始時に使えるか | 種類 |
| --- | --- | --- |
| メタデータ · 一覧の項目 | 使えます | 文字。数値の項目なら数値 |
| モデル · 名前、モデル · 版、ユニット · 名前、ユニット · コード、手順 · 名前、手順 · コード、実行記録 · 識別子 | 使えます | 文字 |
| 実行記録 · 開始日時 | 使えます | 日付と時刻 |
| 実行記録 · 状態（開始時） / 実行記録 · 最終状態（完了時） | 使えます | 文字 |
| 実行記録 · 終了日時 | 使えません | 日付と時刻 |
| 実行記録 · 所要時間（秒） | 使えません | 数値 |
| 実行記録 · 総合判定、実行記録 · 終了の理由 | 使えません | 文字 |
| 判定基準 · 名前、チャネル、上下限、重大度、結果、エラー、影響したチャネル | 使えません | 文字 |
| 判定基準 · 範囲の開始日時、範囲の終了日時 | 使えません | 日付と時刻 |
| 判定基準 · 判定したサンプル数、範囲外のサンプル数、取得できないサンプル数、無効なサンプル数、最悪の逸脱 | 使えません | 数値 |

差し込み項目の行の下では、**削除された差し込み項目**が、今のテンプレートがもう宣言していない差し込み項目のために保存された対応付けを並べます（「古いもの `<n>` 件」、「これらの対応付けは、選んだテンプレートにもう存在しないので、削除してください。」）。それぞれに**古い差し込み項目の対応付けを削除**が付きます。

### 用意ができているか {#readiness}

両方のページの準備完了 / 要確認のピルも、検証のページが並べる行も、1 つの判断から来ます。指令のないアクションには、それが足りません。「指令を追加してください。このアクションはまだ何も出しません。」指令に足りないものは、直す順に次のとおりです。

- 「完了時の総合判定を 1 つ以上選んでください。」（総合判定にチェックの付いていない完了の指令）
- 「レポートを選んでください。」 / 「選んだレポートはもうありません。」
- 「Logic のアクションを選んでください。」 / 「指定した Logic のアクションはもうありません。」 / 「指定した Logic のアクションは無効なので、呼び出されるたびに拒否されます。」
- 「ラベルのテンプレートを選んでください。」 / 「テンプレートを外したか、削除しました。保存した対応付けは残ります。」 / 「選んだ共通テンプレートはもうありません。」
- 「選んだテンプレートには、まだプリンターの指令がありません。実行がこの指令に届く前に、書くか取り込んでください。」
- 「テンプレートの差し込み項目を読み取れません：`<error>`」
- 「{{M}} には信号源が必要です。」 / 「{{M}} が 2 回以上対応付けられています。」
- 「{{M}}：信号源を選んでください」、「この信号源は開始時には使えません」、「このモデルのメタデータ一覧から項目を選んでください」、「このモデルのいずれかの判定から判定基準を選んでください」、「0 から数えるサイクルを 0 から `<n>` までで明示してください」、「この日付と時刻の信号源から小数桁を外してください」、「この数値の信号源には既定の書式を使ってください」、「小数桁は 0 から 9 までです」、「この文字の信号源から数値と日付の書式を外してください」
- 「{{M}} は今のテンプレートから削除されました。保存した対応付けも消してください。」

要確認の指令も、そのまま走ります。発行のときに落とされるものはなく、解決できない差し込み項目は、これまでどおり、そのラベル 1 枚を失敗させます。これを知る場所は設定の画面であって、印字されたタグではありません。

## 手順がアクションをどう選ぶか {#how-a-procedure-selects-actions}

手順のページには**この手順が出すアクション**というカードがあり、「`<n>` 件を選択」のピルと、モデルのアクション 1 つにつき 1 つのチェックが、一覧の順に並びます。どの行も、そのアクションの発行の行（「開始時のラベル、完了時のラベルとレポート」、または「まだ何も出しません。このアクションには指令がありません。」）を見せ、選ばれると**準備完了**か**要確認**のピルを見せます。要確認は、そのアクションの差し込み項目についてこの手順に足りないものを、差し込み項目 1 つにつき 1 つの注記として並べます。実行ごとに解決される差し込み項目は、その手順が名指されたものを持っているところでしか解決できないからです。

- 「{{M}} は、この手順が尋ねないメタデータ項目を読みます。上のメタデータで印を付けてください。」
- 「{{M}} は判定基準の結果を読みますが、この手順は判定を行いません。」
- 「{{M}} は、この手順の判定が宣言していない判定基準を読みます。」
- 「{{M}} はサイクル `<c>` を読みますが、この手順のサイクルは 1 回だけです。」 / 「… `<n>` 回走らせます。」
- 「指定した Logic のアクションはもうありません。」（アクションの中の Logic のアクションの指令で、そのアクションが削除されたもの。手順はその代わりに何も実行しません）

アクションは隠されもせず、拒まれもしません。手順が何が足りないかを言い、その手当ては同じページにあります。モデルにアクションが 1 つもないとき、カードは「このモデルにはまだアクションがありません。モデルの「アクション」で追加してください。」と言います。

### 発行の順 {#the-emission-order}

実行の区切りでは、選ばれたアクションがモデルの一覧の順に出て、各アクションの中では指令の順に出て、その区切りの発行タイミングで絞り込まれます。モデル全体で 1 つの答えであり、手順ごとに 1 つではありません。開始の指令は、実行が実体になってから（連番のメタデータが確保されてから）走り、完了の指令は、最終の総合判定が封をされてから走ります。どの指令も切り離されています。失敗しても、何も発行されず、実行について何も変わらず、その後ろの指令が止まることも決してありません。レポートは、実行記録と、それを出したアクションの名前で名付けられます。同じ指令をあとで作り直すと、その指令の文書だけが置き換わり、ほかは変わりません。Logic のアクションの指令は、同じ時点の Logic のアクションの指令どうしの間でこの順を保ちます。いつ実行されるかは [Logic のアクションの指令](#logic-action-commands)にあります。それぞれの発行が実行に何を記録するか、そして履歴からどう出し直されるかは、[ラベルとレポートの発行](process-emission)にあります。

## アクションがしないこと {#what-an-action-does-not-do}

- それ自身では何も出しません。手順がそれを選び、その手順の実行が区切りに届かなければなりません。
- 手順を確かめることはしません。手順がその項目を尋ねるか、差し込み項目が名指す判定で判断するかは、手順のページの、選択の横に書かれます。
- プリンターを選びません。キューはユニットのもので、種類と発行タイミングで決まります。[プリンター](process-printers)にあります。
- テンプレートを編集しません。ラベルの指令とレポートの様式は[テンプレート](process-templates)の下で書きます。アクションはそれを名指すだけです。
- 物理的に印刷されたことを確かめません。キューが受け付けたことが、ラベルや印刷したレポートが記録するものであって、紙が出たことの証明では決してありません。
- Logic のアクションを待たず、実行記録にも残しません。アクションの結果は、Logic のそのアクションのページと診断ログにあります。
- テーブルを作ることも変えることもせず、断られた行をあとで送るために取っておくこともしません。データベースの行は、工場のデータベースにすでにあるテーブルへ行きます。断られたことは実行記録に残り、履歴から手で再送します。
