7.10. 1 つのソースフィールドを複数のターゲットフィールドに分割
データマッパーステップでは、複合ソースフィールドを複数のターゲットフィールドに分割できます。たとえば、Name
フィールドを FirstName
および LastName
フィールドにマップします。
前提条件
ソースフィールドでは、この複合フィールドの各パーツのコンテンツタイプ、コンテンツの各パーツの順番およびインデックス、および空白やコンマなどのパーツの区切り文字を知っている必要があります。フィールドを組み合わせまたは分割する場合の不足または不必要なデータの例 を参照してください。
手順
- Sources パネルで、分割するコンテンツのあるフィールドをクリックし、 をクリックします。
Mapping Details パネルで、Target ドロップダウンリストから、マップ先のデータフィールドを選択します。
ターゲットフィールドの選択を終了すると、ソースフィールドから選択した各ターゲットフィールドへの線が表示されるはずです。
Mapping Details の上部に Split が表示されます。これは、マッピングの実行によりソースフィールドの値が分割され、複数のターゲットフィールドにマップされることを意味します。
Targets に選択した各ターゲットフィールドのエントリーがあります。
Mapping Details パネルで、以下のようにマッピングを設定します。
- Sources の Delimiter フィールドで、ソースフィールドの値を区切る場所を示すソースフィールドの文字を指定または選択します。デフォルトは空白文字です。
- 必要に応じて、 をクリックし、ソースフィールドがターゲットフィールドにマップされる前に変換をソースフィールド値に適用します。
Targets 下で、選択したターゲットフィールドのエントリーの順番を確認します。エントリーの順番は、複合ソースフィールドの対応するコンテンツと同じである必要があります。ソースフィールドのコンテンツのパーツ 1 つ以上に対してターゲットフィールドを指定しなくても、問題ありません。
エントリーの順番が正しくない場合は、フィールドエントリーのインデックス番号を変更し、同じ順番になるようにします。
複合ソースフィールドの各パーツをターゲットフィールドにマップした場合は、次のステップを省略します。
ソースフィールドに、不必要なデータが含まれる場合は、Mapping Details パネルで、ソースフィールドの対応するデータと同じインデックスを持たない各ターゲットフィールドのインデックスを編集します。各ターゲットフィールドエントリーのインデックスは、ソースフィールドの対応するデータのインデックスと同じである必要があります。データマッパーは、不要なデータを示すため、必要に応じてパディングフィールドを自動的に追加します。
この手順の最後にある例を参照してください。
- 必要に応じて、 をクリックしてコンテンツをターゲットフィールドにマップし、ソースまたはターゲットデータの変換 で説明されているように変換 を適用します。
必要に応じて、データマッピングの結果をプレビューします。
- をクリックし、ソースフィールドにテキスト入力フィールドを表示し、各ターゲットフィールドに読み取り専用結果フィールドを表示します。
ソースフィールドのデータ入力フィールドに、サンプル値を入力します。フィールドのパーツの間には必ず区切り文字を入力してください。マッピングの結果は、ターゲットフィールドの読み取り専用フィールドに表示されます。
ターゲットフィールドの順序を変更したり、ターゲットフィールドに変換を追加すると、ターゲットフィールドの結果フィールドにこれが反映されます。データマッパーがエラーを検出すると、Mapping Details パネルの上部に情報メッセージが表示されます。
を再度クリックして、プレビューフィールドを非表示にします。
プレビューフィールドを再表示すると、入力したデータはデータマッパーが終了するまでそのまま存在します。
マッピングが適切に定義されていることを確認するには、 をクリックし、このステップで定義されたマッピングを表示します。ソースフィールドの値を複数のターゲットフィールドに分割するマッピングは次のようになります。
このビューでは、マッピングの結果をプレビューすることもできます。 をクリックし、前のステップの説明どおりにテキストを入力します。プレビューフィールドは選択したマッピングのみに表示されます。表の別のマッピングをクリックして、そのプレビューフィールドを表示します。
1 つのフィールドを複数のフィールドに分割する例
ソースデータに 1 つのアドレスフィールドが含まれ、そのフィールドでは以下の例のようにコンマを使用してコンテンツのパーツを区切るとします。
77 Hill Street, Brooklyn, New York, United States, 12345, 6789
住所フィールドでは、コンテンツのパーツにこれらのインデックスがあります。
コンテンツ | インデックス |
---|---|
番地およびストリート名 | 1 |
市 | 2 |
州 | 3 |
国名 | 4 |
郵便番号 | 5 |
zip+4 コード | 6 |
ターゲットデータに住所のフィールドが 4 つあるとします。
number-and-street city state zip
マッピングを定義するには以下を行います。
- ソースフィールドを選択し、 をクリックします。
- Mapping Details パネルの Sources セクションで、区切り文字を選択します。この例ではコンマが使用されます。
- 4 つのターゲットフィールドを選択します。
この作業を行った後、Targets の Mapping Details パネルに、選択した各ターゲットフィールドのエントリーが表示されます。例を以下に示します。
をクリックします。
データマッパーで表示される順にターゲットエントリーが表示されます。これはアルファベット順になります。この順番がソースフィールドの順番を反映するように変更する必要があります。この例では、ソースフィールドの city
コンテンツの前に number-and-street
コンテンツが含まれます。ターゲットエントリーの順序を修正するには、city
インデックスフィールドを 2
に変更します。結果は以下のようになります。
をクリックします。
ターゲットフィールドエントリーでは、インデックス番号はこのターゲットフィールドにマップされるソースフィールドのパーツを示します。インデックス値の 1 つを変更してターゲットフィールドの値を修正する必要があります。以下のターゲットフィールドを見てみましょう。
-
number-and-street
: ソースフィールドの番地およびストリート名コンテンツのインデックス番号は 1 です。インデックスが 1 のソースをnumber-and-street
ターゲットフィールドにマップするのは適切です。このターゲットエントリーに変更を加える必要はありません。 -
city
: のソースフィールドの市コンテンツのインデックス番号は 2 です。このターゲットエントリーも適切です。 -
state
: ソースフィールドの州コンテンツのインデックス番号は 3 です。このターゲットエントリーも適切です。 -
zip
: ソースフィールドの郵便番号コンテンツのインデックス番号は 5 です。ターゲットフィールドエントリーのインデックス番号は 4 で、正しくありません。これを変更しないと、実行中にソースフィールドの国パーツがzip
ターゲットフィールドにマップされます。インデックス番号を 5 に変更する必要があります。インデックス 5 のソースコンテンツをzip
ターゲットフィールドにマップするよう、データマッパーに指示します。インデックスの変更後、インデックス番号が 4 のパディングフィールドがデータマッパーによって追加されます。結果は以下のようになります。
をクリックします。
これでこのマッピングが完了します。ソースフィールドにはインデックス番号が 6 のコンテンツ (zip+4) がありますが、このデータはターゲットに必要なく、何もする必要はありません。