Câu hỏi này liên quan đến một Plugin mà tôi hiện đang tạo cho Dynamics CRM 2011.obtaing GUID cho một EntityReference bằng cách sử dụng Plugins trong DynamicsCRM
Tôi có một thực thể có 5 thuộc tính. 1 trong số các thuộc tính này là Tra cứu một thực thể khác.
Điều tôi đang cố gắng thực hiện với Plugin của mình là truy xuất Hướng dẫn của thực thể Lookup. Đơn giản, phải không?
Nhưng không, Điều đó gây khó khăn cho tôi, tôi đã thử hàng chục cách sử dụng EntityReference để lấy được guid nhưng không thể. Tôi đã thử tạo ra một preImage mà không thành công quá.
Đây là đoạn mã 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;
}
}
cũng đã đưa ra với điều này
if (entity.Attributes.Contains("new_producttaxrateid"))
{
Guid myGuid = (Guid)entity.Attributes["new_producttaxrateid"];
EntityReference ownerLookup = new EntityReference("new_product", myGuid);
pid = ownerLookup.Id;
}
tôi tiếp tục nhận được lỗi này
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>
đến với điều này nghĩ im gần – Calibre2010
if (entity.Attributes.Contains (" new_producttaxrateid ")) { Hướng dẫn myGuid = (Hướng dẫn). Thuộc tính [" new_produc ttaxrateid "]; Chủ sở hữu EntityReferenceLookup = new EntityReference ("new_product", myGuid); // EntityReference ownerLookup = (EntityReference) entity.Attributes ["new_producttaxrateid"]; pid = ownerLookup.Id; } – Calibre2010