sb:スコープ、グローバル

  • リリースバージョン: Zurich
  • 更新日 2025年07月31日
  • 所要時間:13分
  • sb スクリプトインクルードは、サービスブリッジ設定レコードに対して操作を実行できるようにするメソッドを提供します。

    このスクリプトインクルードを使用して操作を実行できる サービスブリッジ 構成レコードには、次の 3 つのタイプがあります。
    • 基盤データ同期 (FDS)
    • リモートレコードプロデューサー (RRP)
    • リモートタスク定義 (RTD)
    これらの設定レコードに対して、次の サービスブリッジ 操作のいずれかを実行できます。
    • チェックアウト:指定された設定レコードのドラフトバージョンを作成します。公開されたバージョンは引き続きお客様が使用できます。
    • 公開:指定された設定レコードのドラフトバージョンを公開し、顧客が使用できるようにします。
    • アーカイブ:指定された設定レコードの非アクティブなバージョンをアーカイブし、顧客が利用できないようにします。
    • 廃止:指定された設定レコードのすべてのバージョンを廃止し、顧客が利用できないようにします。
    • 仮想フィールドを更新: サービスブリッジ リモートタスクを使用するときに、ターゲットインスタンスのタスクテーブルの仮想フィールドに入力します。

    サービスブリッジ設定レコードの詳細については、「Create configuration revisions」を参照してください。

    この API にアクセスするには、 サービスブリッジ for Providers アプリケーション (sn_sb_pro) と サービスブリッジ Base (sn_sb) プラグインをインスタンスにインストールする必要があります。

    この API のメソッドを呼び出すには、 sb スクリプトインクルードを使用します。ただし、これらのメソッドのコードは、 PSBPublicAPIUtil スクリプトインクルードにあります。

    グローバルスコープからこれらのメソッドを呼び出す場合は、次の構文を使用します。
    sb.checkout(glideRecord);
    sb.publish(glideRecord);
    sb.archive(glideRecord);
    sb.retire(glideRecord);
    スコープ対象のアプリケーションから呼び出す場合は、次の構文を使用します。
    global.sb.checkout(glideRecord);
    global.sb.publish(glideRecord);
    global.sb.archive(glideRecord);
    global.sb.retire(glideRecord);

    sb:アーカイブ (GlideRecord)

    指定された GlideRecord が有効な サービスブリッジ 構成レコードであることを検証し、レコードが「非アクティブ」ステータスであることを確認します。この検証に合格すると、指定された設定レコードがアーカイブされ、同じ設定レコードの他のすべてのバージョンはそのまま残ります。

    構成のリビジョンとそれに関連する状況の詳細については、「 Create configuration revisions」を参照してください。

    表 : 1. パラメーター
    名前 タイプ 説明
    glideRecord GlideRecord アーカイブする設定レコード。
    このレコードは次のいずれかになります。
    • 基盤データ同期 (FDS):基盤データプロバイダーオファリング [sn_fds_pro_offering] テーブルにあるレコード。
    • リモートレコードプロデューサー (RRP):リモートレコードプロデューサー [sn_sb_pro_remote_record_producer] テーブルにあるレコード。
    • リモートタスク定義 (RTD):リモートタスク定義 [sn_sb_pro_remote_task_def] テーブルにあるレコード。
    表 : 2. 戻り値
    タイプ 説明
    ブール 設定レコードがアーカイブされたかどうかを示すフラグ。
    可能な値:
    • true:設定レコードがアーカイブされました。
    • false:エラーが発生しました。設定レコードがアーカイブされませんでした。

    次のコード例は、FDS 設定レコードのグローバルスコープからこのメソッドを呼び出す方法を示しています。

    var grConfig = new GlideRecord('sn_fds_pro_offering’’'); // Configuration table that contains the desired record 
    grConfig.get('0ed11101ff6aca10c1befe258c4fd99e'); // Sys_id of the configuration record to publish
    var isExecuted = sb.archive(grConfig);

    sb:チェックアウト (GlideRecord)

    指定された GlideRecord が有効な サービスブリッジ 設定レコードであることを検証し、レコードが「公開済み」ステータスであることを確認します。この検証に合格すると、指定された設定レコードの新しいバージョンが作成され、ステータスフィールドが「ドラフト」に設定されます。

    表 : 3. パラメーター
    名前 タイプ 説明
    glideRecord GlideRecord チェックアウトする設定レコード。
    このレコードは次のいずれかになります。
    • 基盤データ同期 (FDS):基盤データプロバイダーオファリング [sn_fds_pro_offering] テーブルにあるレコード。
    • リモートレコードプロデューサー (RRP):リモートレコードプロデューサー [sn_sb_pro_remote_record_producer] テーブルにあるレコード。
    • リモートタスク定義 (RTD):リモートタスク定義 [sn_sb_pro_remote_task_def] テーブルにあるレコード。
    表 : 4. 戻り値
    タイプ 説明
    GlideRecord 成功すると、ステータスフィールドが「ドラフト」に設定された新しく作成された設定レコードが返されます。

    エラーが発生した場合は、null を返します。

    次のコード例は、RTD 構成レコードのグローバルスコープからこのメソッドを呼び出す方法を示しています。

    var grConfig = new GlideRecord('sn_sb_pro_remote_task_def'); // Configuration table that contains the desired record 
    grConfig.get('0ed11101ff6aca10c1befe258c4fd99e'); // Sys_id of the configuration record to checkout
    var checkoutGr = sb.checkout(grConfig);

    sb - 公開 (GlideRecord)

    指定された GlideRecord が有効な サービスブリッジ 構成レコードであることを検証し、レコードが「ドラフト」ステータスであることを確認します。この検証に合格すると、設定レコードのドラフトバージョンを公開します。

    表 : 5. パラメーター
    名前 タイプ 説明
    glideRecord GlideRecord 公開する設定レコード。
    このレコードは次のいずれかになります。
    • 基盤データ同期 (FDS):基盤データプロバイダーオファリング [sn_fds_pro_offering] テーブルにあるレコード。
    • リモートレコードプロデューサー (RRP):リモートレコードプロデューサー [sn_sb_pro_remote_record_producer] テーブルにあるレコード。
    • リモートタスク定義 (RTD):リモートタスク定義 [sn_sb_pro_remote_task_def] テーブルにあるレコード。
    表 : 6. 戻り値
    タイプ 説明
    ブール 設定レコードが公開されたかどうかを示すフラグ。
    可能な値:
    • true:設定レコードが公開されました。
    • false:エラーが発生しました。設定レコードが公開されませんでした。

    次のコード例は、RRP 設定レコードのグローバル スコープからこのメソッドを呼び出す方法を示しています。

    var grConfig = new GlideRecord('sn_sb_pro_remote_record_producer’'); // Configuration table that contains the desired record 
    grConfig.get('0ed11101ff6aca10c1befe258c4fd99e'); // Sys_id of the configuration record to publish
    var isExecuted = sb.publish(grConfig);

    sb:廃止 (glideRecord)

    指定された GlideRecord が有効な サービスブリッジ 構成レコードであることを検証し、レコードが有効なステータスであることを確認します。この検証に合格すると、指定されたバージョンの設定レコードを、同じ設定レコードの他のすべてのリビジョンとともに廃止します。

    構成のリビジョンとそれに関連する状況の詳細については、「 Create configuration revisions」を参照してください。

    表 : 7. パラメーター
    名前 タイプ 説明
    glideRecord GlideRecord 廃止する設定レコード。
    このレコードは次のいずれかになります。
    • 基盤データ同期 (FDS):基盤データプロバイダーオファリング [sn_fds_pro_offering] テーブルにあるレコード。
    • リモートレコードプロデューサー (RRP):リモートレコードプロデューサー [sn_sb_pro_remote_record_producer] テーブルにあるレコード。
    • リモートタスク定義 (RTD):リモートタスク定義 [sn_sb_pro_remote_task_def] テーブルにあるレコード。
    表 : 8. 戻り値
    タイプ 説明
    ブール 設定レコードが廃止されたかどうかを示すフラグ。
    可能な値:
    • true:設定レコードが廃止されました。
    • false:エラーが発生しました。設定レコードは廃止されませんでした。

    次のコード例は、RTD 設定レコードのグローバルスコープからこのメソッドを呼び出す方法を示しています。

    var grConfig = new GlideRecord('sn_sb_pro_remote_task_def'); // Configuration table that contains the desired record 
    grConfig.get('0ed11101ff6aca10c1befe258c4fd99e'); // Sys_id of the configuration record to checkout
    var isExecuted = sb.retire(grConfig);

    sb - updateVirtualField(GlideRecord remoteTaskGr, String virtualField, String virtualValue, String virtualDisplayValue)

    サービスブリッジリモートタスクを使用するときに、ターゲットインスタンスのタスクテーブルの仮想フィールドに入力します。

    仮想フィールドは、ターゲットタスクテーブルには存在するが、ソースタスクテーブルには存在しないフィールドです。このメソッドを使用して、仮想フィールドの値をソースインスタンスからターゲットインスタンスに渡します。このメソッドは、仮想フィールドの指定された値を、指定された リモートタスクのフォームセクションに JSON として保存します。このリモートタスクはターゲットインスタンスに同期され、ターゲットタスクテーブルのマッピングされたフィールドに値が格納されます。

    仮想フィールドは、リモートタスク定義で定義されます。リモートタスク定義には、ソースインスタンスとターゲットインスタンスのタスクテーブル間でフィールドをマッピングする受信および送信マッピングテーブルが含まれています。ソーステーブルにターゲットテーブルに存在するフィールドが含まれていない場合、そのフィールドはリモートタスク定義で仮想フィールドとして設定されます。その後、コンシューマーは サービスブリッジ 変換またはこのメソッドを使用して、関連付けられたターゲットタスクレコード内のこれらの仮想フィールドの値を更新できます。

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

    リモートタスク定義の作成方法については、 Create a remote task definition in Service Exchange for Providersを参照してください。

    サービスブリッジ変換の作成方法については、「Transform data with the Service Exchange transform framework」を参照してください。

    警告:
    このメソッドは、呼び出されるリモートタスクを更新するため、前のビジネスルールでのみ呼び出す必要があります。アフタービジネスルールでこのメソッドを呼び出す場合は、無限ループが発生する可能性があるため、リモートタスクの仮想フィールドの更新によってビジネスルールがトリガーされないようにする厳格な条件を含める必要があります。
    表 : 9. パラメーター
    名前 タイプ 説明
    remoteTaskGr GlideRecord 指定された仮想フィールド値を設定するリモートタスクの GlideRecord オブジェクト。
    仮想フィールド 文字列 関連情報を更新する仮想フィールドのフィールド名。関連するリモートタスク定義の [送信フィールド ] 関連タブで定義されます。
    仮想値 文字列 ターゲットインスタンスのこのフィールドに設定する値。
    virtualDisplayValue 文字列 ターゲットインスタンスのこのフィールドに設定する値を表示します
    表 : 10. 戻り値
    タイプ 説明
    なし

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

    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>");