条件「activity.result=='skipped'' がないためにワークフローが停止する承認コーディネーターの問題を解決する手順Issue <!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } <!-- div.margin{ padding: 10px 40px 40px 30px; } table.tocTable{ border: 1px solid; border-color:#E0E0E0; background-color: rgb(245, 245, 245); padding-top: .6em; padding-bottom: .6em; padding-left: .9em; padding-right: .6em; } table.noteTable{ border:1px solid; border-color:#E0E0E0; background-color: rgb(245, 245, 245); width: 100%; border-spacing:2; } table.internaltable { white-space:nowrap; text-align:left; border-width: 1px; border-collapse: collapse; font-size:14px; width: 85%; } table.internaltable th { border-width: 1px; padding: 5px; border-style: solid; border-color: rgb(245, 245, 245); background-color: rgb(245, 245, 245); } table.internaltable td { border-width: 1px; padding: 5px; border-style: solid; border-color: #E0E0E0; color: #000000; } .title { color: #D1232B; font-weight:normal; font-size:28px; } h1{ color: #D1232B; font-weight:normal; font-size:21px; margin-bottom:-5px } h2{ color: #646464; font-weight:bold; font-size:18px; } h3{ color: #000000; font-weight:BOLD; font-size:16px; text-decoration:underline; } h4{ color: #646464; font-weight:BOLD; font-size:15px; text-decoration:; } h5{ color: #000000; font-weight:BOLD; font-size:13px; text-decoration:; } h6{ color: #000000; font-weight:BOLD; font-size:14px; text-decoration:; } ul{ list-style: disc outside none; margin-left: 0; } li { padding-left: 1em; } --> 症状 アクティビティが承認に至らない場合、または承認者が非アクティブの場合、ワークフローは承認コーディネーターアクティビティでスタックします。 原因 Jakarta より前は、承認コーディネーターワークフローアクティビティに条件「activity.result == 'skipped'」が含まれていませんでした。 その結果、承認コーディネーターのワークフローコンテキストで結果が「スキップ」された場合、結果がスタックし、ワークフローが次のアクティビティに進むことができません。 解決 対応手順: 1.「activity.result =='skipped」条件を持たず、アクティビティ定義が「承認コーディネーター」であるワークフロー条件のリストを収集します。 この URL を試してください: https://instance_name.service-now.com/wf_condition_list.do?sysparm_query=name%3DApproved%5Eactivity.activity_definition%3D283e8bb80a2581021d036a052ffc3433%5Eactivity.workflow_version.published%3Dtrue 2.リストビューから、条件列を次の行で更新します:activity.result == 'approved' ||activity.result == 'skipped' これにより、新しいレコードのワークフローがスタックすることがなくなります。 ここで、承認コーディネーターでスタックしているワークフローコンテキストを修正するには、次の手順に従います。 3.スタックしており、結果値が「スキップ済み」のワークフローアクティビティのリストを取得します。 以下の URL を使用してリストを取得できます。 https://instance_name.service-now.com/wf_history_list.do?sysparm_query=result%3Dskipped%5Estate%3Dfinished%5Econtext.state%3Dexecuting%5Eactivity.activity_definition%3D283e8bb80a2581021d036a052ffc3433 4.このリストから、スタックしているワークフローコンテキストのsys_idを取得する必要があります。 スクリプトバックグラウンドで以下のスクリプトを実行すると、sys_idのリストが返されます ****** var queryString = "result=skipped^state=finished^context.state=executing^activity.activity_definition=283e8bb80a2581021d036a052ffc3433"; var wh = new GlideRecord('wf_history'); wh.addEncodedQuery(queryString); wh.query(); while(wh.next()) { gs.log(wh.context.toString()); } ******* sys_idの準備ができたら、スタックしているすべてのワークフローコンテキストを更新し、ワークフローを移動するスクリプトを実行する必要があります。 KB 記事に「Script_for_ApprovalCoordinatorGotStuck_v2.js」を添付します。 5.添付のスクリプトをバックグラウンドで実行すると、スタックしているワークフローコンテキストが修正されます。 注意: > このスクリプトは、変数「contextList」で固定されるカンマ区切りリストワークフローコンテキストを追加する必要があります例:var contextList = "555a7e8a87311300a02fa1bb36cb0b80,855a3e8a87311300a02fa1bb36cb0be2";> ワークフローは、テーブル「wf_command」の下に作成されたすべてのレコードが処理された後に修正されます。 > スクリプトがすべてのワークフローコンテキストを更新するのに時間がかかります。 Release<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } Resolution<!-- /*NS Branding Styles*/ --> .ns-kb-css-body-editor-container { p { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } span { font-size: 12pt; font-family: Lato; color: var(--now-color--text-primary, #000000); } h2 { font-size: 24pt; font-family: Lato; color: var(--now-color--text-primary, black); } h3 { font-size: 18pt; font-family: Lato; color: var(--now-color--text-primary, black); } h4 { font-size: 14pt; font-family: Lato; color: var(--now-color--text-primary, black); } a { font-size: 12pt; font-family: Lato; color: var(--now-color--link-primary, #00718F); } a:hover { font-size: 12pt; color: var(--now-color--link-primary, #024F69); } a:target { font-size: 12pt; color: var(--now-color--link-primary, #032D42); } a:visited { font-size: 12pt; color: var(--now-color--link-primary, #00718f); } ul { font-size: 12pt; font-family: Lato; } li { font-size: 12pt; font-family: Lato; } img { display: ; max-width: ; width: ; height: ; } } -従うべき同じ手順:1. スクリプトは内部で検証する必要があります。たとえば、可能な限り同様のカスタマーワークフロー (使用されるアクティビティ) で従業員インスタンスを使用するなど。2. 顧客側では、問題のあるワークフローコンテキストの負荷が大きいテストインスタンスでスクリプトを検証する必要があります。3. スクリプトが顧客のテストインスタンスで正常に検証された後にのみ、本番インスタンスで実行できます。