トランスフォーメーション > トランスフォーメーション > 受信フィールド
  

受信フィールド

受信フィールドは、アップストリームトランスフォーメーションからトランスフォーメーションに入力されるフィールドです。
デフォルトでは、トランスフォーメーションはアップストリームトランスフォーメーションからすべての受信フィールドを継承します。ただし、このデフォルトは変更することができます。例えば、アップストリームトランスフォーメーションからのフィールドの一部が不要な場合や、アップストリームトランスフォーメーションからのフィールドの名前変更が必要な場合があります。
フィールドルールでは、アップストリームトランスフォーメーションからトランスフォーメーションへのデータの入力方法を定義します。フィールドルールを作成して、どの受信フィールドを含めるのか、除外するのか、または名前を変更するのかを必要に応じて指定できます。
フィールド名の競合は、複数のトランスフォーメーションから同じ名前のフィールドを取得する場合に発生します。アップストリームトランスフォーメーションからのフィールドが原因で発生するフィールド名の競合を解決するには、フィールド名の競合の解決を作成し、受信フィールドの名前を一括変更します。
次のリストに、フィールドが入力されて、トランスフォーメーションを通過するときに発生するイベントの順序を示します。
  1. 1フィールド名の競合がある場合、その競合の解決ルールが実行されます。
  2. 2フィールドルールは、フィールドがアップストリームトランスフォーメーションからトランスフォーメーションに入力されるときに実行されます。
  3. 3トランスフォーメーションのタイプによっては、新しいフィールドがトランスフォーメーションに追加される場合があります。例えば、ルックアップトランスフォーメーションの場合、フィールドがルックアップオブジェクトからトランスフォーメーションに入力されることがあります。

フィールド名の競合

異なるトランスフォーメーションからのフィールド名が一致している場合、それらのフィールドが含まれるマッピングを検証すると、Mapping Designerによってフィールド名の競合エラーが生成されます。フィールド名の競合が発生したら、各フィールドの名前が一意になるようにする必要があります。
フィールド名の競合を解決するには、フィールドの名前を変更するフィールドルールを作成します。フィールド名の競合を解決するフィールドルールを作成する場合、アップストリームトランスフォーメーションでフィールドルールを作成します。
または、フィールド名の競合のエラーメッセージにはリンクがあるため、このリンクを使用してフィールド名の競合ルールを作成し、フィールド名の競合を解決することもできます。フィールド名の競合ルールでは、競合の原因となったフィールドだけでなく、アップストリームトランスフォーメーションからのすべてのフィールドの名前が変更されます。
フィールド名の競合ルールは、フィールドルールが有効になる前に有効になります。フィールド名の競合ルールは、アップストリームトランスフォーメーションからの受信フィールドにのみ適用できます。受信フィールドが最初にトランスフォーメーションに入力された後に発生したフィールド名の競合は、フィールド名の競合ルールでは修正できません。例えば、フィールド名の競合ルールを使用して、フィールドルールまたはアクティビティ(フィールドのルックアップなど)が原因で発生したフィールド名の競合を修正することはできません。代わりに、競合の原因となったフィールドルールまたはトランスフォーメーションを変更します。

フィールド名の競合の解決の作成

フィールド名の競合を解決するには、フィールド名の競合のエラーメッセージからアクセスする[フィールド名の競合の解決]ダイアログボックスを使用して、アップストリームトランスフォーメーションからのすべてのフィールドの名前を一括変更します。
    1エラーメッセージのリンクをクリックして、[フィールド名の競合の解決]ダイアログボックスにアクセスします。
    2名前を一括変更するフィールドを含むアップストリームトランスフォーメーションを選択します。
    3[一括名前変更オプション]カラムで、プレフィックスを追加して名前を変更するのか、サフィックスを追加して名前を変更するのかを指定します。
    4フィールド名に追加するテキストを入力し、[OK]をクリックします。

フィールドルール

