サービスカタログ要求アイテム - ワークフローを開始できないIssue ワークフローエンジンを使用すると、ユーザーは社内のプロセスや手順を自動化するために、製品内のさまざまなテーブルにワークフローを添付することができます。ほとんどのテーブルでは、グラフィカルワークフローエディターの [wf_workflow_version.table] の [テーブル] フィールドは、ワークフローが接続されているテーブルと同じです。 このパターンに従った場合、特定の [サービスカタログ] アイテムのワークフローに、グラフィカルワークフローエディターの「テーブル」としてカタログアイテム [sc_cat_item] が含まれると思われるかもしれませんが、実際にはそうではありません。 サービスカタログワークフローの場合、「テーブル」は要求アイテムテーブル [sc_req_item] に設定されます。また、カタログアイテムの [ワークフロー] フィールドは、希望するワークフローを指している必要があります。(詳細については、「サービスカタログワークフロー定義」を参照してください。) [カタログアイテム] テーブルにワークフローを添付した場合、またはカタログアイテムレコードでワークフローを指定し忘れた場合は、ワークフローを開始できません。 症状 要求アイテムがワークフローに添付されていない場合、以下の症状がインスタンスに表示されます。 要求アイテム [RITM] フォームの [関連リンク]で [ワークフローを表示] をクリックすると、画面に「このドキュメントにはワークフローコンテキストがありません」というメッセージが表示されます。要求アイテムに対して、[承認] または [カタログタスク] が生成されていません。 RITM の [承認] または [却下] を要求する承認メールがユーザーに届きません。ID (RITM レコードへの参照) で [ワークフローコンテキスト] レコードを検索しても、結果が返されません。RITM のステージに「承認待ち」と表示されます。Causeこれらの問題の主な原因は、要求アイテムテーブル [sc_req_item] 上の [ワークフローを開始する] ビジネスルールがトリガーされないことです。このビジネスルールは、「RITM レコードの更新」時にトリガーされます。RITM が更新されると、次の点が確認されます。 参照されるカタログアイテムに [ワークフロー] フィールドが入力されているかどうかRITM のステージが、フォーム上で request_approved と表示されているかどうか問題の RITM にワークフローコンテキストが添付されていないかどうか 上記の基準を満たさない場合、RITM レコードにワークフローは添付されません。 一般的な質問 お客様からよく寄せられる質問に、「なぜ [挿入] ではなく [更新] でワークフロー開始ビジネスルールを実行するのか」というものがあります。 その答えは、親要求 [sc_request] が承認ロジックを通過するまでは、要求アイテムワークフローを開始しないというものです。 これを実現するために、親要求テーブル [sc_request] に「要求承認を要求アイテムにカスケード」という別のビジネスルールがあります。このビジネスルールは、[承認] フィールドの値が変更されたときにトリガーされます。 [要求承認を要求アイテムにカスケード] ビジネスルールがトリガーされると、システムは [ステージ] フィールドが [承認待ち] で、[承認] フィールドが [承認済み] であるかどうかを確認します。この場合、[要求アイテム] テーブル [sc_req_item] に対してクエリを実行し、RITM レコードの [ステージ] を request_approved に変更します。 これにより、[ワークフローを開始する] ビジネスルールが実行される 2 つ目の条件が満たされます。RITM レコードに対して「更新」が行われたことにより、[ワークフローを開始する] ビジネスルールが実行され、RITM のワークフローコンテキストがトリガーされます。ResolutionRITM で実行中のワークフローが存在することを確認するには、次の手順を実行します。 親要求 [REQ] の [承認] フィールドが [承認済み] に設定されていることを確認します。ベースシステムインスタンスでは、[承認] のフィールド値は、親要求 [REQ] テーブルで実行されるサービスカタログ要求ワークフローによって決定されます。RITM から参照されるカタログアイテムの [ワークフロー] フィールドにワークフローレコードが設定されていることを確認します。ワークフロー定義の[テーブル] フィールドが、カタログアイテム [sc_cat_item] ではなく要求アイテム [sc_req_item] に設定されていることを確認します。