Skip to main content

関数と数式を使用してデータを変換する

学習の目的

この単元を完了すると、次のことができるようになります。

  • カスタム式エディターを操作する。
  • 文字列関数を使用してデータを変換する。
  • 数値関数を使用してデータを変換する。
  • データ関数を使用してデータを変換する。

単元 2 では、現在のアクションステップの対象オブジェクトの項目をさまざまなソース値にマップする方法を学習しました。通常、この作業では、1 つの対象項目を 1 つのソース値にマップします。前述のとおり、ソース値は以下の値です。

  • テキスト文字列
  • 数値
  • データピル
  • データピルからの選択リスト値

しかしながら、1 つの対象項目を複数のソース値にマップする必要があるインテグレーション状況はたくさんあります。このような場合は、関数と数式を使用して対象項目のデータを変換します。データの変換に使用するツールは、カスタム式エディターです。

カスタム式エディター

カスタム式エディターを使用すれば、関数と数式を使用してデータの変換を簡単に行えるようになります。アプリケーション内コンテキストヘルプでユーザーを導き、その過程で具体的な例とアクション可能なエラーメッセージを提供し、カスタム式の構文を検証します。このような機能により、ユーザーは正しい処理を行って、最終的にカスタム式の作成に成功することができます。

カスタム式エディターにアクセスするには、フローのステップの項目をクリックし、[Custom Expression (カスタム式)] をクリックします。カスタム式エディターーが表示されます。
関数、データ、演算子タブが含まれるカスタム式エディター。

カスタム式エディターには、次の 3 つのタブがあります。

タブ
説明

関数

次のような多数の関数が用意されています。

  • 文字列: capitalize()、upper()、substitute()
  • 数値: round()、floor()、fromNumberToDateTime()
  • 日付: addDays()、daysBetweenDateTimes()、fromDateToDateTime()

データ

フローの前のステップのデータピルを示します。

演算子

数値の加算、減算、乗算、除算を行い、開き括弧と閉じ括弧を使用して数式の優先順位を指定できます。

では、カスタム式エディターを使用してユースケース例でデータを変換する方法を学習しましょう。 

文字列関数を使用してデータを変換する

たとえば、「Marketing Event Tracker」スプレッドシートで新しい行が作成されたときに開始するフローがあるとします。その後、そのフローでは Sales Cloud の取引先責任者オブジェクトを使用して取引先責任者が作成されます。「Marketing Event Tracker」スプレッドシートには、[First Name (名)]、[Last Name (姓)]、[Email (メール)] 項目が含まれています。フローでは、Sales Cloud で取引先責任者を作成するときに、名と姓は大文字で始まり、メールアカウントは小文字となるよう変換する必要があります。

この要件を満たすには、2 つの関数を使用する必要があります。 

  • capitalize() は、テキスト文字列を受け入れ、文字列の各単語の最初の文字を大文字にし、その結果を返します。
  • lower() は、テキスト文字列を受け入れ、文字を小文字に変換し、その結果を返します。

次の手順に従って、capitalize() 関数と lower() 関数を使用して名、姓、メールアカウントが目的の文字種になるように変換します。

  1. [Create new record in the Salesforce (Salesforce で新規レコードを作成)] ステップで、[Last Name (姓)] 項目をクリックして [Custom Expression (カスタム式)] をクリックします。
  2. [Functions (関数)] タブで、下にスクロールして [capitalize] を選択します。MuleSoft Composer では、この関数のアプリケーション内コンテキストヘルプと例が表示されます。また、有効なカスタム式が設定されるまで、構文エラーメッセージが表示されます。
    定義と例を含む capitalize() 関数が表示されているカスタム式エディター。
  3. カーソルを capitalize() 内に置いた状態で、[Data (データ)] タブをクリックし、[Last Name (姓)] を選択します。MuleSoft Composer によってカスタム式の構文が検証されます。式にエラーがある場合、修正するまで次のステップに進めません。
    capitalize() 関数が表示されているカスタム式エディター。
  4. [Apply (適用)] をクリックして式を受け入れます。
  5. [First Name (名)] 項目について、ステップ 1 ~ 4 を繰り返します。
  6. [Email (メール)] 項目についてステップ 1 ~ 4 を繰り返しますが、今度は lower() 関数を使用します。[Create new record in Salesforce (Salesforce で新規レコードを作成)] アクションステップは、次のようになります。
    capitalize() と lower() 関数を使用した項目で取引先責任者を作成するフローのステップ 2。

