Créer un nouvel enregistrement avec le propriétaire sans appel AssignRequest dans CRM 2011

Dans notre application, nous allons créer quelques milliers de téléphone d'enregistrements. Chaque coup de téléphone doit avoir un propriétaire différent, déterminé par une méthode nommée GetAnyAppropriateSystemUser(), qui trouve un hasard SystemUser en fonction de certains critères.

Dans l'exemple de code ci-dessous, nous créons un coup de téléphone, et de les utiliser plus tard AssignRequest sur elle pour spécifier son propriétaire.

PhoneCall phoneCall = new PhoneCall();

//
//stuff to set up the new PhoneCall instance here; populate fields, etc...
//

//determine this phonecall's owner through some algorithm
Guid appropriateOwner = GetAnyAppropriateSystemUser();

Guid createdPhoneCallId = _serviceProxy.Create(phoneCall);
if (createdPhoneCallId != Guid.Empty)
{
    AssignRequest phoneCallAssign = new AssignRequest();
    phoneCallAssign.Assignee = new EntityReference(SystemUser.EntityLogicalName, appropriateOwner);
    phoneCallAssign.Target = new EntityReference(PhoneCall.EntityLogicalName, createdPhoneCallId);
    _serviceProxy.Execute(phoneCallAssign);
}

Cela fonctionne bien, mais il y a deux appels, l'un pour créer, et une pour l'affecter. Est-il ok pour juste mettre "ownerid" du coup de Téléphone d'enregistrement avant l'appel à la méthode Create (), éliminant ainsi la nécessité de faire appel à une AssignRequest plus tard? Il semble que ça fonctionne, et j'ai même trouvé un exemple de faire une chose similaire dans le kit de développement, comme indiqué ci-dessous.

Exemple du SDK: Roll Jusqu'à l'Objectif des Données pour une Période Personnalisée à l'Encontre de l'Objectif de chiffre d'affaires

//Create three goals: one parent goal and two child goals.
Goal parentGoal = new Goal()
{
    Title = "Parent Goal Example",
    RollupOnlyFromChildGoals = true,
    ConsiderOnlyGoalOwnersRecords = true,
    TargetMoney = new Money(300.0M),
    IsFiscalPeriodGoal = false,
    MetricId = new EntityReference
    {
        Id = _metricId,
        LogicalName = Metric.EntityLogicalName
    },
    GoalOwnerId = new EntityReference
    {
        Id = _salesManagerId,
        LogicalName = SystemUser.EntityLogicalName
    },
    OwnerId = new EntityReference
    {
        Id = _salesManagerId,
        LogicalName = SystemUser.EntityLogicalName
    },
    GoalStartDate = DateTime.Today.AddDays(-1),
    GoalEndDate = DateTime.Today.AddDays(30)
};
_parentGoalId = _serviceProxy.Create(parentGoal);

Il semble bien que de travail, sont-il quelque chose que nous devons en être conscient si l'on ownerid avant de créer le nouveau record? Existe-il des différences?

Je vous remercie beaucoup à l'avance.

OriginalL'auteur tdgtyugdyugdrugdr | 2013-04-09