2012-02-23 10 views
1
Log.add(new Cx_Trans_Log__c(
       Object__c = 'Activity', 
       Object_Id__c = newActivity.Name, 
       Owner2_Id__c = newActivity.Owner1_Id__c, 

私は上記のコードを使用して、salesforce.comでアクティビティが変更されたときに新しいログレコードを作成しています。 newActivity.Owner1_Id__cから作成されたOwner2_Id__cは、Owner1_Id__c(これは参照(ユーザー)フィールドです)の名前を私に与えません。 Owner1に表示されるUser nameをOwner2にする方法はありますか?新しいレコード用のApexトリガ番号

+0

トリガーに新しいowner2の名前を入れますか、それともトランスログの詳細ページに表示するだけですか? –

答えて

5

正しい方法は1つのクエリを作成することです。この例では、あなたが意味する活動を想定します。タスク:

Set<Id> userIds = new Set<Id>(); 
for (Task t : Trigger.new) { 
    userIds.add(t.OwnerId); 
} 
Map<Id, User> users = new Map<Id, User>([SELECT Name FROM User WHERE Id IN :userIds]); 

// then you could plug something like this into your existing code 
String userName = users.get(newActivity.Onwer1_Id__c).Name; 
+0

地図に選択すると、このような場合に特に便利です。 – Adam