Array.push() を使用して配列に新しい値を追加すると、配列内のすべての値が最後にプッシュされた値に置き換えられるIssue Array.push() を使用して配列オブジェクトに新しい値を追加すると、配列オブジェクト内のすべての値が最後にプッシュされた値に置き換えられます。ソフトウェアカテゴリのオープン P1 インシデントをすべてフェッチするための次のサンプルスクリプトを確認してください。インスタンスの [スクリプト - バックグラウンド] で以下を実行します。 サンプルスクリプトサンプル出力var criticalIncident = [];var inc = new GlideRecord('incident');inc.addActiveQuery();inc.addQuery('priority', '1');inc.addQuery('category', 'software');inc.query();gs.info("Total Records: " + inc.getRowCount());while (inc.next()) { gs.info("Incident Number: " + inc.number); criticalIncident.push(inc.number);}gs.info("Critical Incidents: " + criticalIncident);*** Script: Total Records: 5*** Script: Incident Number: INC0000015*** Script: Incident Number: INC0000051*** Script: Incident Number: INC0000052*** Script: Incident Number: INC0000054*** Script: Incident Number: INC0009005*** Script: Critical Incidents: INC0009005,INC0009005,INC0009005,INC0009005,INC0009005 このサンプルスクリプトの criticalIncident 配列オブジェクトの出力では、配列オブジェクトのすべての値が最後にプッシュされた値に置き換えられてしまっていることがわかります。Causeこれは ServiceNow プラットフォームでのみ発生します。 Array.push() メソッドには文字列型の値を渡す必要があります。文字列型の値でない場合は、配列内のすべての値が最後にプッシュされた値に上書きされます。 Resolutionこれに対処するには、変数を配列オブジェクトにプッシュする際、toString() メソッドを使用します。以下は、配列オブジェクトにプッシュされたすべての値を正しく保持するように修正されたスクリプトです。 サンプルスクリプトサンプル出力var criticalIncident = [];var inc = new GlideRecord('incident');inc.addActiveQuery();inc.addQuery('priority', '1');inc.addQuery('category', 'software');inc.query();gs.info("Total Records: " + inc.getRowCount());while (inc.next()) { gs.info("Incident Number: " + inc.number); criticalIncident.push(inc.number.toString());}gs.info("Critical Incidents: " + criticalIncident);*** Script: Total Records: 5*** Script: Incident Number: INC0000015*** Script: Incident Number: INC0000051*** Script: Incident Number: INC0000052*** Script: Incident Number: INC0000054*** Script: Incident Number: INC0009005*** Script: Critical Incidents: INC0000015,INC0000051,INC0000052,INC0000054,INC0009005