I\'m trying to build a plugin that does some operations on a salesorder. I also have to set a order as fulfilled. I found on the SDK documentation an extract that must be us
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.
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.