---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# GlideRecord - グローバル

# GlideRecord - グローバル {#ariaid-title1}

* リリースバージョン: Xanadu
* 
* 更新日 2024年08月01日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：158分

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

この API を使用して動的属性を作成するには、dynamic_schema_writer ロールが必要です。この API を使用して動的データを読み取るには、dynamic_schema_reader ロールが必要です。

動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。

クエリの構築と実行の詳細については、[GlideRecord](https://developer.servicenow.com/dev.do#!/learn/courses/utah/app_store_learnv2_scripting_utah_scripting_in_servicenow/app_store_learnv2_scripting_utah_server_side_scripting/app_store_learnv2_scripting_utah_gliderecord) についての記事を参照してください。

GlideRecord から継承されたクラスであり、GlideRecord と同じ機能を実行し、ACL も適用する GlideRecordSecure の詳細については、「[GlideServer API](https://www.servicenow.com/docs/access?context=p_GlideServerAPIs&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US)」を参照してください。

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

glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、無効なクエリ用語が WHERE 演算子で使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリ ステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。

## レコードから値を取得する {#c_GlideRecordAPI__section_t45_vmd_npb}

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

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

* [getValue()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-getValue_String "指定されたフィールドの文字列値、または動的属性ストア内の属性の文字列値を取得します。")
* [getDisplayValue()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-getDisplayValue "現在のレコードの表示値、または動的属性ストア内の属性の表示値を取得します。")

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

    var mgr = current.caller_id.manager.toString();

## 動的属性 {#c_GlideRecordAPI__section_qss_t53_1cc}

この API には、 [GlideDynamicAttributeStore - グローバル](https://servicenow-prod.fluidtopics.net/G893woRUx7uhXLOAt3SI_w#GlideDynamicAttStoreAPI "GlideDynamicAttributeStore API は、文字列、日付、日付/時刻などの他のデータ型と同様に、新しい組み込みの動的属性ストアデータ型へのアクセスを提供します。") API の動的スキーマメソッドと同じ機能を持つメソッドがあります。この API の動的属性メソッドを使用して、指定された GlideRecord に対してアクションを実行します。複数のレコードに同じグループの動的属性を設定する場合は、 GlideDynamicAttributeStore API のメソッドを使用します。この API を使用すると、必要な属性を持つ GlideDynamicAttributeStore オブジェクトをステージングし、さまざまな setDynamicAttributeValues() メソッドを使用してそのオブジェクトを複数の GlideRecord にコピーできます。
関連項目：

* [GlideAggregate](https://servicenow-prod.fluidtopics.net/OkVjJD8cvhKKn5xMzMagLw#c_GlideAggregateAPI "GlideAggregate API を使用すると、データベース集計クエリーを作成できます。")
* [GlideElement](https://servicenow-prod.fluidtopics.net/KTuTJQIwiU7zmj2waBXwgQ#c_GlideElementAPI "GlideElement API には、フィールドとその値を処理するための便利なスクリプトメソッドが多数用意されています。GlideElement メソッドは、現在の Glide レコードのフィールドで使用できます。")
* [GlideQuery](https://servicenow-prod.fluidtopics.net/RcspbEr5LZgw4kDXNxORuQ#GlideQueryGlobalAPI "GlideQuery スクリプトインクルードは、サーバーサイドスクリプトからレコードデータに対して CRUD 操作を実行するための GlideRecord API の代替です。")
{#c_GlideRecordAPI__ul_mky_nkd_npb}

## GlideRecord - GlideRecord(文字列 tableName) {#ariaid-title2}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| tableName | 文字列 | 使用するテーブル。 |
[表 : 1. パラメーター]

{#r_GlideRecord-GlideRecord_S__table_v1n_btj_3v}  

    var now_GR = new GlideRecord('incident');

## GlideRecord - addActiveQuery() {#ariaid-title3}

アクティブなレコードを返すフィルターを追加します。
{#r_GlideRecord-AddActiveQuery__table_bk4_zkp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 2. パラメーター]

{#r_GlideRecord-AddActiveQuery__table_bk4_zkp_dt} {#r_GlideRecord-AddActiveQuery__table_ck4_zkp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | アクティブなレコードを返すフィルター。 |
[表 : 3. 返される内容]

{#r_GlideRecord-AddActiveQuery__table_ck4_zkp_dt}  

    var inc = new GlideRecord('incident');
    inc.addActiveQuery();
    inc.query();

### スコープ対応 {#r_GlideRecord-AddActiveQuery__section_t1r_lbs_mcb}

スコープ対象のアプリケーションで addActiveQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addActiveQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#SGR-addActiveQuery "アクティブなレコードを返すフィルターを追加します。") を使用します。

## GlideRecord - addDomainQuery(オブジェクト glideRecord) {#ariaid-title4}

クエリに使用されるドメインをユーザーのドメインから指定された 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](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。

この機能には、Domain Support - Domain Extensions Installer (com.glide.domain.msp_extensions.installer) プラグインが必要です。
{#r_GlideRecord-AddDomainQuery_Object__table_ukh_fmp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| glideRecord | オブジェクト | ドメインを取得する GlideRecord |
[表 : 4. パラメーター]

{#r_GlideRecord-AddDomainQuery_Object__table_ukh_fmp_dt} {#r_GlideRecord-AddDomainQuery_Object__table_vkh_fmp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 5. 返される内容]

{#r_GlideRecord-AddDomainQuery_Object__table_vkh_fmp_dt}  

    //This example requires the Domain plugin be active, the Group table is the specified 
    //Domain table, and the ITIL user is in the Database Atlanta domain
    //From any domain (using queryNoDomain()) look up the incidents that an ITIL user can only see 
    //who is in the Database Atlanta domain, should expect all incidents with the global or the
    //Database Atlanta domain specified.
    var domain = new GlideRecord('sys_user');
    domain.addQuery('user_name', 'itil');
    domain.queryNoDomain();
    if (domain.next()) {
        var domainQuery = new GlideRecord('incident');
        domainQuery.addQuery('active', true);
        domainQuery.addDomainQuery(domain);
        domainQuery.query();
        gs.print('Number of Incidents for ITIL user: ' + domainQuery.getRowCount());
        while (domainQuery.next())
            gs.print(domainQuery.number);
    }

### スコープ対応 {#r_GlideRecord-AddDomainQuery_Object__section_bct_nbs_mcb}

このメソッドはスコープ対象のアプリケーションでは使用できません。

## GlideRecord - addEncodedQuery(文字列クエリ, ブール値 enforceFieldACL) {#ariaid-title5}

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

glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、無効なクエリ用語が WHERE 演算子で使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリ ステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-AddEncodedQuery_String__table_j3p_mlp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| クエリ | 文字列 | [エンコードされたクエリ文字列](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US)。 |
| enforceFieldACL | ブーリアン | オプション。フィールドの ACL (アクセス制御リスト) ルールを強制するかどうかを示すフラグ。 有効な値： * true:フィールド ACL を適用します。 * false:フィールド ACL を適用しません。 {#r_GlideRecord-AddEncodedQuery_String__ul_ml3_mpk_wbc} デフォルト値：false |
[表 : 6. パラメーター]

{#r_GlideRecord-AddEncodedQuery_String__table_j3p_mlp_dt} {#r_GlideRecord-AddEncodedQuery_String__table_k3p_mlp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 7. 返される内容]

{#r_GlideRecord-AddEncodedQuery_String__table_k3p_mlp_dt}  

    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.number);
     }

### スコープ対応 {#r_GlideRecord-AddEncodedQuery_String__section_un1_qbs_mcb}

スコープ対象のアプリケーションで addEncodedQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addEncodedQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddEncodedQuery_String "設定されている可能性のある他のクエリにエンコードされたクエリを追加します。") を使用します。

## GlideRecord - addExtraField(文字列、dotWalkedField) {#ariaid-title6}

単一の要求内のフォームまたはスクリプトから 1 つ以上のドット連結フィールドをクエリーします。
addExtraField() メソッドを使用すると、フォームまたはスクリプト内のドット連結要素ごとに複数のクエリーを実行するのではなく (データベースへの複数回のラウンドトリップが必要)、1 つのデータベース要求でドット連結フィールドのクエリを実行できます。
{#GlideRecord-addExtraField_S__table_ctk_qcx_hzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| ドットウォークフィールド | 文字列 | ドット連結フィールド名。フィールド名のレベルはドット (ピリオド) で区切られます。たとえば、クエリを実行する場合は、値 `Caller.Company` を入力します。 会社問い合わせユーザー Incident \[incident\] テーブルの条件。 dotWalkedField形式は、ドット連結フォームまたはスクリプトのフィールドの左から右の順序に従います。 |
[表 : 8. パラメーター]

{#GlideRecord-addExtraField_S__table_ctk_qcx_hzb} {#GlideRecord-addExtraField_S__table_dtk_qcx_hzb__entry__2}

| タイプ | 説明 |
|-|-|
| なし | 注: addExtraField() メソッドは出力結果に影響を与えません。スクリプトでこのメソッドを使用するかどうかに関係なく、出力は常に同じです。 |
[表 : 9. 返される内容]

{#GlideRecord-addExtraField_S__table_dtk_qcx_hzb}  
次の例は、cmn_location の連絡先名フィールド (cmdb_ci フィールドの "location" 参照フィールドから参照される) を照会する方法を示しています。  
注:  
この例の dotWalkedField 値 cmdb_ci.location.contact.name) は、リスト内のフィールドを選択すると、 ServiceNow® UI で「cmdb_ci fields" =\> "cmn_location fields" =\> "sys_user fields" のようになります。

    var gliderecord = new GlideRecord("incident");
    gliderecord.addQuery("number", "INC0041457");
    gliderecord.addExtraField("cmdb_ci.location.contact.name");
    gliderecord.query();
    gliderecord.next();
    gs.print(gliderecord.cmdb_ci.location.contact.name);

出力は、addExtraField() を使用しない場合の `gs.print(gr.cmdb_ci.location.contact.name)` と同じになります。addExtraField() メソッドは、ドット連結フィールドのクエリを最適化します。出力例:

    Abel Tuter

## GlideRecord - addFunction(オブジェクト function) {#ariaid-title7}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| function | オブジェクト | SQL 操作を定義する GlideDBFunctionBuilder または GlideDBCaseStatementBuilder オブジェクト。 |
[表 : 10. パラメーター]

{#r_GlideRecord-addFunction_Object__table_mkh_dnk_kbb} {#r_GlideRecord-addFunction_Object__table_nkh_dnk_kbb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 11. 返される内容]

{#r_GlideRecord-addFunction_Object__table_nkh_dnk_kbb}  

    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();

    var now_GR = new GlideRecord('incident');
    now_GR.addFunction(myAddingFunction);
    now_GR.addQuery(myAddingFunction, '<', 5);
    now_GR.query();
    while(now_GR.next())
    gs.log(now_GR.getValue(myAddingFunction));

出力:

    *** Script: 1
    *** Script: 4
    *** Script: 3
    *** Script: 1
    *** Script: 1
    *** Script: 2
    *** Script: 1
    *** Script: 1

## GlideRecord - addInactiveQuery() {#ariaid-title8}

非アクティブなレコードを返すフィルターを追加します。非アクティブなレコードのアクティブフラグは false に設定されています。
{#r_GlideRecord-AddInactiveQuery__table_jhb_fnp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 12. パラメーター]

{#r_GlideRecord-AddInactiveQuery__table_jhb_fnp_dt} {#r_GlideRecord-AddInactiveQuery__table_khb_fnp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | アクティブフラグが false のレコード。 |
[表 : 13. 返される内容]

{#r_GlideRecord-AddInactiveQuery__table_khb_fnp_dt}  

    var inc = new GlideRecord('incident');
    inc.addInactiveQuery();
    inc.query();

### スコープ対応 {#r_GlideRecord-AddInactiveQuery__section_rx1_sbs_mcb}

スコープ対象のアプリケーションでは、スコープ対象のメソッド [addQuery("active","false")](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddQuery_String_Object "検索クエリを構築し、要求に一致する行を返します。") を使用します。

## GlideRecord - addJoinQuery(文字列 table) {#ariaid-title9}

関連テーブル内の関係に基づいてレコードを返すフィルターを追加します。
たとえば、データベースグループ内のすべてのユーザー (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](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-AddJoinQuery_String__table_lvg_wnp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| table | 文字列 | テーブル名 |
[表 : 14. パラメーター]

{#r_GlideRecord-AddJoinQuery_String__table_lvg_wnp_dt} {#r_GlideRecord-AddJoinQuery_String__table_mvg_wnp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | 関係が一致するレコード。 |
[表 : 15. 返される内容]

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

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

関連付けられたインシデントで active=false の問題を検出します。

    // Look for Problem records
    var now_GR = new GlideRecord('problem');
     
    // That have associated Incident records
    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 print results
    while (now_GR.next()) {
        gs.print(now_GR.getValue('number'));
    }

### スコープ対応 {#r_GlideRecord-AddJoinQuery_String__section_l1h_vbs_mcb}

スコープ対象のアプリケーションで addJoinQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addJoinQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddJoinQuery_String_Object_Object "現在 GlideRecord に関連するテーブル内の関係に基づいてレコードを返すフィルターを追加します。") を使用します。

## GlideRecord - addJoinQuery(文字列 table, 文字列 primaryField) {#ariaid-title10}

関連テーブル内の関係に基づいてレコードを返すフィルターを追加します。
たとえば、データベースグループ内のすべてのユーザー (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](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-AddJoinQuery_String_String__table_es5_y4p_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| table | 文字列 | テーブル名 |
| primaryField | 文字列 | sys_id 以外の場合はプライマリフィールドです。 |
[表 : 16. パラメーター]

{#r_GlideRecord-AddJoinQuery_String_String__table_es5_y4p_dt} {#r_GlideRecord-AddJoinQuery_String_String__table_fs5_y4p_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | 関係が一致するレコード。 |
[表 : 17. 返される内容]

{#r_GlideRecord-AddJoinQuery_String_String__table_fs5_y4p_dt}  
sys_id の代わりに結合キーで open_by フィールドを使用して、インシデントを含む問題を検索します。

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

### スコープ対応

スコープ対象のアプリケーションで addJoinQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addJoinQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddJoinQuery_String_Object_Object "現在 GlideRecord に関連するテーブル内の関係に基づいてレコードを返すフィルターを追加します。") を使用します。

## GlideRecord - addJoinQuery(文字列 table, 文字列 primaryField, 文字列 joinTableField) {#ariaid-title11}

関連テーブル内の関係に基づいてレコードを返すフィルターを追加します。
たとえば、データベースグループ内のすべてのユーザー (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](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-AddJoinQuery_String_String_String__table_x3f_rpp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| table | 文字列 | テーブル名 |
| primaryField | 文字列 | sys_id 以外の場合はプライマリフィールドです。 |
| joinTableField | 文字列 | sys_id 以外の場合、テーブルを結合するフィールド |
[表 : 18. パラメーター]

{#r_GlideRecord-AddJoinQuery_String_String_String__table_x3f_rpp_dt} {#r_GlideRecord-AddJoinQuery_String_String_String__table_y3f_rpp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | 関係が一致するレコード。 |
[表 : 19. 返される内容]

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

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

### スコープ対応 {#r_GlideRecord-AddJoinQuery_String_String_String__section_tjh_zbs_mcb}

スコープ対象のアプリケーションで addJoinQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addJoinQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddJoinQuery_String_Object_Object "現在 GlideRecord に関連するテーブル内の関係に基づいてレコードを返すフィルターを追加します。") を使用します。

## GlideRecord - addNotNullQuery(文字列 fieldName) {#ariaid-title12}

指定されたフィールドが null でないレコードを返すフィルターを追加します。
{#r_GlideRecord-AddNotNullQuery_String__table_qkf_3tp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | フィールド名 |
[表 : 20. パラメーター]

{#r_GlideRecord-AddNotNullQuery_String__table_qkf_3tp_dt} {#r_GlideRecord-AddNotNullQuery_String__table_rkf_3tp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | パラメーターフィールドが null ではないレコードの GlideQueryCondition。 |
[表 : 21. 返される内容]

{#r_GlideRecord-AddNotNullQuery_String__table_rkf_3tp_dt}  

    var target = new GlideRecord('incident'); 
      target.addNotNullQuery('short_description');
      target.query();   // Issue the query to the database to get all records
      while (target.next()) {   
         // add code here to process the incident record
      }

### スコープ対応 {#r_GlideRecord-AddNotNullQuery_String__section_kh3_bcs_mcb}

スコープ対象のアプリケーションで addNotNullQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addNotNullQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddNotNullQuery_String "パラメーターで渡されたフィールドの値が null でないレコードを指定するフィルター。") を使用します。

## GlideRecord - addNullQuery(文字列 fieldName) {#ariaid-title13}

指定されたフィールドが null であるレコードを返すフィルターを追加します。
{#r_GlideRecord-AddNullQuery_String__table_jm5_vtp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | フィールド名 |
[表 : 22. パラメーター]

{#r_GlideRecord-AddNullQuery_String__table_jm5_vtp_dt} {#r_GlideRecord-AddNullQuery_String__table_km5_vtp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | 指定されたフィールドが null であるレコードの GlideQueryCondition。 |
[表 : 23. 返される内容]

{#r_GlideRecord-AddNullQuery_String__table_km5_vtp_dt}  

    var target = new GlideRecord('incident'); 
      target.addNullQuery('short_description');
      target.query();   // Issue the query to the database to get all records
      while (target.next()) {   
         // add code here to process the incident record
      }

### スコープ対応 {#r_GlideRecord-AddNullQuery_String__section_n33_dcs_mcb}

スコープ対象のアプリケーションで addNullQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addNullQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddNullQuery_String "指定されたフィールドの値が null であるレコードを返すフィルターを追加します。") を使用します。

## GlideRecord - addQuery(文字列 name, オブジェクト operator, オブジェクト value) {#ariaid-title14}

要求を作成する機能を提供します。要求は実行されると、要求に一致する指定されたテーブルから行を返します。
SQLに精通している場合、この方法は「where」句に似ています。1 つのクエリーで 1 つ以上の addQuery() 呼び出しを行うことができます。このメソッドでは、クエリは AND で結合されます。クエリーステートメントのいずれかを論理和する必要がある場合は、 [GlideQueryCondition](https://servicenow-prod.fluidtopics.net/7xcSFrqK7Zi2I17oNUDSZQ#c_GlideQueryConditionAPI "GlideQueryCondition API には、現在の条件に追加できる追加の AND 条件または OR 条件が用意されており、複雑なクエリーを作成することができます。") クラスを使用します。

addQuery() は通常、3 つのパラメーター (テーブルフィールド、演算子、および比較値) を指定して呼び出されます。`myObj.addQuery('category','Hardware');` など、テーブルフィールドと比較値の 2 つのパラメーターのみを使用して呼び出すことができます。この場合の演算子は「次の値に等しい」とみなされます。

クエリの使用の詳細については、「 [スクリプトでのテーブルのクエリ](https://www.servicenow.com/docs/access?context=c_UsingGlideRecordToQueryTables&version=xanadu&pubname=xanadu-application-development&ft:locale=en-US)」を参照してください。

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

glide.invalid_query.returns_no_rows システムのプロパティを true に設定すると、無効なエンコードクエリを含むクエリはレコードを返さなくなります。場合によっては、 glide.invalid_query.returns_no_rows が true に設定されていても、クエリが API 結果のレコードを返すことがあります。これは、無効なクエリ用語が WHERE 演算子で使用されているクエリで発生します。このようなクエリでは、WHERE 演算子は無効な用語を無視しますが、クエリ ステートメントの残りの部分を解釈して返します。このシステムプロパティとその機能の詳細については、「 [Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-AddQuery_String_Object_Object__table_ix2_hvp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 動的属性ストア要素内の属性へのテーブルフィールド名またはパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。 |
| オペレーター | オブジェクト | クエリ演算子。使用可能な値は、<var class="keyword varname">value</var> パラメーターのデータタイプによって異なります。 数値： * = * != * \> * \>= * \< * \<= {#r_GlideRecord-AddQuery_String_Object_Object__ul_qyb_rbt_3y} 文字列 (大文字である必要があります)： * = * != * IN * NOT IN * STARTSWITH * ENDSWITH * CONTAINS * DOES NOT CONTAIN * INSTANCEOF {#r_GlideRecord-AddQuery_String_Object_Object__ul_egz_vbt_3y} 注: LIKE 演算子の代わりに CONTAINS を使用します。 動的スキーマ演算子: * = * != * \< * \> * \<= * \>= * 次の間 * 次の値を含む * DOES_NOT_CONTAIN * ENDSWITH * GT_FIELD * GT_OR_EQUALS_FIELD * IN * ISEMPTY * ISNOTEMPTY * IS_NOT_NULL * IS_NULL * LIKE * LT_FIELD * LT_OR_EQUALS_FIELD * 一致 * NOT_IN * NOT_LIKE * NOT_MATCHES * NSAMEAS * SAMEAS * STARTSWITH |
| 値 | オブジェクト | クエリ対象の値 (大文字と小文字は区別されません)。 |
[表 : 24. パラメーター]

{#r_GlideRecord-AddQuery_String_Object_Object__table_ix2_hvp_dt} {#r_GlideRecord-AddQuery_String_Object_Object__table_jx2_hvp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideQueryCondition | GlideRecord に追加された GlideQueryCondition への参照。 |
[表 : 25. 返される内容]

{#r_GlideRecord-AddQuery_String_Object_Object__table_jx2_hvp_dt}  
次の例は、このメソッドを呼び出す方法を示しています。

    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.active = false;
     gs.print('Active incident ' + rec.number + ' closed');
     rec.update();
    }

次の例は、 `IN` 演算子の使用方法を示しています。

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

次の例は、動的属性ストアで属性を使用するためにこのメソッドを呼び出す方法を示しています。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.addQuery('inc_dynamic_schema->cars->avg_mpg', 'GT_FIELD', 'inc_dynamic_schema2->cars->avg_mpg'); 
    gr_Inc.query();
    while(gr_Inc.next()) {
        gs.info(gr_Inc.number + " Gas Mileage 1: " + gr_Inc.getDynamicAttributeValue('inc_dynamic_schema->cars->avg_mpg') +  " GT_FIELD Gas Mileage 2 :" + gr_Inc.getDynamicAttributeValue('inc_dynamic_schema2->cars->avg_mpg'));
    }

### スコープ対応 {#r_GlideRecord-AddQuery_String_Object_Object__section_swp_3cs_mcb}

スコープ対象のアプリケーションで addQuery() メソッドを使用するには、対応するスコープ対象のメソッド [addQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordAddQuery_String_String_Object "要求を作成する機能を提供します。要求は実行されると、要求に一致する指定されたテーブルから行を返します。") を使用します。

## GlideRecord - addValue(文字列 field, 数値 value) {#ariaid-title15}

現在の GlideRecord オブジェクトのデータベースレベルで、指定された数値フィールドに対するアトミックな加算および減算操作を指定します。
通常、GlideRecord オブジェクトはデータベース内の 1 つのレコードとして書き込まれます。個々のフィールド値は定義されたとおりに格納されます。GlideRecord フィールドに値を追加するコードの場合、フィールドをアトミックにインクリメントするのではなく、単に新しい値でフィールドをデータベースに保存します。  
たとえば、次のコードを実行すると、データベースの \[u_count\] フィールドの値は 2 になります。

    gs.print(now_now_GR.u_count); // "1" 
    now_GR.u_count += 1; 
    now_GR.update(); 
    now_GR.get(now_now_GR.sys_id); 
    gs.print(now_now_GR.u_count); // "2"   

別のユーザーが同じコードを同時に実行すると、2 つの操作でそれぞれ u_count に 1 が加算されるのではなく、正味の効果として u_count に 2 しか含まれず、1 つの操作の更新が実際に失われます。  
逆に、addValue() メソッドは、レコードが更新されたときにアトミックな操作としてデータベースで加算/減算を実行します。同時に実行されている 2 つの操作でそれぞれフィールドが適切に更新されます。

    gs.print(now_now_GR.u_count); // "1" 
    now_GR.addValue("u_count", 1); 
    now_GR.update(); 
    now_GR.get(now_GR); // The record must be reloaded from the database to observe the result
    gs.print(now_now_GR.u_count); // "3", if executed concurrently with another user 

注:  
明示的に行わない限り、新しい値はデータベースから読み取られません。

setValue() と同様に、addValue() の変更は update() または insert() への後続の呼び出し後にのみデータベースで有効になります。insert() が呼び出されると、指定されたフィールドは addValue() に渡される value パラメーターで初期化されます。  
注:  
addValue() を呼び出す前に指定したフィールドに対して setValue() を呼び出すと、addValue() メソッドは処理されず、エラーメッセージがログに記録されます。
{#GlideRecord-addValue_S_N__table_h43_tjt_hlb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フィールド | 文字列 | この GlideRecord で変更するフィールドの名前。 関連するフィールドが数値タイプでない場合、操作は無視されます。 |
| value | 数値 | レコードが保存されたときに値に加算される数。減算操作を実行するには、単に負の値を渡します。 |
[表 : 26. パラメーター]

{#GlideRecord-addValue_S_N__table_h43_tjt_hlb} {#GlideRecord-addValue_S_N__table_i43_tjt_hlb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 27. 返される内容]

{#GlideRecord-addValue_S_N__table_i43_tjt_hlb}  
加算される値を表示します。

    gs.print(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.print(now_GR.u_count);

出力：2  
減算される値を表示します。

    gs.print(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.print(now_GR.u_count);

出力：3

## GlideRecord - applyEncodedQuery(文字列 queryString) {#ariaid-title16}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| queryString | 文字列 | 現在の GlideRecord に適用するエンコードクエリ。 |
[表 : 28. パラメーター]

{#GlideRecord-applyEncodedQuery_S__table_p5j_nfg_rmb} {#GlideRecord-applyEncodedQuery_S__table_q5j_nfg_rmb__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 29. 返される内容]

{#GlideRecord-applyEncodedQuery_S__table_q5j_nfg_rmb}  
<br />

    function createAcl(table, role) {
      gs.print("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.sys_id.toString(), role);
        return;
      } else {
      now_GR.initialize();
      now_GR.applyEncodedQuery(encQuery);
      var acl = now_GR.insert();
        gs.print("Added read access control on " + table);
        createAclRole(acl, role);
      } 
    }

## GlideRecord - applyTemplate(文字列 template) {#ariaid-title17}

テンプレートテーブル \[sys_template\] から現在のレコードにテンプレートレコードを適用します。指定されたテンプレートが見つからない場合、アクションは実行されません。
注:  
テンプレートの \[次の関連子テンプレート\] フィールドが入力されている場合、このメソッドは自動的に now_GR.insert() メソッドをインスタンス化します。詳細については、「 [関連するタスクレコードのテンプレートを作成する](https://www.servicenow.com/docs/access?context=create-templates-for-related-task-records&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-applyTemplate_String__table_r2n_mlw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| template | 文字列 | テンプレート \[sys_template\] テーブルのテンプレートの名前。 |
[表 : 30. パラメーター]

{#r_GlideRecord-applyTemplate_String__table_r2n_mlw_dt} {#r_GlideRecord-applyTemplate_String__table_s2n_mlw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 31. 返される内容]

{#r_GlideRecord-applyTemplate_String__table_s2n_mlw_dt}  

    var rec1 = new GlideRecord("incident");
    rec1.initialize();
    rec1.applyTemplate("my_incident_template");
    rec1.insert();

## GlideRecord - autoSysFields(ブーリアン e) {#ariaid-title18}

sys_updated_by、sys_updated_on、sys_mod_count、sys_created_by、および sys_created_on のフィールドへの更新を有効または無効にします。これは、履歴情報を変更せずにレコードのフィールド値を手動で更新するためによく使用されます。
警告:  
このメソッドは注意して使用してください。このメソッドを使用すると \[sys_mod_count\] フィールドはインクリメントされず、他の sys_ フィールドは更新されません。これにより、アクティビティフォーマッター、履歴セット、通知、および測定基準などの機能が中断する可能性があります。
{#r_GlideRecord-autoSysFields_Boolean__table_t32_tfw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| e | ブーリアン | false の場合、sys_updated_by、sys_updated_on、sys_mod_count、sys_created_by、および sys_created_on への更新を無効にします。 |
[表 : 32. パラメーター]

{#r_GlideRecord-autoSysFields_Boolean__table_t32_tfw_dt} {#r_GlideRecord-autoSysFields_Boolean__table_u32_tfw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 33. 返される内容]

{#r_GlideRecord-autoSysFields_Boolean__table_u32_tfw_dt}  

    var inc = new GlideRecord('incident');
     
    // Change all Open(1) incidents to Active(2)
     
    inc.addQuery('state', 1);
    inc.query();
     
    while (inc.next()) {
      inc.autoSysFields(false);  // Do not update sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by, and sys_created_on
      inc.setWorkflow(false);    // Do not run any other business rules
      inc.setValue('state', 2);
      inc.update();
    }

## GlideRecord - canCreate() {#ariaid-title19}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 34. パラメーター]

{#r_GlideRecord-CanCreate__table_qyz_pwp_dt} {#r_GlideRecord-CanCreate__table_ryz_pwp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | ユーザーのロールでこのテーブルのレコードの作成が可能かどうかを示すフラグ。 可能な値： * true：作成は許可されている * false：作成は許可されていない {#r_GlideRecord-CanCreate__ul_vtm_pf2_t3b} |
[表 : 35. 返される内容]

{#r_GlideRecord-CanCreate__table_ryz_pwp_dt}  
この例は、benefit_plan テーブルでレコードを作成できるかどうかを示しています。

    canCreateBenefitPlan : function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canCreate();
    }

### スコープ対応

スコープ対象のアプリケーションで canCreate() メソッドを使用するには、対応するスコープ対象のメソッド [canCreate()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordCanCreate "アクセス制御ルール (ユーザーのロールを含む) がこのテーブルへの新しいレコードの挿入を許可するかどうかを判断します。") を使用します。

## GlideRecord - canDelete() {#ariaid-title20}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 36. パラメーター]

{#r_GlideRecord-CanDelete__table_kmz_zwp_dt} {#r_GlideRecord-CanDelete__table_lmz_zwp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | ユーザーのロールでこのテーブルのレコードの削除が可能かどうかを示すフラグ。 有効な値： * true：削除は許可されている * false：削除は許可されていない {#r_GlideRecord-CanDelete__ul_vtm_pf2_t3b} |
[表 : 37. 返される内容]

{#r_GlideRecord-CanDelete__table_lmz_zwp_dt}  

    var att = new GlideRecord('sys_attachment');
    att.get('$[sys_attachment.sys_id]');
    var sm = GlideSecurityManager.get();
    var checkMe = 'record/sys_attachment/delete';
    var canDelete = sm.hasRightsTo(checkMe, att);
    gs.log('canDelete: ' + canDelete);

### スコープ対応 {#r_GlideRecord-CanDelete__section_itl_mcs_mcb}

スコープ対象のアプリケーションで canDelete() メソッドを使用するには、対応するスコープ対象のメソッド [canDelete()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordCanDelete "アクセス制御ルール (ユーザーのロールを含む) がこのテーブルでのレコードの削除を許可するかどうかを判断します。") を使用します。

## GlideRecord - canRead() {#ariaid-title21}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 38. パラメーター]

{#r_GlideRecord-CanRead__table_c3g_4xp_dt} {#r_GlideRecord-CanRead__table_d3g_4xp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | ユーザーのロールがこのテーブルのレコードの読み取りを許可するかどうかを示すフラグ。 有効な値： * true：読み取りは許可されている * false：読み取りは許可されていない {#r_GlideRecord-CanRead__ul_vtm_pf2_t3b} |
[表 : 39. 返される内容]

{#r_GlideRecord-CanRead__table_d3g_4xp_dt}  
この例は、benefit_plan テーブルからレコードを読み取れるかどうかを示しています。

    canReadBenefitPlan: function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canRead();
    }

### スコープ対応

スコープ対象のアプリケーションで canRead() メソッドを使用するには、対応するスコープ対象のメソッド [canRead()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordCanRead "アクセス制御ルール (ACL) がこのテーブルでのレコードの読み取りを許可するかどうかを判断します。このメソッドでは、ユーザーロール、スクリプト化された ACL、スクリプト化された条件を持つ ACL など、すべての ACL タイプが評価されます。") を使用します。

## GlideRecord - canWrite() {#ariaid-title22}

アクセス制御ルール (ユーザーのロールを含む) がこのテーブルでレコードへの更新を許可するかどうかを判断します。
{#r_GlideRecord-CanWrite__table_srp_xxp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 40. パラメーター]

{#r_GlideRecord-CanWrite__table_srp_xxp_dt} {#r_GlideRecord-CanWrite__table_trp_xxp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | ユーザーのロールでこのテーブルのレコードの書き込みが可能かどうかを示すフラグ。 有効な値： * true：書き込みは許可されている * false：書き込みは許可されていない {#r_GlideRecord-CanWrite__ul_vtm_pf2_t3b} |
[表 : 41. 返される内容]

{#r_GlideRecord-CanWrite__table_trp_xxp_dt}  
この例は、benefit_plan テーブルにレコードを書き込めるかどうかを示しています。

    canWriteBenefitPlan : function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canWrite();
    }

### スコープ対応

スコープ対象のアプリケーションで canWrite() メソッドを使用するには、対応するスコープ対象のメソッド [canWrite()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordCanWrite "アクセス制御ルール (ユーザーのロールを含む) がこのテーブルでのレコードの編集を許可するかどうかを決定します。") を使用します。

## GlideRecord - changes() {#ariaid-title23}

レコード内のいずれかのフィールドが変更されたかどうかを判断します。
{#r_GlideRecord-Changes__table_ofg_gyp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 42. パラメーター]

{#r_GlideRecord-Changes__table_ofg_gyp_dt} {#r_GlideRecord-Changes__table_pfg_gyp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 指定されたレコードに変更があるかどうかを示すフラグ。 可能な値： * true：指定されたレコードのフィールドが変更されました。 * false：フィールドは変更されていません。 {#r_GlideRecord-Changes__ul_cqj_2fx_z4b} |
[表 : 43. 返される内容]

{#r_GlideRecord-Changes__table_pfg_gyp_dt}  
この例は、インシデントレコードに変更があるかどうかを確認する方法を示しています。

    var now_GR = new GlideRecord("incident");
    now_GR.query();
    now_GR.next();
    if (now_GR.changes()) {
      gs.print("The incident record reported changes right after being read");
    } else {
      gs.print("The incident record has not changed");
    }

### スコープ対応

この機能をスコープ対象のアプリケーションに実装するには、次のようなコードを追加します。

    var now_GR = new GlideRecord("incident");
       now_GR.get("965c9e5347c12200e0ef563dbb9a7156");
       now_GR.short_description = "test";
       var elements = now_GR.getElements();
       var hasChanged = false;
       for(var i=0; i < elements.length;i++){
         var element = elements[i];
         hasChanged = hasChanged || element.changes();
         gs.info(element.getName() + ":" + element.changes());
       }
       gs.info(hasChanged);

## GlideRecord - deleteMultiple() {#ariaid-title24}

クエリを満たすすべてのレコードを削除します。
このメソッドでは添付ファイルは削除されません。

このメソッドではドット連結はサポートされていません。参照先テーブルで deleteMultiple() 関数を使用すると、テーブル内のすべてのレコードが削除されます。また、deleteRecord() を使用してカスケード削除を行うと、同じ GlideRecord オブジェクトに対する以前の setWorkflow() の呼び出しは無視されます。

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

glide.db.forced.chunk.threshold システムプロパティは、チャンクレコードの削除と更新を強制するしきい値を設定します。チャンクは、巨大なテーブルでプライマリキー以外の削除によってレプリケーションの問題が発生するのを防ぐのに役立ちます。詳細については、「[Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-deleteMultiple__table_ck5_g1x_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 44. パラメーター]

{#r_GlideRecord-deleteMultiple__table_ck5_g1x_dt} {#r_GlideRecord-deleteMultiple__table_dk5_g1x_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 45. 返される内容]

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

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

### スコープ対応 {#r_GlideRecord-deleteMultiple__section_gy3_zcs_mcb}

スコープ対象のアプリケーションで deleteMultiple() メソッドを使用するには、対応するスコープ対象のメソッド [deleteMultiple()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordDeleteMultiple "クエリを満たすすべてのレコードを削除します。") を使用します。

## GlideRecord - deleteRecord() {#ariaid-title25}

1 つのレコードを削除します。
注:  
deleteMultiple() を使用してカスケード削除を行うと、同じ GlideRecord オブジェクトに対する以前の setWorkflow() の呼び出しは無視されます。
{#r_GlideRecord-deleteRecord__table_xqy_s1x_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 46. パラメーター]

{#r_GlideRecord-deleteRecord__table_xqy_s1x_dt} {#r_GlideRecord-deleteRecord__table_yqy_s1x_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | レコードが正常に削除されたかどうかを示すフラグ。 可能な値： * true：レコードが削除されました。 * false：削除するレコードが見つかりませんでした。 {#r_GlideRecord-deleteRecord__ul_hkn_5bj_s3b} |
[表 : 47. 返される内容]

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

    var rec = new GlideRecord('incident');
    rec.addQuery('active',false);
    rec.query();
    while (rec.next()) { 
     gs.info('Inactive incident ' + rec.number + ' deleted');
     rec.deleteRecord();
    }

出力:

    Inactive incident INC0010010 deleted
    Inactive incident INC0010011 deleted

この例では、レコードが挿入された直後にインシデントテーブルからレコードを削除する方法を示します。インシデント 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

### スコープ対応 {#r_GlideRecord-deleteRecord__section_h4z_1ds_mcb}

スコープ対象のアプリケーションで deleteRecord() メソッドを使用するには、対応するスコープ対象のメソッド [deleteRecord()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordDeleteRecord "現在のレコードを削除します。") を使用します。

## GlideRecord - find(文字列 columnName, 文字列 value) {#ariaid-title26}

いずれかのレコードに一致する値が指定された列にある場合は true を返します。見つかった場合は、一致する最初のレコードにも移動し、基本的にはレコードが返されるまで next() を実行します。
{#r_GlideRecord-Find_String_String__table_k1m_qyp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| columnName | 文字列 | 検索するフィールド名。 |
| value | 文字列 | 指定されたフィールドで確認する値。 |
[表 : 48. パラメーター]

{#r_GlideRecord-Find_String_String__table_k1m_qyp_dt} {#r_GlideRecord-Find_String_String__table_l1m_qyp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 現在のテーブル内のいずれかのレコードに一致する値が指定されたフィールドにあるかどうかを示すフラグ。 可能な値： * true：一致するフィールドがあります。 * false：一致するフィールドがありません。 |
[表 : 49. 返される内容]

{#r_GlideRecord-Find_String_String__table_l1m_qyp_dt}  
この例は、\[簡単な説明\] フィールドに「重大」を含むレコードをインシデントテーブルで検索する方法を示しています。

    var now_GR = new GlideRecord("incident");
    now_GR.query();
    var shortDescription = "Critical";
    if (now_GR.find("short_description", shortDescription)) {
      gs.print("An incident with the specified field value was found");
      var recordID = now_GR.getValue("sys_id");
      gs.print("Found in the following record: " + recordID);
    } else {
      gs.print("An incident with the specified field value was not found");
    }

出力

    An incident with the specified field value was found
    Found in the following record: 552c48888c033300964f4932b03eb092

## GlideRecord - get(オブジェクト name, オブジェクト value) {#ariaid-title27}

現在の GlideRecord オブジェクトに指定されたレコードを返します。
このメソッドは、1 つまたは 2 つのパラメーターを受け入れます。パラメーターが 1 つだけ渡される場合、メソッドは目的のレコードの sys_id であると見なします。見つからない場合は、値を表示値と照合しようとします。2 つのパラメーターが渡される場合、最初のパラメーターは検索する GlideRecord 内の列の名前です。2 つ目は検索する値です。

複数のレコードが見つかった場合は、next() を使用して追加のレコードにアクセスします。
{#r_GlideRecord-get_Object_Object__table_bwp_pcr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | オブジェクト | オプション。指定された value パラメーターを検索するためにインスタンス化された GlideRecord 列の名前。パラメーターが 1 つだけ渡される場合、メソッドはこのパラメーターが sys_id であると見なします。 |
| value | オブジェクト | 照合する値。 |
[表 : 50. パラメーター]

{#r_GlideRecord-get_Object_Object__table_bwp_pcr_dt} {#r_GlideRecord-get_Object_Object__table_cwp_pcr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 要求されたレコードが見つかったかどうかを示します。 可能な値： * true：レコードが見つかりました * false：レコードが見つかりませんでした {#r_GlideRecord-get_Object_Object__ul_ngs_clw_qfb} |
[表 : 51. 返される内容]

{#r_GlideRecord-get_Object_Object__table_cwp_pcr_dt}  
この例では、sys_id を渡すことによってインシデントレコードを取得します。

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

この例では、検索するレコードの列と検索する値を渡すことでインシデントレコードを取得します。

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

### スコープ対応 {#r_GlideRecord-get_Object_Object__section_rcl_s2s_mcb}

スコープ対象のアプリケーションで get() メソッドを使用するには、対応するスコープ対象のメソッド [get()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGet_Object_Object "現在の GlideRecord オブジェクトに指定されたレコードを返します。") を使用します。

## GlideRecord - getAttribute(文字列 fieldName) {#ariaid-title28}

指定されたフィールドのディクショナリ属性を返します。
{#r_GlideRecord-getAttribute_String__table_b2b_jdr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | ディクショナリ属性を返すフィールド名 |
[表 : 52. パラメーター]

{#r_GlideRecord-getAttribute_String__table_b2b_jdr_dt} {#r_GlideRecord-getAttribute_String__table_c2b_jdr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | ディクショナリ属性 |
[表 : 53. 返される内容]

{#r_GlideRecord-getAttribute_String__table_c2b_jdr_dt}  
この例は「tree_picker」のディクショナリ属性を返す方法を示しています。

    function doit() {
      var now_GR = new GlideRecord('sys_user');
      now_GR.query("user_name","admin");
      if (now_GR.next()) {
        gs.print("we got one");
        gs.print(now_GR.location.getAttribute("tree_picker"));
      }
    }

### スコープ対応 {#r_GlideRecord-getAttribute_String__section_bmb_dds_mcb}

スコープ対象のアプリケーションで getAttribute() メソッドを使用するには、対応するスコープ対象のメソッド [getAttribute()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#SGR-getAttribute_S "指定されたフィールドの辞書属性を返します。") を使用します。

## GlideRecord - getClassDisplayValue() {#ariaid-title29}

テーブルのラベルを返します。
{#r_GlideRecord-getClassDisplayValue__table_ltd_ydr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 54. パラメーター]

{#r_GlideRecord-getClassDisplayValue__table_ltd_ydr_dt} {#r_GlideRecord-getClassDisplayValue__table_mtd_ydr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | テーブルを識別するラベル。 |
[表 : 55. 返される内容]

{#r_GlideRecord-getClassDisplayValue__table_mtd_ydr_dt}  
この例では渡されたテーブルのラベルを出力します。

    // 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.

### スコープ対応

スコープ対象のアプリケーションで getClassDisplayValue() メソッドを使用するには、対応するスコープ対象のメソッド [getClassDisplayValue()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#SGR-getClassDisplayValue "現在のテーブルのラベルを返します。") を使用します。

## GlideRecord - getDisplayValue (文字列名) {#ariaid-title30}

現在のレコードの表示値、または動的属性ストア内の属性の表示値を取得します。
[Display values](https://www.servicenow.com/docs/access?context=c_DisplayValues&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US) は、データベース内の実際の値と、ユーザーまたはシステムの設定と初期設定に基づいて操作されます。  
返される表示値はフィールドタイプに依存します。

* 選択肢フィールド:データベース値は数値でもかまいませんが、表示値の方がわかりやすいです。
* 日付フィールド：データベース値は UTC 形式で、表示値はユーザーのタイムゾーンに基づいたものになります。
* 暗号化テキスト：データベース値は暗号化されますが、表示値はユーザーの暗号化コンテキストに基づいて非暗号化されます。
* 参照フィールド:データベース値はsys_idですが、表示値は参照先レコードの表示フィールドです。
{#r_GlideRecord-getDisplayValue__ul_ok1_cbv_hsb}

動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-getDisplayValue__table_kps_f2r_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | オプション。動的属性の表示値を要求する場合にのみ必要です。 取得する動的スキーマ内の属性へのパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
[表 : 56. パラメーター]

{#r_GlideRecord-getDisplayValue__table_kps_f2r_dt} {#r_GlideRecord-getDisplayValue__table_lps_f2r_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 現在のレコードまたは指定された要素の表示値。 |
[表 : 57. 返される内容]

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

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

出力:

    INC0000050

この例では、動的属性ストア要素内の属性の表示値を取得する方法を示します。

    var gr_AppTab = new GlideRecord('application_table'); 
    gr_AppTab.setValue('dyn_att_field->group->attr', 42); 
    gr_AppTab.setDisplayValue('dyn_att_field->group->attr2, true);
    gr_AppTab.update();
    gs.info('Attr value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->group->attr);
    gs.info('Attr2 value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->group->attr2);

出力:

    Attr value: System error
    Attr2 value: true

### スコープ対応 {#r_GlideRecord-getDisplayValue__section_j51_nds_mcb}

スコープ対象のアプリケーションで getDisplayValue() メソッドを使用するには、対応するスコープ対象のメソッド [getDisplayValue()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetDisplayValue "現在のレコードの表示値を取得します。") を使用します。

## GlideRecord - getDynamicAttribute(文字列 fullPath) {#ariaid-title31}

指定された動的属性ストアパスの GlideElementDynamicAttribute オブジェクトを返します。
動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#GR-getDynamicAttribute_S__table_rgk_h1x_1bc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フルパス | 文字列 | 目的の動的属性を見つけるために使用するパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
[表 : 58. パラメーター]

{#GR-getDynamicAttribute_S__table_rgk_h1x_1bc} {#GR-getDynamicAttribute_S__table_sgk_h1x_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| オブジェクト | 指定された動的属性を含む GlideElementDynamicAttribute オブジェクト。 fullPathパラメーターが無効な場合は、null を返します。 |
[表 : 59. 返される内容]

{#GR-getDynamicAttribute_S__table_sgk_h1x_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gr_Inc.getDynamicAttribute('attr_store->car->color').setValue('Blue');
    gr_Inc.update();

    gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gs.info(gr_Inc.getDynamicAttribute('attr_store', 'car->color'));

出力:

    *** Script: Blue

## GlideRecord - getDynamicAttribute(文字列 dynamicAttributeField, 文字列 groupAttrPath) {#ariaid-title32}

指定されたテーブルフィールドと属性パスにある動的属性を含む GlideElementDynamicAttribute オブジェクトを返します。
{#GR-getDynamicAttribute_S_S__table_yzz_p1x_1bc__entry__3}{#GR-getDynamicAttribute_S_S__DynS-dynamicAttributeField-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| dynamicAttributeField | 文字列 | 動的属性を含むテーブル内のフィールドの名前。 |
| groupAttrPath | 文字列 | 関連する動的スキーマ属性を見つけるために使用する属性パス。 フォーマット:「 `group_name->attr_name」` * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの \[名前\] フィールドまたは動的属性 \[dynamic_attribute\] テーブルの \[グループ\] フィールドにあります。 * `attr_name`:動的グループ内の動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの \[名前\] フィールドにあります。 例 `:「car->color」` |
[表 : 60. パラメーター]

{#GR-getDynamicAttribute_S_S__table_yzz_p1x_1bc} {#GR-getDynamicAttribute_S_S__table_zzz_p1x_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| オブジェクト | 指定された動的属性を含む GlideElementDynamicAttribute オブジェクト。 dynamicAttributeField パラメーターまたは groupAttrPath パラメーターのいずれかが無効な場合は、null を返します。 |
[表 : 61. 返される内容]

{#GR-getDynamicAttribute_S_S__table_zzz_p1x_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gr_Inc.getDynamicAttribute('attr_store->car->color').setValue('Blue');
    gr_Inc.update();

    gr_Inc = new GlideRecord('incident');
    gr_Inc.get('number', 'INC0009009');
    gs.info(gr_Inc.getDynamicAttribute('attr_store', 'car->color'));

出力:

    *** Script: Blue

## GlideRecord - getDynamicAttributeValue(文字列 fullPath) {#ariaid-title33}

指定されたパスにある動的属性の値を返します。
{#GR-getDynamicAttributeValue_S__table_oh3_x1x_1bc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フルパス | 文字列 | 目的の動的属性を見つけるために使用するパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
[表 : 62. パラメーター]

{#GR-getDynamicAttributeValue_S__table_oh3_x1x_1bc} {#GR-getDynamicAttributeValue_S__table_ph3_x1x_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| オブジェクト | 指定されたパスにある動的属性の値。 fullPathパラメーターに無効なデータが含まれている場合、または指定された属性値がサポートされているデータ型の 1 つでない場合は、null を返します。 |
[表 : 63. 返される内容]

{#GR-getDynamicAttributeValue_S__table_ph3_x1x_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->car->time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();

    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store->car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store->car->time_of_purchase'));

出力:

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

## GlideRecord - getDynamicAttributeValue(文字列 dynamicAttributeField, 文字列 groupAttrPath) {#ariaid-title34}

現在のテーブルの指定されたフィールドと指定された属性パスにある動的属性の値を返します。
{#GR-getDynamicAttributeValue_S_S__table_n1f_fbx_1bc__entry__3}{#GR-getDynamicAttributeValue_S_S__DynS-dynamicAttributeField-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| dynamicAttributeField | 文字列 | 動的属性を含むテーブル内のフィールドの名前。 |
| groupAttrPath | 文字列 | 関連する動的スキーマ属性を見つけるために使用する属性パス。 フォーマット:「 `group_name->attr_name」` * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの \[名前\] フィールドまたは動的属性 \[dynamic_attribute\] テーブルの \[グループ\] フィールドにあります。 * `attr_name`:動的グループ内の動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの \[名前\] フィールドにあります。 例 `:「car->color」` |
[表 : 64. パラメーター]

{#GR-getDynamicAttributeValue_S_S__table_n1f_fbx_1bc} {#GR-getDynamicAttributeValue_S_S__table_o1f_fbx_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| オブジェクト | 指定されたパスにある動的属性の値。 dynamicAttributeField パラメーターまたは groupAttrPath パラメーターのいずれかが無効な場合は、null を返します。 |
[表 : 65. 返される内容]

{#GR-getDynamicAttributeValue_S_S__table_o1f_fbx_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'car->time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();

    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store', 'car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'car->time_of_purchase'));

出力:

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

## GlideRecord - getDynamicAttributeDisplayValue(文字列 fullPath) {#ariaid-title35}

指定されたパスにある動的属性の表示値を返します。
{#GR-getDynAttributeDisplayValue_S__table_nht_nbx_1bc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フルパス | 文字列 | 目的の動的属性を見つけるために使用するパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
[表 : 66. パラメーター]

{#GR-getDynAttributeDisplayValue_S__table_nht_nbx_1bc} {#GR-getDynAttributeDisplayValue_S__table_oht_nbx_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 指定したパスにある動的属性の表示値。 fullPathパラメーターが無効な場合は、null を返します。 |
[表 : 67. 返される内容]

{#GR-getDynAttributeDisplayValue_S__table_oht_nbx_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->car->time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();

    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purcahse Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store->car->time_of_purchase'));
    gs.info("Time of Purcahse DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store->car->time_of_purchase'));

出力:

    *** Script: Time of Purcahse Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purcahse DisplayValue (PST): 2020-05-13 06:52:44

## GlideRecord - getDynamicAttributeDisplayValue(文字列 dynamicAttributeField, 文字列 groupAttrPath) {#ariaid-title36}

指定されたテーブルフィールドと属性パスにある動的属性の表示値を返します。
{#GR-getDynAttributeDisplayValue_S_S__table_vm3_wbx_1bc__entry__3}{#GR-getDynAttributeDisplayValue_S_S__DynS-dynamicAttributeField-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| dynamicAttributeField | 文字列 | 動的属性を含むテーブル内のフィールドの名前。 |
| groupAttrPath | 文字列 | 関連する動的スキーマ属性を見つけるために使用する属性パス。 フォーマット:「 `group_name->attr_name」` * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの \[名前\] フィールドまたは動的属性 \[dynamic_attribute\] テーブルの \[グループ\] フィールドにあります。 * `attr_name`:動的グループ内の動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの \[名前\] フィールドにあります。 例 `:「car->color」` |
[表 : 68. パラメーター]

{#GR-getDynAttributeDisplayValue_S_S__table_vm3_wbx_1bc} {#GR-getDynAttributeDisplayValue_S_S__table_wm3_wbx_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 指定したパスにある動的属性の表示値。 dynamicAttributeField パラメーターまたは groupAttrPath パラメーターのいずれかが無効な場合は、null を返します。 |
[表 : 69. 返される内容]

{#GR-getDynAttributeDisplayValue_S_S__table_wm3_wbx_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'car->time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();

    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store', 'car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'car->time_of_purchase'));

出力:

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

## GlideRecord - getED() {#ariaid-title37}

要素の記述子を返します。
{#r_GlideRecord-getED__table_ppq_p2r_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 70. パラメーター]

{#r_GlideRecord-getED__table_ppq_p2r_dt} {#r_GlideRecord-getED__table_qpq_p2r_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideElementDescriptor | 要素の記述子。 |
[表 : 71. 返される内容]

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

    grInc = new GlideRecord('incident');
    grInc.getActiveQuery();
    grInc.query();
    if (grInc.next())
      gs.info("Table Descriptor is - " + grInc.getED().getName());

出力：

    Table Descriptor is - incident

### スコープ対応 {#r_GlideRecord-getED__section_vj2_pds_mcb}

スコープ対象のアプリケーションで getED() メソッドを使用するには、対応するスコープ対象のメソッド [getED()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#SGR-getED "要素の記述子を返します。") を使用します。

## GlideRecord - getElement(文字列 fieldName) {#ariaid-title38}

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

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

オブジェクト全体を取得する代わりに、次のいずれかのメソッドを使用してフィールド値をコピーできます。  
* [getValue()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-getValue_String "指定されたフィールドの文字列値、または動的属性ストア内の属性の文字列値を取得します。")
* [getDisplayValue()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-getDisplayValue "現在のレコードの表示値、または動的属性ストア内の属性の表示値を取得します。")
{#r_GlideRecord-getElement_String__gr-api-dot-walk-global-rec-lnx}  
GlideElement オブジェクトをドット連結する必要がある場合は、 toString() メソッドを使用して値を取得します。たとえば、別の参照フィールドを設定するために、現在の問い合わせユーザーのマネージャーの sys_id が必要な場合があります。次の例は、オブジェクト全体の代わりに文字列値を取得する方法を示しています。

    var mgr = current.caller_id.manager.toString();

関連項目：[GlideElement - toString()](https://servicenow-prod.fluidtopics.net/KTuTJQIwiU7zmj2waBXwgQ#r_GlideElement-toString "フィールドの値を文字列に変換します。")。
{#r_GlideRecord-getElement_String__id_rmz_rpn_mpb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | GlideElement オブジェクトを返す対象の列名。 |
[表 : 72. パラメーター]

{#r_GlideRecord-getElement_String__id_rmz_rpn_mpb} {#r_GlideRecord-getElement_String__table_yxw_bfr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| GlideElement | 現在のレコードの指定された列の GlideElement。各オブジェクトは、現在の GlideRecord のフィールドを記述します。 |
[表 : 73. 返される内容]

{#r_GlideRecord-getElement_String__table_yxw_bfr_dt}  
この例では、渡されたテーブルの GlideElement オブジェクトを取得し、それらを予想されるシステムのメタデータ値と比較する方法を示します。

    function compareElement(comment, table, element, /*{}*/ expected) {
      var now_GR = new GlideRecord(table);
      var el = now_GR.getElement(element);
      for (var n in expected) {
        assertEquals(comment + ":" + table + "." + element, expected[n], el.sys_meta[n]);
      }
    }

### スコープ対応

スコープ対象のアプリケーションで getElement() メソッドを使用するには、対応するスコープ対象のメソッド [getElement()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetElement_String "指定されたフィールドの GlideElement オブジェクトを取得します。") を使用します。

## GlideRecord - getEncodedQuery() {#ariaid-title39}

現在の結果セットのクエリ条件をエンコードされたクエリ文字列として取得します。
詳しくは、 エンコード [されたクエリ文字列](https://www.servicenow.com/docs/access?context=c_EncodedQueryStrings&version=xanadu&pubname=xanadu-platform-user-interface&ft:locale=en-US) を参照してください。{#r_GlideRecord-getEncodedQuery_Boolean__link_encoded_query_strings}
{#r_GlideRecord-getEncodedQuery_Boolean__table_ng2_mfr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 74. パラメーター]

{#r_GlideRecord-getEncodedQuery_Boolean__table_ng2_mfr_dt} {#r_GlideRecord-getEncodedQuery_Boolean__table_og2_mfr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 |   |
[表 : 75. 返される内容]

{#r_GlideRecord-getEncodedQuery_Boolean__table_og2_mfr_dt}  
この例は、後で読み取り ACL ロールを作成するために使用する、現在のエンコードクエリを取得する方法を示しています。

    function createAcl(table, role) {
      gs.print("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.sys_id.toString(), role);
       return;
      } else {
        now_GR.initialize();
        now_GR.applyEncodedQuery(encQuery);
        var acl = now_GR.insert();
        gs.print("   Added read access control on " + table);
        createAclRole(acl, role);
      }
    }

### スコープ対応

スコープ対象のアプリケーションで getEncodedQuery() メソッドを使用するには、対応するスコープ対象のメソッド [getEncodedQuery()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetEncodedQuery "現在の結果セットのクエリ条件をエンコードされたクエリ文字列として取得します。") を使用します。

## GlideRecord - getEscapedDisplayValue() {#ariaid-title40}

現在のレコードの表示フィールドに対するフィールド値を取得し、Jelly スクリプトで使用するエスケープ文字を追加します。
注:  
このメソッドを使用するには、関連するテーブルに表示値を設定する必要があります。この方法については、「 [フィールドをテーブル表示値として選択](https://www.servicenow.com/docs/access?context=t_SelectTheDisplayValue&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)する」を参照してください。 {#r_GlideRecord-getEscapedDisplayValue__table_xcp_5fr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 76. パラメーター]

{#r_GlideRecord-getEscapedDisplayValue__table_xcp_5fr_dt} {#r_GlideRecord-getEscapedDisplayValue__table_ycp_5fr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 現在のテーブルの表示フィールドのエスケープ値。 |
[表 : 77. 返される内容]

{#r_GlideRecord-getEscapedDisplayValue__table_ycp_5fr_dt}  
この例では、ユーザー \[sys_user\] テーブルから user_name のエスケープされた表示値を取得する方法を示します。

    var userName = "Michael J'ones";
    var now_GR = new GlideRecord("sys_user");
    if (now_GR.get("user_name", userName)) {
      gs.print("Deleting existing user=" + userName);
      now_GR.deleteRecord();
    }
    now_GR.initialize();

    var name = userName.split(" ", 2);
    var firstName = name[0];
    var lastName = name[1];
    now_GR.setValue("user_name", userName);
    gs.print("Name: " + now_GR.getValue("user_name"));
    now_GR.setValue("first_name", firstName);
    now_GR.setValue("last_name", lastName);
    var escapeValue = now_GR.getEscapedDisplayValue();
    gs.print("Escaped name: " + escapeValue);

出力:

    Name: Michael J'ones
    Escaped name: Michael J\'ones

## GlideRecord - getFields() {#ariaid-title41}

現在のレコード内のフィールドの Java ArrayList を取得します。
{#r_GlideRecord-getFields__table_yzn_fgr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 78. パラメーター]

{#r_GlideRecord-getFields__table_yzn_fgr_dt} {#r_GlideRecord-getFields__table_zzn_fgr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| Java ArrayList | 現在のレコード内のフィールド |
[表 : 79. 返される内容]

{#r_GlideRecord-getFields__table_zzn_fgr_dt}  

    // This can be run in "Scripts - Background" for demonstration purposes
     
    // Get a single incident record
    var grINC = new GlideRecord('incident');
    grINC.query();
    grINC.next();
    gs.print('Using ' + grINC.getValue('number'));
    gs.print('');
     
    // getFields() returns a Java ArrayList
    var fields = grINC.getFields();
     
    // Enumerate GlideElements in the GlideRecord object that have values
    gs.print('Enumerating over all fields with values:');
    for (var i = 0; i < fields.size(); i++) {
      var glideElement = fields.get(i);
      if (glideElement.hasValue()) {
        gs.print('  ' + glideElement.getName() + '\t' + glideElement);
      }
    }
    gs.print('');
     
    // Get a specific GlideElement: number
    gs.print('Getting the number field:');
    for (var i = 0; i < fields.size(); i++) {
      var glideElement = fields.get(i);
      if (glideElement.hasValue() && glideElement.getName() == 'number') {
        gs.print('  ' + glideElement.getName() + '\t' + glideElement);
      }
    }

## GlideRecord - getLabel() {#ariaid-title42}

フィールドのラベルを取得します。
{#r_GlideRecord-getLabel__table_ajl_sgr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 80. パラメーター]

{#r_GlideRecord-getLabel__table_ajl_sgr_dt} {#r_GlideRecord-getLabel__table_bjl_sgr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | フィールドのラベル |
[表 : 81. 返される内容]

{#r_GlideRecord-getLabel__table_bjl_sgr_dt}  
この例は、要求アイテムテーブルの質問フィールドのラベルを取得し、ラベルとその表示名を出力する方法を示しています。

    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() + " = " 
                         + vnow_V.getDisplayValue() + "\n");  
          }
        }
    }

### スコープ対応 {#r_GlideRecord-getLabel__section_bdc_d2s_mcb}

スコープ対象のアプリケーションで getLabel() メソッドを使用するには、対応するスコープ対象のメソッド [getLabel()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#SGR-getLabel "フィールドのラベルを返します。") を使用します。

## GlideRecord - getLink(ブーリアン noStack) {#ariaid-title43}

現在のレコードのリンクを取得します。
{#r_GlideRecord-getLink_Boolean__table_evz_2hr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| noStack | ブーリアン | 生成されたリンクを URL の末尾に追加するかどうかを示すフラグ。例：`&sysparm_stack=[テーブル名]_list.do? sysparm_query=active=true` 有効な値： * true：リンクを追加します。 * false：リンクを追加しません。 {#r_GlideRecord-getLink_Boolean__ul_jwg_kmt_ymb} デフォルト値：false |
[表 : 82. パラメーター]

{#r_GlideRecord-getLink_Boolean__table_evz_2hr_dt} {#r_GlideRecord-getLink_Boolean__table_fvz_2hr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 現在のレコードの URL。 |
[表 : 83. 返される内容]

{#r_GlideRecord-getLink_Boolean__table_fvz_2hr_dt}  
この例では添付ファイルを確認し、見つかった場合はリンクを追加します。

    var attachment_link = '';
    var rec = new GlideRecord('sc_req_item');
    rec.addQuery('sys_id', current.request_item);
    rec.query();
    if(rec.next()){
      if(rec.hasAttachments()){
        attachment_link = gs.getProperty('glide.servlet.uri') + rec.getLink();
      }   
    }

### スコープ対応 {#r_GlideRecord-getLink_Boolean__section_qvr_f2s_mcb}

スコープ対象のアプリケーションで getLink() メソッドを使用するには、対応するスコープ対象のメソッド [getLink()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetLink_Boolean "現在のレコードのリンクを取得します。") を使用します。

## GlideRecord - getLocation() {#ariaid-title44}

テーブル内の現在のレコードの行番号を取得します。
{#r_GlideRecord-getLocation_Boolean__table_hzq_whr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 84. パラメーター]

{#r_GlideRecord-getLocation_Boolean__table_hzq_whr_dt} {#r_GlideRecord-getLocation_Boolean__table_izq_whr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 数値 | テーブル内の現在のレコードに対するゼロベースの行番号を取得します。 |
[表 : 85. 返される内容]

{#r_GlideRecord-getLocation_Boolean__table_izq_whr_dt}  
この例は、レコード数をレコードの場所番号と比較することによって、インシデントテーブル内のレコードが適切に取得されていないかどうかを確認する方法を示しています。

    var now_GR = new GlideRecord("incident");
    now_GR.addQuery("priority", "4");
    now_GR.query();
    for (x=0; x <4; x++) {
      now_GR.next();
      gs.print("Location value: " + now_GR.getLocation());
    }

出力:

    Location value: 0
    Location value: 1
    Location value: 2
    Location value: 3

## GlideRecord - getPlural() {#ariaid-title45}

GlideRecord テーブルの複数形ラベルを取得します。
たとえば、テーブル名が「変更要求」の場合、このメソッドは「変更要求」を返します。
{#r_GlideRecord-getPlural__table_pfl_g3r_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 86. パラメーター]

{#r_GlideRecord-getPlural__table_pfl_g3r_dt} {#r_GlideRecord-getPlural__table_qfl_g3r_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | GlideRecord のテーブルの複数形ラベル。 |
[表 : 87. 返される内容]

{#r_GlideRecord-getPlural__table_qfl_g3r_dt}  
この例では、インシデントテーブルの getLabel() と getPlural() の戻り値を確認しています。

    var now_GR = new GlideRecord('incident');
    gs.print(now_GR.getLabel());
    if (now_GR.getLabel() != 'Incident')
    throw "GlideRecord.getLabel() returned unexpected value for table 'incident': " + now_GR.getLabel();

    gs.print(now_GR.getPlural());
    if (now_GR.getPlural() != 'Incidents')
    throw "GlideRecord.getPlural() returned unexpected value for table 'incident': " + now_GR.getPlural();
    "success";

### スコープ対応 {#r_GlideRecord-getPlural__section_itl_mcs_mcb}

スコープ対象のアプリケーションで getPlural() メソッドを使用するには、スコープ付き [GlideRecord.getED()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-getED "要素の記述子を返します。") メソッドを使用してフィールドの記述子を取得してから、スコープ付き [GlideElementDescriptor.getPlural()](https://servicenow-prod.fluidtopics.net/HMy4wBVVKj0AzC_HLww~~A#r_SGED-getPlural "要素の複数形ラベルを返します。") メソッドを使用します。

## GlideRecord - getRecordClassName() {#ariaid-title46}

現在のレコードのクラス (テーブル) 名を取得します。
{#r_GlideRecord-getRecordClassName__table_dxr_r3r_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 88. パラメーター]

{#r_GlideRecord-getRecordClassName__table_dxr_r3r_dt} {#r_GlideRecord-getRecordClassName__table_exr_r3r_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | クラスまたはテーブル名 |
[表 : 89. 返される内容]

{#r_GlideRecord-getRecordClassName__table_exr_r3r_dt}  

    function TaskAssignmentFilter() {
      var classname = current.getRecordClassName();
      var filter = "type=null";
      if (classname == "incident" && current.category == "database") {
        filter = GetGroupFilter("database");
      }
      else {
        // append exclusion for 'catalog' to the filter
        var cat = new GlideRecord("sys_user_group_type");  
        cat.addQuery("name", "catalog");
        cat.query();
        if (cat.next()) {
          filter += "^ORtype!=" + cat.sys_id;
        }
      }
      gs.log("TaskAssignmentFilter: " + filter);
      return filter;
    }

### スコープ対応 {#r_GlideRecord-getRecordClassName__section_nrs_h2s_mcb}

スコープ対象のアプリケーションで getRecordClassName() メソッドを使用するには、対応するスコープ対象のメソッド [getRecordClassName()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetRecordClassName "現在のレコードのクラス名を取得します。") を使用します。

## GlideRecord - getRelatedLists() {#ariaid-title47}

現在の GlideRecord に関連付けられている関連リストの名前と表示値のリストを取得します。
{#r_GlideRecord-getRelatedLists_Boolean__table_f2p_3jr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 90. パラメーター]

{#r_GlideRecord-getRelatedLists_Boolean__table_f2p_3jr_dt} {#r_GlideRecord-getRelatedLists_Boolean__table_g2p_3jr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| HashMap | 関連リストの名前と表示値を含むハッシュマップ。 |
[表 : 91. 返される内容]

{#r_GlideRecord-getRelatedLists_Boolean__table_g2p_3jr_dt}  
この例は、現在の GlideRecord に関連付けられている関連リストの名前と表示値のリストを取得し、それらをアレイに格納してから、その値を出力する方法を示しています。

    var now_GR = new GlideRecord('incident');
    var c = now_GR.getRelatedLists().values().toArray();
    var numElements = c.length;
    for( var i = 0; i < numElements; ++i){
      gs.print(i+": "+c[i]);
    }

## GlideRecord - getRelatedTables() {#ariaid-title48}

現在のレコードによって参照されるテーブルの名前と表示値のリストを取得します。
{#r_GlideRecord-getRelatedTables_Boolean__table_lwm_vjr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 92. パラメーター]

{#r_GlideRecord-getRelatedTables_Boolean__table_lwm_vjr_dt} {#r_GlideRecord-getRelatedTables_Boolean__table_mwm_vjr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| HashMap | 関連テーブルの名前と表示値を含むハッシュマップ。 |
[表 : 93. 返される内容]

{#r_GlideRecord-getRelatedTables_Boolean__table_mwm_vjr_dt}  
この例は、現在の GlideRecord に関連するテーブルの名前と表示値のリストを取得し、それらをアレイに格納してから、その値を出力する方法を示しています。

    var now_GR = new GlideRecord('incident');
    var c = now_GR.getRelatedTables().values().toArray();
    var numElements = c.length;
    for( var i = 0; i < numElements; ++i){
      gs.print(i+": "+c[i]);
    }

## GlideRecord - getRowCount() {#ariaid-title49}

現在の GlideRecord オブジェクトの行数 (レコード) を取得します。
注:  
GlideRecord は一致するレコードを返すため、必要なレコード数のみが限られている場合は GlideAggregate ほど効率的ではない可能性があります。レコード数のみが必要で、一致するレコードを反復処理していない場合は、 GlideAggregate を使用します。  

GlideRecord または GlideAggregate の番号レコードの取得
:   GlideRecord の getRowCount() API と [GlideAggregate getAggregate()](https://servicenow-prod.fluidtopics.net/TdgCOa3dDq7_JUvqzBt6KA#c_GlideAggregateScopedAPI "GlideAggregate API を使用すると、データベース集計クエリーを作成できます。") API は同様の情報を提供します。次の基準を使用して、最適なオプションを決定してください。

    * GlideRecord getRowCount() メソッドは、クエリーから返されたレコードの数とレコード自体を示します。レコードに対してアクションを実行するためにセットを反復処理する前後の結果セット内のレコード数が必要な場合は、この方法を使用します。
    * GlideAggregate getAggregate() メソッドは、実際のレコードを除き、クエリに一致するレコード数のみを取得します。集計は、クエリーを発行する前に GlideAggregate オブジェクトに設定する必要があります。
    {#r_GlideRecord-getRowCount__ul_wdq_fmn_nyb}
:   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() を使用します。
{#r_GlideRecord-getRowCount__table_dxv_hkr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 94. パラメーター]

{#r_GlideRecord-getRowCount__table_dxv_hkr_dt} {#r_GlideRecord-getRowCount__table_exv_hkr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 数値 | 現在の GlideRecord の行数。 |
[表 : 95. 返される内容]

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

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

出力:

    Records in incident table: 6920

### スコープ対応

スコープ対象のアプリケーションで getRowCount() メソッドを使用するには、対応するスコープ対象のメソッド [getRowCount()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetRowCount "現在の GlideRecord オブジェクトの行数 (レコード) を取得します。") を使用します。

## GlideRecord - getRowNumber() {#ariaid-title50}

saveLocation() または setLocation() によって設定された行番号を取得します。
現在の行番号を取得するには、getLocation() を使用します。
{#r_GlideRecord-getRowNumber__table_m4c_pkr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 96. パラメーター]

{#r_GlideRecord-getRowNumber__table_m4c_pkr_dt} {#r_GlideRecord-getRowNumber__table_n4c_pkr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 数値 | 保存された行番号。 |
[表 : 97. 返される内容]

{#r_GlideRecord-getRowNumber__table_n4c_pkr_dt}  
この例は、ユーザーテーブルの行の場所を保存し、その行番号を取得する方法を示しています。

    var now_GR = new GlideRecord('sys_user');
    now_GR.addQuery();
    now_GR.query();
    now_GR.saveLocation(5);
    var savedRow = now_GR.getRowNumber();
    gs.print("Saved row: " + savedRow);

出力:

    Saved row: 5

## GlideRecord - getTableName() {#ariaid-title51}

この GlideRecord に関連付けられたテーブル名を取得します。
{#r_GlideRecord-getTableName__table_hcx_wkr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 98. パラメーター]

{#r_GlideRecord-getTableName__table_hcx_wkr_dt} {#r_GlideRecord-getTableName__table_icx_wkr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | テーブル名 |
[表 : 99. 返される内容]

{#r_GlideRecord-getTableName__table_icx_wkr_dt}  
この例は、現在のテーブル名をシステム ログに書き込む方法を示しています。

    gs.log('Table: ' + current.getTableName()); 
    gs.log('Parent: ' + current.parent.sys_id); 
    var item = new GlideRecord('sc_req_item'); 
    item.addQuery('sys_id', current.parent.sys_id); 
    item.query(); 
    if(item.next()){ 
      for(var variable in item.variable_pool) {
        gs.log(variable); 
        var answer = eval ("item.variable_pool." + variable + ".getDisplayValue()");
        gs.log(answer);
      }
    }

### スコープ対応 {#r_GlideRecord-getTableName__section_hfr_42s_mcb}

スコープ対象のアプリケーションで getTableName() メソッドを使用するには、対応するスコープ対象のメソッド [getTableName()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetTableName "GlideRecord に関連付けられたテーブル名を取得します。") を使用します。

## GlideRecord - getUniqueValue() {#ariaid-title52}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 100. パラメーター]

{#GlideRecord-getUniqueValue_S__table_t5k_btb_2r} {#GlideRecord-getUniqueValue_S__table_qpt_3f5_jq__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 文字列としての一意のプライマリキー (キーが null の場合は null)。 |
[表 : 101. 返される内容]

{#GlideRecord-getUniqueValue_S__table_qpt_3f5_jq}  

    var now_GR = new GlideRecord('kb_knowledge');
    now_GR.query();
    now_GR.next();
    var uniqueid = now_GR.getUniqueValue();
    gs.info(uniqueid);

## GlideRecord - getValue(文字列 fieldName) {#ariaid-title53}

指定されたフィールドの文字列値、または動的属性ストア内の属性の文字列値を取得します。
注:  
列レベル暗号化エンタープライズ プラグインが有効になっていて、インスタンスがキーにアクセスできる場合、このメソッドは暗号化されたフィールドからクリアテキスト値を返します。インスタンスがキーにアクセスできない場合、このメソッドは暗号化された値を返します。詳細については、「 [Platform Encryption](https://www.servicenow.com/docs/access?context=now-platform-encryption&version=xanadu&pubname=xanadu-platform-security&ft:locale=en-US)」を参照してください。

動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-getValue_String__table_ev2_flr_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | 値を取得するフィールドの名前、または取得する動的属性ストア内の属性へのパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
[表 : 102. パラメーター]

{#r_GlideRecord-getValue_String__table_ev2_flr_dt} {#r_GlideRecord-getValue_String__table_fv2_flr_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 指定された要素の値。フィールドが空の場合、またはフィールドが存在しない場合は null を返します。 注: ブーリアン値は、false および true ではなく<kbd class="ph userinput">「0」</kbd>および<kbd class="ph userinput">「1」</kbd>の文字列値として返されます。 |
[表 : 103. 返される内容]

{#r_GlideRecord-getValue_String__table_fv2_flr_dt}  
この例では、getValue() メソッドを使用して、比較されている 2 つの GlideRecord のフィールド値を取得します。

    function() {
      var jobExists = true;
      var jobGr;
      while(jobExists){
        jobGr = new GlideRecord("sys_trigger");
        jobExists = jobGr.get("name", "BaselineAPI: Create Baseline Job");
      }
      var baselineGr =  new GlideRecord('pm_project_baseline');
      baselineGr.get('baseline_name','Test Project Baseline');
      baselineGr.query();
     
      Assert.assertEquals(true, baselineGr.next());
      var projectGr =  new GlideRecord('pm_project');
      projectGr.get(this._project);
      Assert.assertEquals(projectGr.getValue('cost'), baselineGr.getValue('cost'));
      Assert.assertEquals((projectGr.getValue('capex_cost')), baselineGr.getValue('capex_cost'));
      Assert.assertEquals((projectGr.getValue('opex_cost')), baselineGr.getValue('opex_cost'));
      Assert.assertEquals((projectGr.getValue('budget_cost')), baselineGr.getValue('budget_cost'));
      Assert.assertEquals((projectGr.getValue('value')), baselineGr.getValue('value'));
      Assert.assertEquals((projectGr.getValue('npv_value')), baselineGr.getValue('npv_value'));  Assert.assertEquals((projectGr.getValue('score')), baselineGr.getValue('score'));
    }

この例では、動的属性の値を取得する方法を示します。

    // Update the value of the attribute 'attribute_store->car->color' to 'Red' on incident `INC0009009`
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store->car->color', 'Red');
    gr1.update();

    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info(gr2.getValue('attribute_store->car->color'));

出力:

    *** Script: Red

### スコープ対応

スコープ対象のアプリケーションで getValue() メソッドを使用するには、対応するスコープ対象のメソッド [getValue()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordGetValue_String "フィールド内の基礎となる要素の文字列値を取得します。") を使用します。

## GlideRecord - hasAttachments() {#ariaid-title54}

現在の GlideRecord に添付ファイルがあるかどうかを判断します。
{#r_GlideRecord-hasAttachments__table_dz4_fzp_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 104. パラメーター]

{#r_GlideRecord-hasAttachments__table_dz4_fzp_dt} {#r_GlideRecord-hasAttachments__table_ez4_fzp_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 現在のレコードに添付ファイルがある場合は true、ない場合は false。 |
[表 : 105. 返される内容]

{#r_GlideRecord-hasAttachments__table_ez4_fzp_dt}  
この例では添付ファイルを確認し、ある場合はリンクを作成します。

    var attachment_link = '';
    var rec = new GlideRecord('sc_req_item');
    rec.addQuery('sys_id', current.request_item);
    rec.query();
    if(rec.next()){
      if(rec.hasAttachments()){
        attachment_link = gs.getProperty('glide.servlet.uri') + rec.getLink();
      }   
    }

## GlideRecord - hasNext() {#ariaid-title55}

GlideRecord にまだレコードがあるかどうかを判断します。
{#r_GlideRecord-hasNext__table_fn3_cnq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 106. パラメーター]

{#r_GlideRecord-hasNext__table_fn3_cnq_dt} {#r_GlideRecord-hasNext__table_gn3_cnq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | クエリセットにさらにレコードがある場合は true、ない場合は false。 |
[表 : 107. 返される内容]

{#r_GlideRecord-hasNext__table_gn3_cnq_dt}  
この例では、現在の GlideRecord に追加のレコードがあるかどうかに基づいてさまざまな関数を呼び出す方法を示します。

    if (now_GR.hasNext()) {
      dothis(); // found it, do it
    } else {
      dothat(); // didn't find it
    };

### スコープ対応 {#r_GlideRecord-hasNext__section_qb3_y2s_mcb}

スコープ対象のアプリケーションで hasNext() メソッドを使用するには、対応するスコープ対象のメソッド [hasNext()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordHasNext "GlideRecord オブジェクトにまだレコードがあるかどうかを判断します。") を使用します。

## GlideRecord - initialize() {#ariaid-title56}

挿入前に入力するのに適した空のレコードを現在の GlideRecord 内に作成します。
{#r_GlideRecord-initialize__table_t1p_myw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 108. パラメーター]

{#r_GlideRecord-initialize__table_t1p_myw_dt} {#r_GlideRecord-initialize__table_u1p_myw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 109. 返される内容]

{#r_GlideRecord-initialize__table_u1p_myw_dt}  
この例では to_do テーブルの新しいレコードを初期化し、レコードを作成してからテーブルに挿入します。

    var now_GR = new GlideRecord('to_do');
    now_GR.initialize(); 
    now_GR.name = 'first to do item'; 
    now_GR.description = 'learn about GlideRecord'; 
    now_GR.insert();

### スコープ対応 {#r_GlideRecord-initialize__section_j1j_1fs_mcb}

スコープ対象のアプリケーションで initialize() メソッドを使用するには、対応するスコープ対象のメソッド [initialize()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordInitialize "挿入前に入力するのに適した空のレコードを作成します。") を使用します。

## GlideRecord - insert() {#ariaid-title57}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 110. パラメーター]

{#r_GlideRecord-insert__table_t3h_vyw_dt} {#r_GlideRecord-insert__table_u3h_vyw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 挿入されたレコードの sys_id。レコードが挿入されない場合は null。 |
[表 : 111. 返される内容]

{#r_GlideRecord-insert__table_u3h_vyw_dt}  
この例では to_do テーブルに新しいレコードを作成し、いくつかのレコードフィールドに値を設定してからレコードをテーブルに挿入します。

    var now_GR = new GlideRecord('to_do');
    now_GR.initialize(); 
    now_GR.name = 'first to do item'; 
    now_GR.description = 'learn about GlideRecord'; 
    now_GR.insert();

### スコープ対応 {#r_GlideRecord-insert__section_dkx_cfs_mcb}

スコープ対象のアプリケーションで insert() メソッドを使用するには、対応するスコープ対象のメソッド [insert()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordInsert "現在のレコードに設定されているフィールド値を使用して、新しいレコードを挿入します。") を使用します。

## GlideRecord - insertWithReferences() {#ariaid-title58}

新しいレコードを挿入し、指定された情報で関連レコードを挿入または更新します。
{#r_GlideRecord-insertWithReferences__table_scr_fzw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 112. パラメーター]

{#r_GlideRecord-insertWithReferences__table_scr_fzw_dt} {#r_GlideRecord-insertWithReferences__table_tcr_fzw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 挿入されたレコードの sys_id。レコードが挿入されなかった場合は null。 |
[表 : 113. 返される内容]

{#r_GlideRecord-insertWithReferences__table_tcr_fzw_dt}  
参照値が指定されていない場合 (以下を参照)、指定された first_name と last_name で新しいユーザーレコードが作成され、caller_id 値がこの新しく作成された sys_user レコードに設定されます。結果は、指定された first_name と last_name を使用する新しい sys_user レコードと、指定された short_description と caller_id を使用する新しいインシデントレコードです。

    var inc = new GlideRecord('incident');
    inc.initialize();
    inc.short_description = 'New incident 1';
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.insertWithReferences();

caller_id 値が指定されている場合、その caller_id は指定された first_name と last_name で更新されます。結果は、short_description と caller_id に値が設定された、新しく作成されたインシデントレコードです。

    var inc = new GlideRecord('incident');
    inc.initialize();
    inc.short_description = 'New incident 1';
    inc.caller_id.setDisplayValue('David Loo');
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.insertWithReferences();

## GlideRecord - instanceOf(文字列 className) {#ariaid-title59}

テーブルのタイプ/クラスを確認します。
{#r_GlideRecord-instanceOf_String__table_s5n_qnq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| className | 文字列 | レコードのタイプまたはクラスの名前。 |
[表 : 114. パラメーター]

{#r_GlideRecord-instanceOf_String__table_s5n_qnq_dt} {#r_GlideRecord-instanceOf_String__table_t5n_qnq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | テーブルが指定されたクラスのインスタンスである場合は true。 |
[表 : 115. 返される内容]

{#r_GlideRecord-instanceOf_String__table_t5n_qnq_dt}  
この例では、渡されたグループ/ユーザーが sys_user テーブル/クラスタイプであるかどうかを確認します。

    function(groupOrUser, label, grantedBy) {
      var labelCheck;
      var labelRecord;
      if (typeof label === "string") {
        labelRecord = new GlideRecord('label');
        labelRecord.addQuery('name', label);
        labelRecord.query();
        labelRecord.next();
      } else {
        labelRecord = label;
      }
      if (groupOrUser.instanceOf('sys_user')) {
        labelCheck = new GlideRecord('label_user_m2m');
        labelCheck.addQuery('user', groupOrUser.sys_id);
      } else {
        labelCheck = new GlideRecord('label_group_m2m');
        labelCheck.addQuery('group', groupOrUser.sys_id);
      }
      labelCheck.addQuery('label', labelRecord.sys_id);
      if (grantedBy !== "undefined") {
        labelCheck.addQuery('granted_by', grantedBy.sys_id);
      }
      labelCheck.query();
      return labelCheck.hasNext();
    }

## GlideRecord - isNewRecord() {#ariaid-title60}

現在のレコードがデータベースに挿入されているかどうかを判断します。
このメソッドは newRecord() メソッドが呼び出された場合にのみ true を返します。このメソッドは、スクリプト化された ACL や UI アクションの条件に便利ですが、バックグラウンドスクリプトでは使用しないでください。  
注:  
このメソッドはビジネスルールの実行中に新しいレコードに対して true を返します。または、newRecord() メソッドを使用してデフォルト値と一意の ID (sys_id) を使用してレコードを初期化します。それ以外の場合は false を返します。
{#r_GlideRecord-isNewRecord__table_vbn_g4q_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 116. パラメーター]

{#r_GlideRecord-isNewRecord__table_vbn_g4q_dt} {#r_GlideRecord-isNewRecord__table_wbn_g4q_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 現在のレコードが新しい (データベースに挿入されていない) かどうかを示すフラグ。 可能な値： * true：レコードは新規です。 * false：レコードは新規ではありません。 {#r_GlideRecord-isNewRecord__ul_cqj_2fx_z4b} |
[表 : 117. 返される内容]

{#r_GlideRecord-isNewRecord__table_wbn_g4q_dt}  
この例では、新しいレコードが sys_user テーブルに挿入されているかどうかを確認します。

    var now_GR = new GlideRecord("sys_user");
    now_GR.newRecord();
    now_GR.setValue("user_name", "John Smith");
    gs.print("Is this a new record: " + now_GR.isNewRecord());

    var now_GR2 = new GlideRecord("sys_user");
    now_GR2.addQuery("user_name", "Abel Tutor");
    now_GR2.query();
    now_GR2.next();
    gs.print("Is this a new record: " + now_GR2.isNewRecord());

## GlideRecord - isValid() {#ariaid-title61}

現在の GlideRecord テーブルが存在するかどうかを判断します。
{#r_GlideRecord-isValid__table_twy_x4q_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 118. パラメーター]

{#r_GlideRecord-isValid__table_twy_x4q_dt} {#r_GlideRecord-isValid__table_uwy_x4q_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | テーブルが存在する (有効な) 場合は true、それ以外の場合は false。 |
[表 : 119. 返される内容]

{#r_GlideRecord-isValid__table_uwy_x4q_dt}  
この例ではインシデントテーブルが存在するかどうかを確認します。

    var testTable = new GlideRecord('incident');
    gs.print(testTable.isValid());

### スコープ対応 {#r_GlideRecord-isValid__section_ipl_hfs_mcb}

スコープ対象のアプリケーションで isValid() メソッドを使用するには、対応するスコープ対象の [isValid()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordIsValid "現在のテーブルが有効かどうか、またはレコードが正常に取得されたかどうかを判断します。") メソッドを使用します。

## GlideRecord - isValidField(文字列 columnName) {#ariaid-title62}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| columnName | 文字列 | チェックする列の名前です。 |
[表 : 120. パラメーター]

{#r_GlideRecord-isValidField_String__table_hkx_vpq_dt} {#r_GlideRecord-isValidField_String__table_ikx_vpq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | フィールドがテーブルで定義されている場合は true、されていない場合は false。 |
[表 : 121. 返される内容]

{#r_GlideRecord-isValidField_String__table_ikx_vpq_dt}  
この例では、\[sys_class_name\] フィールドが cmds_software_instance テーブルに存在するかどうかを確認します。

    var gobj = new GlideRecord('sys_db_object');
    gobj.addQuery('name','cmdb_software_instance');
    gobj.query();
    if (!gobj.next()) {
      var si = new GlideRecord('cmdb_software_instance');
      si.query();
      var count = 0;
      while (si.next()) {
        if (!si.isValidField('sys_class_name')) {
          var ci = new GlideRecord('cmdb_ci');
          ci.name = si.name;
          ci.setNewGuidValue(si.sys_id);
          ci.sys_class_name = 'cmdb_software_instance';
          ci.insert();
          count++;
        }
      }
    }

### スコープ対応

スコープ対象のアプリケーションで isValidField() メソッドを使用するには、対応するスコープ対象のメソッド [isValidField()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordIsValidField "指定されたフィールドが現在のテーブルで定義されているかどうかを判断します。") メソッドを使用します。

## GlideRecord - isValidRecord() {#ariaid-title63}

現在のレコードが有効かどうかを判定します。
{#r_GlideRecord-isValidRecord__table_ld5_3qq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 122. パラメーター]

{#r_GlideRecord-isValidRecord__table_ld5_3qq_dt} {#r_GlideRecord-isValidRecord__table_md5_3qq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 現在のレコードが有効かどうかを示すフラグ。 有効な値： * true：レコードは有効です。 * false：レコードセットの終わりを過ぎています。 {#r_GlideRecord-isValidRecord__ul_dqt_bxs_1nb} |
[表 : 123. 返される内容]

{#r_GlideRecord-isValidRecord__table_md5_3qq_dt}  
この例では、渡された sys_id によるレコード識別子がアイデアテーブル内の有効なレコードであるかどうかを確認します。

    function(sysId) {
      this.log('Inside acceptIdea sysId = ' + sysId);
      var now_GR = new GlideRecord('idea');
      now_GR.get(sysId);
      this.log('now_GR.isValidRecord() = ' + now_GR.isValidRecord());
      if(now_GR.isValidRecord()) {
        now_GR.setValue('state', 2);
        this.log('Updating gliderecord');
        this.log('gliderecord table name' + now_GR.getTableName());
        now_GR.update();
      }
    }

### スコープ対応

スコープ対象のアプリケーションで isValidRecord() メソッドを使用するには、対応するスコープ対象のメソッド [isValidRecord()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordIsValidRecord "レコードが実際にレコードのクエリ/取得操作によって返されたかどうかを判断します。") を使用します。

## GlideRecord - newRecord() {#ariaid-title64}

GlideRecord を作成し、フィールドのデフォルト値を設定して、レコードに一意の ID を割り当てます。
{#r_GlideRecord-newRecord__table_pzw_yzw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 124. パラメーター]

{#r_GlideRecord-newRecord__table_pzw_yzw_dt} {#r_GlideRecord-newRecord__table_qzw_yzw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 125. 返される内容]

{#r_GlideRecord-newRecord__table_qzw_yzw_dt}  
この例では、新しいレコードが sys_user テーブルに挿入されているかどうかを確認します。

    var now_GR = new GlideRecord("sys_user");
    now_GR.newRecord();
    now_GR.setValue("user_name", "John Smith");
    gs.print("Is this a new record: " + now_GR.isNewRecord());

    var now_GR2 = new GlideRecord("sys_user");
    now_GR2.addQuery("user_name", "Abel Tutor");
    now_GR2.query();
    now_GR2.next();
    gs.print("Is this a new record: " + now_GR2.isNewRecord());

### スコープ対応

スコープ対象のアプリケーションで newRecord() メソッドを使用するには、対応するスコープ対象のメソッド [newRecord()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordNewRecord "新しい GlideRecord レコードを作成し、フィールドのデフォルト値を設定して、レコードに一意の ID を割り当てます。") を使用します。

## GlideRecord - next() {#ariaid-title65}

GlideRecord の次のレコードに移動します。
このメソッドを使用して、GlideRecord クエリによって返されたレコードを反復処理します。  
注:  
テーブルに「next」と呼ばれるフィールドがある場合、このメソッドは失敗します。その場合は、[_next()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-_next "GlideRecord の次のレコードに移動します。GlideRecord に next という名前の列がある場合に使用する目的で、next() と同じ機能を提供します。") メソッドを使用します。  
注:  
`if(myObj.next())` 構成は、返された最初のレコードのみを処理します。
{#r_GlideRecord-next__table_s2n_yqq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 126. パラメーター]

{#r_GlideRecord-next__table_s2n_yqq_dt} {#r_GlideRecord-next__table_t2n_yqq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | GlideRecord に「next」レコードがあるかどうかを示すフラグ。 有効な値： * true：次のレコードへの移動に成功しました。 * false：結果セットにそれ以上の結果は含まれていません。 {#r_GlideRecord-next__ul_anq_km4_s3b} |
[表 : 127. 返される内容]

{#r_GlideRecord-next__table_t2n_yqq_dt}  
この例は、next() メソッドを使用してインシデントテーブルを反復処理する方法を示しています。

    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) { 
      gs.print(rec.number + ' exists');
    }

### スコープ対応 {#r_GlideRecord-next__section_by3_qfs_mcb}

スコープ対象のアプリケーションで next() メソッドを使用するには、対応するスコープ対象のメソッド [next()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordNext "GlideRecord オブジェクトの次のレコードに移動します。") を使用します。

## GlideRecord - _next() {#ariaid-title66}

GlideRecord の次のレコードに移動します。GlideRecord に next という名前の列がある場合に使用する目的で、next() と同じ機能を提供します。
{#r_GlideRecord-_next__table_nwr_3rq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 128. パラメーター]

{#r_GlideRecord-_next__table_nwr_3rq_dt} {#r_GlideRecord-_next__table_owr_3rq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | クエリセットにさらにレコードがある場合は true。 |
[表 : 129. 返される内容]

{#r_GlideRecord-_next__table_owr_3rq_dt}  

    var rec = new GlideRecord('sys_template');
    rec.query();
    while (rec._next()) { 
      gs.print(rec.number + ' exists');
    }

### スコープ対応 {#r_GlideRecord-_next__section_ucp_vcs_mcb}

スコープ対象のアプリケーションで _next() メソッドを使用するには、対応するスコープ対象のメソッド [_next()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#SGR-_next "GlideRecord の次のレコードに移動します。next() と同じ機能を提供します。このメソッドは GlideRecord に next という名前の列がある場合に使用します。") を使用します。

## GlideRecord - operation() {#ariaid-title67}

操作が挿入、更新、または削除のいずれであるかを決定します。
操作が分かれば、current.operation() を使用して、各操作を一意に処理できる汎用ビジネスルールを作成できます。

グローバル変数 current の使用については、 [ビジネスルールのグローバル変数](https://www.servicenow.com/docs/access?context=c_BusinessRules&version=xanadu&pubname=xanadu-application-development&section=c_UsingPredefinedGlobalVariables&ft:locale=en-US)を参照してください。
{#r_GlideRecord-operation__table_a3h_wrq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 130. パラメーター]

{#r_GlideRecord-operation__table_a3h_wrq_dt} {#r_GlideRecord-operation__gr-operation-returns__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 現在の操作。 可能な値： * delete * insert * update {#r_GlideRecord-operation__ul_bnp_xs3_bpb} |
[表 : 131. 返される内容]

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

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

この例は、operation() メソッドを使用して操作の値を startFlow() メソッドに渡す方法を示しています。

    function createNewTransferOrder() {
      var toGr = new GlideRecord("alm_transfer_order");
      toGr.initialize();
      // From Stockroom - Southern California Warehouse
      toGr.setValue('from_stockroom', fromStockroomSysId);
      // To Stockroom - San Diego North - Pickup/Dropoff
      toGr.setValue('to_stockroom', toStockroomSysId);
      var transferOrder = toGr.insert();

      if(toGr.get(transferOrder)){
      // Start Transfer Order Workflow
      var wf = new Workflow();
      var context = wf.startFlow(toWorkflowSysId, toGr, toGr.operation(),{});
        createNewTransferOrderLine(transferOrder);
      } 
    }

### スコープ対応

スコープ対象のアプリケーションで operation() メソッドを使用するには、対応するスコープ対象のメソッド [operation()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordOperation "操作が挿入、更新、または削除のいずれであるかを決定します。") を使用します。

## GlideRecord - orderBy(文字列 fieldName) {#ariaid-title68}

クエリセットの順序付けに使用するフィールド名、または動的属性ストア内の属性へのパスを指定します。複数のフィールドで並べ替えるには、このメソッドを異なるフィールド値で複数回呼び出します。
{#r_GlideRecord-orderBy_String__table_rr5_fsq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | クエリセットを順序付けるテーブルフィールド名、または動的属性ストア内の属性へのパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。 |
[表 : 132. パラメーター]

{#r_GlideRecord-orderBy_String__table_rr5_fsq_dt} {#r_GlideRecord-orderBy_String__table_sr5_fsq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 133. 返される内容]

{#r_GlideRecord-orderBy_String__table_sr5_fsq_dt}  
この例は、「order」の次に「number」で設定されたクエリを並べ替える方法を示しています。

    function UpdateProjectWBS(project) {
      var count = 0;
      var child = new GlideRecord('pm_project_task');
      child.addQuery('parent', project.sys_id);
      child.orderBy('order');
      child.orderBy('number');
      child.query();
      var len = child.getRowCount().toString().length;
      var seq = 0;
      while (child.next()) {
        count += UpdateProjectTaskWBS(child, 1, ++seq, len, '');
      }
      gs.addInfoMessage(count + ' Project Tasks updated');
    }

この例では、動的属性ストア内の属性によって設定されたクエリを並べ替える方法を示します。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.orderBy('attribute_store->caller_id->first_name');
    gr_Inc.query();

    while(gr_Inc.next()) {
      gs.info("first_name: " + gr_Inc.getValue('attribute_store->caller_id->first_name'));
    }

出力:

    *** Script: first_name: Alejandro
    *** Script: first_name: Bertie
    *** Script: first_name: Beth
    *** Script: first_name: Bow
    *** Script: first_name: Bud
    *** Script: first_name: Carol
    *** Script: first_name: Charlie
    *** Script: first_name: Christen
    *** Script: first_name: David

### スコープ対応 {#r_GlideRecord-orderBy_String__section_slw_vfs_mcb}

スコープ対象のアプリケーションで orderBy() メソッドを使用するには、対応するスコープ対象のメソッド [orderBy()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordOrderBy_String "orderBy 列を指定します。") を使用します。

## GlideRecord - orderByDesc(文字列 fieldName) {#ariaid-title69}

クエリセットを降順で並べ替えるために使用する動的属性ストアのフィールドまたは属性を指定します。
{#r_GlideRecord-orderByDesc_String__table_yht_ysq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| fieldName | 文字列 | クエリセットを降順で並べ替えるテーブルフィールド名、または動的属性ストア内の属性へのパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。 |
[表 : 134. パラメーター]

{#r_GlideRecord-orderByDesc_String__table_yht_ysq_dt} {#r_GlideRecord-orderByDesc_String__table_zht_ysq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 135. 返される内容]

{#r_GlideRecord-orderByDesc_String__table_zht_ysq_dt}  
この例ではクエリセットを昇順または降順で並べ替える方法を示します。

    function(fiscalType, orderByDesc) {
      var now_GR = new GlideRecord('fiscal_period');
      now_GR.addQuery('fiscal_type', fiscalType);
      if (orderByDesc) {
        now_GR.orderByDesc('fiscal_start_date_time');
      } else {
        now_GR.orderBy('fiscal_start_date_time');
      }
      now_GR.setLimit(1);
      now_GR.query();
      now_GR.next();
      return now_GR.sys_id;
    }

この例では、動的属性ストア内の属性によって設定されたクエリを並べ替える方法を示します。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.orderByDesc('attribute_store->caller_id->first_name');
    gr_Inc.query();

    while(gr_Inc.next()) {
      gs.info("first_name: " + gr_Inc.getValue('attribute_store->caller_id->first_name'));
    }

出力:


    *** Script: first_name: David
    *** Script: first_name: Christen
    *** Script: first_name: Charlie
    *** Script: first_name: Carol
    *** Script: first_name: Bud
    *** Script: first_name: Bow
    *** Script: first_name: Beth
    *** Script: first_name: Bertie
    *** Script: first_name: Alejandro

### スコープ対応

スコープ対象のアプリケーションで orderByDesc() メソッドを使用するには、対応するスコープ対象のメソッド [orderByDesc()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordOrderByDesc_String "降順の orderBy 列を指定します。") を使用します。

## GlideRecord - query(文字列 field, 文字列 value) {#ariaid-title70}

addQuery() や addEncodedQuery() などのクエリメソッドで指定されたフィルターに基づいてテーブルに対してクエリを実行します。
このメソッドは、GlideRecord テーブルおよびそのテーブルの参照に対してクエリを実行します。詳細については、「 [スクリプトでのテーブルのクエリ](https://servicenow-prod.fluidtopics.net/ZRCwdwRQBGQX8IO3sJfPPw#c_UsingGlideRecordToQueryTables "GlideRecord API のメソッドを使用すると、テーブルからすべてのレコードを返したり、テーブルから特定の条件を満たすレコードを返したり、テキストインデックスグループ内の単一のテーブルまたは複数のテーブルから文字列を含むレコードを返したりできます。")」を参照してください。  
注:  
テーブルに「query」と呼ばれるフィールドがある場合、このメソッドは失敗します。その場合は、 [_query()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-_query_Object_Object "addQuery() や addEncodedQuery() などのクエリメソッドで指定されたフィルターに基づいてテーブルに対してクエリを実行します。 このメソッドは、「query」という名前の列があるテーブルで使用するためのものです。このような列のために、query() メソッドの実行中にエラーが発生する可能性があります。")メソッドを使用します。ドメインセパレーションされたインスタンスでクエリを実行するには、[queryNoDomain()](https://servicenow-prod.fluidtopics.net/UU8iPPWC0AAbYz713AvFjQ#r_GlideRecord-queryNoDomain_Object_Object "ドメインセパレーションインスタンスで使用されます。query() と同様に、addQuery() および addEncodedQuery() で指定されたフィルターに基づいてテーブルに対してクエリを実行しますが、ドメインは無視します。") メソッドを使用します。

クエリの構築と実行の詳細については、[GlideRecord](https://developer.servicenow.com/dev.do#!/learn/courses/utah/app_store_learnv2_scripting_utah_scripting_in_servicenow/app_store_learnv2_scripting_utah_server_side_scripting/app_store_learnv2_scripting_utah_gliderecord) についての記事を参照してください。  
関連項目：

* [GlideAggregate :グローバル](https://servicenow-prod.fluidtopics.net/OkVjJD8cvhKKn5xMzMagLw#c_GlideAggregateAPI "GlideAggregate API を使用すると、データベース集計クエリーを作成できます。")
* [GlideQuery()](https://servicenow-prod.fluidtopics.net/RcspbEr5LZgw4kDXNxORuQ#GlideQueryGlobalAPI "GlideQuery スクリプトインクルードは、サーバーサイドスクリプトからレコードデータに対して CRUD 操作を実行するための GlideRecord API の代替です。"){#r_GlideRecord-query_Object_Object__gr-api-global-link2gquery-api}
{#r_GlideRecord-query_Object_Object__gr-api-global-link2gquery-api}
* [GlideQueryCondition - グローバル](https://servicenow-prod.fluidtopics.net/7xcSFrqK7Zi2I17oNUDSZQ#c_GlideQueryConditionAPI "GlideQueryCondition API には、現在の条件に追加できる追加の AND 条件または OR 条件が用意されており、複雑なクエリーを作成することができます。")
{#r_GlideRecord-query_Object_Object__ul_qcl_14d_lpb}
{#r_GlideRecord-query_Object_Object__id_g13_kwd_lpb__entry__3}

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

{#r_GlideRecord-query_Object_Object__id_g13_kwd_lpb} {#r_GlideRecord-query_Object_Object__table_qsd_ntq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 137. 返される内容]

{#r_GlideRecord-query_Object_Object__table_qsd_ntq_dt}  
次の例は、クエリフィールドを含むテーブルのシステムディクショナリ \[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

### スコープ対応 {#r_GlideRecord-query_Object_Object__section_xt2_zfs_mcb}

スコープ対象のアプリケーションで query() メソッドを使用するには、対応するスコープ対象のメソッド [query()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordQuery_Object_Object "addQuery() や addEncodedQuery() などのクエリメソッドで指定されたフィルターに基づいてテーブルに対してクエリを実行します。") を使用します。

## GlideRecord - _query(文字列 field, 文字列 value) {#ariaid-title71}

addQuery() や addEncodedQuery() などのクエリメソッドで指定されたフィルターに基づいてテーブルに対してクエリを実行します。
このメソッドは、「query」という名前の列があるテーブルで使用するためのものです。このような列のために、query() メソッドの実行中にエラーが発生する可能性があります。
このメソッドは、GlideRecord テーブルおよびそのテーブルの参照に対してクエリを実行します。詳細については、「 [スクリプトでのテーブルのクエリ](https://servicenow-prod.fluidtopics.net/ZRCwdwRQBGQX8IO3sJfPPw#c_UsingGlideRecordToQueryTables "GlideRecord API のメソッドを使用すると、テーブルからすべてのレコードを返したり、テーブルから特定の条件を満たすレコードを返したり、テキストインデックスグループ内の単一のテーブルまたは複数のテーブルから文字列を含むレコードを返したりできます。")」を参照してください。

クエリの構築と実行の詳細については、[GlideRecord](https://developer.servicenow.com/dev.do#!/learn/courses/utah/app_store_learnv2_scripting_utah_scripting_in_servicenow/app_store_learnv2_scripting_utah_server_side_scripting/app_store_learnv2_scripting_utah_gliderecord) についての記事を参照してください。  
関連項目：

* [GlideAggregate :グローバル](https://servicenow-prod.fluidtopics.net/OkVjJD8cvhKKn5xMzMagLw#c_GlideAggregateAPI "GlideAggregate API を使用すると、データベース集計クエリーを作成できます。")
* [GlideQuery()](https://servicenow-prod.fluidtopics.net/RcspbEr5LZgw4kDXNxORuQ#GlideQueryGlobalAPI "GlideQuery スクリプトインクルードは、サーバーサイドスクリプトからレコードデータに対して CRUD 操作を実行するための GlideRecord API の代替です。"){#r_GlideRecord-_query_Object_Object__gr-api-global-link2gquery-api}
{#r_GlideRecord-_query_Object_Object__gr-api-global-link2gquery-api}
* [GlideQueryCondition - グローバル](https://servicenow-prod.fluidtopics.net/7xcSFrqK7Zi2I17oNUDSZQ#c_GlideQueryConditionAPI "GlideQueryCondition API には、現在の条件に追加できる追加の AND 条件または OR 条件が用意されており、複雑なクエリーを作成することができます。")
{#r_GlideRecord-_query_Object_Object__ul_qcl_14d_lpb}
{#r_GlideRecord-_query_Object_Object__id_z1c_ptd_lpb__entry__3}

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

{#r_GlideRecord-_query_Object_Object__id_z1c_ptd_lpb} {#r_GlideRecord-_query_Object_Object__table_dvc_s5q_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 139. 返される内容]

{#r_GlideRecord-_query_Object_Object__table_dvc_s5q_dt}  
次の例は、ナレッジフィードバック \[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?

### スコープ対応 {#r_GlideRecord-_query_Object_Object__section_u4j_xcs_mcb}

スコープ対象のアプリケーションで _query() メソッドを使用するには、対応するスコープ対象のメソッド [_query()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#SGR-_query_O_O "addQuery() や addEncodedQuery() などのクエリメソッドで指定されたフィルターに基づいてテーブルに対してクエリを実行します。 このメソッドは、「query」という名前の列があるテーブルで使用するためのものです。このような列のために、query() メソッドの実行中にエラーが発生する可能性があります。") を使用します。

## GlideRecord - queryNoDomain(文字列 field, 文字列 value) {#ariaid-title72}

ドメインセパレーションインスタンスで使用されます。query() と同様に、addQuery() および addEncodedQuery() で指定されたフィルターに基づいてテーブルに対してクエリを実行しますが、ドメインは無視します。
このメソッドは、GlideRecord テーブルおよびそのテーブルの参照に対してクエリを実行します。詳細については、「 [スクリプトでのテーブルのクエリ](https://servicenow-prod.fluidtopics.net/ZRCwdwRQBGQX8IO3sJfPPw#c_UsingGlideRecordToQueryTables "GlideRecord API のメソッドを使用すると、テーブルからすべてのレコードを返したり、テーブルから特定の条件を満たすレコードを返したり、テキストインデックスグループ内の単一のテーブルまたは複数のテーブルから文字列を含むレコードを返したりできます。")」を参照してください。
{#r_GlideRecord-queryNoDomain_Object_Object__id_n1d_1jk_lpb__entry__3}

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

{#r_GlideRecord-queryNoDomain_Object_Object__id_n1d_1jk_lpb} {#r_GlideRecord-queryNoDomain_Object_Object__table_w2k_25q_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 141. 返される内容]

{#r_GlideRecord-queryNoDomain_Object_Object__table_w2k_25q_dt}  
この例は、すべてのドメインのインシデントテーブルをクエリする方法を示しています。

    var rec = new GlideRecord('incident');
    rec.queryNoDomain();
    while (rec.next()) { 
     gs.print(rec.number + ' exists');
    }

## GlideRecord - restoreLocation() {#ariaid-title73}

現在のレコードを saveLocation() で保存されたレコードに設定します。saveLocation() が呼び出されていない場合、現在のレコードは GlideRecord の最初のレコードに設定されます。
{#r_GlideRecord-restoreLocation_Boolean__table_vgz_jvq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 142. パラメーター]

{#r_GlideRecord-restoreLocation_Boolean__table_vgz_jvq_dt} {#r_GlideRecord-restoreLocation_Boolean__table_wgz_jvq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 143. 返される内容]

{#r_GlideRecord-restoreLocation_Boolean__table_wgz_jvq_dt}  
この例は、現在のレコードの場所を保存し、次のレコードに移動してから、保存された場所に戻る方法を示しています。

    function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      now_GR.next();
      var firstID = now_GR.getValue("sys_id");
      now_GR.next();
      var restoreID = now_GR.getValue("sys_id");
      now_GR.saveLocation();
      now_GR.next();
      var lastID = now_GR.getValue("sys_id");
      now_GR.restoreLocation();
      now_GR.next();
      var thisID = now_GR.getValue("sys_id");
      var progress = "first id=" + firstID
        + "\n\t last id=" + lastID
        + "\n\t saved id=" + restoreID
        + "\n\t restored id=" + thisID;
      gs.print("Progress:\n\t" + progress);
    }

## GlideRecord - saveLocation() {#ariaid-title74}

現在の行番号を保存して、restoreLocation() メソッドを使用してこの場所に戻ることができるようにします。
{#r_GlideRecord-saveLocation__table_xpb_zvq_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 144. パラメーター]

{#r_GlideRecord-saveLocation__table_xpb_zvq_dt} {#r_GlideRecord-saveLocation__table_ypb_zvq_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 145. 返される内容]

{#r_GlideRecord-saveLocation__table_ypb_zvq_dt}  
この例は、現在のレコードの場所を保存し、次のレコードに移動してから、保存された場所に戻る方法を示しています。

    function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      now_GR.next();
      var firstID = now_GR.getValue("sys_id");
      now_GR.next();
      var restoreID = now_GR.getValue("sys_id");
      now_GR.saveLocation();
      now_GR.next();
      var lastID = now_GR.getValue("sys_id");
      now_GR.restoreLocation();
      now_GR.next();
      var thisID = now_GR.getValue("sys_id");
      var progress = "first id=" + firstID
        + "\n\t last id=" + lastID
        + "\n\t saved id=" + restoreID
        + "\n\t restored id=" + thisID;
      gs.print("Progress:\n\t" + progress);
    }

## GlideRecord - setAbortAction(ブーリアン b) {#ariaid-title75}

次のデータベースアクション (挿入、更新、削除) を中止するかどうかを示すフラグを設定します。
`onBefore` ビジネスルールで使用して、データベースアクションが実行されないようにします。ビジネスルールは、setAbortAction() が呼び出された後も実行を続けます。setAbortAction() を呼び出しても、後続のビジネスルールの実行は停止されません。このメソッドを呼び出すと、データベースアクションの実行のみが防止されます。
{#r_GlideRecord-setAbortAction_Boolean__table_dch_kgw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| b | ブーリアン | 次のアクションを中止する場合は true、次のアクションを許可する場合は false。 |
[表 : 146. パラメーター]

{#r_GlideRecord-setAbortAction_Boolean__table_dch_kgw_dt} {#r_GlideRecord-setAbortAction_Boolean__table_ech_kgw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 147. 返される内容]

{#r_GlideRecord-setAbortAction_Boolean__table_ech_kgw_dt}  

    if ((!current.u_date1.nil()) && (!current.u_date2.nil())) {
      var start = current.u_date1.getGlideObject().getNumericValue();
      var end = current.u_date2.getGlideObject().getNumericValue();
      if (start > end) {
        gs.addInfoMessage('start must be before end');
        current.u_date1.setError('start must be before end');
        current.setAbortAction(true);
      }
    }

### スコープ対応 {#r_GlideRecord-setAbortAction_Boolean__section_qbn_bgs_mcb}

スコープ対象のアプリケーションで setAbortAction() メソッドを使用するには、対応するスコープ対象のメソッド [setAbortAction()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordSetAbortAction_Boolean "次のデータベースアクション (挿入、更新、削除) を中止するかどうかを示すフラグを設定します。これはビジネスルールでよく使用されます。") を使用します。

## GlideRecord - setDisplayValue(文字列 name, オブジェクト value) {#ariaid-title76}

指定されたフィールド、または動的属性ストア内の属性を、指定された表示値に設定します。
参照フィールドの場合、これはテーブルの表示値です。日付/時刻の場合、これは発信者の現在のタイムゾーンの時刻です。
{#r_GlideRecord-setDisplayValue_String_Object__table_ijf_wgw_dt__entry__3}{#r_GlideRecord-setDisplayValue_String_Object__DynS-name-entry}{#r_GlideRecord-setDisplayValue_String_Object__DynS-value-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 値を設定するフィールドの名前、または動的属性ストア内の属性へのパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
| 値 | オブジェクト | 指定された属性に設定する値。 注: 動的属性の場合、次のデータタイプのみがサポートされます。 * ブーリアン (true/false) * 10 進数 * 浮動小数点数 * GlideDate * GlideDateTime * 整数 * 文字列 |
[表 : 148. パラメーター]

{#r_GlideRecord-setDisplayValue_String_Object__table_ijf_wgw_dt} {#r_GlideRecord-setDisplayValue_String_Object__table_jjf_wgw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 149. 返される内容]

{#r_GlideRecord-setDisplayValue_String_Object__table_jjf_wgw_dt}  
次のコード例は、レコードに表示値を設定し、レコードを更新する方法を示しています。

    var now_GR = new GlideRecord('incident');
    now_GR.get('46f09e75a9fe198100f4ffd8d366d17b');
    now_GR.setDisplayValue('opened_at','2011-02-13 4:30:00');
    now_GR.update();

次のコード例は、動的属性ストアに表示値を設定する方法を示しています。

    var gr_AppTab = new GlideRecord('application_table'); 
    gr_AppTab.setValue('dyn_att_field->group->attr', 42); 
    gr_AppTab.setDisplayValue('dyn_att_field->group->attr2, true);
    gr_AppTab.update();
    gs.info('Attr value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->group->attr);
    gs.info('Attr2 value: ' + 
    gr_AppTab.getDisplayValue('dyn_att_field->group->attr2);

## GlideRecord - setDynamicAttributeValue(文字列 fullPath, オブジェクト値) {#ariaid-title77}

指定したパスにある動的属性の値を設定します。
{#GR-setDynamicAttributeValue_S_O__table_ynk_tdx_1bc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フルパス | 文字列 | 目的の動的属性を見つけるために使用するパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
| 値 | オブジェクト | 指定された動的属性を設定する値。 渡される値は、次のいずれかのデータタイプである必要があります。 * ブーリアン (true/false) * 10 進数 * 浮動小数点数 * GlideDate * GlideDateTime * 整数 * 文字列 {#GR-setDynamicAttributeValue_S_O__DynS-valid_data_types-ul} |
[表 : 150. パラメーター]

{#GR-setDynamicAttributeValue_S_O__table_ynk_tdx_1bc} {#GR-setDynamicAttributeValue_S_O__table_znk_tdx_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 動的属性が正常に更新されたかどうかを示すフラグ。 可能な値： * true:動的属性が正常に更新されました。 * false:エラーが発生しました。動的属性が更新されませんでした。fullPathパラメーターに、目的の属性への有効なパスが含まれていることを確認します。 |
[表 : 151. 返される内容]

{#GR-setDynamicAttributeValue_S_O__table_znk_tdx_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setValue('inc_dynamic_groups', '78db044fc4b44210f8770961513dd7fe'); //Sysid of cars dimensions group
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->color","black");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->make","Honda");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->model","CRV");
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->luxury",false);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->cost",20000);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->avg_mpg",28.4);
    gr_Inc.setDynamicAttributeValue("inc_dynamic_schema->cars->date_purchased", new GlideDateTime());
    gr_Inc.setValue("inc_dynamic_schema->cars->total_miles", 10000.12345);
    gr_Inc.insert();

## GlideRecord - setDynamicAttributeValue(文字列 dynamicAttributeField, 文字列 groupAttrPath, オブジェクト値) {#ariaid-title78}

現在の GlideRecord の指定されたフィールドにある動的属性の値と指定された属性パスを設定します。
{#GR-setDynamicAttributeValue_S_S_O__table_l12_f2x_1bc__entry__3}{#GR-setDynamicAttributeValue_S_S_O__DynS-dynamicAttributeField-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| dynamicAttributeField | 文字列 | 動的属性を含むテーブル内のフィールドの名前。 |
| attributePath | 文字列 | 関連する動的スキーマ属性を見つけるために使用する属性パス。 フォーマット:「 `group_name->attr_name」` * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの \[名前\] フィールドまたは動的属性 \[dynamic_attribute\] テーブルの \[グループ\] フィールドにあります。 * `attr_name`:動的グループ内の動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの \[名前\] フィールドにあります。 例 `:「car->color」` |
| 値 | オブジェクト | 指定された動的属性を設定する値。 渡される値は、次のいずれかのデータタイプである必要があります。 * ブーリアン (true/false) * 10 進数 * 浮動小数点数 * GlideDate * GlideDateTime * 整数 * 文字列 {#GR-setDynamicAttributeValue_S_S_O__DynS-valid_data_types-ul} |
[表 : 152. パラメーター]

{#GR-setDynamicAttributeValue_S_S_O__table_l12_f2x_1bc} {#GR-setDynamicAttributeValue_S_S_O__table_m12_f2x_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 動的属性が正常に更新されたかどうかを示すフラグ。 可能な値： * true:動的属性が正常に更新されました。 * false:エラーが発生しました。動的属性が更新されませんでした。dynamicAttributeFieldパラメーターとgroupAttrPathパラメーターに有効なデータが含まれていることを確認してください。 |
[表 : 153. 返される内容]

{#GR-setDynamicAttributeValue_S_S_O__table_m12_f2x_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    // Update the value of the attribute 'attribute_store->car->time_of_purchase' incident `INC0009009` to a timestamp (in UTC)
    var gr1 = new GlideRecord('incident');
    gr1.get('number', 'INC0009009');
    gr1.setDynamicAttributeValue('attribute_store', 'car->time_of_purchase', '2020-05-13 13:52:44');
    gr1.update();

    // Then retrieve the value of the attribute on the same record
    var gr2 = new GlideRecord('incident');
    gr2.get('number', 'INC0009009');
    gs.info("Time of Purchase Value        (UTC): " + gr2.getDynamicAttributeValue('attribute_store', 'car->time_of_purchase'));
    gs.info("Time of Purchase DisplayValue (PST): " + gr2.getDynamicAttributeDisplayValue('attribute_store', 'car->time_of_purchase'));

出力:

    *** Script: Time of Purchase Value        (UTC): 2020-05-13 13:52:44
    *** Script: Time of Purchase DisplayValue (PST): 2020-05-13 06:52:44

## GlideRecord - setDynamicAttributeDisplayValue(文字列 fullPath, オブジェクト値) {#ariaid-title79}

指定したパスにある動的属性の表示値を設定します。
{#GR-setDynAttributeDisplayValue_S_O__table_g4h_s2x_1bc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| フルパス | 文字列 | 表示値を更新する動的属性を見つけるために使用するパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 |
| 値 | オブジェクト | 指定された動的属性の設定先の値を表示します。 渡される値は、次のいずれかのデータタイプである必要があります。 * ブーリアン (true/false) * 10 進数 * 浮動小数点数 * GlideDate * GlideDateTime * 整数 * 文字列 {#GR-setDynAttributeDisplayValue_S_O__DynS-valid_data_types-ul} |
[表 : 154. パラメーター]

{#GR-setDynAttributeDisplayValue_S_O__table_g4h_s2x_1bc} {#GR-setDynAttributeDisplayValue_S_O__table_h4h_s2x_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 動的属性の表示値が正常に更新されたかどうかを示すフラグ。 可能な値： * true:動的属性の表示値が正常に更新されました。 * false:エラーが発生しました。動的属性の表示値が更新されませんでした。fullPathパラメーターに、目的の属性への有効なパスが含まれていることを確認します。 |
[表 : 155. 返される内容]

{#GR-setDynAttributeDisplayValue_S_O__table_h4h_s2x_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var grProdTab = new GlideRecord('products_table');
    grProdTab.query();
    grProdTab.next();
    var val = grProdTab.setDynamicAttributeDisplayValue('product_details->cars->date_purchased', '2023-03-31 08:54:26');

## GlideRecord - setDynamicAttributeDisplayValue(文字列 dynamicAttributeField, 文字列 groupAttrPath, オブジェクト値) {#ariaid-title80}

現在の GlideRecord の指定されたフィールドにある動的属性の表示値と指定された属性パスを設定します。
{#GR-setDynAttributeDisplayValue_S_S_O__table_l1k_1fx_1bc__entry__3}{#GR-setDynAttributeDisplayValue_S_S_O__DynS-dynamicAttributeField-entry}

| 名前 | タイプ | 説明 |
|-|-|-|
| dynamicAttributeField | 文字列 | 動的属性を含むテーブル内のフィールドの名前。 |
| groupAttrPath | 文字列 | 関連する動的スキーマ属性を見つけるために使用する属性パス。 フォーマット:「 `group_name->attr_name」` * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの \[名前\] フィールドまたは動的属性 \[dynamic_attribute\] テーブルの \[グループ\] フィールドにあります。 * `attr_name`:動的グループ内の動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの \[名前\] フィールドにあります。 例 `:「car->color」` |
| 値 | オブジェクト | 指定された動的属性の設定先の値を表示します。 渡される値は、次のいずれかのデータタイプである必要があります。 * ブーリアン (true/false) * 10 進数 * 浮動小数点数 * GlideDate * GlideDateTime * 整数 * 文字列 {#GR-setDynAttributeDisplayValue_S_S_O__DynS-valid_data_types-ul} |
[表 : 156. パラメーター]

{#GR-setDynAttributeDisplayValue_S_S_O__table_l1k_1fx_1bc} {#GR-setDynAttributeDisplayValue_S_S_O__table_m1k_1fx_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| ブーリアン | 動的属性の表示値が正常に更新されたかどうかを示すフラグ。 可能な値： * true:動的属性の表示値が正常に更新されました。 * false:エラーが発生しました。動的属性の表示値が更新されませんでした。dynamicAttributeFieldパラメーターとgroupAttrPathパラメーターに有効なデータが含まれていることを確認してください。 |
[表 : 157. 返される内容]

{#GR-setDynAttributeDisplayValue_S_S_O__table_m1k_1fx_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var grProdTab = new GlideRecord('products_table');
    grProdTab.query();
    grProdTab.next();
    var val = grProdTab.setDynamicAttributeDisplayValue('product_details', 'cars->date_purchased', '2023-03-31 08:54:26');

## GlideRecord - setDynamicAttributeValues(文字列 dynamicAttributeField, GlideDynamicAttributeStore 値) {#ariaid-title81}

渡された GlideDynamicAttributeStore オブジェクトで指定された値を使用して 1 つ以上の動的属性値を設定します。
このメソッドは、引数として渡された属性と値のみを更新します。指定されていない GlideRecord の属性と値は、この呼び出しの影響を受けません。無効なグループ、属性、または値はすべて無視されます。考えられるエラー情報については、ログメッセージを確認してください。
{#GR-setDynAttributeValues_S_O__table_r5l_4fx_1bc__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| dynamicAttributeField | 文字列 | [動的スキーマ](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)を含む現在のテーブル内のフィールドの名前。 |
| 値 | [GlideDynamicAttributeStore](https://servicenow-prod.fluidtopics.net/G893woRUx7uhXLOAt3SI_w#GlideDynamicAttStoreAPI "GlideDynamicAttributeStore API は、文字列、日付、日付/時刻などの他のデータ型と同様に、新しい組み込みの動的属性ストアデータ型へのアクセスを提供します。") | 更新する動的属性を含む GlideDynamicAttributeStore オブジェクト。 オブジェクトに入力される値は、次のデータタイプである必要があります。 * ブーリアン (true/false) * 10 進数 * 浮動小数点数 * GlideDate * GlideDateTime * 整数 * 文字列 {#GR-setDynAttributeValues_S_O__ul_qjm_bc2_bbc} |
[表 : 158. パラメーター]

{#GR-setDynAttributeValues_S_O__table_r5l_4fx_1bc} {#GR-setDynAttributeValues_S_O__table_s5l_4fx_1bc__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 159. 返される内容]

{#GR-setDynAttributeValues_S_O__table_s5l_4fx_1bc}  
次のコード例は、このメソッドを呼び出す方法を示しています。

    var das = new GlideDynamicAttributeStore();
    das.setDynamicAttributeValue('group->attribute1', 'Apple');
    das.setDynamicAttributeValue('group->attribute2', 1234);

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.query();
    gr_Inc.next();
    gr_Inc.setDynamicAttributeValues(das);

## GlideRecord - setForceUpdate(ブーリアン force) {#ariaid-title82}

フィールドが変更されていない場合でもレコードを更新します。
{#r_GlideRecord-setForceUpdate_Boolean__table_eds_lhw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| force | ブーリアン | フィールドが変更されていない場合でも更新する場合は true、更新しない場合は false。 |
[表 : 160. パラメーター]

{#r_GlideRecord-setForceUpdate_Boolean__table_eds_lhw_dt} {#r_GlideRecord-setForceUpdate_Boolean__table_fds_lhw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 161. 返される内容]

{#r_GlideRecord-setForceUpdate_Boolean__table_fds_lhw_dt}  
この例は、itfm_cost_model テーブル内のレコードを変更せずに強制的に更新する方法を示しています。

    function() {
      gs.log("Update Script: Upgrade_cost_model_data.js started");
      var now_GR = new GlideRecord("itfm_cost_model");
      now_GR.initialize();
      now_GR.addNullQuery("source_table");
      now_GR.query();
      while (now_GR.next()) {
        now_GR.setForceUpdate(true);
        var sourceTable = getSourceTable(now_GR.getValue('clone_from'));
        if(sourceTable){
          now_GR.setValue("source_table", sourceTable);
          now_GR.setWorkflow(false);
          now_GR.update();
        }
      }
    }

## GlideRecord - setLimit(数値 limit) {#ariaid-title83}

クエリから GlideRecord で返すレコードの最大数を設定します。
{#r_GlideRecord-setLimit_Number__table_pcb_whw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| limit | 数値 | フェッチするレコードの制限。 |
[表 : 162. パラメーター]

{#r_GlideRecord-setLimit_Number__table_pcb_whw_dt} {#r_GlideRecord-setLimit_Number__table_qcb_whw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 163. 返される内容]

{#r_GlideRecord-setLimit_Number__table_qcb_whw_dt}  
この例では、クエリで返されるレコードの数を最大 10 に設定します。

    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(10);
    now_GR.query();

### スコープ対応 {#r_GlideRecord-setLimit_Number__section_vrk_dgs_mcb}

スコープ対象のアプリケーションで setLimit() メソッドを使用するには、対応するスコープ対象のメソッド [setLimit()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordSetLimit_Number "GlideRecord クエリによってフェッチされるレコード数の制限を設定します。") を使用します。

## GlideRecord - setLocation(数値 rowNumber) {#ariaid-title84}

現在の行の場所を指定された値に設定します。
{#r_GlideRecord-setLocation_Number__table_tjd_j3w_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| rowNumber | 数値 | 現在の行として設定する行番号。 |
[表 : 164. パラメーター]

{#r_GlideRecord-setLocation_Number__table_tjd_j3w_dt} {#r_GlideRecord-setLocation_Number__table_ujd_j3w_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 165. 返される内容]

{#r_GlideRecord-setLocation_Number__table_ujd_j3w_dt}  
この例は、インシデントテーブルにレコードの位置を設定する方法を示しています。

    verifySetLocation : function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      var recordIDs = new Array();
      while(now_GR.next()) {
      recordIDs.push(now_GR.getValue("sys_id"));
      }
      for (var ix = recordIDs.length - 1; ix >= 0; ix--) {
        now_GR.setLocation(ix);
        Assert.assertEquals(recordIDs[ix], now_GR.getValue("sys_id"),
          "The entry retrieved for the index " + ix + " is not valid");
      }
    }

## GlideRecord - setNewGuid() {#ariaid-title85}

新しい GUID を生成し、現在のレコードに対する一意の ID (sys_id) として設定します。
この関数は新しいレコードにのみ適用されます。既存のレコードの GUID は変更できません。
{#r_GlideRecord-setNewGuid__table_mjn_r3w_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 166. パラメーター]

{#r_GlideRecord-setNewGuid__table_mjn_r3w_dt} {#r_GlideRecord-setNewGuid__table_njn_r3w_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 現在のレコードの sys_id。 |
[表 : 167. 返される内容]

{#r_GlideRecord-setNewGuid__table_njn_r3w_dt}  
この例では、新しいタスクレコードを作成し、その ID を task_rel_task テーブルに格納します。

    var task = new GlideRecord ('task');
    var tsk_id = task.setNewGuid();
     
    task.description = "Request: " + current.request.number;
    task.description = task.description + "\n" + "Requested by: " + current.request.u_requested_by.name;
    task.description = task.description + "\n" + "Requested for: " + current.request.u_requested_for.name;
    task.description = task.description + "\n" + "Item: " + current.cat_item.name;
     
    var now_GR = new GlideRecord ('task_rel_task');
    //link the incident to the request
    now_GR.parent = current.request;
    now_GR.child = tsk_id;
    now_GR.insert();

## GlideRecord - setNewGuidValue (文字列 guid) {#ariaid-title86}

新しい GUID を生成し、新しいレコードを挿入するときに、現在のレコードに対する一意の ID として設定します。
{#r_GlideRecord-setNewGuidValue_String__table_qgt_1jw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| guid | 文字列 | 新しい GUID の値。 |
[表 : 168. パラメーター]

{#r_GlideRecord-setNewGuidValue_String__table_qgt_1jw_dt} {#r_GlideRecord-setNewGuidValue_String__table_rgt_1jw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 169. 返される内容]

{#r_GlideRecord-setNewGuidValue_String__table_rgt_1jw_dt}  
この例では、新しい GUID を生成し、新しく作成された cmdb_software_instance レコードの一意の ID として設定します。

    var gobj = new GlideRecord('sys_db_object');
    gobj.addQuery('name','cmdb_software_instance');
    gobj.query();
    if (!gobj.next()) {
      var si = new GlideRecord('cmdb_software_instance');
      si.query();
      var count = 0;
      while (si.next()) {
      if (!si.isValidField('sys_class_name')) {
        var ci = new GlideRecord('cmdb_ci');
        ci.name = si.name;
        ci.setNewGuidValue(si.sys_id);
        ci.sys_class_name = 'cmdb_software_instance';
        ci.insert();
        count++;
      }
    }

### スコープ対応

スコープ対象のアプリケーションで setNewGuidValue() メソッドを使用するには、対応するスコープ対象のメソッド [setNewGuidValue()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordSetNewGuidValue_String "現在のレコードの sys_id 値を設定します。") を使用します。

## GlideRecord - setQueryReferences(ブーリアン queryReferences) {#ariaid-title87}

参照フィールドをクエリするときに、参照フィールドの表示名の使用を有効または無効にします。
{#r_GlideRecord-setQueryReferences_Boolean__table_zyr_ljw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| queryReferences | ブーリアン | 生成するデータの時刻を示すフラグ。 有効な値： * true：表示名の文字列を生成します。 * false：sys_id の文字列を生成します。 {#r_GlideRecord-setQueryReferences_Boolean__ul_mts_315_1nb} |
[表 : 170. パラメーター]

{#r_GlideRecord-setQueryReferences_Boolean__table_zyr_ljw_dt} {#r_GlideRecord-setQueryReferences_Boolean__table_azr_ljw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 171. 返される内容]

{#r_GlideRecord-setQueryReferences_Boolean__table_azr_ljw_dt}  

    var grByName = new GlideRecord(this.TEST_TABLE);
    grByName.addQuery("caller_id", userDisplayName);
    grByName.setQueryReferences(true);
    grByName.query();
    if (grByName.hasNext()) {
      while(grByName.next()) {
        gs.print("Incident caller_id=" + grByName.caller_id);
      }
    } else {
      gs.print("NO RESULTS");
    }

## GlideRecord - setUseEngines(ブーリアン e) {#ariaid-title88}

任意のエンジン (承認ルール/アサインルール) の実行を無効または有効にします。
警告:  
エンジンの実行を無効にすると、ServiceNow® インスタンスとその動作に重大な影響を与える可能性があります。本番環境に展開する前に、この変更を十分にテストしてください。
{#r_GlideRecord-setUseEngines_Boolean__table_gdy_vjw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| e | ブーリアン | エンジンの実行を有効または無効にするかどうかを示すフラグ。 有効な値： * true：エンジンを有効にする * false：エンジンを無効にする {#r_GlideRecord-setUseEngines_Boolean__ul_rb1_bwx_zqb} |
[表 : 172. パラメーター]

{#r_GlideRecord-setUseEngines_Boolean__table_gdy_vjw_dt} {#r_GlideRecord-setUseEngines_Boolean__table_hdy_vjw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 173. 返される内容]

{#r_GlideRecord-setUseEngines_Boolean__table_hdy_vjw_dt}  
この例では、クエリを実行する前にエンジンとビジネスルールを無効にする方法を示します。

    function auditOAuthInboundRequestsUsage(){
      var now_GR = new GlideRecord("oauth_credential");
      var oauthClient = now_GR.addJoinQuery("oauth_entity", "peer", "sys_id");
      now_GR.addQuery("type", "access_token");
      now_GR.addQuery("expires", ">", nowDateTime());
      now_GR.addNullQuery("oauth_requestor_profile");
      oauthClient.addCondition("active", "true");
      oauthClient.addCondition("type", "client");
      now_GR.setUseEngines(false);
      now_GR.setWorkflow(false);
      now_GR.query();
      return now_GR.hasNext();
    }

## GlideRecord - setValue(文字列 name, オブジェクト value) {#ariaid-title89}

指定されたフィールド、または動的属性ストア内の属性を指定された値に設定します。
通常、スクリプトは、 `たとえば now_GR.category = value` のような直接割り当てを実行します。ただし、スクリプトで要素名が変数の場合は、`now_GR.setValue(elementName, value)` を使用できます。値を設定するときは、フィールドのデータタイプが入力した値のデータタイプと一致していることを確認してください。  
value パラメーターが null の場合、レコードは更新されず、エラーはスローされません。  
注:  
このメソッドは、ジャーナルフィールドでは使用できません。代わりに [GlideElement.setJournalEntry()](https://servicenow-prod.fluidtopics.net/KTuTJQIwiU7zmj2waBXwgQ#c_GlideElementAPI "GlideElement API には、フィールドとその値を処理するための便利なスクリプトメソッドが多数用意されています。GlideElement メソッドは、現在の Glide レコードのフィールドで使用できます。") を使用してください。  
注:  
列レベル暗号化エンタープライズ プラグインが有効になっていて、インスタンスがキーにアクセスできる場合、このメソッドは暗号化されたデータを暗号化されたフィールドに挿入できます。インスタンスがキーにアクセスできない場合、このメソッドはエラーを返します。詳細については、「 [Platform Encryption](https://www.servicenow.com/docs/access?context=now-platform-encryption&version=xanadu&pubname=xanadu-platform-security&ft:locale=en-US)」を参照してください。
{#r_GlideRecord-setValue_String_Object__table_yps_2kw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| name | 文字列 | 値を設定するフィールドの名前、または動的属性ストア内の属性へのパス。 動的パスの形式: `dyn_att_field->group_name->attribute_name` * `dyn_att_field`:テーブルの動的属性ストアフィールドの名前。 * `group_name`:属性が関連付けられているグループの名前。動的属性グループ \[dynamic_attribute_group\] テーブルの group_name フィールドにあります。 * `attr_name`:動的属性の名前。動的属性 \[dynamic_attribute\] テーブルの属性フィールドにあります。 動的属性の詳細については、「 [Dynamic Schema](https://www.servicenow.com/docs/access?context=dynamic-schema&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。 |
| 値 | オブジェクト | 指定されたフィールドで設定する値。 注: 動的属性の場合、次のデータタイプのみがサポートされます。 * ブーリアン (true/false) * 10 進数 * 浮動小数点数 * GlideDate * GlideDateTime * 整数 * 文字列 {#r_GlideRecord-setValue_String_Object__ul_wrx_cb2_bbc} |
[表 : 174. パラメーター]

{#r_GlideRecord-setValue_String_Object__table_yps_2kw_dt} {#r_GlideRecord-setValue_String_Object__table_zps_2kw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 175. 返される内容]

{#r_GlideRecord-setValue_String_Object__table_zps_2kw_dt}  
この例は、planned_task テーブルのステータスフィールドの値を設定する方法を示しています。

    function() {
      var topTask = new GlideRecord('planned_task');
      topTask.setValue('state', -5);
      var childTask = new GlideRecord('planned_task');
      childTask.setValue('state', -5);
      var s = new PlannedTaskStateManagement(childTask, topTask);
      var state = s.manageStateChange(false);
      Assert.assertEquals("-5", state);
    }

この例では、動的属性の値を設定する方法を示します。

    var gr_Inc = new GlideRecord('incident');
    gr_Inc.setValue('inc_dynamic_groups', '78db044fc4b44210f8770961513dd7fe'); //Sysid of cars dimensions group
    gr_Inc.setValue("inc_dynamic_schema->cars->color", "black");
    gr_Inc.setValue("inc_dynamic_schema->cars->make", "Honda"); 
    gr_Inc.setValue("inc_dynamic_schema->cars->model", "CRV");
    gr_Inc.setValue("inc_dynamic_schema->cars->luxury", false); 
    gr_Inc.setValue("inc_dynamic_schema->cars->cost", 25000);
    gr_Inc.setValue("inc_dynamic_schema->cars->avg_mpg", 28.4);
    gr_Inc.setValue("inc_dynamic_schema->cars->date_purchased", new GlideDateTime());
    gr_Inc.setValue("inc_dynamic_schema->cars->total_miles", 10000.12345);
    gr_Inc.insert();

### スコープ対応

スコープ対象のアプリケーションで setValue() メソッドを使用するには、対応するスコープ対象のメソッド [setValue()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordSetValue_String_Object "指定された名前のフィールドの値を指定された値に設定します。") を使用します。

## GlideRecord - setWorkflow(ブーリアン e) {#ariaid-title90}

後続のアクションによって通常トリガーされるビジネスルールの実行を有効または無効にします。e パラメーターが false に設定されている場合、挿入/更新は監査されません。監査は GlideRecord 操作でパラメーターが true に設定されている場合にのみ行われます。
注:  
後で deleteProblem() または deleteMultiple() メソッドを使用してカスケード削除を行う場合、setWorkflow() メソッドは無視されます。  
警告:  
ビジネスルールの実行を無効にすると、ServiceNow® インスタンスとその動作に重大な影響を与える可能性があります。本番環境に展開する前に、この変更を十分にテストしてください。
{#r_GlideRecord-setWorkFlow_Boolean__table_xdz_skw_dt__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| e | ブーリアン | ビジネスルールの実行を有効または無効にするかどうかを示すフラグ。 有効な値： * true：ビジネスルールを有効にする * false：ビジネスルールを無効にする {#r_GlideRecord-setWorkFlow_Boolean__ul_rb1_bwx_zqb} |
[表 : 176. パラメーター]

{#r_GlideRecord-setWorkFlow_Boolean__table_xdz_skw_dt} {#r_GlideRecord-setWorkFlow_Boolean__table_ydz_skw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 177. 返される内容]

{#r_GlideRecord-setWorkFlow_Boolean__table_ydz_skw_dt}  

    doit('name1','name2'); 
     
    function doit(username1,username2) { 
     
      var usr1 = new GlideRecord('sys_user');
      var usr2 = new GlideRecord('sys_user');
      var num = 0;
     
      if (usr1.get('user_name',username1) && usr2.get('user_name',username2)) {
        var ref;
        var dict = new GlideRecord('sys_dictionary');
        dict.addQuery('reference','sys_user');
        dict.addQuery('internal_type','reference');
        dict.query();
        while (dict.next()) {
          num = 0;
          ref = new GlideRecord(dict.name.toString());
          ref.addQuery(dict.element,usr1.sys_id);
          ref.query();
          while (ref.next()) {
            ref.setValue(dict.element.toString(),usr2.sys_id); 
            ref.setWorkflow(false);
            ref.update();
            num++;
          }
          if (num > 0) {
            gs.print(dict.element + ' changed from ' + usr1.user_name + 
              ' to ' + usr2.user_name + ' in ' + num + ' ' + dict.name + ' records');
          }
        }
      }
    }

### スコープ対応 {#r_GlideRecord-setWorkFlow_Boolean__section_hhf_4gs_mcb}

スコープ対象のアプリケーションで setWorkflow() メソッドを使用するには、対応するスコープ対象の [setWorkflow()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordSetWorkflow_Boolean "ビジネスルール、スクリプトエンジン、および監査の実行を有効または無効にします。") メソッドを使用します。

## GlideRecord - update(オブジェクト reason) {#ariaid-title91}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| 理由 | オブジェクト | オプション。更新の理由。理由は監査レコードに表示されます。 |
[表 : 178. パラメーター]

{#r_GlideRecord-update_Object__table_ovg_wlw_dt} {#r_GlideRecord-update_Object__table_pvg_wlw_dt__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 新規または更新レコードの sys_id。更新に失敗した場合は null を返します。 |
[表 : 179. 返される内容]

{#r_GlideRecord-update_Object__table_pvg_wlw_dt}  
この例では、task_ci テーブルのレコードを更新します。

    var now_GR = new GlideRecord('task_ci');
    now_GR.addQuery();
    now_GR.query();
    var count = now_GR.getRowCount();
    if (count > 0) {
       var allocation = parseInt(10000 / count) / 100;
       while (now_GR.next()) {
          now_GR.u_allocation = allocation;
          now_GR.update();
       }
    }

### スコープ対応 {#r_GlideRecord-update_Object__section_hmx_sgs_mcb}

スコープ対象のアプリケーションで update() メソッドを使用するには、対応するスコープ対象のメソッド [update()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordUpdate_String "行われた変更で GlideRecord を更新します。レコードがまだ存在しない場合は挿入されます。") を使用します。

## GlideRecord - updateMultiple() {#ariaid-title92}

指定された一連の変更を使用して、指定されたクエリの各 GlideRecord を更新します。
ジャーナルエントリの追加については、[setJournalEntry()](https://servicenow-prod.fluidtopics.net/KTuTJQIwiU7zmj2waBXwgQ#r_GlideElement-setJournalEntry_Object_String "ジャーナルエントリと作成者を作業メモまたはコメントフィールドとして追加します。") メソッドを参照してください。

glide.db.forced.chunk.threshold システムプロパティは、チャンクレコードの削除と更新を強制するしきい値を設定します。チャンクは、巨大なテーブルでプライマリキー以外の削除によってレプリケーションの問題が発生するのを防ぐのに役立ちます。詳細については、「[Available system properties](https://www.servicenow.com/docs/access?context=r_AvailableSystemProperties&version=xanadu&pubname=xanadu-platform-administration&ft:locale=en-US)」を参照してください。
注:  
期待される結果を確実に得るには、直接の割り当ての代わりに setValue() メソッドを使用します。つまり、`gr_Now.setValue('<field_name>', '4')); を使用します。``gr_Now.<field_name> = 4` の代わりに。  
注:  
大きなテーブルを操作する場合は、このメソッドと chooseWindow() または setLimit() を一緒に使用しないでください。

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

| 名前 | タイプ | 説明 |
|-|-|-|
| なし |   |   |
[表 : 180. パラメーター]

{#r_GlideRecord-updateMultiple__table_qwk_ysb_2r} {#r_GlideRecord-updateMultiple__table_fj2_htb_2r__entry__2}

| タイプ | 説明 |
|-|-|
| なし |   |
[表 : 181. 返される内容]

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

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

### スコープ対応 {#r_GlideRecord-updateMultiple__section_ncr_rgs_mcb}

スコープ対象のアプリケーションで updateMultiple() メソッドを使用するには、対応するスコープ対象のメソッド [updateMultiple()](https://servicenow-prod.fluidtopics.net/DKnkjnu3r0c8j~e5s2NNhg#r_ScopedGlideRecordUpdateMultiple "指定された一連の変更を使用して、指定されたクエリの各 GlideRecord を更新します。") を使用します。

## GlideRecord - updateWithReferences(オブジェクト reason) {#ariaid-title93}

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

| 名前 | タイプ | 説明 |
|-|-|-|
| 理由 | オブジェクト | 更新の理由。理由は監査レコードに表示されます。 |
[表 : 182. パラメーター]

{#r_GlideRecord-updateWithReferences_Object__id_ltp_jfd_3zb} {#r_GlideRecord-updateWithReferences_Object__id_r1d_kfd_3zb__entry__2}

| タイプ | 説明 |
|-|-|
| 文字列 | 更新されるレコードの sys_id。 |
[表 : 183. 返される内容]

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

    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();
    }


