変換関数 ​

このページは機械翻訳により提供されています。翻訳内容と英語版に相違がある場合は、英語版が優先されます。

変換関数は特定の型の値を構築します。各関数は生成する型の名前を使用し、大文字で始まります。たとえば、Decimal('19.99')はDecimal値を作成します。

通常、インバウンドデータは文字列として到着するため、変換関数を使用すると、インバウンドデータが式に入る場所で値の型を明示的に制御できます。 WELは、文字列補間と2つの設定可能なTransform dataフラグを除き、呼び出しを成功させるために引数を変換しません。境界で明示的に変換することで、ダウンストリームの操作の型安全性と予測可能性が維持されます。

エッジで1回だけ変換

変換の開始時に、各フィールドを意図した型に1か所で変換します。残りの式全体で、それらの型付き値を使用します。式全体に変換が散在していると、どのフィールドが処理済みかを把握しにくくなり、数値が2回丸められる可能性が高くなります。

機能の提供状況

WELは現在、一部のお客様にご利用いただけます。ご利用のワークスペースで利用可能かどうかを確認するには、Customer Success Representativeにお問い合わせください。

数値 ​

WELには、各数値型に1つずつ、3つの数値コンストラクターがあります。

Integer ​

Integerに変換します。既存のIntegerまたは数字の文字列を受け入れます。

変換は厳密です。有効な整数以外を含む文字列はE102を発生させます。たとえば、Integer('3 items')は3を返すのではなくエラーを発生させます。

text
Integer(value)
パラメーター説明
valueIntegerまたは整数文字列。
整数文字列を変換する

次の例では、整数文字列を変換します:

Formula

text
Integer('42')

出力

text
42
既存の整数をそのまま渡す

次の例では、既存のIntegerを変更せずにそのまま渡します:

Formula

text
Integer(42)

出力

text
42

Decimal ​

Decimal、つまり正確な任意精度の数値に変換します。

金額にはDecimalを使用します。正確な桁がコンストラクターに渡るように、Decimal('19.99')など、値を文字列として渡します。 Decimal(19.99)は、すでに近似値であるFloatを変換するため、Decimalが保持するために存在する正確性が失われます。

Decimalはスケールも保持するため、Decimal('12.50')は算術演算中も末尾のゼロを保持し、合計は12.5になるのではなく通貨金額のままになります。

text
Decimal(value)
パラメーター説明
value数値または数値文字列。
小数文字列を変換する

次の例では、小数文字列を変換します:

Formula

text
Decimal('19.99')

出力

text
19.99
整数をDecimalに変換する

次の例では、整数をDecimalに変換します:

Formula

text
Decimal(5)

出力

text
5

Float ​

Float、つまりバイナリ浮動小数点数に変換します。

近似精度が許容される測定値、比率、科学的な値に適しています。 Floatはほとんどの小数を正確に表現できないため、金額には適していません。正確な算術演算には、代わりにDecimalを参照してください。

text
Float(value)
パラメーター説明
value数値または数値文字列。
数値文字列をFloatに変換する

次の例では、数値文字列をFloatに変換します:

Formula

text
Float('3.14')

出力

text
3.14

テキストと真偽値 ​

次のコンストラクターはString、Bool、Binaryに変換します:

String ​

data-planeロケールを使用して、スカラー値をStringに変換します。

Binaryとコレクションを拒否します。 ListまたはMapが暗黙的に、またはこの関数によって文字列に変換されることはありません。コレクションを意図的にシリアル化するには、to_jsonまたはto_welを使用します。この制限が存在するのは、暗黙のうちに文字列化されたコレクションが、ダウンストリームで最も気付きにくい変換バグの1つであるためです。

text
String(value)
パラメーター説明
valueスカラー値。
整数を文字列に変換する

次の例では、整数を文字列に変換します:

Formula

text
String(42)

出力

text
42
Decimalを文字列に変換する

次の例では、Decimalを文字列に変換します:

Formula

text
String(Decimal('19.99'))

出力

text
19.99

Bool ​

値をBooleanに変換します。既存のBoolean、または文字列'true'と'false'を受け入れます。

'yes'、'1'、'Y'は、意味がソースシステムに依存するため受け入れられません。ソース固有の値を明示的にBooleanにマッピングします:

text
if _.flag == 'Y' then true else false
text
Bool(value)
パラメーター説明
valueBoolean、または文字列'true'もしくは'false'。
文字列'true'を変換する

次の例では、文字列'true'をBooleanに変換します:

Formula

text
Bool('true')

出力

text
true

Binary ​

ASCII文字列をBinaryバイトに変換します。

ASCIIではないテキストには、明示的なエンコーディングを受け取るencode_stringを使用します。 Binaryは、非ASCII入力でエンコーディングを選択するのではなくE008を発生させます。

text
Binary(value)
パラメーター説明
valueASCII文字列。
ASCII文字列をバイトに変換する

