2014-01-21 189 views
0

我的觸發是給我從標識「非法分配的sObject機遇:用戶」的錯誤創建自定義對象

扳機應該創建一個新的機會時,在自定義對象的字段是一定值我想從輸入對象的某些字段進入的機會。

trigger MDwinning2 on MD_Meeting__c (after update) { 
List <Opportunity> oppToInsert = new List <Opportunity>(); 
    for (MD_Meeting__c m : Trigger.new) { 
    if (m.SAL__c==True) {  
    Opportunity o = new Opportunity(); 
    o.OwnerId = m.Sales_Director__c; 
    o.Name = m.Name; 
    o.StageName = 'Generate Opportunity'; 
    o.Market_Developer__c = m.Market_Developer__c; 
    o.AccountId = m.Account__c; 
    o.Type = 'Sales - New Business'; 
    o.CloseDate = System.Today()+150; 
    o.MeetingLookup__c = m.Id; 
    oppToInsert.add(o); 
    }//end if 
}//end for o 
//try { 
//  insert oppToInsert; 
// } catch (system.Dmlexception e) { 
//  system.debug (e); 
// } 
} 

回答

1

變化

o.Owner = m.Sales_Director__c; 
    o.Account = m.Account__c; 

o.OwnerId = m.Sales_Director__c; 
o.AccountId = m.Account__c; 
+0

我這樣做,並現在我收到一個錯誤,說「方法不存在或簽名不正確:[SOBJECT:Opportunity] .add(SOBJECT:Opportunity)」 – user3112735

+0

更改o.add(o);到oppToInsert.add(o); –

+0

謝謝。我進行了更改,並將MeetingLookup從Name更改爲ID。 o.MeetingLookup__c = m.Id現在沒有錯誤,但觸發器實際上並沒有創造機會。什麼都沒發生。 – user3112735

0

我已經寫了這個答案作進一步討論,因爲故障沒有固定

trigger MDwinning2 on MD_Meeting__c (after update) { 
    List <Opportunity> oppToInsert = new List <Opportunity>(); 
    for (MD_Meeting__c m : Trigger.new) { 
     if (m.SAL__c == True) { 
      Opportunity o = new Opportunity(); 
      o.OwnerId = m.Sales_Director__c; 
      o.Name = m.Name; 
      o.StageName = 'Generate Opportunity'; 
      o.Market_Developer__c = m.Market_Developer__c; 
      o.AccountId = m.Account__c; 
      o.Type = 'Sales - New Business'; 
      o.CloseDate = System.Today() + 150; 
      o.MeetingLookup__c = m.Id; 
      oppToInsert.add(o); 
     } 
    } 
    insert oppToInsert; 
} 

試試這個代碼,如果錯誤會再次出現,請張貼錯誤味精在評論

+0

現在可以使用。我正在評論插入聲明。 – user3112735