アップストリームトランスフォーメーションからの受信フィールドに基づいてフィールドルールを設定します。次に、フィールド選択条件およびフィールドの命名規則を設定します。
フィールドルールを設定する場合、次の手順を実行します。
  1. 1含めるまたは除外する受信フィールドを選択します。処理時間を短縮し、データセットをクリーンな状態に保つには、必要な受信フィールドのみを含めます。
  2. 2フィールド選択条件を設定して、ルールに適用する受信フィールドを決定します。[名前付きフィールド]選択条件を使用する場合、受信フィールドのパラメータを使用できます。
  3. 3必要に応じて、フィールドの名前を変更するように選択します。異なるソースからのフィールドを区別するため、またはフィールド名の競合を避けるために、受信フィールドの名前を変更できます。パターンオプションを使用する場合、パラメータを作成してフィールドの名前を一括変更できます。
  4. 4実行順序を確認します。複数のルールを設定する場合、マッピングタスクがルールを適用する順序を変更できます。
注: ソースを含むソーストランスフォーメーションまたはマップレットトランスフォーメーションでは、フィールドルールを設定できません。

手順1。受信フィールドの選択

フィールドルールを設定する場合、指定した受信フィールドをルールに含めるのか、除外するのかを指定します。
[含める]/[除外する]演算子をフィールド選択条件と組み合わせて使用し、フィールドルールの影響を受ける受信フィールドを決定します。
例えば、トランスフォーメーションですべてのバイナリフィールドを除外する場合を考えます。[除外する]演算子を選択して、フィールド選択条件に一致する受信フィールドが現在のトランスフォーメーションに渡されないように指定します。次に、フィールド選択条件にバイナリデータ型を指定します。

手順2.フィールド選択条件の設定

フィールドルールを設定する場合、フィールド選択条件を指定して、フィールドルールに適用する受信フィールドを決定します。
次のいずれかのフィールド選択条件を選択することができます。
すべてのフィールド
すべての受信フィールドを含めます。このオプションを[含める]演算子と組み合わせて使用している場合、受信フィールドの名前を一括変更できます。
名前付きフィールド
指定した受信フィールドを含めたり、除外したりします。[名前付きフィールド]選択条件を使用して、名前を変更したり、受信トランスフォーメーションに含めたり、受信トランスフォーメーションから除外したりする個々の受信フィールドを指定します。フィールド選択条件の詳細を入力する場合、すべての受信フィールドを確認し、含めるまたは除外するフィールドを選択できます。フィールドがリストに表示されていない場合、そのフィールドがソースに存在していれば追加できます。含めるまたは除外するフィールドを表すパラメータを作成することもできます。
データ型を指定
指定したデータ型の受信フィールドを含めたり、除外したりします。フィールド選択条件の詳細を入力する場合、含めるまたは除外するデータ型を選択できます。
テキストまたはパターンを指定
プレフィックス、サフィックス、またはパターンで受信フィールドを含めたり、除外したりします。このオプションを使用すると、データフローで以前に名前を変更したフィールドを選択できます。フィールド選択条件の詳細の入力時に、プレフィックス、サフィックス、またはパターンの選択や、使用するルールの定義ができます。
プレフィックスオプションまたはサフィックスオプションを選択する場合、プレフィックスまたはサフィックスとして使用するテキストを入力します。例えば、「Cust」という文字列で始まるすべてのフィールドを検索するには、プレフィックスとしてCustと入力します。
パターンオプションを選択した場合は、正規表現の入力や、パターンに対するパラメータの使用ができます。表現には、Perl互換の正規表現構文を使用する必要があります。例えば、文字列「Cust」または「Addr」で始まるすべてのフィールドを検索するには、パターンCust*|Addr.*を入力します。フィールド名のいずれかの部分に文字列「Cust」または「CUST」を含むすべてのフィールドを検索するには、パターン*Cust.*|.*CUST.*を入力します。Perl互換の正規表現構文の詳細については、「関数参照」のREG_EXTRACT関数のヘルプを参照してください。
次の画像は、[データ型を指定]フィールド選択条件の選択を示しています。
この画像は、[データ型に基づくフィールドの除外]フィールド選択条件が選択された状態の[フィールドルール]領域のルールを示しています。[詳細]カラムには[設定]リンクが表示されています。これは、特定のデータ型を選択する必要があることを意味します。
次の画像は、フィールド選択条件の詳細の[date/time]データ型の選択を示しています。
[フィールドルールの設定]ダイアログボックスには、除外するフィールドを決定するために選択できる、使用可能なデータ型が表示されます。

