ATF テストレコードがテスト完了後にロールバックされない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: ; } } Automated Test Framework(ATF)テストが完了すると、テスト中に作成、削除、または更新されたレコードはロールバックされることが期待されます。一部のケースでは、ロールバックが部分的にしか実行されない、またはまったく実行されないことがあります。 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: ; } } サポートされているすべてのリリース Cause<!-- /*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: ; } } ATF レコードがロールバックされない原因となるシナリオはいくつかあります。 何もロールバックされない。これは、sys_rollback_context テーブル内に状態が In progress(in_progress)または Currently rolling back reverting(reverting)であるレコードが存在する場合に発生する可能性があります。これらの状態のいずれかでコンテキストが停止すると、プラットフォームはそれ以降のロールバックを実行できなくなります。 一部のレコードがロールバックされない。ATF は、同じセッション内で挿入、更新、または削除されたレコードのみを追跡します。レコード操作が別のセッション ID でトリガーされた場合、たとえばワークフローやスケジュールジョブによって実行された場合、その操作は追跡されず、ロールバックコンテキストには含まれません。たとえば、timer object を含むカスタムワークフローは、常に「System」でワーカースレッド上で実行されます。このワークフロー(タイマー以降)によって作成されたレコードはロールバックコンテキストには記録されませんが、テストによって行われた更新は記録されます。フローをトリガーまたは実行する ATF テストで、フローによって作成されたデータのロールバックが断続的に失敗することがある。これは、フローまたはサブフローによってトリガーされたすべてのプロセスがテスト実行終了前に完了していない場合に発生します。非同期プロセスや、完了まで待機するように設定されていないサブフローがこの動作を引き起こす可能性があります。 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: ; } } 現在実行中としてマークされているロールバックコンテキストが実際にはアクティブでないことを最初に確認します。 回避策として、次の例に示すスクリプトを使用して sys_rollback_context の状態を recorded に強制的に戻します。このスクリプトは、フォーム上の State フィールドが読み取り専用であるため、UI の ACL を回避して sys_rollback_context テーブルを更新します。 fixContextState(); function fixContextState() { var gr = new GlideRecord('sys_rollback_context'); gr.get('___SYS_ID_OF_SYS_ROLLBACK_CONTEXT___'); gr.state = 'recorded'; gr.update(); } ATF ロールバック後も残っているレコードについては、そのレコードの sys_created_by ユーザーを特定し、そこから作成元を追跡します。レコードがワークフローによって作成され、そのワークフローでタイマーが使用されている場合は、代替手段があるかどうかを判断するために Now Support に相談してください。