0

カスタムオブジェクトがありますKeywordAccountAssociation__c。このオブジェクトには 3 つのフィールドがあります

  1. Account__c- マスター詳細 (アカウント)
  2. Keyword__c- マスター詳細(キーワード)
  3. Compositecp__c- Text(255) (外部 ID) (一意の大文字と小文字を区別)

アカウントにカスタム フィールドがあります

  • DD_Segment__c- マルチピックリスト

DD_Segment__c今度は、値が更新されるたびに更新したいと思います (挿入も問題ありません) KeywordAccountAssociation__c。これのトリガーを書くことができましたが、方法がわかりませんか? 私は Salesforce 開発に不慣れで、バックグラウンドは ruby​​ です (そのため、apex に慣れるのは少し難しいです)。

KeywordAccountAssociation__c同じ account_id を持つ複数の行がAccount__cあり、それらの account_id はカスタム オブジェクトのレコードに関連付けられていますKeyword__c。1 つのアカウントに関連するすべてのキーワードを取得し、その (アカウントの) マルチピックリストを更新したいと考えています。どうすればこれを達成できますか?これについて疑問がある場合は、質問してください。ありがとう!

4

1 に答える 1

1

1 つの問題は、トリガーに関する一般的な操作の学習に関連しています。これは、トリガーに関する Salesforce Apex 開発者ドキュメントで開始できます。

ただし、実際の質問に答えるには、基本的に、関連するアカウントを更新するカスタム オブジェクトに対してトリガーを作成する必要があります。次のようになります。

trigger keywordAccountUpdate on KeywordAccountAssociation__c (after insert, after update){
    set<id> = new set<id>();
    for (KeywordAccountAssociation__c a : Trigger.new)
        accountIds.put(a.Account__c);
    map<id,Account> accountMap = new map<id,Account>([select id, DD_Segment__c from Account where id in :accountIds]);
    for (KeywordAccountAssociation__c kaa : Trigger.new){
        if (AccountMap.containskey(kaa.Account__c)){
            Account thisAccount = AccountMap.get(kaa.Account__c);
            String s = thisAccount.DD_Segment__c + ';new value'; // Always add value
            if ((thisAccount.DD_Segment__c).contains('second value')
                s += ';second value';
            AccountsToUpdate.add(new Account(id=thisAccount.id, DD_Segment__c = s));
        }
    }
}

私はこのトリガーをテストするための構造を持っていないことを覚えておいてください。

于 2012-08-31T14:11:34.843 に答える