7.13. ソースまたはターゲットデータの変換

マッピングの定義後、データマッパーでマッピングのフィールドを変換できます。データフィールドの変換は、データの格納方法を定義します。たとえば、Capitalize 変換を指定して、データ値の最初の文字が大文字になるようにすることができます。

同じマッピング内の異なるフィールドに異なる変換を適用できます。1 つのソースフィールドを 1 つのターゲットフィールドにマップする 1 対 1 のマッピングでは、変換をソースフィールドまたはターゲットフィールドのどちらに適用するかは問題ではありません。

1 対多または多対 1 のマッピングでは、変換を指定するときに必要なターゲットフィールドの値を考慮してください。たとえば、番号、番地、都市、州のソースフィールドを 1 つのターゲット住所フィールドに結合する多対 1 マッピングを考えてみます。ターゲットアドレスフィールドの文字列をすべて大文字にする場合は、ターゲットアドレスフィールドを選択し、大文字変換を適用します。州のみを大文字にする必要がある場合は、ソース州フィールドを選択し、大文字変換を適用します。

ソースフィールド変換は前処理を実行し、ターゲットフィールド変換は後処理を実行すると考えることができます。

注記: マッピングに条件を追加する場合は、条件のマッピングへの適用 の説明どおりに、変換を条件式内に追加する必要があります。

手順

  1. フィールドをマップします。これは、1 対 1 のマッピング、組み合わせのマッピング、または分割のマッピングになります。
  2. Mapping Details パネルの Sources または Targets 下にある変換するフィールドのボックスで、 the Transformation icon をクリックします。このオプションは、利用可能な変換のドロップダウンリストを表示します。
  3. データマッパーが実行する変換を選択します。
  4. 変換に入力パラメーターが必要な場合は、該当する入力フィールドに指定します。
  5. 別の変換を追加するには、 the Transformation icon を再度クリックします。

7.13.1. 1 つのターゲットフィールドにマップする前の複数のソース値の変換

複数のソースフィールドや、コレクションなどの複数の値が含まれるソースフィールドの値に適用できる変換があります。変換の結果はデータマッパーによってターゲットフィールドに挿入されます。以下の表は、これらの多重変換について説明しています。

多重変換説明

Add

ソースの数値を追加し、その合計をターゲットフィールドに挿入します。選択したソースフィールドまたは選択したコレクションの値は数値である必要があります。

Average

ソースの数値の平均を算出し、その算出値をターゲットフィールドに挿入します。選択したソースフィールドまたは選択したコレクションの値は数値である必要があります。

Concatenate

ソース値を結合し、その結合値をターゲットフィールドに挿入します。空白文字または他の文字を区切り文字として指定できます。区切り文字は、ターゲットフィールドのソース値の間に挿入されます。FirstNameMiddleName、および LastName などの複数のソースフィールド値を、CustomerName などの 1 つのターゲットフィールドに組み合わせるのが、この変換の一般的な使用方法です。

Contains

ソース値を評価し、指定したパラメーター値が含まれる値があるかどうかを判断します。指定のパラメーター値が含まれるソース値がある場合、true がターゲットフィールドに挿入されます。指定のパラメーター値が含まれるソース値がない場合は、false がターゲットフィールドに挿入されます。

たとえば、特定の顧客に関連するアクティビティーを追跡するとします。この場合、各コレクションメンバーに顧客情報が含まれるソースコレクションフィールドを選択します。Value パラメーターに特定のメールアドレスを指定します。コレクションで指定のメールアドレスが見つかった場合、true がターゲットフィールドに挿入されます

Count

ソース値の数をターゲットフィールドに挿入します。これは、ソースフィールドがコレクションである場合に便利です。データマッパーによって、コレクションのサイズがターゲットフィールドに挿入されます。

たとえば、アイテムオブジェクトのコレクションである Order ソースフィールドを選択するとします。Count 変換を適用すると、その Order のアイテム数がターゲットフィールドに挿入されます。

また、4 つの個別のソースフィールドを選択した場合は 4 がターゲットフィールドに挿入されます。

Divide

最初のソース値を 2 つ目のソース値で割り、その値をターゲットフィールドに挿入します。3 つ以上のソース値がある場合は、次の値で割って除算を継続します。例として、{1000, 100, 10} が含まれる numbers[] コレクションについて考えてみましょう。1000100 で割った値は 10 になります。その 1010 で割ると、値は 1 になります。1 がターゲットフィールドに挿入されます。

Format

指定したテンプレートのプレースホルダーを選択したソースフィールドの値に置き換えます。置き換え後の文字列がターゲットフィールドに挿入されます。たとえば、以下の 3 つのソースフィールドを選択したとします。

