Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
TERAKOYAFORCE EAST 2019/10/31 Advanced数式&入力規則の解答例です

TERAKOYAFORCE Advanced数式&入力規則

Q1 - 商談フェーズの逆戻りを制限する

Trailhead PlaygroundやDeveloper Edition環境での例は以下の通りですが、任意の選択リスト項目で同様の考え方が適用できます。

CASE(PRIORVALUE(StageName),
  'Prospecting',1,
  'Qualification',2,
  'Needs Analysis',3,
  'Value Proposition',4,
  'Id. Decision Makers',5,
  'Perception Analysis',6,
  'Proposal/Price Quote',7,
  'Negotiation/Review',8,
  'Closed Won',9,
  'Closed Lost',9,
  0)
>
CASE(StageName,
  'Prospecting',1,
  'Qualification',2,
  'Needs Analysis',3,
  'Value Proposition',4,
  'Id. Decision Makers',5,
  'Perception Analysis',6,
  'Proposal/Price Quote',7,
  'Negotiation/Review',8,
  'Closed Won',9,
  'Closed Lost',9,
  0)

Q2 - 数式項目の参照をカスタムメタデータに置き換える

資料に挙げた、「来年から金額が変わる」のようなユースケースに対応するには、カスタムメタデータに1つ項目を追加し、数式項目を修正する必要があります(ぜひチャレンジしてみてください)。もちろん数式に直接日付と金額を記載することもできます。カスタムメタデータを利用するかは各組織のビジネス要件次第ですが、覚えておくと役に立つ日が来ると思います。

IF(Account.ShippingState =  $CustomMetadata.Terakoya_Shipping_Cost__mdt.Tokyo.MasterLabel ,
   $CustomMetadata.Terakoya_Shipping_Cost__mdt.Tokyo.Cost__c ,
   $CustomMetadata.Terakoya_Shipping_Cost__mdt.Others.Cost__c 
)

Q3 - 複数のOR条件をCONTAINSに置き換える

NOT(
  CONTAINS(
  '北海道:青森県:岩手県:宮城県:秋田県:山形県:福島県:茨城県:栃木県:群馬県:埼玉県:千葉県:東京都:神奈川県:新潟県:富山県:石川県:福井県:山梨県:長野県:岐阜県:静岡県:愛知県:三重県:滋賀県:京都府:大阪府:兵庫県:奈良県:和歌山県:鳥取県:島根県:岡山県:広島県:山口県:徳島県:香川県:愛媛県:高知県:福岡県:佐賀県:長崎県:熊本県:大分県:宮崎県:鹿児島県:沖縄県',
  ShippingState
  )
)
|| LEN(ShippingState) < 3

Q4 - レコードタイプを条件に含めた数式項目

IF(RecordType.DeveloperName = 'Alcohol', Price__c * 1.1 , Price__c * 1.08 )

または、

Price__c * IF(RecordType.DeveloperName = 'Alcohol', 1.1 , 1.08 )

あるいは、Q1で利用したCASE文を使っても表現できます。ぜひチャレンジしてみてください。

Q5 - カスタム権限を条件に含めた入力規則

NOT($Permission.Terakoya_Discount) && Discount_Rate__c > 0.3
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment