変更要求: 影響を受けたサービスの更新Issue Madrid インスタンスで変更プロパティ「change.refresh_impacted.include_affected_cis」を有効にし、変更要求に添付された構成アイテムに基づいて変更要求で [影響を受けたサービスのリフレッシュ] オプションを使用した場合に、予期される結果が表示されない。ReleaseLondon、MadridCauseレコードは、サービスマッピングを介してサービス構成アイテムの関連性テーブルに追加されます。サービスマッピングを使用しない場合、影響を受けるサービスは表示されません。Resolution再現手順:インスタンスで、変更要求を作成します。関連リストで、[影響を受ける CI --> CI を追加] をクリックします。リストコンテキストメニューで、[Refresh Impacted Services] をクリックするオプションがあります。「svc_ci_assoc」テーブルで利用可能なすべての影響するサービスをプルする必要があります。 想定:すべての CI が、テーブル [サービス構成アイテムの関連性] にある変更要求に追加する必要があります。 [影響を受けたサービスのリフレッシュ] UI アクションの仕組みに関する誤解:CI の関係テーブルにあるすべてのレコードが変更要求に追加されます。 元の動作: 現在のプラットフォームで利用可能な機能は、テーブルで利用可能なデータに従って動作しています:「svc_ci_assoc」プロセス全体のシナリオ:[影響を受けたサービスのリフレッシュ] をクリックすると、テーブル「svc_ci_assoc」内のレコードがチェックされ、一意のレコードがすべて取得されて変更レコードに添付されます。次にテーブル「svc_ci_assoc」にアクセスします。このテーブルへのエントリは、CMDB_CIレコードに対して行われるサービスマッピングから取得されます。このテーブルには、サービスマッピングを使用して作成された CI のすべての関係が保持されます。 サービスマッピングがまだ実装されていない場合は、現在のプロセスでこの機能を実現できます。[影響を受けたサービスのリフレッシュ] をクリックすると、最終的にプロセス全体がこのスクリプトインクルードの関数で終了します:ChangeUtilsSNC[code] getImpactedServicesFromAffectedCIs: function(chgId, userId) {var ciu = new CIUtils();var services = [];var taskCiGr = new GlideAggregate("svc_ci_assoc");==> taskCiGr.addQuery("JOINsvc_ci_assoc.ci_id=task_ci.ci_item!task=" + chgId);==> taskCiGr.groupBy("service_id");taskCiGr.query();while (taskCiGr.next())services.push(taskCiGr.service_id + "");if (String(gs.getProperty(ChangeCheckConflicts.CHANGE_CONFLICT_POPULATE_IMPACTED_CIS)) === 'true') {var conflictServices = ChangeCollisionHelper.getImpactedServicesByChangeId(chgId);services = (services ? new ArrayUtil().union(services, conflictServices) : conflictServices);}ciu.removeImpactedServices(chgId);ciu.addImpactedServices(chgId, new ArrayUtil().unique(services));if (userId)this._notifyUser(chgId, userId);}, [/code]上で指摘したように、クエリは "svc_ci_assoc" テーブルでのみ実行されており、Relations ship テーブルでは実行されていません。この機能は非同期で実行されるため、OOB スクリプトインクルードを拡張する別のスクリプトインクルード「ChangeUtils」にこの関数をコピーできます。ここにコードを追加するオプションがあり、OOB で利用可能なのと同じ関数を使用して、関係をプルするためのクエリを追加できます。 スクリプトを追加した後は、サービスマッピングを使用するすべての CI に対してエントリーポイントが構成されるまで、このスクリプトインクルードを使用し続けることができます。 サービスマッピングがフルスケールで実装されたら、このスクリプトをスクリプトインクルードから削除し、OOB スクリプトインクルードに操作を実行させることができます。また、CI に関連付けられた関係の規模によっては、パフォーマンスの問題が発生する場合があります。ロードテストを実行することをお勧めします。