time
name
text

Format 変換を選択し、Template パラメーターに以下を指定します。

At $time, $name tweeted: $text

その結果、ターゲットフィールドは次のようになります。

At 8:00 AM, Aslan tweeted: ROAR!

これは、Java や C などのプログラミング言語で使用できるメカニズムに似ています。

Item At

選択したソースフィールドに対して、指定したインデックスの値を見つけ、その値をターゲットフィールドに挿入します。ソースフィールドは、区切り文字で区切られた複数の値が含まれるコレクションまたはフィールドである必要があります。

たとえば、選択したソースフィールドが顧客メールアドレスのコレクションであるとします。Item At 変換の選択後、0Index パラメーターフィールドに指定します。データマッパーによって、インデックス 0 の最初のメールアドレスがターゲットフィールドに挿入されます。

Maximum

ソース値を評価し、最大値をターゲットフィールドに挿入します。ソース値は数字である必要があります。

Minimum

ソース値を評価し、最小値をターゲットフィールドに挿入します。ソース値は数字である必要があります。

Multiply

最初のソース値と 2 つ目のソース値を掛けて、その値をターゲットフィールドに挿入します。3 つ以上のソース値がある場合は、次の値を掛けて乗算を継続します。例として、{10, 100, 1000} が含まれる numbers[] コレクションについて考えてみましょう。10100 を掛けた値は 1000 になります。その 10001000 で掛けた値は 1000000 になります。1000000 がターゲットフィールドに挿入されます。

Subtract

最初のソース値から 2 つ目のソース値を引き、その値をターゲットフィールドに挿入します。3 つ以上のソース値がある場合は、次の値を引いて減算を継続します。例として、{100, 90, 9} が含まれる numbers[] コレクションについて考えてみましょう。100 から 90 を引いた値は 10 となります。さらに、その 10 から 9 を引いた値は 1 になります。1 がターゲットフィールドに挿入されます。

7.13.2. 利用可能な変換の説明

以下の表では利用可能な変換について説明します。日付と時刻のタイプは、これらの概念のいずれの形式にも汎用的に参照されます。よって、数字には integerlongdouble などが含まれます。日付には dateTimeZonedDateTime などが含まれます。

変換入力タイプ出力タイプパラメーター (* = 必須)説明

AbsoluteValue

number

number

なし

数字の絶対値を返します。

AddDays

date

date

days

日付に日を追加します。デフォルトは 0 日です。

AddSeconds

date

date

seconds

日付に秒数を追加します。デフォルトは 0 秒です。

Append

string

string

string

文字列の最後に文字列を追加します。デフォルトでは、何も追加しません。

Camelize

string

string

なし

空白を削除し、最初の単語を小文字にし、その後の各単語の最初の文字を大文字にして、キャメルケースを用いた文字列に変換します。

Capitalize

string

string

なし

文字列の最初の文字を大文字にします。

Ceiling

number

number

なし

数字の整数上限を返します。

Contains

any

Boolean

value

フィールドに指定された値が含まれる場合、true を返します。

CopyTo

任意の単純な型

配列内の任意の単純型

index*

コレクションの場合は、文字列フィールドの値をターゲットコレクションの指定されたフィールドに分割せずにコピーします。index パラメーターは、ターゲットコレクション内のフィールドのインデックスを定義します。デフォルトは 0 (ターゲットコレクションの最初のフィールド) です。

ConvertAreaUnit

number

number

fromUnit*

toUnit *

範囲を表す数値を別の単位に変換します。From Unit および To Unit メニューから fromUnit および toUnit パラメーターに適した単位を選択します。Square FootSquare Meter、または Square Mile を選択できます。

ConvertDistanceUnit

number

number

fromUnit *

toUnit *

距離を表す数値を別の単位に変換します。From Unit および To Unit メニューから fromUnit および toUnit パラメーターに適した単位を選択します。FootInchMeterMile、または Yard を選択できます。

ConvertMassUnit

number

number

fromUnit *

toUnit *

質量を表す数値を別の単位に変換します。From Unit および To Unit メニューから fromUnit および toUnit パラメーターに適した単位を選択します。Kilogram または Pound を選択できます。

ConvertVolumeUnit

number

number

fromUnit *

toUnit *

体積を表す数値を別の単位に変換します。From Unit および To Unit メニューから fromUnit および toUnit パラメーターに適した単位を選択します。Cubic FootCubic MeterGallon US Fluid、または Liter を選択できます。

DayOfWeek

date

number

なし

日付に対応する週 (1 から 7) を返します。

DayOfYear

