概要:ワークフローコンテキストIssue 概要: ワークフローコンテキスト 目標 ワークフローの実行。ワークフローコンテキストを可視化します。簡単なワークフローのデバッグ。 まとめ ServiceNow のワークフローでは、実行中のワークフローをワークフローコンテキストと呼んでいます。 ワークフローコンテキストには、ワークフローコンテキスト レコード内のプロセス全体の状態が保持されます。 ワークフローコンテキストには、一連の関連リストで実行する個々のアクティビティの状態が保持されます。これらのリストには、現在実行中のアクティビティの状態、終了したアクティビティの結果、およびワークフローがプロセス モデルを実行した実行パスが保持されます。 ワークフローコンテキスト キャンバスでは、ワークフローがプロセス モデルを実行するときの実行パスが視覚的に表現されます。各アクティビティのステータス (完了、実行、キャンセル、エラー) は、カラーパレットを使用して表されます。実行されたパスは青で表されます。実行されていないパスはグレーで表されます。 ResolutionServiceNow ワークフローコンテキスト ワークフローコンテキストは、ワークフローエンジンで実行されるワークフローです。 ワークフローは、次の 4 つの方法のいずれかで開始できます。 ワークフローキャンバス内から緑の矢印を使用します。Glide トランザクションの一部として。メインフロー内から呼び出されるサブフローとして。ワークフロースクリプトインクルードを使用してスクリプト内から。 ワークフローコンテキスト内のレコードは、プロセス全体の状態を維持します。関連リストは、実行中のワークフローのライフサイクル全体を通じてアクティビティのステータスを維持します。 ワークフローコンテキストは、開始されると「実行されて待機する」ようになります。つまり、ワークフローエンジンは現在実行中のすべてのアクティビティを調べます。アクティビティが終了すると、ワークフローエンジンがアクティビティの条件を評価します。すべての true 条件について、エンジンは次に何をすべきかについて移行矢印の終わりを探します。アクティビティが完了していない場合は、外部イベント (承認、タスク完了、プローブ完了など) を待機していると見なされます。 メモ: この時点でワークフローエディタのタブが開いている場合は、ここで閉じてください。 ワークフローエディター>ワークフローエディター。ワークフローエディターで、 歯車メニュー>新規です。 次のようにフォームに入力します。名前: K14 コンテキストデモテーブル: グローバル [global] [ 送信] をクリックします。ワークフローバージョンには、この時点で 開始 および 終了 アクティビティを含むモデルがあります。これは完全なワークフローであり、コンテキストを作成するのに十分です。ワークフローキャンバスのヘッダーで、緑色の矢印アイコンを見つけます。これは再生ボタンです。ワークフローデザイナーが再生ボタンを選択すると、エディターのワークフローバージョンが実行されます。 緑色の再生ボタンを選択します。 [送信] をクリックして、K14 コンテキストデモワークフローを実行します。 これは コンテキストビューです。ワークフローが実行済みまたは実行中のときに、ワークフローの状態をコンテキストビューで視覚化できます。 ワークフローエディターは、ワークフローとそのアクティビティのさまざまな状況を色で伝えます。コンテキストビューの右上隅に、青い疑問符アイコンがあります。 青い疑問符アイコンにカーソルを合わせます。キーの各色は、ワークフローで実行されているアクティビティの状態を示します。キーの青色は完了を示します。コンテキストキャンバスのアクティビティを見ると、[開始] と [終了] の両方のアクティビティが完了していることがわかります。ワークフローコンテキスト内のアクティビティの色分けは、個々のアクティビティの状態を反映しています。ワークフローコンテキスト キャンバスのヘッダーには、ワークフロー全体の状態が反映されます。ワークフローコンテキストのキャンバスビューは、便利なサマリービューです。ワークフローコンテキストの詳細を確認する方法もあります。 ワークフロー>すべてのコンテキスト。このリストには、完了した、または現在実行中のすべてのワークフローコンテキストが表示されます。 リストから [K14 コンテキストデモワークフローコンテキスト] を選択します。メモ: タブビューに切り替えると、ナビゲーションが簡単になります。ワークフローコンテキストの実行をワークフローコンテキストのアーティファクトに関連付けるには、図を参照します。 ワークフローコンテキストの確立 ワークフローコンテキストフォームの値を見ると、ワークフローコンテキストには、何も作業しなくても、レポートする重要なステータスがあることがわかります。 このワークフローコンテキストを実行したワークフローバージョン。ワークフローの結果 (存在する場合)。ワークフローコンテキストに関連付けられたドキュメントの ID。 ワークフローコンテキストの緑色の再生ボタンからワークフローが実行される場合、IDは常に ワークフロー実行:<<実行しているバージョンの名前>>になります。ワークフローが Glide レコードに対して実行される場合、この ID はドキュメント ID です。たとえば、ルーチン変更ワークフローは変更要求ワークフローに対して実行されます。そのワークフローコンテキストの ID は Change Request: CHG0030002 になります。 When a Workflow runs from the green play button of the Workflow Context the ID will always be Workflow Execution: << the name of the version running >>. 移行の実行 コンテキストのステータス ワークフローの最終状態は、次のいずれかの値です。 完了キャンセル済み実行 ワークフローコンテキストフォームの一番下までスクロールします。アクティビティ実行ワークフロー関連リストを選択します。ワークフローは既に終了しているため、このシステムへのエントリはありません。 ワークフローアクティビティ履歴関連リストを選択します。ワークフローアクティビティ履歴には、このワークフローコンテキストで実行されたすべてのアクティビティの開始、状態、および終了時間が反映されます。 リストの左側にある リストをカスタマイズ アイコンを選択します。 [利用可能] で アクティビティインデックス プロパティを選択し、[追加] 矢印を使用して [選択済み] に移動します。[OK] をクリックします。アクティビティ履歴リストは次のようになります。アクティビティインデックスは、作成時にアクティビティに割り当てられる番号です。この値は、アクティビティの正確な実行順序を知る唯一の信頼できる方法です。アクティビティに割り当てられるタイムスタンプの精度は 1 秒です。複数のアクティビティが 1 秒以内に実行される可能性があるため、Started の順序付けでは、正確な実行順序を決定する方法に一貫性がなくなります。図では、アクティビティの描画方法とコンテキストによるステータスの色付けに基づいて、アクティビティが同時に実行されているように見えます。ただし、図上の同じ移行レベルでの移行の表示順序は、必ずしも実行順序を反映しているわけではありません。アクティビティインデックスは、実行の正確な順序を確実に提供します。大規模なワークフローや、1 つの条件からの複数の移行があるワークフローをデバッグする場合、この値は非常に役立ちます。 ワークフロー移行履歴タブをクリックします。私たちが実行したワークフローには、開始 - >終了という非常に単純な移行がありました。実行されるすべての移行は、このリストに書き込まれます。 ワークフローログ リストを選択します。ワークフローログリストは次のようになります。この後のラボでは、ワークフローのログ記録について詳しく説明します。ここでは、ワークフローログリストがどこにあるか、およびデフォルトでログに書き込まれるエントリに注意してください。 [ワークフローキューに入れられたコマンド] リストを選択します。ワークフローキューに入れられたコマンドリストは次のようになります。[ワークフローキューに格納されたコマンド] リストのエントリは一時的なものであり、ワークフローが終了するまでそこに配置されるべきではありません。 外部イベント ワークフローでトランジションを実行するプロセスにおける刺激の一部は、外部イベントを受信していることを思い出してください。 ワークフローエンジンが「実行から停止」プロセスでアクティブな移行を実行しているときに 外部イベント がワークフローエンジンに取り込まれた場合、 外部イベント はワークフローキューに格納されたコマンドテーブルに一時的にキャッシュされます。「停止中に実行」プロセスがアクティブ移行を完了すると、[ワークフローキューに格納されたコマンド リストから受信イベントが取得されます。コマンドは、テーブルから読み取られると削除されます。