2012-08-31 13 views
0

我有自定义对象KeywordAccountAssociation__c。这个对象有三个字段更新自定义对象的多选项列表

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

我有帐户的自定义字段

  • DD_Segment__c - 多选择列表

现在我想只要KeywordAccountAssociation__c更新来更新(插入是罚款太)值DD_Segment__c。我可以写这个触发器,但我不知道如何?我是Salesforce Development的新手,我的背景是ruby(所以习惯apex对我来说有点困难)。

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

+0

当你说你想更新/插入DD_Segment__c的值时,你的意思是你想更新该字段中的记录值,还是实际修改了可供选择的选项列表选项? – JCD

+0

更新记录 –

回答

1

的一个问题是有关学习与一般的触发器,它可以与Salesforce Apex Developer Documents on Triggers

开始工作,但回答您的实际问题,你会基本上是需要建立一个触发对您的自定义对象,将更新相关账户。它可能是这个样子:

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

请记住,我没有测试这个触发结构,我只是免费handded,所以因人而异。

+0

我从哪里得到这个值? '新值','第二值'。我在'KeywordAccountAssociation'中存储了'Keyword_Ids'。 –

相关问题