手順3。フィールドの名前変更

フィールド名の競合を回避するため、または複合マッピングのフィールドの入力元を明確にするためにフィールドの名前を変更します。トランスフォーメーションのフィールドルールの一部としてフィールドの名前を変更できます。フィールドルールのフィールド選択条件を指定したら、選択したフィールドの名前変更方法を指定します。
フィールドの名前は個別にまたは一括で変更できます。フィールドの名前を個別に変更する場合、受信フィールドのリストから名前を変更するフィールドを選択します。次に、選択したフィールドごとに名前を指定します。
一括で名前を変更する場合、プレフィックス、サフィックス、またはパターンを追加してすべてのフィールドの名前を変更できます。プレフィックスまたはサフィックスでフィールドの名前を変更する場合、プレフィックスまたはサフィックスとして使用するテキスト文字列を入力します。例えば、すべてのフィールドの名前をFF_<field name>として変更するように指定できます。
パターンでフィールドの名前を変更する場合、パターンを表す正規表現を入力するか、タスクのパターンを定義するパラメータを使用します。プレフィックスまたはサフィックスをすべてのフィールド名に追加する簡単な式を作成することも、特定のパターンを特定のテキストで置き換える式を作成することもできます。
パターンをテキストで置き換えるには、次の構文で正規表現を使用します。ここでは、マッチングするパターンとそのパターンを置き換えるテキストがスラッシュで区切られています。
<マッチングするパターン>/<置換テキスト>
次の表では、フィールド名を一括変更するときの正規表現の例をいくつか示します。
目的
出現するすべての「Inc」を「LLC」で置き換える。
Inc/LLC
フィールド名の末尾に出現する「Inc」を「LLC」で置き換える。
Inc$/LLC
フィールド名の先頭に出現する「Loc」を「Branch」で置き換える。
^Loc/Branch
出現する「A/C」をすべて削除する。
A\/C(.*)/$1
注: フィールド名の1文字が正規表現のメタ文字の場合、その文字をバックスラッシュでエスケープしてそれがリテラルであることを示します。この例では、スラッシュがメタ文字です。
プレフィックス「FF」とサフィックス「_in」をすべてのフィールドに追加する。
FF_$0_in
次の画像は、[フィールドルールの設定]ダイアログボックスの[一括名前変更オプション]で[パターン]が選択され、使用するパターンが指定されている状態を示します。
[フィールドルールの設定]ダイアログボックスにおいて、[一括名前変更オプション]で[パターン]が選択され、フィールドの名前変更に使用するパターンとして「FF_$0_in」が指定されています。
フィールド名変更ルールは、フィールド名の競合などの問題が発生しないように、注意して作成します。フィールド名変更ルールによってフィールド名の競合が発生した場合、ルールを編集できます。
ヒント: アップストリームトランスフォーメーションが、名前を一括変更できないソースの場合、式トランスフォーメーションを追加してフィールドの名前を変更できます。

手順4。ルールの実行順序の確認

複数のフィールドルールを作成する場合、ルールが論理的順序で実行されることを確認します。
ルールの実行順序を確認するには、[フィールドルール]領域でルールを参照します。マッピングタスクは、ルールの表示順序でルールを実行します。フィールドルールの順序が正しくない場合、順序を変更できます。
プレビューフィールドテーブルで、作成したルールに基づいてトランスフォーメーションの受信フィールドをプレビューすることもできます。プレビューフィールドテーブルには、組み込まれたフィールドと除外されたフィールドがすべてリストされます。例えば、バイナリフィールドを除外するフィールドルールを作成する場合、[除外されたフィールド]の一覧には、トランスフォーメーションから除外されるバイナリフィールドが一覧表示されます。
マッピング内のソーストランスフォーメーションで接続パラメータまたはデータオブジェクトパラメータを使用する場合、[プレビューフィールド]領域には、トランスフォーメーションの受信フィールドは表示されません。
次の画像は、プレビューフィールドテーブルを示しています。
[フィールドルール]領域の下部にあるプレビューフィールドテーブルには、組み込まれたフィールドと除外されたフィールドが一覧表示されます。

