0

我有自定义对象KeywordAccountAssociation__c。该对象具有三个字段

  1. Account__c- 主从(帐户)
  2. Keyword__c- 主从(关键字)
  3. Compositecp__c- 文本(255)(外部 ID)(区分大小写)

我在 Account 中有一个自定义字段

  • DD_Segment__c- 多选单

现在我想更新(插入也可以)更新DD_Segment__cKeywordAccountAssociation__c的值。我可以为此编写触发器,但我不知道如何?我是 Salesforce 开发的新手,我的背景是红宝石(所以习惯 apex 对我来说有点困难)。

KeywordAccountAssociation__c有多行Account__c具有相同的 account_id 并且这些 account_id 与自定义对象的记录相关Keyword__c。我想获取与一个帐户相关的所有关键字并在其(帐户的)多选项列表中进行更新。我怎样才能做到这一点?如果您对此有疑问,请务必询问。谢谢!

4

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));
        }
    }
}

请记住,我没有测试这个触发器的结构,我只是随意释放它,所以 YMMV。

于 2012-08-31T14:11:34.843 回答