WELクイックスタート ​

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

WEL(Workato Expression Language)はWorkatoの変換言語です。これは、インストールも接続も不要で、レシピの他の部分と並行してWorkatoのデータプレーンで実行されます。

このページでは、1つの例を使用して、WELを扱う3つの方法を紹介します。

  • レシピ内: Workato Expression Languageコネクターでレシピデータピルを作成して、すばやく開始します。
  • AIクライアントを使用: 外部AIクライアントでWELを作成します。
  • バイナリを使用: レシピを実行せずに、式への変更をすばやくテストします。

機能の提供状況

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

例 ​

webhookが注文を配信します。宛先システムでは、正規化された名前とメール、カレンダー日付、正確な合計を含むフラットなレコードが必要です。

入力

json
{
  "order_id": "so-1001",
  "placed_at": "2026-03-15T09:30:00Z",
  "customer": {
    "first_name": "kalani",
    "last_name": "park",
    "email": " KALANI@Example.COM "
  },
  "line_items": [
    {"sku": "WID-1", "qty": 3, "unit_price": "12.50"},
    {"sku": "GAD-7", "qty": 1, "unit_price": "99.00"}
  ]
}

Formula

text
{
  order_id: upper(_.order_id),
  customer_name: f"{capitalize(_.customer.first_name)} {capitalize(_.customer.last_name)}",
  email: lower(trim(_.customer.email)),
  order_date: PlainDate(DateTime(_.placed_at)),
  item_count: count(_.line_items),
  total: _.line_items >> map_by(li ~> Decimal(li.unit_price) * li.qty) >> sum
}

この例では、次のコンポーネントを使用します。

  • _は入力変数で、前のペイロードを含みます。 _.order_idは、そこからorder_idフィールドを読み取ります。詳細については、入力変数を参照してください。
  • >>は値を関数にパイプするため、合計は左から右へ読み取られます。このパイプラインはラインアイテムを取得し、それぞれを価格に変換して合計します。
  • Decimal(li.unit_price)は金額を正確に保持します。合計は136.5ではなく、136.50です。 Decimalは表示形式ではなく正確な型であるため、スケールが保持されます。
  • PlainDate(...)はタイムゾーンのないカレンダー日付を生成するため、宛先に到達する途中で日付が1日ずれることはありません。

出力

json
{
  "order_id": "SO-1001",
  "customer_name": "Kalani Park",
  "email": "kalani@example.com",
  "order_date": "2026-03-15",
  "item_count": 2,
  "total": 136.50
}

レシピで開始 ​

レシピは、WELを扱う最も一般的な方法です。このコネクターにはコネクションの設定は必要ありません。レシピを作成するか既存のレシピを開き、次の手順を完了して前述の例を実行します。

1

WELを扱う予定のレシピを開きます。

2

+ Add stepをクリックし、Action in appを選択します。

アクションを追加Add step > Add action in appをクリック

3

Workato Expression Languageコネクターを検索して選択します。 Transform data (code)アクションが自動的に読み込まれます。

4

NameフィールドにWEL式の名前を入力します。このラベルはレシピエディターにのみ表示されます。

5

Input fieldsセクションに移動し、generate from JSON sampleをクリックします。

6

次のサンプルJSONを貼り付けます。

json
{
  "order_id": "so-1001",
  "placed_at": "2026-03-15T09:30:00Z",
  "customer": {
    "first_name": "kalani",
    "last_name": "park",
    "email": " KALANI@Example.COM "
  },
  "line_items": [
    {"sku": "WID-1", "qty": 3, "unit_price": "12.50"},
    {"sku": "GAD-7", "qty": 1, "unit_price": "99.00"}
  ]
}
7

必要に応じてSet all fields as requiredを選択し、検出されたすべてのフィールドを必須としてマークします。その後、個別のフィールド要件を調整できます。

8

Nextをクリックして、フィールドリストを自動的に生成します。

9

推論されたフィールド型を確認し、デザイナーが誤って判断したものを修正します。

スキーマ推論を確認

スキーマ推論はサンプルを読み取るため、サンプルに示されている内容のみを確認できます。次のケースを必ず確認してください。

  • 数値精度: サンプルの12.50は、Decimalではなく浮動小数点数として推論されます。フィールドが通貨金額の場合は、自分で型を設定します。
  • 日付と日時: サンプルの2026-03-15T09:30:00Zは、時間型ではなくプレーン文字列として推論されます。

完全なフィールドリストと推論の詳細については、Transform dataアクションを参照してください。

10

スキーマを生成をクリックします。スキーマに基づいて新しい入力フィールドが使用可能になります。

11

以前のステップからのデータピルや静的値などのデータを、新しいフィールドにマッピングします。

12

Output schemaセクションに移動し、Use JSONをクリックします。このセクションでは、式が生成するデータピルを設定します。出力スキーマに含まれていないフィールドは、式の最終値に関係なく、下流には表示されません。

13

次のサンプル出力JSONを貼り付けます。

json
{
  "order_id": "SO-1001",
  "customer_name": "Kalani Park",
  "email": "kalani@example.com",
  "order_date": "2026-03-15",
  "item_count": 2,
  "total": 136.50
}
14

必要に応じてSet all fields as requiredを選択し、検出されたすべてのフィールドを必須としてマークします。その後、個別のフィールド要件を調整できます。

15

Nextをクリックして、フィールドリストを自動的に生成します。

16

入力フィールドのステップと同じチェックを使用して、推論されたフィールド型を確認し、デザイナーが誤って判断したものを修正します。

17

スキーマを生成をクリックします。出力スキーマで定義されたorder_id、customer_name、email、order_date、item_count、およびtotalデータピルは、下流のレシピステップで使用可能になりますが、WELのCodeを定義するまでは値が割り当てられません。

18

入力値に対して実行する変換を定義して出力データピルを作成するには、次の式をCodeフィールドに貼り付けます。

text
{
  order_id: upper(_.order_id),
  customer_name: f"{capitalize(_.customer.first_name)} {capitalize(_.customer.last_name)}",
  email: lower(trim(_.customer.email)),
  order_date: PlainDate(DateTime(_.placed_at)),
  item_count: count(_.line_items),
  total: _.line_items >> map_by(li ~> Decimal(li.unit_price) * li.qty) >> sum
}

外部AIクライアントで開始 ​

WELを知らない外部AIクライアントは、通常、別の言語のラムダ構文を流用して、もっともらしく見えるが実行できないものを作成します。 WELではラムダに~>を使用し、->または=>は解析エラーになります。

WELキットは、AIクライアントに言語リファレンスとプラットフォームバイナリを提供することで、この問題を解決します。これにより、AIは生成されたコードを実際のエンジンに対して確認し、確実に機能する式を作成できます。

配布物についてのお知らせ

WELキットおよびwelバイナリの配布物は、ここでは公開されていません。現在のビルドまたはお使いのプラットフォーム向けの場所については、カスタマーサクセス担当者にお問い合わせください。

WELキットを備えたAIクライアントは、自然言語の説明から変換を作成できます。サンプルペイロードと宛先で必要な内容を含めます。エンジンに対して式を検証し、アクションに直接貼り付けられるサンプル出力とFormulaを返すよう依頼します。

AIコードを検証

AIが生成したコードは、必ず自分で読んでください。出力が宛先で期待される内容と一致することを確認することで、生成されたコードをすばやくチェックできます。

バイナリで開始 ​

レシピの実行で式をテストするには数分かかります。代わりにwelバイナリはエンジンをローカルで実行し、1秒未満で結果を返します。これは、式をまだ作成している段階で迅速に反復するための、より優れたワークフローです。

配布物についてのお知らせ

WELキットおよびwelバイナリの配布物は、ここでは公開されていません。現在のビルドまたはお使いのプラットフォーム向けの場所については、カスタマーサクセス担当者にお問い合わせください。

提供された例でwelバイナリを操作するには、次の手順を完了します。

1

次のファイルをローカルに保存します。

式

次の式をorder.welとして保存します。

text
{
  order_id: upper(_.order_id),
  customer_name: f"{capitalize(_.customer.first_name)} {capitalize(_.customer.last_name)}",
  email: lower(trim(_.customer.email)),
  order_date: PlainDate(DateTime(_.placed_at)),
  item_count: count(_.line_items),
  total: _.line_items >> map_by(li ~> Decimal(li.unit_price) * li.qty) >> sum
}
サンプル入力

次のサンプル入力をorder.jsonとして保存します。

json
{
  "order_id": "so-1001",
  "placed_at": "2026-03-15T09:30:00Z",
  "customer": {
    "first_name": "kalani",
    "last_name": "park",
    "email": " KALANI@Example.COM "
  },
  "line_items": [
    {"sku": "WID-1", "qty": 3, "unit_price": "12.50"},
    {"sku": "GAD-7", "qty": 1, "unit_price": "99.00"}
  ]
}
2

次のコマンドを実行します。

bash
wel eval -f order.wel -I order.json

式は次を出力します。

text
{order_id: "SO-1001", customer_name: "Kalani Park", email: "kalani@example.com", order_date: 2026-03-15, item_count: 2, total: 136.50}
3

式が宛先で期待される出力を生成するまで、order.json入力ファイルまたはorder.wel式ファイルを編集してコマンドを再実行し、反復します。 WELエンジンはバイナリ内でもレシピ内でも同じように動作するため、ここで機能する式はそちらでも機能します。

便利なフラグ ​

welバイナリは、テストと検証用の追加フラグを受け入れます。

フラグ目的例
--nownow()を特定の瞬間に固定するため、結果を再現できます。wel eval 'now()' --now '2026-03-15T09:30:00Z'
validate式を実行せずに、解析できることを確認します。wel validate -f order.wel

welバイナリには、この2つ以外にもフラグとサブコマンドがありますが、これらは式をテストするレシピビルダーではなく、WELエンジンを埋め込むホストアプリケーションを構築する開発者を対象としています。

次のステップ ​

  • Transform data: WELコネクターインテグレーションと、スキーマ推論では検出されない内容。
  • 標準ライブラリ: すべてのWEL関数に関する情報。
  • データ型: 前述の例でDecimalとPlainDateが適切な選択だった理由。
  • Cookbook: 一般的な連携の問題の例。
  • エラーコード: ジョブ失敗のトラブルシューティング。

最終更新日: