obtaing le GUID d'un EntityReference à l'aide de Plugins dans DynamicsCRM

Cette question est dans la relation à un Plugin que je suis en train de créer pour Dynamics CRM 2011.

J'ai une entité qui dispose de 5 attributs. 1 de ces attributs est une Recherche à une autre entité.

Ce que je suis en train de faire avec mon Plugin est de récupérer le Guid de l'entité de Recherche. Simple, non?

Mais non, C'est de me donner de la difficulté, j'ai essayé des dizaines de façons à l'aide de EntityReference pour obtenir le guid, mais ne le peuvent pas. J'ai essayé de créer un preImage qui n'a pas trop.

Voici un extrait du CODE.

Entity entity = (Entity)context.InputParameters["Target"];

   if (entity.LogicalName == "new_producttaxrate")
  {
   if (entity.Attributes.Contains("new_product"))
     {

     EntityReference ownerLookup = (EntityReference)entity.Attributes["new_product"];
      productName = ownerLookup.Name;
      Guid  productId = ownerLookup.Id;

    }
  }

également venu avec cette

     if (entity.Attributes.Contains("new_producttaxrateid"))
              {
                  Guid myGuid = (Guid)entity.Attributes["new_producttaxrateid"];
                  EntityReference ownerLookup = new EntityReference("new_product", myGuid);
                   pid = ownerLookup.Id;
               }

Je reçois cette erreur

    Unhandled Exception: System.ServiceModel.FaultException`1[[Microsoft.Xrm.Sdk.OrganizationServiceFault, Microsoft.Xrm.Sdk, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35]]: Condition for attribute 'new_producttaxrate.new_product': expected argument(s) of type 'System.Guid' but received 'System.DBNull'.Detail: 
<OrganizationServiceFault xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.microsoft.com/xrm/2011/Contracts">
  <ErrorCode>-2147220989</ErrorCode>
  <ErrorDetails xmlns:d2p1="http://schemas.datacontract.org/2004/07/System.Collections.Generic">
    <KeyValuePairOfstringanyType>
      <d2p1:key>CallStack</d2p1:key>
      <d2p1:value xmlns:d4p1="http://www.w3.org/2001/XMLSchema" i:type="d4p1:string">   at Microsoft.Crm.Extensibility.VersionedPluginProxyStepBase.Execute(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.Pipeline.Execute(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.MessageProcessor.Execute(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.InternalMessageDispatcher.Execute(PipelineExecutionContext context)
   at Microsoft.Crm.Extensibility.ExternalMessageDispatcher.ExecuteInternal(IInProcessOrganizationServiceFactory serviceFactory, IPlatformMessageDispatcherFactory dispatcherFactory, String messageName, String requestName, Int32 primaryObjectTypeCode, Int32 secondaryObjectTypeCode, ParameterCollection fields, CorrelationToken correlationToken, CallerOriginToken originToken, UserAuth userAuth, Guid callerId, Guid transactionContextId, Int32 invocationSource, Nullable`1 requestId, Version endpointVersion)
   at Microsoft.Crm.Extensibility.OrganizationSdkServiceInternal.ExecuteRequest(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType)
   at Microsoft.Crm.Extensibility.OrganizationSdkServiceInternal.Execute(OrganizationRequest request, CorrelationToken correlationToken, CallerOriginToken callerOriginToken, WebServiceType serviceType)</d2p1:value>
    </KeyValuePairOfstringanyType>
  </ErrorDetails>
  <Message>Condition for attribute 'new_producttaxrate.new_product': expected argument(s) of type 'System.Guid' but received 'System.DBNull'.</Message>
  <Timestamp>2011-03-17T13:21:04.6999035Z</Timestamp>
  <InnerFault i:nil="true" />
  <TraceText>

[VATPlugin2: VATPlugin2.TaxRateValidation]
[4b0b7f5c-9950-e011-849d-000c292be099: VATPlugin2.TaxRateValidation: Create of new_producttaxrate]


</TraceText>
</OrganizationServiceFault>
venu avec cette pense im plus proche
si (entité.Les attributs.Contient("new_producttaxrateid")) { Guid myGuid = (Guid)de l'entité.Attributs["new_producttaxrateid"]; EntityReference ownerLookup = new EntityReference("new_product", myGuid); //EntityReference ownerLookup = (EntityReference)de l'entité.Attributs["new_producttaxrateid"]; pid = ownerLookup.Id; }

OriginalL'auteur Calibre2010 | 2011-03-17