プロセスビルダーからの卒業:フローでレコードタイプごとに通貨を設定し、入力時の動作をも変える
何故だか旅行に行きたくなりました。ここではないどこかへ。
Admin
2023/06/26 20:28:06
これまでワークフロー&プロセスビルダーで設定してきた自動化をフローでリメイクするシリーズです。
もとの記事はこちらです。
「マルチ通貨:プロセスビルダーでレコードタイプごとに通貨を設定し、入力時の動作をも変える」
マルチ通貨×レコードタイプでどのような仕様になるかと検証しており、メインはプロセスビルダーのお話ではないのですが、レコードタイプ切り替えでレコードの値を変更するのは昔からある手段のひとつなので、ついでに確認しておきます。しかしながら最近は動的フォームおよびLightningページが台頭してきておりますので、レコードタイプで切り替えは少なくなるかもしれませんね。個人的には、一度作ると後が大変なところもあるので(もちろんメリットもありますが)、レコードタイプは極力作りたくない派閥に属しております。
それでは早速本題に入ります。
一度有効化すると無効化できないので、テスト環境で十分に検証してから有効化してください。

通貨を追加したい場合も、組織情報のページから行います。
(実際の「サークレイス株式会社」の画面ではございません)

レコードタイプも2つ作りました。

フロー設定前のレコード詳細画面です。

「通貨」項目を切り替えると、「金額」の値がレート換算され、括弧内に表示されます。

ここで覚えておきたいのは、「金額」の数字は変わらず、括弧内に円換算された金額が表示されるということです。

【新規フロー】をクリックします。

【レコードトリガフロー】を選択して【作成】をクリックします。

①「開始」を設定します。
オブジェクトを選択:入金管理(作成したカスタムオブジェクトです)
トリガを設定:レコードが作成または更新された
エントリ条件を設定 条件の要件:数式の評価が True になる
数式:ISNEW()||ISCHANGED({!$Record.RecordTypeId})
※エントリ条件を設定しなくてもフローは動きますが、不要な処理が走らないように数式で「レコードが新規作成されたとき、またはレコードタイプが変更されたとき」を定義しています。
更新されたレコードをフローで実行するタイミング:レコードを更新し、条件の要件に一致するたび
※「ISCHANGED」関数を使用しているため、こちらのタイミングでの設定になります。
フローを最適化:アクションと関連レコード
※トリガしたレコード自身の更新になりますが、「高速項目更新」を選択すると、レコードの更新がうまくいきません。
②「決定」要素を追加します。
レコードタイプの値で分岐します。
結果その1 日本円
結果を実行する条件の要件:すべての条件に一致(AND)
リソース:$Record>レコードタイプID
演算子:次の文字列と一致する
値:レコードタイプID ※該当のレコードタイプのページのURLで確認できます。
結果を実行するタイミング:条件の要件を満たす場合
今回、分岐は2つなので、USDの方はこれでOK(デフォルトの結果の表示ラベルを変更してます)です。

③「トリガレコードを更新」要素を追加します。(日本円)
更新するレコードを検索してその値を設定する方法:フローをトリガした入金管理レコードを使用
検索条件を設定 レコードを更新する条件の設定:なし ー 常にレコードを更新
入金管理の項目値をレコードに設定:項目 CurrencyIsoCode(通貨ISOコード)|
値 JPY(日本円)
④「トリガレコードを更新」要素を追加します。(USD)
更新するレコードを検索してその値を設定する方法:フローをトリガした入金管理レコードを使用
検索条件を設定 レコードを更新する条件の設定:なし ー 常にレコードを更新
入金管理の項目値をレコードに設定:項目 CurrencyIsoCode(通貨ISOコード)|
値 USD(アメリカ$)
あとはフローを保存し、テストを行います。
ユーザのデフォルトの通貨が日本円のため、「通貨」は「日本円」が選択されています。ここで「通貨」を変更せず、日本円のままで入力し、保存します。

アメリカドルに換算されて、金額が表示されました。

日本円のレコードタイプのときは、

そのまま日本円です。