数値関数を使用してデータを変換する

GD (Great Divide) 組織の取引先を NTO 組織に同期するフローの例を見てみましょう。NTO 組織には、「Revenue Per Employee (従業員あたりの収益)」というカスタム数値項目があります。 

このフローには、Revenue Per Employee (従業員あたりの収益) 項目を計算し、四捨五入してから NTO 組織で結果のレコードを作成または更新する必要がある「Create or update record in Salesforce (Salesforce でレコードを作成または更新)」アクションステップがあります。これを行うには、除算演算子と round() 関数を使用します。この関数は数値を受け入れ、最も近い整数に丸めて、結果を返します。

数式は次のようになります。

Revenue per Employee = round ( Annual Revenue / Employees )

次の手順に従って、除算演算子と round() 関数を使用して、Revenue Per Employee (従業員あたりの収益) 項目のデータを変換します。 

  1. [Create or update record in Salesforce (Salesforce でレコードを作成または更新)] ステップで、[Revenue Per Employee (従業員あたりの収益)] 項目をクリックし、[Custom Expression (カスタム式)] をクリックします。
  2. [Functions (関数)] タブで、下へスクロールして [round] を選択します。
  3. カーソルを round() 内に置いた状態で、[Data (データ)] タブをクリックし、フローのステップ 1 の [Annual Revenue (年間売上)] を選択します。
  4. [Operators (演算子)] タブをクリックし、[Divide (除算)] を選択します。または、Control+/ を使用します。
    メモ: 数学演算子にはキーボードショートカットを使用できます。Control + マイナス (-) または 除算 (/) を使用します。Control + Shift + プラス (+)、乗算 (*)、開き括弧 (()、閉じ括弧 ()) を使用します。たとえば、乗算 (*) 演算子を入力するには、Control+Shift+* を押します。 
  5. [Data (データ)] タブをクリックし、フローのステップ 1 の [Employees (従業員数)] を選択します。MuleSoft Composer によってカスタム式の構文が検証されます。式にエラーがある場合、修正するまで次のステップに進めません。
    round() 関数が表示されているカスタム式エディター。
  6. [Apply (適用)] をクリックして式を受け入れます。[Create or update record in Salesforce (Salesforce でレコードを作成または更新)] ステップは、次のようになります。
    round () 関数を使用して従業員あたりの収益項目を含む取引先を作成するフローのステップ 3。

データ関数を使用してデータを変換する

ここでも、GD 組織の取引先を NTO 組織に同期する同じフローを使用しましょう。このフローでは、過去 7 日間に変更された取引先のみをフェッチする必要があります。

これを行うには、2 つの関数を使用します。 

  • now() は現在の日付と時刻を日時で返します。
  • addDays() は 2 つの日時 (時間参照と日数) を受け入れ、指定された日数を増分または減分した日時を返します。

次の手順に従って、now() 関数と addDays() 関数を使用してデータを変換し、過去 7 日に変更された取引先をフェッチする条件を満たします。

  1. [Get records in Salesforce (Salesforce でレコードを取得)] ステップで、[All conditions must be met (AND) (すべての条件を満たす必要がある (AND))] 条件を選択します。
  2. 項目として [Last Modified Date (最終更新日)]、演算子として [Equals (次の文字列と一致する)] を選択します。
  3. [Value (値)] 項目をクリックし、[Custom Expression (カスタム式)] をクリックします。
  4. [Functions (関数)] タブで、下へスクロールして [addDays] を選択します。必ず、日時を処理する addDays() 関数を選択してください。
  5. カーソルを addDays() の最初のパラメーター内に置いた状態で、下へスクロールして、値に [now] を選択します。
  6. addDays() の 2 つ目のパラメーター値として、カンマの右に -7 と入力します。この値は、現在より 7 日前を示します。
    addDays() 関数が表示されているカスタム式エディター。
  7. [Apply (適用)] をクリックして式を受け入れます。[Get records in Salesforce (Salesforce でレコードを取得)] ステップは、次のようになります。
    addDays() 関数を使用した最終更新日項目によって取引先を作成するフローのステップ 2。

