更新セット ID なしで呼び出されたコミット:更新セットのコミット中にエラーが発生しました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: ; } } 通常は問題なく完了すると予想される更新セットの最終コミットを実行しようとすると、次のエラーメッセージが表示され、インスタンス上のオブジェクトが正常にコミットされない場合があります。 Commit called without update set ID さらに、更新セットは通常、永久に コミット中状態のままになります。 この記事では、この問題の最も一般的な原因と、この問題が発生した場合の潜在的なトラブルシューティング方法について説明します。 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: ; } } 原因 1: ノードログで以下のエラーがないか確認します 2022-12-22 01:26:04 (205) worker.5 worker.5 txid=64f152eb87bb Background message, type:error, message: Data Policy Exception: 次のフィールドは必須です:説明ノードログに上記のエラーが含まれている場合、更新セットには何らかのデータを含む説明フィールドが必要です。フィールドを空にすることはできません 原因 2: このエラーは比較的まれですが、発生した場合、ほとんどの場合、意図的に abort ステートメントを実行した実行中のビジネス ルールが原因です (多くの場合、setAbortAction(true) を使用します)。ビジネスルールの [スクリプト] フィールドから実行されるスクリプトの一部である Javascript ステートメント)。 コミット操作中に更新セットが特定のビジネスルールを実行することは直感的ではないため、これは予期しない結果になる可能性があります。この問題は、コミット時に更新セットレコード自体がインスタンスに保存されるために発生します。したがって、sys_update_setテーブルで設定されている可能性がある「更新時」ビジネスルールが実行されます。何らかの理由でその更新セットが setAbortaction() 関数を実行すると、コミットは中止されますが、通常はエラーは画面に表示されません。通常、これらの更新セットでは、ビジネスルールはユーザーが意図的に更新セットを変更または作成することを意図していました(更新セットが無効な名前やその他のフィールド値で保存されないようにするため)。ただし、ビジネスルールはシステム生成の自動更新でも実行されるため、これと同じチェックが実行され、何らかの理由でsetAbortAction()関数が呼び出された場合、操作はキャンセルされます。 このタイプの問題の通常のトラブルシューティング手順として、インスタンスの各ノードから localhost ログを確認して、更新セットアクションに関連して特定のエラーメッセージが生成されているかどうかを判断する必要があります。 たとえば、更新セットのコミットが試行された時点でログを確認すると、次のエラーメッセージが表示される場合があります。 2019-03-10 18:13:42 (512) worker.0 worker.0 txid=ad730b15db04 Background message, type:error, message: Update set name can only include Alphanumeric, Underscore(_) and Dot(.) characters2019-03-10 18:13:42 (513) worker.0 worker.0 txid=ad730b15db04 Operation against file 'sys_update_set' was aborted by Business Rule 'Update Set nam9ing validation^a1730b15db40bf043e1badea3b96198a'. Business Rule Stack:Update Set naming validation または、別のケースでは、インスタンスで更新セットを収容しようとすると、localhost ログに次のものが記録されることがあります。 2019-03-19 08:53:49 (320) worker.4 worker.4 txid=0ccdb44ddb05 Background message, type:error, message: There is already another Update Set with name "Customer Fulfiller - CRM". Aborting update. 2019-03-19 08:53:49 (320) worker.4 worker.4 txid=0ccdb44ddb05 Operation against file 'sys_update_set' was aborted by Business Rule 'Prevent duplicate Update Sets by Name^c0cdb43bdb05bf002f497a3e0f961911'. Business Rule Stack:Prevent duplicate Update Sets by Name これらは通常、前述の setAbortAction() 関数呼び出しを伴うカスタムビジネスルールで生成されるカスタムエラーメッセージです。ただし、sys_update_setレコードの自動保存によってビジネスルールがトリガーされた場合、ビジネスルールは実際のエラーメッセージをログに出力しないことがあります。このような場合でも、「ファイル「sys_update_set」に対する操作がビジネスルールによって中断されましたというメッセージがログファイルに表示され、更新セット操作を中止したビジネスルールのビジネスルール名とsys_idも表示され、レビューのために開くことができます。 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 の解決: これらの問題を解決するための最初の手順は、実際に setAbortAction() コマンドを発行しているビジネスルールを特定することです。これは通常、上記の「原因とトラブルシューティング」セクションに従って、受信したエラーに対応するlocalhostログで見つけることができます。ログデータには通常、ビジネスルールの名前と、操作を中止するビジネスルールのsys_idが含まれます。 その後、このビジネスルールを編集用に開き、操作を中止していると思われるコマンドを確認する必要があります。 ビジネスルールを調べて、中止アクションの原因となっている条件を判断できます。多くの場合、ビジネスルールは、ビジネスルールの更新または作成を防止することを意図して記述されますが、プレビューまたはコミット操作のために更新セットレコードが自動的に変更されたときに必ずしも実行されるわけではありません。ただし、多くの場合、ビジネスルールによる操作の中止の原因となった問題は修正できます。上記のログの例では、ファイル名が無効でした (特定の特殊文字を含む最初のケースでは、ビジネスルールがインスタンス上で既に見つかった別のビジネスルールとして重複する名前を防止しようとしていました)。 短期的な修正として、問題を生成しているビジネスルールを一時的に無効にすることができます。これにより、ビジネスルールが無視され、更新セットが要求された操作を完了できるようになります (その結果、更新セットレコードが更新されます)。これを行うには、ビジネスルールの アクティブ チェックボックスをオフにし、ビジネスルールを保存してから、更新セット操作を再試行します。更新セットの操作が完了したら、ビジネスルールを再度アクティブ化できます。 別の長期的な修正オプションは、その更新セットに関連付けられた特定のビジネスルールを変更して、更新セットレコードがプレビュー、コミット、または同様の操作によって変更されたときにこのビジネスルールを実行しないようにすることです。これは、Conditions ステートメントを使用して行うことも、レコードの [スクリプト] フィールドにあるスクリプト自体で直接実行して、自動更新の際に機能を無視することもできます。 通常、更新時にsys_update_setレコードに対してトリガーされるすぐに使えるビジネスルールはありませんが、サードパーティのユーティリティや特定の顧客のカスタマイズにより、そのようなビジネスルールがインスタンスに導入される場合があります。