フィールドルールの設定の例

次の例に、トランスフォーメーションでフィールドルールを設定する方法を示します。

受信フィールド名の変更

複数の営業所から収益データを収集するマッピングを作成する必要があるとします。アップストリームトランスフォーメーションからの複数のフィールドに、ソーストランスフォーメーションのフィールドと同じ名前があることがわかっています。フィールド名の競合を避けるために、すべての受信フィールドのフィールド名を変更して、マッピング全体でソースを区別できるようにします。受信フィールドの名前を変更するために、SalesForce_というプレフィックスを付けてすべてのフィールドの名前を変更するフィールドルールを作成します。
パフォーマンスが向上するように、必要なデータのみがデータセットに含まれるようにしたいと考えています。トランザクション日に関する情報は必要ないと判断したため、データフィールドをマッピングから削除します。必須ではないフィールドを除外するルールを作成します。日付フィールドを除外するために、日時のデータ型のフィールドを除外するルールを作成します。
ルールの順序を確認します。日時フィールドを除外するルールの後に、フィールドの名前を変更するルールを実行する必要があります。名前を変更するルールの前に表示されるように、日時フィールドを除外するルールを移動します。

フィールド名のパターンの削除

括弧を使用してさまざまなパターンをグループ化し、参照を使用してパターンを置き換えることができます。正規表現では、括弧を使用して一致するパターンをグループ化します。($)参照を使用して、入力文字列内で一致するグループを選択できます。
トランスフォーメーション間でフィールドのパターンを変更する必要がある場合があります。アップストリームトランスフォーメーションのフィールドにサフィックス_outが含まれている場合は、現在のトランスフォーメーションのフィールド名からサフィックスを削除できます。_outサフィックスを削除するには、式(.*)_out/$1を使用します。式の(.*)部分はすべてのフィールド名文字と一致し、_outはサフィックスと一致します。また、$1は一致した(.*)フィールド名の文字で指定された入力文字列を参照します。
次の式は、別の例を示しています。
(.*)(_)out/$1
例えば、string_outの一致した文字列では、stringについては$1_については$2outについては$3が一致します。stringは一致の最初のグループであるため、string値が$1によって参照されます。

フィールドルールの作成

Mapping Designerの[プロパティ]パネルの[受信フィールド]タブでフィールドルールを設定します。
    1[受信フィールド]タブの[フィールドルール]領域で、ルールの実行順序に基づいてルールの行を挿入します。新しいルールの前または後に実行するルールの[アクション]カラムで、[上に挿入]または[下に挿入]のいずれかを選択します。·
    2ルールにフィールドを含めるのか、除外するのかを指定するには、[演算子]カラムで、[含める]または[除外する]のいずれかを選択します。
    3[フィールド選択条件]カラムで、次のいずれかの方法を選択します。
    4フィールド選択の詳細を指定するには、[詳細]カラムで、[設定]または[名前の変更]リンクをクリックします。フィールド選択条件が[すべてのフィールド]の場合、[名前の変更]リンクが表示されます。
    5[フィールドルールの設定]ダイアログボックスで、選択したフィールド選択基準に基づいて、ルールに適用するフィールドを選択します。または、マッピングタスクでフィールドを選択できるように、[パラメータ]をクリックしてパラメータを追加します。
    6フィールドの名前を変更するには、[名前変更フィールド]タブをクリックし、フィールドの名前を個別に変更するか、一括で変更するかを選択します。
    すべてのフィールドの名前を変更する場合、名前を一括変更する必要があります。フィールドの名前をパターンで一括変更する場合、パラメータを作成して、マッピングタスクのパターンを指定できます。
    7フィールドルールが論理的順序で実行されるようにするには、[フィールドルール]領域で、ルールの表示順序を確認します。[含まれるフィールド]および[除外するフィールド]の一覧で、ルールの結果を確認します。必要に応じて、フィールドルールを適切な場所に移動します。
    8ルールを削除するには、[アクション]カラムで、[削除]を選択します。