---
sourceDocument: Xanadu API リファレンス
sourceDocumentLink: https://www.servicenow.com/docs/r/ja-JP/xanadu/api-reference

 Release :

    - xanadu

ft:locale :

    - ja-JP

ft:publication_title :

    - Xanadu API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# StaticMethods - グローバル

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

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

静的メソッドは、サーバーサイドの JavaScript 内で使用できるメソッドですが、クラスや API の一部ではありません。

これらのメソッドには、使用前にコンストラクターやその他のタイプのインスタンス化を行うことなく、サーバースクリプト内で直接アクセスできます。

## 静的メソッド:updateVirtualField(GlideRecord remoteTaskGr, String virtualField, String virtualValue, String virtualDisplayValue) {#ariaid-title2}

サービスブリッジリモートタスクを使用するときに、ターゲットインスタンスのタスクテーブルの仮想フィールドに入力します。
仮想フィールドは、ターゲットタスクテーブルには存在するが、ソースタスクテーブルには存在しないフィールドです。このメソッドを使用して、ソースインスタンスからターゲットインスタンスに仮想フィールドの値を渡します。このメソッドは、指定された [リモートタスク](https://www.servicenow.com/docs/access?context=service-bridge-v2-remote-task-overview&version=xanadu&pubname=xanadu-service-exchange&ft:locale=en-US)のフォームセクションに、仮想フィールドに指定された値を JSON として保存します。このリモートタスクはターゲットインスタンスに同期され、ターゲットタスクテーブルのマッピングされたフィールドに値が格納されます。

仮想フィールドは、リモートタスク定義で定義されます。リモートタスク定義には、ソースインスタンスとターゲットインスタンスのタスクテーブル間でフィールドをマッピングする受信マッピングテーブルと送信マッピングテーブルが含まれています。ターゲットテーブルに存在するフィールドがソーステーブルに含まれていない場合、そのフィールドはリモートタスク定義で仮想フィールドとして構成されます。その後、コンシューマーは、 サービスブリッジ 変換またはこのメソッドを使用して、関連するターゲットタスクレコード内のこれらの仮想フィールド値を更新できます。  
次のセクションでは、仮想フィールドを実装し、 updateVirtualField() メソッドを使用して仮想フィールドに値を入力する方法の使用例について説明します。この例では、リモートタスク定義によって結合されている 2 つのタスクテーブルは、プロバイダーのケーステーブルとコンシューマーのインシデントテーブルです。コンシューマーインスタンスでインシデントレコードが作成または更新されると、プロバイダーのケーステーブルと同期するように構成されます。ケーステーブルの \[影響を受けるインスタンス\] フィールドは必須フィールドですが、インシデントテーブルに存在しません。この状況に対処するには、関連するリモートタスク定義の受信マッピングで、\[影響を受けるインスタンス\] フィールドを仮想フィールドとして定義する必要があります。

1. プロバイダーは、プロバイダーのケーステーブルとコンシューマーのインシデントテーブルのリモートタスク定義を作成します。
2. プロバイダーは、リモートタスク定義の \[関連リンク\] の \[受信フィールド\] タブで、インシデントテーブルとケーステーブルの間のフィールドをマッピングします。  
   \[影響を受けるインスタンス\] フィールドを定義するときに、プロバイダーは \[仮想\] チェックボックスをオンにして、\[ターゲットマッピング\] タブの \[ターゲット\] フィールドから \[影響を受けるインスタンス\] を選択します。  
   注:  
   仮想フィールドを定義する場合、ソースフィールドは存在しないため定義されません。
3. その後、プロバイダーはリモートタスク定義を公開し、コンシューマーインスタンスに同期します。
4. コンシューマーは、インシデントテーブルのリモートタスクを作成します。仮想フィールドの情報を含む、マッピングされたフィールドのすべての値を保持する JSON ペイロードは、リモートタスクのフォームセクションに含まれています。
5. コンシューマーインスタンスは、インシデントテーブルのレコードが更新されたときに実行されるビジネスルールなどで updateVirtualField() メソッドを呼び出して、リモートタスクの \[影響を受けるインスタンス\] フィールドの値を設定します。  
   注:  
   ターゲットテーブルのデータはいつでも入力できますが、仮想フィールドとして設定された必須フィールドは、リモートタスクがプロデューサーインスタンスに送信される前にリモートタスクに入力する必要があります。
6. リモートタスクはプロバイダーインスタンスに同期され、プロバイダーインスタンスにケースレコードが作成されます。
{#updateVirtualField_GR_S_S_S__ul_h45_dvq_dzb}

リモートタスク定義の作成方法については、「 [Create remote task definitions in Service Exchange for Providers](https://www.servicenow.com/docs/access?context=service-bridge-v2-create-remote-tasks-defs&version=xanadu&pubname=xanadu-service-exchange&ft:locale=en-US)」を参照してください。

サービスブリッジ変換の作成方法については、「[Transform data with the Service Exchange transform framework](https://www.servicenow.com/docs/access?context=service-bridge-v2-transform-about&version=xanadu&pubname=xanadu-service-exchange&ft:locale=en-US)」を参照してください。  
警告:  
このメソッドは、呼び出されたリモートタスクを更新するときにのみ、前のビジネスルールで呼び出す必要があります。後のビジネスルールでこのメソッドを呼び出す場合は、無限ループが発生する可能性があるため、リモートタスクの仮想フィールドの更新によってビジネスルールがトリガーされないようにする厳密な条件を含める必要があります。
{#updateVirtualField_GR_S_S_S__table_l1v_jpm_dzb__entry__3}

| 名前 | タイプ | 説明 |
|-|-|-|
| リモートタスクGr | GlideRecord | 指定された仮想フィールド値を設定するリモートタスクの GlideRecord オブジェクト。 |
| 仮想フィールド | 文字列 | フィールド 関連付け情報を更新する仮想フィールドのフィールド名。関連付けられたリモートタスク定義の \[送信フィールド \] 関連タブで定義されます。 |
| 仮想値 | 文字列 | ターゲットインスタンスのこのフィールドに設定する値。 |
| 仮想表示値 | 文字列 | ターゲットインスタンスでこのフィールドに設定する表示値 |
[表 : 1. パラメーター]

{#updateVirtualField_GR_S_S_S__table_l1v_jpm_dzb} {#updateVirtualField_GR_S_S_S__table_m1v_jpm_dzb__entry__2}

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

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

    var remoteTaskGr = new GlideRecord("");
    /** Remote Task table name,
    ** Table name vary based on which instance the script is being executed.
    **/

    remoteTaskGr.get(""); // Remote Task record sys_id

    global.sb.updateVirtualField(remoteTaskGr,"<virtual outbound field name>", "<value to set on target field>", "<display value to set on target field>");


