---
sourceDocument: Yokohama データと自動化
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/yokohama/integrate-applications

 Release :

    - yokohama

ft:locale :

    - ja-JP

ft:publication_title :

    - Yokohama データと自動化

ft:clusterId :

    - crint

bundleId :

    - crint

workflow :

    - Creator


---

# 結合を使用したレコードの更新

# 結合を使用したレコードの更新 {#ariaid-title1}

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

結合オプションを使用すると、インポートデータを変換するときに既存のターゲットテーブルレコードを更新できます。

フィールドマップの結合オプションを使用すると、インポートセットレコードの変換時に、選択した \[ターゲットフィールド\] を使用するかどうかを指定できます。フィールドマップの \[結合\] チェックボックスが選択されている場合、インポートセット行が変換されると、インスタンスは \[ターゲットフィールド\] の値がインポートセット行の \[ソースフィールド\] と同じであるターゲットテーブルの既存のレコードをチェックします。詳しい手順については、「[フィールドマップの作成](https://servicenow-prod.fluidtopics.net/w1nq4hhSU2OgXWJci0Wrjg "フィールドマップは、インポートセットテーブルのフィールドとターゲットテーブルのフィールドの関係を確立します。")」を参照してください。  
ターゲットテーブルに一致する値を持つ既存のレコードが見つかった場合、そのレコードが更新されます。一致するレコードが見つからない場合は、ターゲットテーブルに新しいレコードが作成されます。  
注:  
それらのフィールドが一意の値を持つ場合にのみ、結合するターゲットテーブルのフィールドを選択します。ターゲットテーブル内の複数のレコードが指定された結合オプションに一致する場合、ターゲットテーブル内の最初に一致したレコードのみが更新されます。

## 結合オプション {#c_ImportSetCoalesce__section_r4g_rdd_m1b}

インポートセットのデータの結合に使用できる構成がいくつかあります。

## 結合なし {#c_ImportSetCoalesce__section_nyc_5dd_m1b}

結合が定義されていない場合、インポートされたすべての行が新しいレコードとして扱われます。既存のレコードは更新されません。

## 単一フィールド結合 {#c_ImportSetCoalesce__section_oyc_5dd_m1b}

単一のフィールドで結合して既存のレコードを更新できます。

ターゲットテーブルレコードがステージングテーブルレコードと同じ値の結合フィールドに存在する場合、ターゲットテーブルレコードはインポートセットレコードの値を使用して更新されます。

## 複数フィールド結合 {#c_ImportSetCoalesce__section_pyc_5dd_m1b}

複数のフィールドで結合して、既存のレコードを更新できます。

すべての結合フィールドにステージングテーブルレコードと同じ値を持つターゲットテーブルレコードが存在する場合、ターゲットテーブルレコードはステージングテーブルレコード値を使用して更新されます。複数のフィールドを結合するには、ターゲットテーブルとステージングテーブル間のすべての結合フィールド値が一致する必要があります。

## 条件付き結合 {#c_ImportSetCoalesce__section_qyc_5dd_m1b}

スクリプトを使用して、ステージングテーブルの行をターゲットレコードに結合するかどうかを決定できます。

ほとんどの条件付き結合スクリプトは、\[sys_id\] フィールドのフィールドマップの \[ソーススクリプト\] フィールドで定義されます。ステージングテーブルレコード値を使用してターゲットレコードを更新するには、スクリプトがターゲットテーブルレコードの sys_id を返す必要があります。

## 条件付き結合スクリプトの例 {#c_ImportSetCoalesce__section_pgs_xdd_m1b}

条件付き結合スクリプトの例を確認します。

## 更新のみ {#c_ImportSetCoalesce__section_z35_zdd_m1b}

一致が見つかったレコードのみを更新し、一致が見つからなかったレコードをスキップするには、結合フィールドを指定し、次のスクリプトを \[onBefore\] スクリプトとして変換マップに追加します。

    if (action == 'insert') 
      ignore = true;

## ドット連結を使用した条件付き結合 {#c_ImportSetCoalesce__section_aj5_zdd_m1b}

インシデントデータをインポートするときにユーザーのメールアドレスを照合する場合などに、条件付き結合スクリプトでドット連結フィールドを使用できます。

この例では、このスクリプトは、インシデントターゲットテーブルの \[sys_id\] フィールドのフィールドマップの \[ソーススクリプト\] で定義されています。

    var gr = new GlideRecord('incident');
    gr.addQuery('caller_id.email', source.u_email); //check if the incident caller's email matches the import row email value
    gr.query();

    if(gr.next())
    {
        answer = gr.sys_id; //if a match exists, return the sys_id of the matching Incident record
    }
    else
    {
        answer= -1;
    }

## OR 条件による条件付き結合 {#c_ImportSetCoalesce__section_bj5_zdd_m1b}

条件付き結合スクリプトを使用して、複数のフィールド値に基づいてソースレコードとターゲットレコードを一致させることができます。すべての結合フィールドが一致する必要がある複数フィールドの結合とは異なり、1 つのフィールドのみが一致するようにスクリプトを指定できます。

この例では、このスクリプトは、ユーザーターゲットテーブルの \[sys_id\] フィールドのフィールドマップの \[ソーススクリプト\] で定義されています。

    var gr = new GlideRecord('sys_user');
    var qc = gr.addQuery('email', source.u_email); //first check if the user's email matches
    qc.addOrCondition('user_name', source.u_name); //alternatively, check if the username matches
    gr.query();

    if(gr.next()) 
    {
        answer = gr.sys_id; //if a match exists, return the sys_id of the matching User record
    }
    else 
    {
        answer = -1;
    }

## 大文字と小文字を区別する結合フィールド値 {#c_ImportSetCoalesce__section_vds_32d_m1b}

インポートセットを異なるケースと一致する値で結合させるかどうかをコントロールできます。

フィールドマップの \[結合で大文字と小文字を区別\] フィールドを使用すると、大文字と小文字を区別してフィールド値を結合できます。

デフォルトでは、フィールドマップで \[結合\] としてマークされたフィールドは、既存のレコードの大文字と小文字を区別しないルックアップで使用されます。\[結合で大文字と小文字を区別\] チェックボックスをオンにすると、インスタンスは結合フィールド値を大文字と小文字で照合します。ターゲットテーブルレコードは、ターゲットレコードの値とインポートセットステージングレコードの値と大文字と小文字が同じ場合にのみ更新されます。それ以外の場合は、新しいレコードが作成されます。

## 空フィールドでの結合 {#c_ImportSetCoalesce__section_p44_42d_m1b}

インポートセットを値のないフィールドで結合させるかどうかをコントロールできます。

フィールドマップの \[空フィールドの結合\] フィールドを使用すると、値のないフィールドを結合できます。

デフォルトでは、フィールドマップで \[結合\] とマークされているフィールドにより、インポートセットのステージングレコードの値と一致するフィールド値を持つターゲットレコードがチェックされます。そのフィールドマップに対して \[空フィールドの結合\] が選択されている場合、ターゲットレコードとインポートセットのステージングレコード内の空の値は、結合の目的で一致としてカウントされます。

たとえば、ユーザー変換マップをメールフィールドで結合させます。\[空フィールドの結合\] オプションを選択すると、空のメールアドレスを含むソースレコードが、空のメールアドレスを含むターゲットレコードに結合します。

