タスクのトリガーを書いているのですが、salesforce でエラーが発生しました Illegal polymorphic assignment from polymorphic domain [SOBJECT:User, SOBJECT:Calendar]
trigger Status_Change on Task (after update) {
List<Task>updated_tasks=trigger.new;
List<Task> tt=trigger.old;
Task_History__c history=new Task_History__c();
Integer i=0;
for(i=0;i<updated_tasks.size();i++)
{
history.Name=tt.get(i).Subject;
history=new Task_History__c();
history.OldValue__c=tt.get(i).Status;
history.NewValue__c=updated_tasks.get(i).Status;
history.User__c=updated_tasks.get(i).Owner;
insert history;
}
}
エラーは行 history.User__c=updated_tasks.get(i).Owner; にあります。
history.User__c=updated_tasks.get(i).owner.id を書き込むとエラーは発生しませんが、この ID からユーザーのメール アドレスを取得しようとすると、この ID に対応するユーザーが表示されません。タスク SObject の所有者項目から所有者のユーザー ID を取得するにはどうすればよいですか? エラーは Owner is a lookup to [SObject.User,SObject.Calender] によるものだと思います。そのため、所有者の ID は User'id とは異なる必要があります。しかし、Task オブジェクトの所有者のフィールドから User の ID のみを取得する方法は?