GlideRecord - スコープ対象

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:85分
  • スコープ対象の GlideRecord API は、データベース操作に使用されます。

    GlideRecord API は、サーバー側のコードでデータベースとやり取りする主要な手段です。GlideRecord は、1 つのテーブルのレコードを含むオブジェクトです。API を使用して GlideRecord オブジェクトをインスタンス化し、クエリパラメーター、フィルター、制限、および順序付けを追加します。

    クエリの構築と実行の詳細については、GlideRecord についての記事を参照してください。

    GlideRecord と同じ関数を実行し、ACL を適用するクラスの詳細については、「GlideRecordSecure の使用」を参照してください。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    レコードから値を取得する

    ほとんどの場合、ドット連結を使用してレコードから値を取得しないでください。ドット連結では、フィールド値ではなくオブジェクト全体が取得されます。オブジェクトの取得にはより多くのストレージが使用されるため、アレイや サービスポータルで使用すると望ましくない結果が生じる可能性があります。

    オブジェクト全体を取得する代わりに、次のいずれかのメソッドを使用してフィールド値をコピーできます。

    GlideElement オブジェクトをドット連結する必要がある場合は、 toString() メソッドを使用して値を取得します。たとえば、別の参照フィールドを設定するために、現在の問い合わせユーザーのマネージャーの sys_id が必要な場合があります。次の例は、オブジェクト全体の代わりに文字列値を取得する方法を示しています。
    var mgr = current.caller_id.manager.toString();

    スコープ対象 GlideRecord - addActiveQuery()

    アクティブなレコードを返すフィルターを追加します。

    表 : 1. パラメーター
    名前 タイプ 説明
    なし
    表 : 2. 返される内容
    タイプ 説明
    GlideQueryCondition アクティブなレコードを返すフィルター。
    var inc = new GlideRecord('incident');
    inc.addActiveQuery();
    inc.query();

    スコープ付き GlideRecord - addEncodedQuery(文字列クエリ、ブール値:enforceFieldACL)

    設定されている可能性のある他のクエリにエンコードされたクエリを追加します。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    表 : 3. パラメーター
    名前 タイプ 説明
    クエリ 文字列 エンコードされたクエリ文字列
    enforceFieldACL ブール オプション。フィールド ACL (アクセス制御リスト) ルールを適用するかどうかを示すフラグ。
    有効な値:
    • true:フィールド ACL を強制します。
    • false:フィールド ACL を適用しません。

    デフォルト値:false

    表 : 4. 返される内容
    タイプ 説明
    なし
    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.addInfoMessage(now_GR.getValue('number'));
    }

    スコープ対象 GlideRecord - addFunction(オブジェクト function)

    事前定義された GlideDBFunctionBuilder オブジェクトをレコードに適用します。

    GlideDBFunctionBuilder スコープ対象クラスを使用して関数を定義します。関数を定義したら、addFunction(オブジェクト function) メソッドを使用して関数をレコードに適用します。

    表 : 5. パラメーター
    名前 タイプ 説明
    function オブジェクト SQL 操作を定義する GlideDBFunctionBuilder オブジェクト。
    表 : 6. 返される内容
    タイプ 説明
    なし
    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();
    
    // Query incidents in which order + priority is less than 5 and display that added value
    var now_GR = new GlideRecord('incident');
    now_GR.addFunction(myAddingFunction);
    now_GR.addQuery(myAddingFunction, '<', 5);
    now_GR.query();
    while(now_GR.next())
      gs.info(now_GR.getValue(myAddingFunction));

    出力:

    1
    4
    3
    1
    1
    2
    1

    スコープ対象 GlideRecord – addJoinQuery(文字列 joinTable, 文字列 primaryField, 文字列 joinTableField)

    現在 GlideRecord に関連するテーブル内の関係に基づいてレコードを返すフィルターを追加します。

    このメソッドを使用すると、グループメンバー [sys_user_grmember] テーブルを介してデータベースグループ内のすべてのユーザーを検索するか、incident.problem_id 関係を介してインシデントが割り当てられているすべての問題を検索できます。

    これは実際のデータベース結合ではなく、addJoinQuery() はサブクエリを追加します。結果セットは結合に基づいて制限されますが、アクセスできるのはベーステーブルのフィールド (GlideRecord が初期化されたときのテーブルに含まれるフィールド) のみです。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    表 : 7. パラメーター
    名前 タイプ 説明
    joinTable 文字列 結合で使用するテーブルの名前 ('incident' など)。
    primaryField 文字列 オプション。joinTableField パラメーターで指定されたフィールドを結合するために使用する GlideRecord 内のフィールドの名前。

    デフォルト:sys_id

    joinTableField 文字列 オプション。テーブルの結合に使用するために joinTable で指定されたテーブル内のフィールドの名前。

    デフォルト:現在の GlideRecord テーブルへの参照フィールドである joinTable で指定されたテーブルの最初のフィールド。

    表 : 8. 返される内容
    タイプ 説明
    GlideQueryCondition 関係が一致するレコードを一覧表示するフィルター。

    インシデントが添付されている問題を検索します。この例では、インシデントが関連付けられている問題を返します。ただし、クエリの一部として返されるインシデントからは値はプルされません。

    var prob = new GlideRecord('problem');
    prob.addJoinQuery('incident');
    prob.query();

    関連付けられたインシデントで非アクティブな問題を検索します。

    // Look for Problem records that have associated Incident records
    var now_GR = new GlideRecord('problem');
    var grSQ = now_GR.addJoinQuery('incident');
     
    // Where the Problem records are "active=false"
    now_GR.addQuery('active', 'false');
     
    // And the Incident records are "active=true"
    grSQ.addCondition('active', 'true');
     
    // Query
    now_GR.query();
     
    // Iterate and output results
    while (now_GR.next()) {
    gs.info(now_GR.getValue('number'));
    }

    インシデントの caller_id フィールド値が問題の opened_by フィールド値と一致するインシデントが関連付けられている問題を検索します。

    var now_GR = new GlideRecord('problem'); 
            now_GR.addJoinQuery('incident', 'opened_by', 'caller_id'); 
            now_GR.query();

    スコープ対象 GlideRecord - addNotNullQuery(文字列 fieldName)

    パラメーターで渡されたフィールドの値が null でないレコードを指定するフィルター。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    表 : 9. パラメーター
    名前 タイプ 説明
    fieldName 文字列 確認するフィールドの名前。
    表 : 10. 返される内容
    タイプ 説明
    GlideQueryCondition パラメーターで渡されたフィールドの値が null でないレコードを指定するフィルター。
    var target = new GlideRecord('incident'); 
    target.addNotNullQuery('short_description');
    target.query();   // Issue the query to the database to get all records where short_description is not null
    while (target.next()) {   
         // add code here to process the incident record
    }

    スコープ対象 GlideRecord - addNullQuery(文字列 fieldName)

    指定されたフィールドの値が null であるレコードを返すフィルターを追加します。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    表 : 11. パラメーター
    名前 タイプ 説明
    fieldName 文字列 確認するフィールドの名前。
    表 : 12. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加されたクエリ条件。
    var target = new GlideRecord('incident'); 
    target.addNullQuery('short_description');
    target.query();   // Issue the query to the database to get all records where short_description is null
    while (target.next()) {   
       // add code here to process the incident record
    }

    スコープ対象 GlideRecord - addQuery(文字列 query)

    エンコードされたクエリ文字列を使用してレコードを返すフィルターを追加します。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    表 : 13. パラメーター
    名前 タイプ 説明
    クエリ 文字列 エンコードされたクエリ文字列
    表 : 14. 戻り値
    タイプ 説明
    GlideQueryCondition GlideRecord に追加されたクエリ条件。
    var rec = new GlideRecord('incident');
    rec.addQuery('active=true');
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      gs.info('Active incident ' + rec.getValue('number') + ' closed');
      rec.update();
    }

    スコープ対象 GlideRecord - addQuery(文字列 name, オブジェクト value)

    検索クエリを構築し、要求に一致する行を返します。

    SQL に精通している場合、このメソッドは「where」句に似ています。1 つのクエリで 1 つ以上の addQuery() を呼び出すことができます。この場合、クエリは AND 化されます。クエリステートメントのいずれかを OR 化する必要がある場合は、GlideQueryCondition メソッドの addOrCondition() を使用します。

    myObj.addQuery('category','Hardware'); など、テーブル名と比較値の 2 つのパラメーターのみを使用して addQuery() が呼び出されると、演算子は「次の値に等しい」とみなされます。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    表 : 15. パラメーター
    名前 タイプ 説明
    name 文字列 クエリーするテーブルフィールドの名前、または次のいずれかの予約名。
    • 123TEXTQUERY321:文字列検索用語をクエリに追加します。一致させたい文字列を値として指定します。このオプションを使用して、検索文字列を含むフィールド値を持つレコードを返します。このオプションは、テーブル内のすべてのフィールドを検索します。フィールドはインデックス作成と検索用に設定する必要があります。インデックス作成と検索用のテーブルの構成の詳細については、「 インデックス作成と検索用の 1 つのテーブルの構成」を参照してください。
    • 123TEXTINDEXGROUP321:テキストインデックスグループをクエリに追加します。クエリを実行するテキストインデックスグループ [ts_index_group] テーブルのテキストインデックスグループの名前を値として指定します。このオプションを使用して、テキストインデックスグループ内のいずれかのテーブルから検索結果を返し、結果の関連性スコアをそのテキストインデックスグループの設定を使用して正規化します。テキストインデックスグループの構成の詳細については、「 インデックス作成と検索用の複数のテーブルの構成」を参照してください。
    注:
    予約名の使用の詳細については、「 スクリプトでのテーブルのクエリ」を参照してください。
    オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    表 : 16. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加されたクエリ条件。

    このコード例は、インシデントテーブル内のアクティブなレコードをクエリし、それらをすべて非アクティブに設定する方法を示しています。

    var rec = new GlideRecord('incident');
    rec.addQuery('active', true);
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      rec.update();
    }

    このコード例では、ポータルテキストインデックスグループの設定を使用して計算された検索結果の関連性値を使用して、kb_knowledgeテーブルの「email server」に一致するレコードのクエリを追加します。

    var now_GR = new GlideRecord("kb_knowledge);
    now_GR.addQuery("123TEXTQUERY321", "email server");
    now_GR.addQuery("123TEXTINDEXGROUP321", "portal");
    now_GR.query();

    スコープ対象 GlideRecord - addQuery(文字列 name, 文字列 operator, オブジェクト value)

    要求を作成する機能を提供します。要求は実行されると、要求に一致する指定されたテーブルから行を返します。

    SQL に精通している場合、このメソッドは「where」句に似ています。1 つのクエリで 1 つ以上の addQuery() を呼び出すことができます。この場合、クエリは AND 化されます。クエリステートメントのいずれかを OR 化する必要がある場合は、GlideQueryCondition メソッドの addOrCondition() を使用します。

    クエリを本番インスタンスに展開する前に、必ず準本番インスタンスでテストしてください。正しく構成されていないエンコードクエリ (無効なフィールド名を含むなど) は無効なクエリを生成します。無効なクエリが実行されると、クエリ条件の無効な部分が削除され、結果はクエリの有効な部分に基づいて生成されます。これにより、テーブルからすべてのレコードが返される可能性があります。正しくないクエリで insert()update()deleteRecord()、または deleteMultiple() メソッドを使用すると、データが失われる可能性があります。

    glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、WHERE 演算子で無効なクエリ用語が使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 Available system properties」を参照してください。

    表 : 17. パラメーター
    名前 タイプ 説明
    name 文字列 テーブルフィールド名。
    operator 文字列 クエリ演算子。使用可能な値は、value パラメーターのデータタイプによって異なります。
    数値:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    文字列 (大文字である必要があります):
    • =
    • !=
    • IN
    • NOT IN
    • STARTSWITH
    • ENDSWITH
    • CONTAINS
    • DOES NOT CONTAIN
    • INSTANCEOF
    注:
    LIKE 演算子の代わりに CONTAINS を使用します。
    value オブジェクト クエリ対象の値 (大文字と小文字は区別されません)。
    表 : 18. 返される内容
    タイプ 説明
    GlideQueryCondition GlideRecord に追加されたクエリ条件。
    var rec = new GlideRecord('incident');
    rec.addQuery('active',true);
    rec.addQuery('sys_created_on', ">", "2010-01-19 04:05:00");
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      gs.info('Active incident ' + rec.getValue('number') + ' closed');
      rec.update();
    }

    IN 演算子を使用します。

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('number','IN','INC00001,INC00002');
    now_GR.query();
    while(now_GR.next()) {
      //do something....
    }

    スコープ対象 GlideRecord - addValue(文字列 field, 数値 value)

    現在の GlideRecord オブジェクトのデータベースレベルで、指定された数値フィールドに対するアトミックな加算および減算操作を指定します。

    通常、GlideRecord オブジェクトはデータベース内の 1 つのレコードとして書き込まれます。個々のフィールド値は定義されたとおりに格納されます。GlideRecord フィールドに値を追加するコードの場合、フィールドをアトミックにインクリメントするのではなく、単に新しい値でフィールドをデータベースに保存します。

    たとえば、次のコードを実行すると、データベースの [u_count] フィールドの値は 2 になります。
    gs.info(now_GR.u_count); // "1" 
    now_GR.u_count += 1;
    now_GR.update();
    now_GR.get(now_GR.sys_id);
    gs.info(now_GR.u_count); // "2"
    別のユーザーが同じコードを同時に実行すると、2 つの操作でそれぞれ u_count に 1 が加算されるのではなく、正味の効果として u_count に 2 しか含まれず、1 つの操作の更新が実際に失われます。
    逆に、addValue() メソッドは、レコードが更新されたときにアトミックな操作としてデータベースで加算/減算を実行します。同時に実行されている 2 つの操作でそれぞれフィールドが適切に更新されます。
    gs.info(now_GR.u_count); // "1" 
    now_GR.addValue("u_count", 1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.info(now_GR.u_count); // "3", if executed concurrently with another user 
    注:
    明示的に行わない限り、新しい値はデータベースから読み取られません。

    setValue() と同様に、addValue() の変更は update() または insert() への後続の呼び出し後にのみデータベースで有効になります。insert() が呼び出されると、指定されたフィールドは addValue() に渡される value パラメーターで初期化されます。

    注:
    addValue() を呼び出す前に指定したフィールドに対して setValue() を呼び出すと、addValue() メソッドは処理されず、エラーメッセージがログに記録されます。
    表 : 19. パラメーター
    名前 タイプ 説明
    フィールド 文字列 変更するこの GlideRecord 内のフィールドの名前。
    注:
    関連付けられたフィールドのデータタイプは整数である必要があります。このメソッドは、long などの他のデータ型をサポートしていません。
    整数 レコードの保存時に値に追加する金額。減算操作を実行するには、単に負の値を渡します。
    表 : 20. 返される内容
    タイプ 説明
    なし

    加算される値を表示します。

    gs.info(now_GR.u_count); // "1" 
    now_GR.addValue("u_count", 1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.info(now_GR.u_count);

    出力:

    2

    減算される値を表示します。

    gs.info(now_GR.u_count); // "4" 
    now_GR.addValue("u_count", -1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.info(now_GR.u_count);

    出力:

    3

    スコープ対象 GlideRecord - applyEncodedQuery(文字列 queryString)

    指定されたエンコードクエリ用語の値を設定し、現在の GlideRecord に適用します。

    表 : 21. パラメーター
    名前 タイプ 説明
    queryString 文字列 現在の GlideRecord に適用するエンコードクエリ。
    表 : 22. 返される内容
    タイプ 説明
    なし

    function createAcl(table, role) {
      gs.info("Checking security on table " + table);
      var now_GR = new GlideRecord("sys_security_acl");
      now_GR.addQuery("name", table);
      now_GR.addQuery("operation", "read");
      now_GR.query();
      var encQuery = now_GR.getEncodedQuery();
      if (now_GR.next()) {
      // existing acl found so use it
        createAclRole(now_GR.getValue('sys_id'), role);
        return;
      } else {
        now_GR.initialize();
        now_GR.applyEncodedQuery(encQuery);
        var acl = now_GR.insert();
        gs.info("Added read access control on " + table);
        createAclRole(acl, role);
      }
    }

    スコープ対象 GlideRecord - canCreate()

    アクセス制御ルール (ユーザーのロールを含む) がこのテーブルへの新しいレコードの挿入を許可するかどうかを判断します。

    表 : 23. パラメーター
    名前 タイプ 説明
    なし
    表 : 24. 返される内容
    タイプ 説明
    ブーリアン ユーザーのロールでこのテーブルのレコードの作成が可能かどうかを示すフラグ。
    有効な値:
    • true:作成は許可されている
    • false:作成は許可されていない

    このコード例は、現在のユーザーがシステムログのインシデントテーブルにレコードを作成できるかどうかを記述しています。

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canCreate());

    スコープ対象 GlideRecord - canDelete()

    アクセス制御ルール (ユーザーのロールを含む) がこのテーブルでのレコードの削除を許可するかどうかを判断します。

    表 : 25. パラメーター
    名前 タイプ 説明
    なし
    表 : 26. 返される内容
    タイプ 説明
    ブーリアン ユーザーのロールでこのテーブルのレコードの削除が可能かどうかを示すフラグ。
    有効な値:
    • true:削除は許可されている
    • false:削除は許可されていない

    このコード例は、現在のユーザーがシステムログのインシデントテーブルでレコードを削除できるかどうかを記述しています。

    var att = new GlideRecord('sys_attachment');
    gs.info(att.canDelete());

    スコープ対象 GlideRecord - canRead()

    アクセス制御ルール (ACL) がこのテーブルでのレコードの読み取りを許可するかどうかを判断します。このメソッドでは、ユーザーロール、スクリプト化された ACL、スクリプト化された条件を持つ ACL など、すべての ACL タイプが評価されます。

    表 : 27. パラメーター
    名前 タイプ 説明
    なし
    表 : 28. 返される内容
    タイプ 説明
    ブーリアン ユーザーのロールがこのテーブルのレコードの読み取りを許可するかどうかを示すフラグ。
    有効な値:
    • true:読み取りは許可されている
    • false:読み取りは許可されていない

    このコード例は、現在のユーザーがシステムログのインシデントテーブルでレコードを読み取れるかどうかを記述しています。

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canRead());

    スコープ対象 GlideRecord - canWrite()

    アクセス制御ルール (ユーザーのロールを含む) がこのテーブルでのレコードの編集を許可するかどうかを決定します。

    表 : 29. パラメーター
    名前 タイプ 説明
    なし
    表 : 30. 返される内容
    タイプ 説明
    ブーリアン ユーザーのロールでこのテーブルのレコードの書き込みが可能かどうかを示すフラグ。
    有効な値:
    • true:書き込みは許可されている
    • false:書き込みは許可されていない

    このコード例は、現在のユーザーがシステムログのインシデントテーブルでレコードを書き込めるかどうかを記述しています。

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canWrite());

    スコープ付き GlideRecord - chooseWindow(番号 firstRow, 番号 lastRow, ブール値 forceCount)

    後続のクエリによって返される行の範囲を設定します。

    表 : 31. パラメーター
    名前 タイプ 説明
    firstRow [Number (番号)] 範囲の開始行のゼロベースのインデックス (両端を含む)。(値 0 は最初の行を返します)。
    lastRow [Number (番号)] 範囲の終了行のゼロベースのインデックス (排他的)。

    たとえば、 firstRow = 1 および lastRow = 5 の場合、4 つのレコードが返されます (2-5)。

    forceCount ブーリアン オプション。行数クエリを強制するかどうかを示すフラグ。この呼び出しのほとんどの実装では、行数がカウントされます。テキスト検索など、行数がカウントされない例外のケースもあります。このフラグを設定すると、行数がカウントされます。
    有効な値:
    • true:行数は常にカウントされます。
    • false:メソッドの通常の実行で実装されている場合、行数がカウントされます。

    デフォルト値:false

    表 : 32. 返される内容
    タイプ 説明
    なし

    この例では、インシデント [incident] テーブルからレコード 3 と 4 を返す方法を示します。

    var now_GR = new GlideRecord('incident');
    now_GR.orderBy('number');
    now_GR.chooseWindow(2, 4);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('number') + ' is within window');
    }

    出力:

    *** Script: INC0000003 is within window
    *** Script: INC0000004 is within window

    スコープ対象 GlideRecord - deleteMultiple()

    クエリを満たすすべてのレコードを削除します。

    このメソッドでは添付ファイルは削除されません。

    通貨フィールドのあるテーブルで deleteMultiple() は使用しないでください。常に各レコードを個別に削除してください。また、大きなテーブルを操作する場合は、このメソッドと chooseWindow() メソッドまたは setLimit() メソッドを一緒に使用しないでください。setLimit() メソッドは、deleteMultiple() で削除されるレコードの数を制限しません。クエリによって返されたすべてのレコードは、 setLimit() に関係なく削除されます。

    glide.db.forced.chunk.threshold システムプロパティは、チャンクレコードの削除と更新を強制するしきい値を設定します。チャンクは、巨大なテーブルでプライマリキー以外の削除によってレプリケーションの問題が発生するのを防ぐのに役立ちます。詳細については、「Available system properties」を参照してください。

    表 : 33. パラメーター
    名前 タイプ 説明
    なし
    表 : 34. 返される内容
    タイプ 説明
    なし

    この例では、インシデントテーブルからすべての非アクティブなレコードを削除する方法を示します。

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('active','false');
    now_GR.query();
    now_GR.deleteMultiple();

    スコープ対象 GlideRecord - deleteRecord()

    現在のレコードを削除します。

    表 : 35. パラメーター
    名前 タイプ 説明
    なし
    表 : 36. 返される内容
    タイプ 説明
    ブーリアン レコードが正常に削除されたかどうかを示すフラグ。
    有効な値:
    • true:レコードが削除されました。
    • false:削除するレコードが見つかりませんでした。

    この例では、指定されたレコードをインシデントテーブルから削除する方法を説明します。

    var now_GR = new GlideRecord('incident');
    //to delete one record
    if (now_GR.get('99ebb4156fa831005be8883e6b3ee4b9'))
        now_GR.deleteRecord();

    この例では、レコードを挿入した直後にインシデントテーブルから削除する方法を説明します。インシデント GlideRecord は、挿入後にリロードしてから削除する必要があります。

    var grTicket = new GlideRecord('incident');
    grTicket.initialize();
    grTicket.short_description = 'Example ticket';
    grTicket.work_notes = 'An update about the ticket';
    var ins_sys_id = grTicket.insert(); // Insert the record
    grTicket.get(ins_sys_id); // Reload the inserted record
    gs.info(grTicket.deleteRecord()); // Delete the record

    出力:

    true

    スコープ付き GlideRecord - disableSysIdInOptimization()

    grIncident.addQuery('sys_id', 'IN', listOf200SysIds) など、ユーザーが大量のsys_idsを渡すときに追加のデータベースクエリが実行されないようにするデフォルトの最適化を無効にします。

    このメソッドは、呼び出された GlideRecord にのみ影響します。すべての GlideRecord のsys_id制限の最適化を変更するには、 glide.db.first_pass_sys_id_list_size.max システムプロパティの値を調整します (デフォルトは 100)。

    このメソッドをコールしないか、 glide.db.first_pass_sys_id_list_size.max システムプロパティを調整して、 glide.db.first_pass_sys_id_list_size.maxで定義された数よりも多くのsys_idエントリを含むリストを渡すと、 GlideRecord.getRowCount() からの戻り値が正しくない可能性があります。

    表 : 37. パラメーター
    名前 タイプ 説明
    なし
    表 : 38. 返される内容
    タイプ 説明
    なし

    次のコード例は、 disableSysIdInOptimiation() メソッドを使用して、200 個のエントリを含むインシデントsys_idリストを渡すときにsys_id制限の最適化を無効にする方法を示しています。

    var listOf200SysIds = [ ... ]; // 200 comma separated sys_ids
    var grIncident = new GlideRecord('incident');
    grIncident.addQuery('sys_id', 'IN', listOf200SysIds);
    grIncident.disableSysIdInOptimization(); // Rowcount could be incorrect without this method call
    grIncident.query();
    if (grIncident.next())
        gs.info("Rowcount: " + grIncident.getRowCount());

    出力:

    Rowcount: 200

    スコープ対象 GlideRecord - get(オブジェクト name, オブジェクト value)

    現在の GlideRecord オブジェクトに指定されたレコードを返します。

    このメソッドは、1 つまたは 2 つのパラメーターを受け入れます。パラメーターが 1 つだけ渡される場合、メソッドは目的のレコードの sys_id であると見なします。見つからない場合は、値を表示値と照合しようとします。2 つのパラメーターが渡される場合、最初のパラメーターは検索する GlideRecord 内の列の名前です。2 つ目は検索する値です。複数のレコードが見つかった場合は、next() を使用して追加のレコードにアクセスします。

    表 : 39. パラメーター
    名前 タイプ 説明
    name オブジェクト オプション。指定された value パラメーターを検索するためにインスタンス化された GlideRecord 列の名前。パラメーターが 1 つだけ渡される場合、メソッドはこのパラメーターが sys_id または表示値であると見なします。
    value オブジェクト 照合する値。計算フィールドの場合、レコード内のフィールドのスクリプト化されたデフォルト値に対して計算を実行するのではなく、値をそのまま照合します。
    表 : 40. 戻り値
    タイプ 説明
    ブーリアン 要求されたレコードが見つかったかどうかを示します。
    • true:レコードが見つかりました
    • false:レコードが見つかりませんでした

    この例では、sys_id を渡すことによってインシデントレコードを取得する方法を示しています。

    var grIncident = new GlideRecord('incident');
    var returnValue = grIncident.get('99ebb4156fa831005be8883e6b3ee4b9');
    gs.info(returnValue); // logs true or false
    gs.info(grIncident.short_description); // logs Incident Short description

    この例は、検索するフィールド (caller_id.name) とそのフィールド内で照合する値を渡すことによって、インシデントレコードを取得する方法を示しています。

    var grIncident = new GlideRecord('incident');
    var returnValue = grIncident.get('caller_id.name','Sylivia Wayland');
    gs.info(returnValue); // logs true or false
    gs.info(grIncident.getValue('number')); // logs Incident Number

    スコープ対象 GlideRecord - getAttribute(文字列 fieldName)

    指定されたフィールドの辞書属性を返します。

    表 : 41. パラメーター
    名前 タイプ 説明
    fieldName 文字列 ディクショナリ属性を返すフィールド名
    表 : 42. 返される内容
    タイプ 説明
    文字列 ディクショナリ属性
    doit();
    function doit() {
      var now_GR = new GlideRecord('sys_user');
      now_GR.query("user_name","admin");
      if (now_GR.next()) {
        gs.info("we got one");
        gs.info(now_GR.location.getAttribute("tree_picker"));
      }
    }

    スコープ対象 GlideRecord - getClassDisplayValue()

    現在のテーブルのラベルを返します。

    表 : 43. パラメーター
    名前 タイプ 説明
    なし
    表 : 44. 返される内容
    タイプ 説明
    文字列 テーブルを識別するラベル。

    この例では渡されたテーブルのラベルを出力します。

    // Display the incident table label
    var now_GR = new GlideRecord("incident");
    var value = now_GR.getClassDisplayValue();
    gs.info("The table label is " + value + ".");

    出力:

    The table label is Incident.

    スコープ対象 GlideRecord - getDisplayValue()

    現在のレコードの表示値を取得します。

    表示値は、データベース内の実際の値と、ユーザーやシステムの設定と環境設定に基づいて操作されます。

    返される表示値はフィールドタイプに依存します。
    • 選択肢フィールド:データベース値は数値にできますが、表示値の方がわかりやすくなります。
    • 日付フィールド:データベース値は UTC 形式で、表示値はユーザーのタイムゾーンに基づいたものになります。
    • 暗号化テキスト:データベース値は暗号化されますが、表示値はユーザーの暗号化コンテキストに基づいて非暗号化されます。
    • 参照フィールド:データベース値は sys_id ですが、表示値は参照レコードの表示フィールドになります。
    表 : 45. パラメーター
    名前 タイプ 説明
    なし
    表 : 46. 返される内容
    タイプ 説明
    文字列 現在のレコードの表示値。

    この例では、指定されたインシデントレコードの表示値をログに書き込みます。

    var now_GR = new GlideRecord('incident');
    now_GR.get('sys_id','<sys_id>');
    gs.info(now_GR.getDisplayValue());

    出力:

    INC0000050

    スコープ対象 GlideRecord - getED()

    要素の記述子を返します。

    表 : 47. パラメーター
    名前 タイプ 説明
    なし
    表 : 48. 返される内容
    タイプ 説明
    GlideElementDescriptor 要素の記述子。

    この例は、インシデント GlideRecord の名前フィールドを取得する方法を示しています。

    var grInc = new GlideRecord('incident');
    grInc.get('sys_id','ef43c6d40a0a0b5700c77f9bf387afe3');
    
    var field = grInc.getElement('priority');
    var ed = field.getED();
    
    var isEdge = ed.getLabel();
    gs.info("Label is - " + isEdge);
    出力:
    Label is - Priority

    スコープ対象 GlideRecord - getElement(文字列 fieldName)

    指定されたフィールドの GlideElement オブジェクトを取得します。

    このメソッドによって返される値は、完全な GlideElement オブジェクトです。結果は、フィールド値をドット連結するのと同じです。たとえば、now_GR.getElement('short_description')nowGR.short_descriptionと同じ結果を返します。

    ほとんどの場合、ドット連結を使用してレコードから値を取得しないでください。ドット連結では、フィールド値ではなくオブジェクト全体が取得されます。オブジェクトの取得にはより多くのストレージが使用されるため、アレイや サービスポータルで使用すると望ましくない結果が生じる可能性があります。

    オブジェクト全体を取得する代わりに、次のいずれかのメソッドを使用してフィールド値をコピーできます。

    GlideElement オブジェクトをドット連結する必要がある場合は、 toString() メソッドを使用して値を取得します。たとえば、別の参照フィールドを設定するために、現在の問い合わせユーザーのマネージャーの sys_id が必要な場合があります。次の例は、オブジェクト全体の代わりに文字列値を取得する方法を示しています。
    var mgr = current.caller_id.manager.toString();
    表 : 49. パラメーター
    名前 タイプ 説明
    fieldName 文字列 GlideElement オブジェクトを返す対象の列名。
    表 : 50. 返される内容
    タイプ 説明
    GlideElement 現在のレコードの指定された列の GlideElement。各オブジェクトは、現在の GlideRecord のフィールドを記述します。

    次の例は、[簡単な説明] フィールドに詳細を含む新しいインシデントレコードを追加する方法を示しています。

    var elementName = 'short_description'; 
    var now_GR = new GlideRecord('incident'); 
    now_GR.newRecord(); 
    now_GR.setValue(elementName, "My DB is not working");
    now_GR.insert();
     
    var sdesc = now_GR.getElement('short_description');
    gs.info(sdesc.getValue());

    出力:

    My DB is not working

    スコープ対象 GlideRecord - getElements()

    GlideElement オブジェクトのアレイを返します。各オブジェクトは、現在の GlideRecord のフィールドを記述します。

    GlideElement オブジェクトをドット連結する必要がある場合は、 toString() メソッドを使用して値を取得します。たとえば、別の参照フィールドを設定するために、現在の問い合わせユーザーのマネージャーの sys_id が必要な場合があります。次の例は、オブジェクト全体の代わりに文字列値を取得する方法を示しています。
    var mgr = current.caller_id.manager.toString();
    表 : 51. パラメーター
    名前 タイプ 説明
    なし
    表 : 52. 返される内容
    タイプ 説明
    アレイ GlideElement オブジェクトのアレイ。各オブジェクトは、現在の GlideRecord のフィールドを記述します。

    次の例では、質問 [question] テーブルに作成された 5 つの最新レコードの名前フィールドの値を表示します。

    var now_GR = new GlideRecord('question');
    var elementArr = now_GR.getElements();
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(5);
    now_GR.query();
    
    while (now_GR.next()){
      var qNames = now_GR.name.toString();
      elementArr.push(qNames);
      gs.info(qNames);
    }

    出力:

    delivery_time_var
    delivery_time
    sequence
    priority
    assigned_group

    スコープ対象 GlideRecord - getEncodedQuery()

    現在の結果セットのクエリ条件をエンコードされたクエリ文字列として取得します。

    詳しくは、 エンコードされたクエリ文字列 を参照してください。

    表 : 53. パラメーター
    名前 タイプ 説明
    なし
    表 : 54. 返される内容
    タイプ 説明
    文字列
    var now_GR = new GlideRecord('incident'); 
    now_GR.addQuery('active', true);
    now_GR.addQuery('priority', 1); 
    now_GR.query(); 
    var encodedQuery = now_GR.getEncodedQuery(); 
    gs.info(encodedQuery);

    出力:

    active=true^priority=1

    スコープ対象 GlideRecord - getLabel()

    フィールドのラベルを返します。

    表 : 55. パラメーター
    名前 タイプ 説明
    なし
    表 : 56. 返される内容
    タイプ 説明
    文字列 フィールドのラベル
    template.print("Summary of Requested items:\n");  
    var now_GR = new GlideRecord("sc_req_item");
    now_GR.addQuery("request", current.sysapproval);
    now_GR.query();
    while(now_GR.next()) {
    var nicePrice = now_GR.price.toString();
      if (nicePrice != '') {
        nicePrice = parseFloat(nicePrice);
        nicePrice = nicePrice.toFixed(2);
      }
      template.print(now_GR.number + ":  " + now_GR.quantity + " X " + now_GR.cat_item.getDisplayValue() 
        + " at $" + nicePrice + " each \n");
      template.print("    Options:\n");
      for (key in now_GR.variables) {
      var now_V = now_GR.variables[key];
        if(now_V.getGlideObject().getQuestion().getLabel() != '') {
          template.space(4);
          template.print('     ' +  now_V.getGlideObject().getQuestion().getLabel() + " = " 
            + now_V.getDisplayValue() + "\n");  
        }
      }
    }

    スコープ対象 GlideRecord - getLastErrorMessage()

    最後のエラーメッセージを取得します。最後のエラーメッセージがない場合は、null が返されます。

    表 : 57. パラメーター
    名前 タイプ 説明
    なし
    表 : 58. 返される内容
    タイプ 説明
    文字列 文字列としての最後のエラーメッセージ。
    // Setup a data policy where short_description field in incident is mandatory
    var now_GR = new GlideRecord('incident');
    now_GR.insert(); // insert without data in mandatory field
    var errormessage = now_GR.getLastErrorMessage(); 
    gs.info(errormessage);

    出力:

    Data Policy Exception: Short description is mandatory

    スコープ対象 GlideRecord - getRecordClassName()

    現在のレコードのクラス名を取得します。

    表 : 61. パラメーター
    名前 タイプ 説明
    なし
    表 : 62. 返される内容
    タイプ 説明
    文字列 クラス名。
    var now_GR = new GlideRecord('incident'); 
    var recordClassName = now_GR.getRecordClassName(); 
    gs.info(recordClassName);

    出力:

    incident

    スコープ対象 GlideRecord - getRowCount()

    現在の GlideRecord オブジェクトの行数 (レコード) を取得します。

    注:
    GlideRecord は一致するレコードを返すため、レコード数のみが必要な場合は GlideAggregate ほど効率的ではない可能性があります。レコード数のみが必要で、一致するレコードを反復処理しない場合は、 GlideAggregate を使用します。
    GlideRecord または GlideAggregate での番号レコードの取得
    GlideRecord getRowCount() および GlideAggregate getAggregate() API も同様の情報を提供します。次の基準を使用して、どのオプションが最適かを判断してください。
    • GlideRecord getRowCount() メソッドは、クエリから返されたレコードの数とレコード自体を示します。レコードに対してアクションを実行するために、セットを反復処理する前または後に結果セット内のレコード数が必要な場合は、この方法を使用します。
    • GlideAggregate getAggregate() メソッドは、実際のレコードを除いて、クエリに一致するレコードの数のみを取得します。クエリを発行する前に、 GlideAggregate オブジェクトで集計を設定する必要があります。
    GlideRecord getRowCount() を使用してレコードとカウントを取得する
    次の例は、 GlideRecord getRowCount() を使用してアクティブなインシデントの合計数を取得する方法を示しています。
    var incident = new GlideRecord("incident");
    incident.addQuery("active", true);
    incident.query();
     
    gs.info("*** Total number of active incidents: {0}", incident.getRowCount());
    GlideAggregate getAggregate() を使用してレコード数のみを取得する
    次の例は、レコードの数のみを返す方法を示しています。このメソッドは一致するレコードを使用しないため、集計クエリを使用してカウントのみを返す方がはるかに効率的です。
    var incident = new GlideAggregate("incident");
    incident.addQuery("active", true);
    incident.addAggregate("COUNT");
    incident.query();
     
    if (incident.next())
        gs.info("*** Total number of active incidents: {0}", incident.getAggregate("COUNT"));
    ソリューションに最適なオプションの決定

    レコード数のみを取得する場合は、 GlideAggregate getAggregate() メソッドが最適です。個々のレコードを使用して結果の数を取得するには、 GlideRecord getRowCount() を使用します。これは、単一のクエリでこの機能が提供されるためです。

    注:
    grIncident.addQuery('sys_id', 'IN', listOf200SysIds) など、100 を超えるsys_id値を持つ sys_id IN を使用するときに getRowCount() メソッドを使用する場合は、次のいずれかを実行する必要があります。
    • GlideRecord で disableSysIdInOptimization() メソッドを呼び出します。
    • または、 glide.db.first_pass_sys_id_list_size.max システムプロパティをリスト内のsys_ids数よりも高い値に調整します。
    また、getRowCount() メソッドを呼び出す前に、必ず .next() メソッドを呼び出してください。
    表 : 63. パラメーター
    名前 タイプ 説明
    なし
    表 : 64. 返される内容
    タイプ 説明
    数値 現在の GlideRecord の行数。

    次の例は、インシデント [incident] テーブルからインシデントの数を取得する方法を示しています。

    var numberOfIncidents = new GlideRecord('incident');
    numberOfIncidents.query();
    gs.info("Records in incident table: " + numberOfIncidents.getRowCount());

    出力:

    Records in incident table: 6920

    次のコード例は、 disableSysIdInOptimiation() メソッドを使用して、200 個のエントリを含むインシデントsys_idリストを渡すときにsys_id制限の最適化を無効にする方法を示しています。

    var listOf200SysIds = [ ... ]; // 200 comma separated sys_ids
    var grIncident = new GlideRecord('incident');
    grIncident.addQuery('sys_id', 'IN', listOf200SysIds);
    grIncident.disableSysIdInOptimization(); // Rowcount could be incorrect without this method call
    grIncident.query();
    if (grIncident.next())
        gs.info("Rowcount: " + grIncident.getRowCount());

    出力:

    Rowcount: 200

    スコープ対象 GlideRecord - getTableName()

    GlideRecord に関連付けられたテーブル名を取得します。

    表 : 65. パラメーター
    名前 タイプ 説明
    なし
    表 : 66. 返される内容
    タイプ 説明
    文字列 テーブル名
    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.getTableName());

    スコープ対象 GlideRecord - getUniqueValue()

    レコードのプライマリキーを取得します。特に指定しない限り、通常、これは sys_id です。

    表 : 67. パラメーター
    名前 タイプ 説明
    なし
    表 : 68. 返される内容
    タイプ 説明
    文字列 文字列としての一意のプライマリキー (キーが null の場合は null)。
    var now_GR = new GlideRecord('kb_knowledge');
    now_GR.query();
    now_GR.next();
    var uniqueid = now_GR.getUniqueValue();
    gs.info(uniqueid);

    スコープ対象 GlideRecord - getValue(文字列 name)

    フィールド内の基礎となる要素の文字列値を取得します。

    注:
    フィールド暗号化エンタープライズ プラグインが有効になっていて、インスタンスがキーにアクセスできる場合、このメソッドは暗号化されたフィールドからクリアテキスト値を返します。インスタンスがキーにアクセスできない場合、このメソッドは暗号化された値を返します。詳細については、「 Platform Encryption」を参照してください。
    表 : 69. パラメーター
    名前 タイプ 説明
    name 文字列 値を取得するフィールドの名前。
    表 : 70. 返される内容
    タイプ 説明
    文字列 基礎となる要素の文字列値。フィールドが空の場合またはフィールドが存在しない場合は null を返します。ブーリアン値は、false および true ではなく「0」および「1」の文字列値として返されます。
    var now_GR = new GlideRecord('incident'); 
    now_GR.orderBy('number');
    now_GR.query('active','true'); 
    now_GR.next(); 
    gs.info(now_GR.getValue('number'));

    出力:

    INC0000002

    スコープ対象 GlideRecord - GlideRecord(文字列 tableName)

    指定されたテーブルの GlideRecord クラスのインスタンスを作成します。

    表 : 71. パラメーター
    名前 タイプ 説明
    tableName 文字列 使用されるテーブル。
    var now_GR = new GlideRecord('incident');

    スコープ対象 GlideRecord - hasNext()

    GlideRecord オブジェクトにまだレコードがあるかどうかを判断します。

    表 : 72. パラメーター
    名前 タイプ 説明
    なし
    表 : 73. 返される内容
    タイプ 説明
    ブーリアン クエリ結果セットにさらにレコードがある場合は true。
    var rec = new GlideRecord('incident'); 
    rec.query(); 
    if (rec.hasNext()) { 
      gs.info("Table is not empty"); 
    }

    スコープ対象 GlideRecord - insert()

    現在のレコードに設定されているフィールド値を使用して、新しいレコードを挿入します。

    表 : 74. パラメーター
    名前 タイプ 説明
    なし
    表 : 75. 返される内容
    タイプ 説明
    文字列 挿入されたレコードの sys_id。レコードが挿入されない場合は null。
    var now_GR = new GlideRecord('incident');
    now_GR.initialize();
    now_GR.setValue('name', 'New Incident');
    now_GR.setValue('description', 'Incident description');
    now_GR.insert();

    出力:

    138fb4111b4d4d907cf30d03cd4bcb57

    スコープ対象 GlideRecord - initialize()

    挿入前に入力するのに適した空のレコードを作成します。

    表 : 76. パラメーター
    名前 タイプ 説明
    なし
    表 : 77. 返される内容
    タイプ 説明
    なし
    var grIncident = new GlideRecord('incident');
    grIncident.initialize();
    grIncident.setValue('short_description', 'New Incident');
    grIncident.setValue('description', 'Incident description');
    grIncident.insert();

    スコープ対象 GlideRecord - isActionAborted()

    現在のデータベースアクションを中止するかどうかを確認します。

    isActionAborted() は、新しいスレッドに対して next() メソッドによって初期化 (false に設定) されます。

    表 : 78. パラメーター
    名前 タイプ 説明
    なし
    表 : 79. 返される内容
    タイプ 説明
    ブーリアン 現在のデータベースアクションを中止するかどうかを示すフラグ。
    有効な値:
    • true:現在のデータベースアクションは中止されます。
    • false:現在のデータベースアクションは中止されません。
    var now_GR = new GlideRecord('incident');
     
    gs.info(now_GR.isActionAborted());

    出力:

    false

    スコープ対象 GlideRecord - isEncodedQueryValid(文字列 query)

    指定されたエンコードクエリが有効かどうかを確認します。

    指定されたエンコードクエリが有効な場合、addEncodedQuery() を呼び出したときと同様にクエリが適用されます。指定されたエンコードクエリが無効な場合、sys_idNotValidnull がエンコードクエリとして追加されます。

    注:
    このメソッドは廃止され、クエリを実行しない isValidEncodedQuery() メソッドに置き換えられました。
    表 : 80. パラメーター
    名前 タイプ 説明
    クエリ 文字列 検証するエンコードクエリ。「エンコードされたクエリ文字列」を参照してください。
    表 : 81. 戻り値
    タイプ 説明
    ブーリアン 指定されたエンコードクエリが有効かどうかを示すフラグ。
    • true:渡されたエンコードクエリは有効です。
    • false:渡されたエンコードクエリは無効です。

    このコード例はエンコードされたクエリを検証し、クエリが有効な場合にロジックを実行する方法を示しています。

    var now_GR = new GlideRecord('incident_sla');
    var isValidQuery = now_GR.isEncodedQueryValid('inc_impact=1^taskslatable_active=true');
    if (isValidQuery) {
      now_GR.query();
      .
      .
      .
    }

    スコープ対象 GlideRecord - isNewRecord()

    現在のレコードがまだデータベースに挿入されていない新しいレコードかどうかを確認します。

    表 : 82. パラメーター
    名前 タイプ 説明
    なし
    表 : 83. 返される内容
    タイプ 説明
    ブーリアン レコードが新規でデータベースに挿入されていない場合は true。
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.newRecord(); // create a new record and populate it with default values
    gs.info(now_GR.isNewRecord());

    スコープ対象 GlideRecord - isValid()

    現在のテーブルが有効かどうか、またはレコードが正常に取得されたかどうかを判断します。

    表 : 84. パラメーター
    名前 タイプ 説明
    なし
    表 : 85. 返される内容
    タイプ 説明
    ブーリアン テーブルが有効かどうか、またはレコードが正常に取得されたかどうかを示すフラグ。
    可能な値:
    • true:テーブルは有効、またはレコードは正常に取得されました。
    • false:テーブルは無効、またはレコードは正常に取得されませんでした。
    var comment_GR = new GlideRecord('cf_comment');
    var commentId = '99ebb4156fa831005be8883e6b3ee4b9';
    comment_GR.get(commentId);
    gs.info(comment_GR.isValid());

    スコープ対象 GlideRecord - isValidEncodedQuery(文字列 query)

    エンコードされたクエリの構文が正しいかどうかを確認します。

    空の文字列 ("") を指定クエリとして渡す場合:
    • 空の文字列 ("") は、クエリが存在しないことを表し、false を返します。
    • GlideRecord.addEncodedQuery("") の後に GlideRecord.query() を呼び出すと、すべての行が返されます。クエリメソッドは、SQL SELECT ステートメントに似ています。SQL では、"SELECT * FROM foo WHERE X" を使用する場合、値 X はクエリを表します。クエリ値が指定されていない場合は、すべてのレコードが返されます (例: SELECT * FROM foo)。
    表 : 86. パラメーター
    名前 タイプ 説明
    クエリ 文字列 検証するエンコードクエリ。「エンコードされたクエリ文字列」を参照してください。
    表 : 87. 戻り値
    タイプ 説明
    ブーリアン 指定されたエンコードクエリが有効かどうかを示すフラグ。
    • true:渡されたエンコードクエリは有効です。
    • false:渡されたエンコードクエリは無効です。

    このコード例は、エンコードされたクエリが有効かどうかを確認する方法を示しています。

    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    var isValidQuery = now_GR.isValidEncodedQuery(queryString);
    if (isValidQuery) {
      now_GR.addEncodedQuery(queryString);
      now_GR.query();
      .
      .
      .
    }

    スコープ対象 GlideRecord - isValidField(文字列 columnName)

    指定されたフィールドが現在のテーブルで定義されているかどうかを判断します。

    表 : 88. パラメーター
    名前 タイプ 説明
    columnName 文字列 フィールドの名前。
    表 : 89. 返される内容
    タイプ 説明
    ブーリアン フィールドが現在のテーブルに対して定義されている場合は true。
    var now_GR = new GlideRecord('incident'); 
    now_GR.initialize(); 
    gs.info(now_GR.isValidField("short_description"));

    スコープ対象 GlideRecord - isValidRecord()

    レコードが実際にレコードのクエリ/取得操作によって返されたかどうかを判断します。

    表 : 90. パラメーター
    名前 タイプ 説明
    なし
    表 : 91. 返される内容
    タイプ 説明
    ブーリアン クエリ/取得操作によってレコードが実際に返されたかどうかを示すフラグ。
    有効な値:
    • true:クエリ/取得操作によってレコードが返されました。
    • false:レコードセットが終了し、レコードは返されませんでした。
    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) { 
      gs.info(rec.number + ' exists');
    }
    gs.info(rec.isValidRecord());

    スコープ付き GlideRecord - isView()

    レコードがビューまたはテーブルのどちらで作成されたかを確認します。

    表 : 92. パラメーター
    名前 タイプ 説明
    なし
    表 : 93. 返される内容
    タイプ 説明
    ブール ビューであるテーブルにレコードが作成されたかどうかを示すフラグ。
    • true:レコードはビューで作成されました。
    • false:レコードはテーブルに作成されました。

    このコード例は、GlideRecord がビューまたはテーブルで作成されたかどうかを判断する方法を示しています。

    var mySLA = new GlideRecord('incident_sla');
    
    if (mySLA.isView() == true){
       gs.info('This record was created in a view.');
    } else {
       gs.info('This record was created in a table.');
    }

    出力:

    This record was created in a view.

    スコープ対象 GlideRecord - newRecord()

    新しい GlideRecord レコードを作成し、フィールドのデフォルト値を設定して、レコードに一意の ID を割り当てます。

    表 : 94. パラメーター
    名前 タイプ 説明
    なし
    表 : 95. 返される内容
    タイプ 説明
    なし
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.newRecord(); 
    gs.info(now_GR.isNewRecord());

    出力:

    true

    スコープ対象 GlideRecord - next()

    GlideRecord オブジェクトの次のレコードに移動します。

    注:
    テーブルに「next」と呼ばれるフィールドがある場合、このメソッドは失敗します。その場合は、_next() メソッドを使用します。
    表 : 96. パラメーター
    名前 タイプ 説明
    なし
    表 : 97. 返される内容
    タイプ 説明
    ブーリアン GlideRecord に「next」レコードがあるかどうかを示すフラグ。
    有効な値:
    • true:次のレコードへの移動に成功しました。
    • false:結果セットにそれ以上の結果は含まれていません。
    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) {
     gs.info(rec.getValue('number') + ' exists');
    }
    出力:
    INC0010112 exists
    INC0010114 exists
    INC0010119 exists
    INC0010127 exists

    スコープ対象 GlideRecord - _next()

    GlideRecord の次のレコードに移動します。next() と同じ機能を提供します。このメソッドは GlideRecord に next という名前の列がある場合に使用します。

    表 : 98. パラメーター
    名前 タイプ 説明
    なし
    表 : 99. 返される内容
    タイプ 説明
    ブーリアン クエリセットにさらにレコードが含まれているかどうかを示すフラグ。
    可能な値:
    • true:クエリセットにさらにレコードがあります。
    • false:クエリセットにそれ以上のレコードはありません。

    次の例は、インシデント [incident] テーブルの各レコードを一覧表示する方法を示しています。

    var rec = new GlideRecord('incident');
    rec.query();
    while (rec._next()) {
      gs.info(rec.getValue('number') + ' exists');
    }

    出力:

    INC0000060 exists
    INC0009002 exists
    INC0000009 exists
    INC0000010 exists
    INC0000011 exists
    INC0000012 exists
    ...

    スコープ対象 GlideRecord - operation()

    操作が挿入、更新、または削除のいずれであるかを決定します。

    操作が分かれば、current.operation() を使用して、各操作を一意に処理できる汎用ビジネスルールを作成できます。

    グローバル変数 currentの使用については、 ビジネスルールのグローバル変数を参照してください。

    表 : 100. パラメーター
    名前 タイプ 説明
    なし
    表 : 101. 返される内容
    タイプ 説明
    文字列 現在の操作。
    可能な値:
    • delete
    • insert
    • update

    次の例は、ビジネスルールでこのメソッドを使用する方法を示しています。Operation() メソッドは、どの操作がイベントをトリガーしたかを検出し、更新操作と挿入操作に応じて異なるアクションを実行します。

    if(current.operation() == "update") {
      current.updates ++; } 
    if(current.operation() == "insert") {
      current.updates = 0; }

    スコープ対象 GlideRecord - orderBy(文字列 name)

    orderBy 列を指定します。

    このメソッドは複数の列で並べ替えるために複数回呼び出します。結果は昇順で配置されます。レコードを降順に並べ替える場合は、「スコープ対象 GlideRecord - orderByDesc(文字列 name)」を参照してください。

    表 : 102. パラメーター
    名前 タイプ 説明
    name 文字列 この GlideRecord オブジェクトのレコードを並べ替えるために使用する列名。
    表 : 103. 返される内容
    タイプ 説明
    なし

    次の例は、簡単な説明でインシデントレコードを昇順で並べ替える方法を示しています。

    var queryString = "priority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.orderBy('short_description'); // Ascending Order
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    出力:

    Can't launch 64-bit Windows 7 virtual machine
    Can't log into SAP from my laptop today
    Network storage unavailable
    Please remove the latest hotfix from my PC

    スコープ対象 GlideRecord - orderByDesc(文字列 name)

    降順の orderBy 列を指定します。

    このメソッドは複数の列で並べ替えるために複数回呼び出します。結果は降順で配置されます。レコードを昇順に並べ替える場合は、「スコープ対象 GlideRecord - orderBy(文字列 name)」を参照してください。

    表 : 104. パラメーター
    名前 タイプ 説明
    name 文字列 GlideRecord オブジェクトのレコードを並べ替えるために使用する列名。
    表 : 105. 返される内容
    タイプ 説明
    なし

    次の例は、[簡単な説明] でインシデントレコードを降順で並べ替える方法を示しています。

    var queryString = "priority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('short_description'); //Descending Order
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    出力:

    Please remove the latest hotfix from my PC
    Network storage unavailable
    Can't log into SAP from my laptop today
    Can't launch 64-bit Windows 7 virtual machine

    スコープ対象 GlideRecord - query(文字列 field, 文字列 value)

    addQuery()addEncodedQuery() などのクエリメソッドで指定されたフィルターに基づいて、テーブルに対してクエリを実行します。

    このメソッドは、GlideRecord テーブルおよびそのテーブルの参照に対してクエリを実行します。詳細については、「 スクリプトでのテーブルのクエリ」を参照してください。

    注:
    テーブルに「query」と呼ばれるフィールドがある場合、このメソッドは失敗します。その場合は、代わりに _query() メソッドを使用します。

    クエリの構築と実行の詳細については、GlideRecord についての記事を参照してください。

    表 : 106. パラメーター
    名前 タイプ 説明
    name 文字列 オプション - 値パラメーターも指定する必要があります。value パラメーターで指定された値を検索するフィールドの名前。
    注:
    通常、このメソッドは引数なしで実行されますが、名前と値のペアを指定して、指定した値を含むレコードをフィルタリングできます。パラメーターが指定されている場合、「name=value」条件がクエリに追加されます。
    value 文字列 オプション - フィールドパラメーターも指定する必要があります。指定された field パラメーターで検索する値。
    表 : 107. 返される内容
    タイプ 説明
    なし

    次の例は、クエリフィールドを含むテーブルのシステムディクショナリ [sys_dictionary] をスキャンする方法を示しています。

    var tableArr = [];
    
    var now_GR = new GlideRecord('sys_dictionary');
    now_GR.addQuery('element', 'query');
    now_GR.setLimit(6);
    
    now_GR.query();
    
    while(now_GR.next()){
       tableArr.push(now_GR.name.getValue());
    };
    
    gs.info('The following tables have a field column called "query":');
    
    for (i = 0; i < tableArr.length; i++) {
       gs.info(tableArr[i]);
    };

    出力:

    The following tables have a field column called "query":
    cmdb_convert_bulk_services
    cmdb_multisource_query_status
    cmdb_qb_result_base
    cmdb_qb_table_mapping
    discovery_probes_cim_query
    kb_feedback

    スコープ対象 GlideRecord - _query(文字列 field, 文字列 value)

    addQuery()addEncodedQuery() などのクエリメソッドで指定されたフィルターに基づいて、テーブルに対してクエリを実行します。 このメソッドは、query() メソッドの実行中にエラーが発生する可能性がある「query」という名前の列があるテーブルで使用することを目的としています。

    このメソッドは、GlideRecord テーブルおよびそのテーブルの参照に対してクエリを実行します。詳細については、「 スクリプトでのテーブルのクエリ」を参照してください。

    クエリの構築と実行の詳細については、GlideRecord についての記事を参照してください。

    表 : 108. パラメーター
    名前 タイプ 説明
    name 文字列 オプション - 値パラメーターも指定する必要があります。value パラメーターで指定された値を検索するフィールドの名前。
    注:
    通常、このメソッドは引数なしで実行されますが、名前と値のペアを指定して、指定した値を含むレコードをフィルタリングできます。パラメーターが指定されている場合、「name=value」条件がクエリに追加されます。
    value 文字列 オプション - フィールドパラメーターも指定する必要があります。指定された field パラメーターで検索する値。
    表 : 109. 戻り値
    タイプ 説明
    なし

    次の例は、ナレッジフィードバック [kb_feedback] テーブルをクエリし、Excel を含むコメントがある KB 記事をリストする方法を示しています。

    var rec = new GlideRecord('kb_feedback');
    rec.addQuery('comments', 'CONTAINS', 'Excel');
    rec._query();
    while (rec.next()) { 
     gs.info(rec.getDisplayValue('article') + " comment: " + rec.getValue('comments'));
    }

    出力:

    KB0000005 comment: 
    	     Can you please add the version of Excel this applies to? All?
    		
    KB0000005 comment: 
    	     Does this work for all Excel versions? OSX and Windows alike?

    スコープ対象 GlideRecord - setAbortAction(ブーリアン b)

    次のデータベースアクション (挿入、更新、削除) を中止するかどうかを示すフラグを設定します。これはビジネスルールでよく使用されます。

    onBefore ビジネスルールで使用して、データベースアクションが実行されないようにします。ビジネスルールは、setAbortAction() が呼び出された後も実行を続けます。setAbortAction() を呼び出しても、後続のビジネスルールの実行は停止されません。このメソッドを呼び出すと、データベースアクションの実行のみが防止されます。

    表 : 110. パラメーター
    名前 タイプ 説明
    b ブーリアン 次のアクションを中止する場合は true。アクションが許可される場合は false。
    表 : 111. 返される内容
    タイプ 説明
    なし
    // Often used in business rule to check whether the current operation should be aborted.
    if (current.size > 16) {
      current.setAbortAction(true);
    }

    スコープ対象 GlideRecord - setLimit(数値 maxNumRecords)

    GlideRecord クエリによってフェッチされるレコード数の制限を設定します。

    表 : 112. パラメーター
    名前 タイプ 説明
    maxNumRecord 数値 フェッチするレコードの最大数。
    表 : 113. 返される内容
    タイプ 説明
    なし
    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(10);
    now_GR.query(); // this retrieves latest 10 incident records created

    スコープ対象 GlideRecord - setNewGuidValue(文字列 guid)

    現在のレコードの sys_id 値を設定します。

    表 : 114. パラメーター
    名前 タイプ 説明
    guid 文字列 現在のレコードに割り当てる GUID。
    表 : 115. 返される内容
    タイプ 説明
    なし
    var now_GR = new GlideRecord('incident');
    now_GR.setValue('short_description', 'The third floor printer is broken');
    now_GR.setNewGuidValue('eb4636ca6f6d31005be8883e6b3ee333');
    now_GR.insert();
    gs.info(now_GR.getValue('sys_id'));

    スコープ対象 GlideRecord - setValue(文字列 name, オブジェクト value)

    指定された名前のフィールドの値を指定された値に設定します。

    通常、スクリプトは now_GR.category = value を実行します。ただし、要素名が変数の場合は、now_GR.setValue(elementName, value) を使用できます。値を設定するときは、フィールドのデータタイプが入力する値のデータタイプと一致していることを確認してください。

    注:
    フィールド暗号化エンタープライズ プラグインが有効になっていて、インスタンスがキーにアクセスできる場合、このメソッドは暗号化されたデータを暗号化されたフィールドに挿入できます。インスタンスがキーにアクセスできない場合、このメソッドはエラーを返します。詳細については、「 Platform Encryption」を参照してください。
    password2 フィールドを使用した認証用ではありません
    setValue() メソッドは password2 データをクリアテキストとして渡すため、暗号化されたデータを予期する際にエラーが発生します。さらに、password2 フィールドに setValue() メソッドを使用すると、暗号化する必要があるデータが公開されます。

    password2 認証の場合は、代わりに setDisplayValue() メソッドを使用してください。

    表 : 116. パラメーター
    名前 タイプ 説明
    name 文字列 フィールドの名前
    value オブジェクト フィールドに割り当てる値。
    表 : 117. 返される内容
    タイプ 説明
    なし
    var elementName = 'short_description'; 
    var now_GR = new GlideRecord('incident'); 
    now_GR.initialize(); 
    now_GR.setValue(elementName, "My DB is not working");
    now_GR.insert();

    スコープ対象 GlideRecord - setWorkflow(ブーリアン enable)

    ビジネスルール、スクリプトエンジン、および監査の実行を有効または無効にします。

    警告:
    ビジネスルール、スクリプトエンジン、および監査の実行を無効にすると、ServiceNow® インスタンスとその動作に重大な影響を与える可能性があります。本番環境に展開する前に、この変更を十分にテストしてください。
    注:
    このメソッドは、クロススコープ対象のアプリケーションには設定できません。詳細については、次の KB 記事 https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0820691を参照してください。
    表 : 118. パラメーター
    名前 タイプ 説明
    enable ブーリアン ビジネスルール、スクリプトエンジン、および監査の実行を有効または無効にするかどうかを示すフラグ。
    有効な値:
    • true:ビジネスルール、スクリプトエンジン、および監査の実行を有効にします。
    • false:ビジネスルール、スクリプトエンジン、および監査の実行を無効にします。

    デフォルト:true

    表 : 119. 返される内容
    タイプ 説明
    なし
    //Enable business rules, scripts engines for x_app_table
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.setWorkflow(true);

    スコープ対象 GlideRecord - update(文字列 reason)

    行われた変更で GlideRecord を更新します。レコードがまだ存在しない場合は挿入されます。

    表 : 120. パラメーター
    名前 タイプ 説明
    reason 文字列 オプション。更新の理由。理由は監査レコードに表示されます。
    表 : 121. 返される内容
    タイプ 説明
    文字列 新規または更新されたレコードの sys_id。更新に失敗した場合は null を返します。

    次の例は、インシデントの [簡単な説明] フィールドを更新する方法を示しています。

    var now_GR = new GlideRecord('incident');
    now_GR.get('99ebb4156fa831005be8883e6b3ee4b9');
    now_GR.setValue('short_description', 'Update the short description');
    now_GR.update();
    gs.info(now_GR.getElement('short_description'));

    出力:

    Update the short description.

    スコープ対象 GlideRecord - updateMultiple()

    指定された一連の変更を使用して、指定されたクエリの各 GlideRecord を更新します。

    このメソッドは、複数のジャーナルエントリの追加をサポートしていません。

    glide.db.forced.chunk.threshold システムプロパティは、チャンクレコードの削除と更新を強制するしきい値を設定します。チャンクは、巨大なテーブルでプライマリキー以外の削除によってレプリケーションの問題が発生するのを防ぐのに役立ちます。詳細については、「Available system properties」を参照してください。

    注:
    期待される結果を確実に得るには、直接の割り当ての代わりに setValue() メソッドを使用します。つまり、gr_Now.setValue('<field_name>', '4'));gr_Now.<field_name> = 4 の代わりに。
    注:
    大きなテーブルを操作する場合は、このメソッドと chooseWindow() または setLimit() を一緒に使用しないでください。

    このメソッドは新しい値を設定しますが、既存の値はクリアしません。既存の値をクリアするには、setValue() メソッドを使用し、フィールドを nullに設定します。

    表 : 122. パラメーター
    名前 タイプ 説明
    なし
    表 : 123. 返される内容
    タイプ 説明
    なし

    この例では、すべてのアクティブなインシデントのステータスを 4 -「ユーザー情報待ち」に更新する方法を説明します。

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('active', true);
    now_GR.setValue('state',  4);
    now_GR.updateMultiple();

    スコープ付き GlideRecord - updateWithReferences(オブジェクトの理由)

    レコードを更新し、提供された情報で関連レコードの挿入または更新も行います。

    表 : 124. パラメーター
    名前 タイプ 説明
    理由 オブジェクト 更新の理由。理由は監査レコードに表示されます。
    表 : 125. 返される内容
    タイプ 説明
    文字列 更新されるレコードの sys_id。

    問い合わせユーザー ID が sys_user レコード「John Doe」を参照するように設定されているインシデントを処理する場合、次のコードは John Doe のユーザーレコードを更新します。発信者 ID が指定されていないインシデントを処理する場合、次のコードは、指定された情報 (first_name、last_name) を使用して新しい sys_user レコードを作成し、発信者 ID の値を新しく作成された sys_user レコードに設定します。

    var inc = new GlideRecord('incident');
    inc.get(inc_sys_id);  // Looking up an existing incident record where 'inc_sys_id' represents the sys_id of a incident record
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.updateWithReferences();
    }