状況
・マルチ通貨機能を有効化している。
・「有効な通貨」として、日本円、アメリカドルを設定している。
・マスタ通貨は日本円。
・ユーザのデフォルトの通貨も日本円。
・「入金管理」というカスタムオブジェクトで、
「日本円」と「アメリカドル」の2つのレコードタイプを使用している。
やりたいこと
レコードタイプによって通貨が自動的に設定されるようにしたい。
・「日本円」のレコードタイプ → 通貨は日本円
・「アメリカドル」のレコードタイプ → 通貨はアメリカドル
対処法
プロセスビルダーで、選択されたレコードタイプに応じて、通貨の値を更新させる。
設定手順
※ポイントに絞って書いていきます。
1.プロセスビルダーを新規作成します。
プロセス名、API参照名は管理がしやすいように設定してください。
プロセスを開始するタイミング:レコードが変更されたとき
2.「オブジェクトを選択してプロセスを開始するタイミングを設定」では、次のように設定してください。
オブジェクト:該当のオブジェクト(今回の例では『入金管
プロセスを開始:レコードを作成または編集したとき
3.ひとつめの条件とアクションを、次のように設定します。
条件名:レコードタイプが日本円のとき
アクションの実行条件:条件を満たしている
条件を設定:レコードタイプID|つぎの文字列と一致する|ID|※レコードタイプのID
条件:すべての条件に一致(AND)
※レコードタイプのIDの確認方法は、
こちらを参照してください。
4.ルール適用時のアクションを追加します。
アクション種別:レコードを更新
アクション名:「通貨」を「日本円」にする
レコード:プロセスを開始した{オブジェクトAPI参照名}レコードを選択
レコードの更新条件:レコードを更新する条件がない
更新するレコードの新しい項目値を設定:通貨 ISO コード|選択リスト|JPY - 日本円
4.同じように、レコードタイプがアメリカドルのときの条件とアクションを設定します。
条件名:レコードタイプがアメリカドルのとき
アクションの実行条件:条件を満たしている
条件を設定:レコードタイプID|つぎの文字列と一致する|ID|※レコードタイプのID
条件:すべての条件に一致(AND)
※レコードタイプのIDの確認方法は、
こちらを参照してください。
アクション種別:レコードを更新
アクション名:「通貨」を「アメリカドル」にする
レコード:プロセスを開始した{オブジェクトAPI参照名}レコードを選択
レコードの更新条件:レコードを更新する条件がない
更新するレコードの新しい項目値を設定:通貨 ISO コード|選択リスト|USD - アメリカドル
条件とアクションの設定がおわったら、【有効化】をクリックします。
動作の確認
レコードタイプを「アメリカドル」にして、レコードを新規作成します。
ユーザのデフォルトの通貨が日本円のため、「通貨」は「日本円」が選択されています。ここで通貨を変更せず、日本円のままで入力し、保存します。
アメリカドルに換算されて、金額が表示されました。
レートは「0.009586」なので、
1,000,000×
0.009586 =9,586.00 でちゃんと計算されています。
日本円のレコードタイプのときは、
そのまま日本円です。
この方法のメリット
入力した数字+通貨ではなく、入力した数字がレコード保存後にはレートで換算されて表示される。つまり、
日本円で入力して、換算後の金額を保存できる。ということです。
マルチ通貨の仕様をざっくりおさらい
マルチ通貨を有効化すると、レコードごとのデフォルト通貨が設定できるようになります。これが、↑のプロセスビルダーで更新を行っていた「通貨」という項目です。
この項目の役割は、レコード上の通貨型の項目の通貨を決定することです。この項目の値を手動で変更すると、通貨型の項目に入れた値そのままで、通貨のみが変更されます。
編集時に入力されている数字を、選択した通貨で保存します。レートは通常、考慮されません。試しに、アメリカドルが選択されていたレコードで、日本円へ変更して保存します。
金額には「100,000」と入力されています。※小数点以下2桁を表示しています。「通貨」を「USD - アメリカドル」から「JPY - 日本円」へ変えて保存すると……
保存後のレコードでは、金額の数字は「100,000」のまま、「JPY」の表示に切り替わっています。
「設定したレートはどこで使われるのか?」と思いますよね。これは、「
括弧内の通貨換算が有効になっています」を有効化すると、役割が見えてきます。
設定>ホーム>会社の設定>組織情報>通貨の設定 から有効化できます。
レコードを確認すると、「通貨」で選択されているアメリカドル(USD)の表示と、日本円(JPY)に換算された値が表示されています。ここに設定されたレートが使用されます。
また、レポートでも両方の金額が確認できます。
選択リストのデフォルト値では設定できない
「レコードタイプだったら選択リストでデフォルト値を設定できないのかな?」と思ったそこのあなた、鋭いです。
しかーし、「通貨」では設定できない仕様でした。
まとめ
マルチ通貨、組織全体に影響しますし、利用されている方は運用ルールなどを徹底されていることかと思います。お疲れ様です。
レコード上で通貨を変えると、変更後の通貨の換算値で表示されないという仕様は、慣れないと違和感がありました。個人的な好みだと、レコードタイプとプロセスビルダーを設定して、入力時は日本円、保存後は換算値のほうがスムーズな気がします。