次の例では、ASCII文字列をBinaryバイトに変換します:

Formula

text
Binary('AB')

出力

text
0x"4142"

日付と時刻 ​

WELでは、正確な瞬間と、タイムゾーンのないカレンダー日付または壁時計時刻を区別します。正しい型を選択すると、タイムゾーンをまたぐ日付のずれを防ぐのに役立ちます。構築後に各型を操作する方法については、一時関数を参照してください。

DateTime ​

DateTime、つまりタイムゾーンを持つ正確な瞬間に変換します。

作成タイムスタンプ、イベント時刻、監査レコードなど、発生するイベントの記録に使用します。

text
DateTime(value)
パラメーター説明
valueDateTime、ISO 8601文字列、またはコンポーネントのマップ。
ゾーンを含むISO 8601文字列を変換する

次の例では、タイムゾーンを含むISO 8601文字列を変換します:

Formula

text
DateTime('2026-03-15T09:30:00Z')

出力

text
2026-03-15T09:30:00Z

PlainDate ​

PlainDate、つまり時刻もゾーンもないカレンダー日付に変換します。

請求書の日付、生年月日、契約開始日など、どこでも同じ日付に使用します。 PlainDateの代わりに保存されたDateTimeは、ゾーン境界をまたぐと1日ずれることがあります。

text
PlainDate(value)
パラメーター説明
valueISO 8601日付文字列、または日付を保持する値。
ISO 8601日付文字列を変換する

次の例では、ISO 8601日付文字列を変換します:

Formula

text
PlainDate('2026-03-15')

出力

text
2026-03-15

PlainTime ​

PlainTime、つまり店舗の開店時刻など、日付もゾーンもない時刻に変換します。

text
PlainTime(value)
パラメーター説明
value時刻のみの文字列、またはhour、minute、secondを含むマップ。
ISO 8601時刻文字列を変換する

次の例では、ISO 8601時刻文字列を変換します:

Formula

text
PlainTime('09:30:00')

出力

text
09:30:00

PlainDateTime ​

PlainDateTime、つまりゾーンのない日付と時刻に変換します。

PlainDateTimeはDateTime引数を変換するのではなく、そこからゾーンを取り除くため、壁時計の読み取り値はそのまま保持されます。

text
PlainDateTime(value)
パラメーター説明
valueコンポーネントのマップ、ISO 8601文字列、またはDateTime。
ISO 8601日時文字列を変換する

次の例では、ISO 8601日時文字列を変換します:

Formula

text
PlainDateTime('2026-03-15T09:30:00')

出力

text
2026-03-15T09:30:00

Duration ​

Duration、つまりISO 8601期間形式で記述された時間の長さに変換します。たとえば、PT1H30Mです。

text
Duration(value)
パラメーター説明
valueISO 8601期間文字列、または期間を保持する値。
ISO 8601期間文字列を変換する

次の例では、ISO 8601期間文字列を変換します:

Formula

text
Duration('PT1H30M')

出力

text
PT1H30M

センチネル ​

次のコンストラクターは、不在を表すためにWELが使用する2つのマーカーを構築します:

Null ​

nullを返します。引数は取りません。

text
Null()
nullを返す

次の例では、nullを返します:

Formula

text
Null()

出力

text
null

Skip ​

Skipセンチネルを返します。引数は不要です。

Skipは、フィールドにnullを送信するのではなく、そのフィールドを完全に省略します。 Skipがmap_by内でリストをフィルタリングする方法を含む完全な比較については、Null and Skipを参照してください。宛先が明示的にクリアされたフィールドと未変更のフィールドを区別する場合は、Skipを使用します。多くのCRM APIがこれに該当します。

text
スキップする()

ユースケース: 境界でインバウンドペイロードを変換する ​

論理的には文字列ではないものを含め、すべてのフィールドが文字列として到着します。残りの変換が実際の型で機能できるように、先頭で1回だけ変換します:

入力

json
{
  "id": 1001,
  "qty": "3",
  "total": "149.50",
  "shipped": "true",
  "ship_date": "2026-03-15"
}

Formula

text
{
  order_id: String(_.id),
  qty: Integer(_.qty),
  total: Decimal(_.total),
  shipped: Bool(_.shipped),
  ship_date: PlainDate(_.ship_date)
}

出力

json
{
  "order_id": "1001",
  "qty": 3,
  "total": 149.50,
  "shipped": true,
  "ship_date": "2026-03-15"
}

Decimalはスケールを保持するため、totalは末尾のゼロを保持します。 ship_dateはPlainDateであるため、後続のステップでタイムゾーンが適用されても1日ずれることはありません。

  • データ型:16個のWELデータ型と、それぞれを使用するタイミング。
  • 数値関数: Decimalを丸めます。
  • 一時関数: 変換後の日付を操作します。
  • エラーコード: E008やE102などのジョブ失敗をトラブルシューティングします。

最終更新日: