はじめに
個人取引先は取引先・取引先責任者の両方の役割を持つため、レコード操作時にどのオブジェクトに対する操作なのか、その指定方法を調査しました。
やりたかったこと
Visualforceページ上のinputフィールドで入力された情報から個人取引先レコードを作成する
やり方
以下で指定で個人取引先レコードの作成が可能でした。
- オブジェクトは取引先
- レコードタイプは個人取引先レコードタイプ
//変数を作成
Account newAccount = new Account();
//値を指定
newAccount.Name = '取引先名';
newAccount.RecordTypeId = 'ここに個人取引先レコードタイプID';
//取引先レコードを作成
insert newAccount;
レコードタイプIDは以下のように記述すると組織から自動的に取得可能
private Id getPersonAccountRecordType() {
List<RecordType> recordTypes = [
SELECT Id
FROM RecordType
WHERE SobjectType = 'Account'
AND DeveloperName = 'PersonAccount'
LIMIT 1
];
if (!recordTypes.isEmpty()) {
return recordTypes[0].Id;
}
return null; // 適切なレコードタイプが見つからない場合
}
以下は個人取引先レコードタイプIDの取得→個人取引先レコードの作成のコード例
// レコードタイプIDを取得するメソッド
private Id getPersonAccountRecordType() {
List<RecordType> recordTypes = [
SELECT Id
FROM RecordType
WHERE SobjectType = 'Account'
AND DeveloperName = 'PersonAccount'
LIMIT 1
];
if (!recordTypes.isEmpty()) {
return recordTypes[0].Id;
}
return null; // 適切なレコードタイプが見つからない場合
}
// 新しい取引先レコードを作成して挿入する
public void createPersonAccount() {
Id recordTypeId = getPersonAccountRecordType(); // レコードタイプIDを取得
if (recordTypeId != null) {
Account newAccount = new Account();
newAccount.Name = '新しい取引先';
newAccount.RecordTypeId = recordTypeId; // レコードタイプIDを設定
insert newAccount;
} else {
// レコードタイプIDが取得できなかった場合の処理
}
}
取引先責任者の項目に対して値をセットしたい場合は、取引先オブジェクトでの項目名(取引先責任者の項目名__pc)を指定するとセットできます。
おわりに
公式のドキュメントなど読んでみたが、クエリの操作などに関する内容しか書いてなかったため、上記方法が参考になればと思います!
プログラミングコミュニティの紹介
Reactを1から実践レベルまで身につけることができるサービス「JISOU」では現在メンバーを募集中です。
気になる方は以下のHPのLINEからお問合せください。
https://projisou.jp
会社の紹介
この記事を最後まで読んでいただき、ありがとうございます!
私がエンジニアとして働いているViVO株式会社では、SalesforceやYextといったSaaSシステムに関わるエンジニアを募集しています。
経験者の方はもちろん、未経験者でもチャレンジしたいという熱意があれば大歓迎です。
技術的な経験がない方でも成長できるよう全面的にサポートする環境を提供しています。
もし少しでも興味を持っていただけたら、以下のURLまたは私にDMでご連絡ください。
https://vivojpn.com