2015-02-25 4 views
0

Я пытаюсь создать плагин, который выполняет некоторые операции с продавцом. Я также должен выполнить заказ как выполненный. Я нашел на документации SDK экстракт, который должен быть использован для выполнения заказа в правильном направленииНевозможно скомпилировать код при использовании класса OrderClose

var request = new FulfillSalesOrderRequest 
     { 
      OrderClose = new OrderClose 
      { 
       SalesOrderId = new EntityReference 
        { LogicalName = orderEntityName, Id = orderId } 

      }, 
      Status = new OptionSetValue(newStatus) 
     }; 

Проблема заключается в том, что код не может быть скомпилирован, поскольку MVS говорит «тип или пространство имен имя„OrderClose“не мог (вам не хватает директивы использования или ссылки на сборку?) ». RightClicking на «new OrderClose» (OrderClose подчеркивается красным цветом) Я не вижу раздел Resolve в меню. Я также пробовал так:

 var request = new FulfillSalesOrderRequest(); 

     request.OrderClose = new OrderClose(); 

     request.OrderClose.LogicalName = orderEntityName; 
     request.OrderClose.Id = orderId; 
     request.Status = new OptionSetValue(newStatus); 

Как я могу сделать код компиляции (и, надеюсь работать)?

+1

Кажется, что вам не хватает ссылки на сборку.Вам необходимо включить любые сборки, которые требуется SDK, чтобы ссылаться на объекты SDK. –

+0

Да, но FulfillSalesOrderRequest находится в пространстве имен Microsoft.Crm.Sdk.Messages, и я уже включил его. – lugeno

+1

Это не обязательно означает, что 'OrderClose' находится в одной и той же сборке. Вы подтвердили, что это так? –

ответ

0

OrderClose в Актовом "Microsoft.Crm.Sdk.Proxy" (в Microsoft.Crm.Sdk.Proxy.dll)

Вы добавили Microsoft.Crm.Sdk.Proxy.dll в качестве ссылки? Не только

using Microsoft.Crm.Sdk.Messages; 

, но на самом деле, переходя к панели решение проводника и щелкнув правой кнопкой мыши Ссылки> Добавить ссылку и выбрать Microsoft.Crm.Sdk.Proxy.dll.

Редактировать: Щелчок правой кнопкой мыши по чему-то красному squigglied и выбору «Resolve» не будет работать, если не будет указана правильная сборка.

+0

Я уже добавил Microsoft.Crm.Sdk.Proxy в проект и использовал Microsoft.Crm.Sdk.Messages в коде – lugeno

1

С OrderClose не является классом, но имя свойства, вы не можете создать его, используя new.

Как свойство типа Entity, необходимо создать экземпляр Entity, как это:

request.OrderClose = new Entity(); 
0

Это звучит как пример кода предполагает, что вы сгенерировали рано переплете код для вашей организации. Если вы включили ранний код в свой проект, эта ссылка будет решена. Смотрите эту ссылку:

https://msdn.microsoft.com/en-us/library/gg327844.aspx

CrmSvcUtil.exe является частью SDK CRM. Вот шаблон того, как использовать его:

CrmSvcUtil.exe /url:http://<serverName>/<organizationName>/XRMServices/2011/Organization.svc /out:<outputFilename>.cs /username:<username> /password:<password> /domain:<domainName> /namespace:<outputNamespace> /serviceContextName:<serviceContextName> 
0

Это ранняя оценка запроса, поэтому вы не можете скомпилировать, если вы не используете CrmScvUtil.

Это пример позднего связанного запроса:

Это пространство имен не требуется.

using Microsoft.Xrm.Sdk.Messages; 

И это код.

var request = new FulfillSalesOrderRequest(); 
request.OrderClose = new Entity("orderclose"); 
request.OrderClose["salesorderid"] = new EntityReference("salesorder", new Guid("YOURGUID")); 
request.Status = new OptionSetValue(100001); 
service.Execute(request); 

100001 - код состояния для полного.

Если вы хотите обработать ответ, используйте переменную для получения ответа.