Skip to main content

ノードを追加してデータ処理エンジン定義を完成させる

学習の目的

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

  • 定義で [グループと集計] ノードを使用する。
  • 債務を計算する数式を作成する。

債務を計算するための追加ノード

Cloud Kicks のロイヤルティマネージャーの Mary Levy はプログラムパートナーに対して獲得した債務の詳細を必要としています。債務はメンバーが購入または償還を行うたびに獲得されます。取引 (獲得または償還) の種類に応じて、プログラムとパートナーは債務をやり取りします。債務を理解することは、Mary がパートナーシップの財務面での実行可能性を評価するのに役立ちます。

Linda が債務を計算するには、取引に関連付けられた対象外ポイントの詳細が必要です。これはロイヤルティプログラムに関連した活動でメンバーが獲得するポイントであり、メンバーはリワードの受け取りに利用できます。このポイントの詳細はロイヤルティ元帳オブジェクトにあるため、Linda はこのためのデータソースを作成します。このオブジェクト内で [イベント種別] 項目、[Points (ポイント)] 項目、[取引記録] 項目を選択します。 

ロイヤルティ台帳に関連するデータの項目を選択できる [データソース] ウィンドウ。

次に、記録情報を元帳の詳細に追加します。両方のソースノードからの一致項目のみを出力に含めるため、内部結合を使用します。

  1. [新規ノード] をクリックし、次の詳細を指定します。
    • ノード種別を選択: 結合
    • 名前: Add Journal Info to Ledger (元帳への記録情報の追加)
  2. [保存] をクリックします。
  3. [結合種別] で [内部] を選択します。
  4. [最初のノード] で次の詳細を指定します。
    • 取得元ノード: Loyalty Ledger (ロイヤルティ元帳)
    • 項目を選択: PointsTransactionJournalId
  5. [完了] をクリックします。
  6. [2 番目のノード] で次の詳細を指定します。
    • 取得元ノード: Filter Based on Date and Program (日付とプログラムに基づく検索条件)
    • 項目を選択: 使用可能な項目をすべて選択
  7. [完了] をクリックします。
  8. [項目を対応付け] で次の詳細を指定します。
    • 最初のノード項目: TransactionJournalId
    • 2 番目のノード項目: Id
  9. [完了] をクリックします。

絞り込まれた日付とプログラムのデータにロイヤルティ元帳の詳細を追加する [結合] ウィンドウ。

この結合を作成すると、すべての元帳での取引記録とロイヤルティプログラムに関するデータが得られます。また、すべての対象外ポイントに関する詳細も得られるため、Linda は記録種別をグループ化して、それぞれについてポイントを集計できます。 

  1. [新規ノード] をクリックし、次の詳細を指定します。
    • ノード種別を選択: グループと集計
    • 名前: Aggregate Points Based on Journal Type and Partner (取引記録とパートナーに基づくポイントの集計)
  2. [保存] をクリックします。
  3. [取得元ノード] で次の詳細を指定します。
    • 取得元ノードを選択: Add Journal Info to Ledger (元帳への記録情報の追加)
    • 項目を選択: JournalTypeNamePartnerId
  4. [完了] をクリックします。
  5. [集計] で次の詳細を指定します。
    • 別名: TotalPoints
    • 関数を選択: Sum
    • 集計項目を選択: Points
  6. [完了] をクリックします。

グループ化する項目を選択し、集計する項目を定義する [グループと集計] ウィンドウ。

次に、記録種別に基づいてデータを分割する必要があります。そのために、獲得取引と償還取引でデータを絞り込みます。

  1. [新規ノード] をクリックし、次の詳細を指定します。
    • ノード種別を選択: 検索条件
    • 名前: Filter Accrual Transactions (獲得取引の絞り込み)
  2. [保存] をクリックします。
  3. [取得元ノード] で [Aggregate Points Based on Journal Type and Partner (取引記録とパートナーに基づくポイントの集計)] を選択します。
  4. 検索条件に次の詳細を指定します。
    • 項目: JournalTypeName
    • 演算子: 次の文字列と一致する
    • 種別: 項目
    • 値: Accrual
  5. [完了] をクリックします。
  6. ステップ 1 ~ 5 を繰り返して、「Filter Redemption Transactions」(償還取引の絞り込み) 検索条件を作成し、次の詳細を指定します。
取得元ノード 項目 演算子 種別
Aggregate Points Based on Journal Type and Partner (取引記録とパートナーに基づくポイントの集計) JournalTypeName 次の文字列と一致する 項目 Redemption (償還)

グループ化されて集計されたデータを償還記録によって絞り込む条件を定義する [検索条件] ウィンドウ。

ここまで Linda が使用していたのは合計ポイントの詳細のみです。単位あたりの獲得コストと償還コストに関するデータがまだありません。債務を計算するにはその詳細が必要です。単位あたりのコストはプログラムパートナーオブジェクトから取得します。

Linda は手順に従ってロイヤルティプログラムパートナーのデータソースを作成します。ここから、[単位あたりの獲得コスト]、[ロイヤルティパートナー ID]、[Program (プログラム)]、[Program Partner (プログラムパートナー)]、[単位あたりの償還コスト] が必要です。 

プログラムパートナーに関連する項目を選択する [データソース] ウィンドウ。

これで、集計された獲得と償還に関する情報をプログラムパートナーに結合できるようになりました。最初のソースノードからのすべての項目と 2 番目のソースコードからの一致項目を出力に含めるため、Linda は左外部結合を使用します。

  1. [新規ノード] をクリックし、次の詳細を指定します。
    • ノード種別を選択: 結合
    • 名前: Add Accrual Points to Partner (パートナーへの獲得ポイントの追加)
  2. [保存] をクリックします。
  3. [結合種別] で [左外部] を選択します。
  4. [最初のノード] で次の詳細を指定します。
    • 取得元ノード: Program Partner (プログラムパートナー)
    • 項目を選択: 使用可能な項目をすべて選択
  5. [完了] をクリックします。
  6. [2 番目のノード] で次の詳細を指定します。
    • 取得元ノード: Filter Accrual Transactions (獲得取引の絞り込み)
    • 項目を選択: TotalPoints 
    • 別名を編集: AccrualPoints
  7. [完了] をクリックします。
  8. [項目を対応付け] で次の詳細を指定します。
    • 最初のノード項目: Id
    • 2 番目のノード項目: PartnerId
  9. [完了] をクリックします。

絞り込まれた獲得ポイントにプログラムパートナーの詳細を追加する [結合] ウィンドウ。

上記のノードの結果は、Ursa Major Solar に関するすべての獲得取引になります。これに対して Linda は左外部結合を使用して償還取引を追加します。     

  1. [新規ノード] をクリックし、次の詳細を指定します。
    • ノード種別を選択: 結合
    • 名前: Add Redemption Points to Partner (パートナーへの償還ポイントの追加)
  2. [保存] をクリックします。
  3. [結合種別] で [左外部] を選択します。
  4. [最初のノード] で次の詳細を指定します。
    • 取得元ノード: Add Accrual Points to Partner (パートナーへの獲得ポイントの追加)
    • 項目を選択: 使用可能な項目をすべて選択
  5. [完了] をクリックします。
  6. [2 番目のノード] で次の詳細を指定します。
    • 取得元ノード: Filter Redemption Transactions (償還取引の絞り込み)
    • 項目を選択: TotalPoints 
    • 別名を編集: RedemptionPoints
  7. [完了] をクリックします。
  8. [項目を対応付け] で次の詳細を指定します。
    • 最初のノード項目: Id
    • 2 番目のノード項目: PartnerId
  9. [完了] をクリックします。

絞り込まれた償還ポイントをパートナーの獲得取引に追加する [結合] ウィンドウ。

これで、Linda は数式を作成できるようになりました。債務を計算するには、獲得と償還の差が必要です。獲得と償還の合計値はポイントに単位あたりのコストを掛けることで計算されます。 

  1. [新規ノード] をクリックし、次の詳細を指定します。
    • ノード種別を選択: 数式
    • 名前: Calculate Liability (債務の計算)
  2. [保存] をクリックします。
  3. [取得元ノード] で [Add Redemption Points to Partner (パートナーへの償還ポイントの追加)] を選択します。
  4. [数式] で次の詳細を指定します。
    • 別名: Liability
    • 項目の型: 数値
    • 長さ: 16
    • 小数点の位置: 2
    • [項目を検索] オプションと [演算子を選択] オプションを使用して、次の数式を入力します: IF(ISNULL({AccrualPoints}) , 0-({RedemptionPoints} * {RedemptionCostperUnit}), ({AccrualPoints} * {AccrualCostperUnit}) - ({RedemptionPoints} * {RedemptionCostperUnit}))
  5. [構文の検証] をクリックします。
  6. [完了] をクリックします。

債務を計算する数式を定義する [数式] ウィンドウ。

最後に、債務がパートナーオブジェクトの [債務] 項目に更新されます。 

  1. [新規ノード] をクリックし、次の詳細を指定します。
    • ノード種別を選択: 書き戻しオブジェクト
    • 名前: Update Liability (債務の更新)
  2. [保存] をクリックし、次の詳細を指定します。
    • 取得元ノード: Calculate Liability (債務の計算)
    • アクション種別: 更新
    • 対象オブジェクト: ロイヤルティプログラムパートナー
    • 書き戻し権限を持つユーザー: 管理ユーザー
    • [変更されたレコードのみを更新] を選択
    • 書き戻し順序: 1
  3. [項目の対応付け] で次の詳細を指定します。
    • 取得元ノード項目: Id
    • 取得先項目: Id
    • [行を追加] をクリック
    • 取得元ノード項目: Liability
    • 取得先項目: Liability_c
  4. [完了] をクリックします。

債務金額を更新する項目を選択する [書き戻しオブジェクト] ウィンドウ。

すべてのノードが作成されたら、Linda は [保存][有効化] をクリックします。

定義を保存して有効化する DPE ビルダーページ。

Linda が [有効化] をクリックするとバックグラウンドで検証ルールが実行されて、定義が正しくて実行可能であるかどうかが確認されます。定義にエラーが存在する場合は、エラーが強調表示されます。警告が表示された場合は、問題を修正または無視できます。エラーが修正された場合のみ定義が有効化されます。

これで DPE 定義の準備ができました。後は、データ変換を始められるように DPE 定義を実行するだけです。DPE ではフロー/Apex でデータ変換実行のオーケストレーションが行われます。次の単元ではその方法を見ていきます。

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる