本文已参与「新人创作礼」活动,一起开启掘金创作之路。
前言
此篇博客重在记录启用多货币后,对用户界面,SOQL查询及报表的影响,供实际项目参考。
实验过程
-
在Company Infomation上启用多货币,并配置如下三种货币类型及货币转化率:
-
我们计划通过切换User上的Currency字段,来观察记录在用户界面,SOQL及报表里面的影响:
实验一 - UI层面的影响(界面创建)
Amount实验值为1000
假如User的Currency为AUD,当创建Opponenty时,Opportunity Currency会被赋默认值AUD,最终展示如下:
在User为AUD前提下,我们在记录上选择USD,Currency类型字段Amount表现如下:展示以单子为主,括号标注当前用户的货币类型
实验二 - UI层面的影响(后台创建)
Amount实验值为1000 | Currency不赋值(User Currency仍为AUD)
// 默认不赋值
Opportunity opp = new Opportunity();
opp.Name = 'Default Currency Testing from backend.';
opp.Amount = 1000;
opp.StageName = 'Prospecting';
opp.CloseDate = System.today();
insert opp;
这时和从界面上创建类似,Currency遵从User上的设定。
实验三 - SOQL查询结果测试
-
不使用Format
-
使用Format,我们发现Amount结果和单子上显示的是一致的,展示以单子为主,括号标注当前用户的货币类型
实验四 - 报表测试
-
User上Currency类型为AUD.
-
User上Currency为USD.
我们发现报表累计汇总后的金额以User上的Currency及对应货币转化率下的实际值作为显示结果,而每项金额以实际记录上的值和货币类型显示。
结语
- 多货币启用后无法Inactive;
- 多货币本地化显示的顺序:记录上选择的货币类型 > User上配置的类型;
- 界面和SOQL format显示的结果相同,User和单子配置一致,则显示单种货币类型,不一致则有限显示单子类型,用户类型紧随其后;报表显示更加精炼,单项显示单子货币类型及输入值,汇总显示User货币类型及汇率转化后的实际值;
- 当启用多货币后,User上面的Currency对于字段为DefaultCurrencyIsoCode,而不是CurrencyIsoCode;
高级货币管理已启用: