Triggers 更改Salesforce中Opportunity对象的所有者

Triggers 更改Salesforce中Opportunity对象的所有者,triggers,salesforce,apex,Triggers,Salesforce,Apex,在opportunity子对象的after insert触发器中,如果某个条件的计算结果为true,我必须更改opportunity的所有者 这里的问题是所有者是用户对象的查找字段。我必须将所有者更改为特定配置文件的用户。如何访问opportunity子对象的后插入触发器中的配置文件和用户字段 从Oppty获取所有者ID和配置文件ID ID ownerProfileID = Opportunity.OwnerID.getProfileId(); (This is rough, I don't k

在opportunity子对象的after insert触发器中,如果某个条件的计算结果为true,我必须更改opportunity的所有者


这里的问题是所有者是用户对象的查找字段。我必须将所有者更改为特定配置文件的用户。如何访问opportunity子对象的后插入触发器中的配置文件和用户字段

从Oppty获取所有者ID和配置文件ID

ID ownerProfileID = Opportunity.OwnerID.getProfileId(); (This is rough, I don't know your variable names)
Map<ID, Profile> profileMap = new Map<ID, Profile>(ProfileHandler.loadProfilesByProfileIDs(new Set<ID>{ownerProfileID }));
然后查询,您将拥有所有数据

public static Map<ID, Profile> loadProfilesByProfileIDs(Set<ID> profileIDS)
{
    Map<ID, Profile> result = new Map<ID, Profile>();

    try
    {
        result = new Map<ID, Profile>([SELECT ID, Name FROM Profile WHERE ID =: profileIDS]);
    }
    catch(QueryException error)
    {
        //Catch error
    }

    return result;
}

从Opportunity Product查询Opportunity Owner字段详细信息的示例:

   SELECT 
   Opportunity.OwnerId, 
   Opportunity.Owner.Name, 
   Opportunity.Owner.ProfileId,
   Opportunity.Owner.Profile.Name  
   FROM OpportunityLineItem 
   WHERE ID='00k6F00000TdIlH'