date

number

なし

日付に対応する年間通算日 (1 から 366) を返します。

EndsWith

string

Boolean

string

文字列が指定の string で終わり、両方の文字列で大文字と小文字が同じである場合に true を返します。

Equals

any

Boolean

value

入力フィールドが指定の value と同等で、大文字と小文字がフィールドと値で同じ場合に true を返します。

FileExtension

string

string

なし

ファイル名を表す文字列から、ドットなしでファイル拡張子を返します。

floor

number

number

なし

数字の整数下限を返します。

Format

any

string

template *

template で各プレースホルダー (%s など) を入力フィールドの値に置き換え、結果が含まれる文字列を返します。これは、Java や C などのプログラミング言語で使用できるメカニズムに似ています。

IndexOf

string
最初の文字はインデックス 0。

number

string
この文字列の入力文字列を検索します。

パラメーター文字列の最初の文字である、入力文字列の文字のインデックスを返します。パラメーター文字列が見つからないと -1 が返されます。

IsNull

any

ブール値

なし

フィールドが null の場合、true を返します。

LastIndexOf

string
最初の文字はインデックス 0。

number

string
この文字列の入力文字列を検索します。

パラメーター文字列の最後の文字である、入力文字列の文字のインデックスを返します。パラメーター文字列が見つからないと -1 が返されます。

Length

any

number

なし

フィールドの長さを返し、フィールドが null の場合は -1 を返します。

Lowercase

string

string

なし

文字列を小文字に変換します。

Normalize

string

string

なし

連続した空白文字を単一のスペースに置き換え、文字列の前後にある空白文字を切り取ります。

PadStringLeft

string

string

padCharacter *

padCount *

padCharacter に指定された文字を文字列の最初に挿入します。これを padCount に指定された回数行います。

PadStringRight

string

string

padCharacter *

padCount *

padCharacter に指定された文字を文字列の最後に挿入します。これを padCount に指定された回数行います。

Prepend

string

string

string

string を文字列の最初に追加します。デフォルトでは何も追加しません。

ReplaceAll

string

string

match *

newString

文字列で、提供された一致する文字列をすべて提供された newString に置き換えます。デフォルトの newString は空の文字列です。

ReplaceFirst

string

string

match *

newString *

文字列で、最初に見つかった指定の match 文字列を指定の newString に置き換えます。デフォルトの newString は空の文字列です。

Repeat

任意の単純な型

配列内の任意の単純型

count * (ソースフィールドが配列に ない 場合は必須)

単純型を配列型にマップする場合は、複数の配列要素に単純型から取得した値を入力します。

Round

number

number

なし

数字の四捨五入した整数を返します。

SeparateByDash

string

string

なし

空白文字、コロン (:)、アンダーライン (_)、プラス記号 (+)、および等号 (=) をハイフン (-) に置き換えます。

SeparateByUnderscore

string

string

なし

空白文字、コロン (:)、ハイフン (-)、プラス記号 (+)、および等号 (=) をアンダーライン (_) に置き換えます。

Split

複合タイプ

any

なし

複合ソースフィールドの区切り文字に基づいて、複合ソースフィールドを複数のターゲットフィールドに分割します。デフォルトの区切り文字は空白文字です。

StartsWith

string

Boolean

string

文字列が指定された文字列 (大文字と小文字を区別) で始まる場合は true を返します。

Substring

string

string

startIndex *

endIndex

指定された startIndex (含まれる) から指定された endIndex (含まれない) までの文字列のセグメントを取得します。両方のインデックスはゼロで始まります。startIndex は包括的です。endIndex は排他的です。endIndex のデフォルト値は文字列の長さになります。

SubstringAfter

string

string

startIndex *

endIndex

match *

指定された startIndex (範囲に含まれる) から指定された endIndex (範囲に含まれない) までの match 文字列の後にある文字列のセグメントを取得します。両方のインデックスはゼロで始まります。endIndex のデフォルト値は、指定の match 文字列の後にある文字列の長さになります。

SubstringBefore

string

string

startIndex *

endIndex

match *

指定された startIndex (範囲に含まれる) から指定された endIndex (範囲に含まれない) までの match 文字列の前にある文字列のセグメントを取得します。両方のインデックスはゼロで始まります。endIndex のデフォルト値は、指定の match 文字列の前にある文字列の長さになります。

Trim

string

string

なし

文字列の前後にある空白文字を削除します。

TrimLeft

string

string

なし

文字列の前にある空白文字を削除します。

TrimRight

string

string

なし

文字列の後にある空白文字を削除します。

Uppercase

string

string

なし

文字列を大文字に変換します。