問題
Ursa Major Solar社は、親オブジェクトGalaxyのType項目が子レコードStarに表示されることを望んでいます。しかし、アプリケーション構築者は「選択リスト項目は、特定の関数でのみサポートされます。」というエラーを受け取っています。アプリケーション構築者はどのような数式を使用すれば望ましい結果を得られますか。
- TEXT(Galaxy__r.Type__c)
- VALUE(Galaxy__r.Type__c)
- ISPICKVAL(Galaxy__r.Type__c)
- FIND(Galaxy__r.Type__c)
正解
- TEXT(Galaxy__r.Type__c)
- VALUE(Galaxy__r.Type__c)
- ISPICKVAL(Galaxy__r.Type__c)
- FIND(Galaxy__r.Type__c)
解説
Ursa Major Solar社のシナリオでは、親オブジェクト「Galaxy」の「Type」という選択リスト項目の値を子オブジェクト「Star」に表示する必要があります。この要件を満たすためには、親オブジェクトの選択リスト値を子オブジェクトで表示可能な形式に変換することが重要です。
- 適切な関数の選択
- Salesforceで選択リストの値は基本的にテキスト形式です。しかし、数式項目内でこれらの選択リスト項目の値を直接参照しようとすると、互換性の問題が生じます。ゆえに数式項目でこれらの値を扱う際は、TEXT関数を使用して、選択リストの値を標準的なテキストに変換する必要があります。
- 解決策
TEXT(Galaxy__r.Type__c)
関数を使用することで、子オブジェクト「Star」のレコードにおいて、親オブジェクト「Galaxy」の「Type」項目の値をテキストとして表示できるようになります。
それぞれの選択肢の理由について説明します。
□ TEXT(Galaxy__r.Type__c)
これは正解です。TEXT 関数は選択リストの値をテキストとして返すために使用されます。この関数を使用して、Galaxy オブジェクトの Type 選択リスト項目の値を Star オブジェクトの数式項目で参照し、表示することができます。
□ VALUE(Galaxy__r.Type__c)
これは不正解です。VALUE関数はテキスト形式で表された数値(例: “123”)を数値データ型に変換するために使用されます。しかし、選択リスト項目は数値ではなく、選択肢を表すテキストを含むため、この関数は適用できません。また、選択リストの値を数値として扱う必要がないため、このケースでは不適切です。
□ ISPICKVAL(Galaxy__r.Type__c)
これは不正解です。ISPICKVAL関数は、選択リスト項目の値が特定の値と等しいかどうかを判定するために使用されます。この関数は条件式や論理判定で使われるものであり、選択リストの値を直接テキストとして表示するためには使用できません。
□ FIND(Galaxy__r.Type__c)
これは不正解です。FIND関数は、ある文字列内で別の文字列が最初に出現する位置を返すために使用されます。この関数は、選択リスト項目の値を表示する目的には全く関連がなく、このシナリオには適していません。
コメント