日本円で入力して、換算後の金額を保存できる。
ということです。
「レコードタイプ」項目が変換したい通貨で、
「通貨」を入力時の通貨とするとわかりやすいかと思います。
「通貨」項目の仕様については、もとの記事に説明がありますので、ぜひそちらも合わせたご確認ください。
フローを食わず嫌いしている人へ
月単位でアクションを起動したい
ファイルを添付したら添付ありチェックを入れたいその1(レコードトリガ)
ファイルを添付したら添付ありチェックを入れたいその2(スケジュールトリガ)
定型文を使用してchatter投稿したいその1(ユーティリティバー)
定型文を使用してchatter投稿したいその2(画面フロー)
定型文を使用してchatter投稿したいその3①(リストビューから一括投稿)
定型文を使用してchatter投稿したいその3②(リストビューから一括投稿)
公式ブログより、フローのベストプラクティス(長いです)
TDX'23より、自動化のロードマップとフロー学習リソースの追加について
Salesforce Labs Flows の活用&画面フローに動画とファイルを挿入してみた
ワークフローからの卒業:商談成立時に「完了予定日」を$Record_Priorで前の値のままにする
フローの命名ルールを決めて迷わず実装&仲間にもわかりやすくしよう
カスタムオブジェクトから参照する標準オブジェクトを更新するフローは再編集時エラー出るけれど動くそう
リストビューでチェックを入れたキャンペーンメンバーだけに発動するフロー
SalesforceフローでSlackへメンションしてメッセージを送る
プロセスビルダーからの卒業:リードを親とした参照関係の子レコードを、取引開始後にも紐づける
もとの記事はこちらです。
「マルチ通貨:プロセスビルダーでレコードタイプごとに通貨を設定し、入力時の動作をも変える」
マルチ通貨×レコードタイプでどのような仕様になるかと検証しており、メインはプロセスビルダーのお話ではないのですが、レコードタイプ切り替えでレコードの値を変更するのは昔からある手段のひとつなので、ついでに確認しておきます。しかしながら最近は動的フォームおよびLightningページが台頭してきておりますので、レコードタイプで切り替えは少なくなるかもしれませんね。個人的には、一度作ると後が大変なところもあるので(もちろんメリットもありますが)、レコードタイプは極力作りたくない派閥に属しております。
それでは早速本題に入ります。
前提
状況とやりたいことについては、もとの記事から引用します。状況
・マルチ通貨機能を有効化している。
・「有効な通貨」として、日本円、アメリカドルを設定している。
・マスタ通貨は日本円。
・ユーザのデフォルトの通貨も日本円。
・「入金管理」というカスタムオブジェクトで、
「日本円」と「アメリカドル」の2つのレコードタイプを使用している。
やりたいこと
レコードタイプによって通貨が自動的に設定されるようにしたい。
・「日本円」のレコードタイプ → 通貨は日本円
・「アメリカドル」のレコードタイプ → 通貨はアメリカドル
「マルチ通貨」の有効化は「組織情報」から
もとの記事ではさらっと流してますが、マルチ通貨は「組織情報」を編集して有効化します。一度有効化すると無効化できないので、テスト環境で十分に検証してから有効化してください。
通貨を追加したい場合も、組織情報のページから行います。
(実際の「サークレイス株式会社」の画面ではございません)
レコードタイプも2つ作りました。
フロー設定前のレコード詳細画面です。
「通貨」項目を切り替えると、「金額」の値がレート換算され、括弧内に表示されます。
ここで覚えておきたいのは、「金額」の数字は変わらず、括弧内に円換算された金額が表示されるということです。
フローでレコードタイプと通貨を連動させる
それでは、いざフローを設定します。と言っても今回も簡単ですが。【新規フロー】をクリックします。
【レコードトリガフロー】を選択して【作成】をクリックします。
①「開始」を設定します。
トリガを設定:レコードが作成または更新された
エントリ条件を設定 条件の要件:数式の評価が True になる
数式:ISNEW()||ISCHANGED({!$Record.RecordTypeId})
※エントリ条件を設定しなくてもフローは動きますが、不要な処理が走らないように数式で「レコードが新規作成されたとき、またはレコードタイプが変更されたとき」を定義しています。
更新されたレコードをフローで実行するタイミング:レコードを更新し、条件の要件に一致するたび
※「ISCHANGED」関数を使用しているため、こちらのタイミングでの設定になります。
フローを最適化:アクションと関連レコード
※トリガしたレコード自身の更新になりますが、「高速項目更新」を選択すると、レコードの更新がうまくいきません。
②「決定」要素を追加します。
レコードタイプの値で分岐します。
結果を実行する条件の要件:すべての条件に一致(AND)
リソース:$Record>レコードタイプID
演算子:次の文字列と一致する
値:レコードタイプID ※該当のレコードタイプのページのURLで確認できます。
結果を実行するタイミング:条件の要件を満たす場合
今回、分岐は2つなので、USDの方はこれでOK(デフォルトの結果の表示ラベルを変更してます)です。
③「トリガレコードを更新」要素を追加します。(日本円)
検索条件を設定 レコードを更新する条件の設定:なし ー 常にレコードを更新
入金管理の項目値をレコードに設定:項目 CurrencyIsoCode(通貨ISOコード)|
値 JPY(日本円)
④「トリガレコードを更新」要素を追加します。(USD)
検索条件を設定 レコードを更新する条件の設定:なし ー 常にレコードを更新
入金管理の項目値をレコードに設定:項目 CurrencyIsoCode(通貨ISOコード)|
値 USD(アメリカ$)
あとはフローを保存し、テストを行います。
動作の確認
もとの記事と同じように、レコードタイプを「USD」にして、レコードを新規作成します。ユーザのデフォルトの通貨が日本円のため、「通貨」は「日本円」が選択されています。ここで「通貨」を変更せず、日本円のままで入力し、保存します。
アメリカドルに換算されて、金額が表示されました。
円安ゥ……😇
日本円のレコードタイプのときは、
そのまま日本円です。
この方法のメリット
もとの記事と同じ結論ですが、入力した数字+通貨ではなく、入力した数字がレコード保存後にはレートで換算されて表示される。つまり、日本円で入力して、換算後の金額を保存できる。
ということです。
「レコードタイプ」項目が変換したい通貨で、
「通貨」を入力時の通貨とするとわかりやすいかと思います。
「通貨」項目の仕様については、もとの記事に説明がありますので、ぜひそちらも合わせたご確認ください。
ひとこと
昔の記事を振り返ってみて、「「マルチ通貨」について色々検証してみよう」と思いつつそのままだったな……と思いついてはすぐに忘れる自分の正確にあきれましたが、旅行代理店や輸入業用のアプリケーションを作って色々な通貨を取り扱ってみたい、とまた妄想してしまいました。マルチ通貨で検証してほしいことがあれば、是非コメントで教えてください!もとの記事
マルチ通貨:プロセスビルダーでレコードタイプごとに通貨を設定し、入力時の動作をも変えるフロー関連の記事
画面フローのデータテーブルコンポーネントを使ってみたら…フローを食わず嫌いしている人へ
月単位でアクションを起動したい
ファイルを添付したら添付ありチェックを入れたいその1(レコードトリガ)
ファイルを添付したら添付ありチェックを入れたいその2(スケジュールトリガ)
定型文を使用してchatter投稿したいその1(ユーティリティバー)
定型文を使用してchatter投稿したいその2(画面フロー)
定型文を使用してchatter投稿したいその3①(リストビューから一括投稿)
定型文を使用してchatter投稿したいその3②(リストビューから一括投稿)
公式ブログより、フローのベストプラクティス(長いです)
TDX'23より、自動化のロードマップとフロー学習リソースの追加について
Salesforce Labs Flows の活用&画面フローに動画とファイルを挿入してみた
ワークフローからの卒業:商談成立時に「完了予定日」を$Record_Priorで前の値のままにする
フローの命名ルールを決めて迷わず実装&仲間にもわかりやすくしよう
カスタムオブジェクトから参照する標準オブジェクトを更新するフローは再編集時エラー出るけれど動くそう
リストビューでチェックを入れたキャンペーンメンバーだけに発動するフロー
SalesforceフローでSlackへメンションしてメッセージを送る
プロセスビルダーからの卒業:リードを親とした参照関係の子レコードを、取引開始後にも紐づける
コメント