あるデータ種別から別のデータ種別にデータを変換する

データの保存方法はシステムによって異なるため、あるデータ種別から別のデータ種別にデータを変換することが必要になる場合があります。その処理には、さまざまな関数を使用できます。次の表に、主な関数を紹介します。

関数
説明

fromStringToDate

文字列を日付に変換します。 

fromStringToNumber

文字列を数値に変換します。 

fromNumberToString

数値を文字列に変換します。

fromNumberToDateTime

数値を日時に変換します。

fromDateToString

日付を文字列に変換します。 

fromDateTimeToNumber

日時を数値に変換します。

fromDateToDateTime

日付を日時に変換します。

例を見てみましょう。NTO 組織の取引先を NetSuite の顧客に同期するフローがあります。このフローには、NTO 組織の取引先を使用して、NetSuite に顧客を作成する [Create Record in NetSuite (NetSuite でレコードを作成)] ステップがあります。このステップでは、Salesforce の [Last Modified Date (最新更新日)] 項目を NetSuite の対応する項目にマップする必要があります。 

しかしながら、日付は Salesforce では日付として保存されていますが、NetSuite では日時として保存されています。Salesforce の日付を NetSuite の日時に変換するには、fromDateToDateTime() 関数を使用します。

次の手順に従って、Salesforce の日付を NetSuite の日時に変換します。

  1. [Create Record in NetSuite (NetSuite でレコードを作成)] ステップで、[Last Modified Date (最終更新日)] 項目をクリックして、[Custom Expression (カスタム式)] をクリックします。
  2. [Functions (関数)] タブで、下へスクロールして [fromDateToDateTime] を選択します。
  3. カーソルを fromDateToDateTime() の最初のパラメーター内に置いた状態で、[Data (データ)] タブをクリックし、フローのステップ 1 の [Last Modified Date (最終更新日)] を選択します。
    fromDateToDateTime() 関数が表示されているカスタム式エディター。
  4. [Apply (適用)] をクリックして式を受け入れます。[Create Record in NetSuite (NetSuite でレコードを作成)] ステップは、次のようになります。
    fromDateToDateTime() 関数を使用する最終更新日項目で顧客を作成するフローのステップ 4。

値を組み合わせてデータを変換する

データの変換では、1 つのカスタム式にテキスト文字列、数値、データピルや文字列、数値、日付の関数、数式を組み合わせて使用することもできます。

単元 1 の学習時と同じフローを使用しましょう。Salesforce 取引先を Slack 通知に同期するフローです。このフローは次のタスクを実行します。

  1. NTO 組織で新規作成または更新された取引先を見つける。
  2. Slack の sales-leads チャンネルに通知を送信する。

フローのステップ 2 の [Message (メッセージ)] 項目のカスタム式を次の式に置き換えてみましょう。フローのステップ 1 とは異なるテキスト文字列、capitalize()、round()、daysBetweenDates()、today() といくつかのデータピルが使用されています。
capitalize()、round()、daysBetweenDates()、today() 関数を使用してメッセージを Slack の sales-leads チャンネルに投稿するフローのステップ 2。

実行時、このフローは次のような Slack メッセージを生成します。
capitalize()、round()、daysBetweenDates()、today() 関数の結果を示す Slack の sales-leads チャンネル。

お見事です。ここでは、関数と数式を使用してデータを変換する方法を学びました。次の単元では、接続とアクションステップを管理する方法と、フローをテストして想定どおりに機能することを確認する方法を学びます。

Salesforce ヘルプで Trailhead のフィードバックを共有してください。

Trailhead についての感想をお聞かせください。[Salesforce ヘルプ] サイトから新しいフィードバックフォームにいつでもアクセスできるようになりました。

詳細はこちら フィードバックの共有に進む