Unable to compile code when using OrderClose class

心已入冬 提交于 2019-12-01 14:37:55

Since OrderClose is not a class, but the name of a Property, you cannot create it using new.

As the property is of type Entity, you need to create an instance of Entity like this:

request.OrderClose = new Entity();

OrderClose is in the Assembly "Microsoft.Crm.Sdk.Proxy" (in Microsoft.Crm.Sdk.Proxy.dll)

Have you added Microsoft.Crm.Sdk.Proxy.dll as a reference? Not just

using Microsoft.Crm.Sdk.Messages;

but actually going over to the solution explorer pane and right clicking References > Add Reference and choosing Microsoft.Crm.Sdk.Proxy.dll.

Edit: Right clicking on something red-squigglied and picking "Resolve" won't work unless the correct assembly is referenced.

It sounds like the sample code assumes you have generated the early-bound code for your organization. If you included the early-bound code in your project, this reference would resolve. See this link:

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

The CrmSvcUtil.exe is part of the CRM SDK. Here is a template of how to use it:

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

That is an early bound request, that's why you can't compile, if you aren't using the CrmScvUtil.

This is an example of a late bound request:

This namespace is needed.

using Microsoft.Xrm.Sdk.Messages;

And this is the code.

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 is the status code for Complete.

If you want to handle the response, use a variable to receive the answer.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!