GetChangedSalesOrderKeyList


Description

Retrieves a list of changed sales order key objects for the sales orders that have been acted on during the specified interval. A sales order has been acted on if it has been created, updated, or deleted. Entity change tracking must be enabled for this method to return valid results.

Parameters

Parameter

Type

Description

criteria

SalesOrderChangedKeyCriteria

The sales order changed key criteria object that specifies which changed sales order key objects to return.

context

Context

Specifies information about how the method will be called.


Return Value:

Value

Type

Description

GetChangedSalesOrderKeyListResult

ArrayOfChangedSalesOrderKey

The list of changed sales order key objects that match the specified criteria.


Interfaces

 

Examples

The following C# example retrieves the list of the changed sales order key objects for all of the sales orders that were created, updated, or deleted over the last week. A message box displays the number of sales orders that had each action type performed on them.

 Legacy endpoint

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using DynamicsGPWebServiceSample.DynamicsGPService;

namespace DynamicsGPWebServiceSample
{
	class Program
	{
		static void Main(string[] args)
		{
			CompanyKey companyKey;
			Context context;
			SalesOrderChangedKeyCriteria salesOrderCriteria;
			ChangedSalesOrderKey[] changedSalesOrderKeyObjects;
			BetweenRestrictionOfNullableOfDateTime restriction;

			// Create an instance of the service
			DynamicsGP wsDynamicsGP = new DynamicsGP();

			// Be sure the default credentials are used
			wsDynamicsGP.UseDefaultCredentials = true;

			// Create a context with which to call the service
			context = new Context();

			// Specify which company to use (sample company)
			companyKey = new CompanyKey();
			companyKey.Id = (-1);

			// Set up the context object
			context.OrganizationKey = (OrganizationKey)companyKey;

			// Create the restriction that defines the interval examined for changes
			// The following restriction includes the last week
			restriction = new BetweenRestrictionOfNullableOfDateTime();
			restriction.From = DateTime.Today.Date.AddDays(-7);
			restriction.To = DateTime.Today.Date.AddDays(1);

			// Create the criteria to return sales order objects that changed
			salesOrderCriteria = new SalesOrderChangedKeyCriteria();
			salesOrderCriteria.LastModifiedDate = restriction;

			// Retrieve the changed sales order key objects
			changedSalesOrderKeyObjects = wsDynamicsGP.GetChangedSalesOrderKeyList(salesOrderCriteria, context);

			// Display the numbers of sales orders that were acted on this week
			int created = 0;
			int updated = 0;
			int deleted = 0;

			foreach (ChangedSalesOrderKey key in changedSalesOrderKeyObjects)
			{
				if (key.Action == DataModificationAction.Created)
					created++;

				if (key.Action == DataModificationAction.Updated)
					updated++;

				if (key.Action == DataModificationAction.Deleted)
					deleted++;
		}

			string message;
			message = "Sales orders: \n";
			message = message + "Created: " + created.ToString() + "\n";
			message = message + "Updated: " + updated.ToString() + "\n";
			message = message + "Deleted: " + deleted.ToString() + "\n";

			MessageBox.Show(message);
	}
}
}

 Native endpoint

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using DynamicsGPWebServiceSample.DynamicsGPService;

namespace DynamicsGPWebServiceSample
{
	class Program
	{
		static void Main(string[] args)
		{
			CompanyKey companyKey;
			Context context;
			SalesOrderChangedKeyCriteria salesOrderCriteria;
			ChangedSalesOrderKey[] changedSalesOrderKeyObjects;
			BetweenRestrictionOfNullableOfdateTime restriction;

			// Create an instance of the service
			DynamicsGPClient wsDynamicsGP = new DynamicsGPClient();

			// Create a context with which to call the service
			context = new Context();

			// Specify which company to use (sample company)
			companyKey = new CompanyKey();
			companyKey.Id = (-1);

			// Set up the context object
			context.OrganizationKey = (OrganizationKey)companyKey;

			// Create the restriction that defines the interval examined for changes
			// The following restriction includes the last week
			restriction = new BetweenRestrictionOfNullableOfdateTime();
			restriction.From = DateTime.Today.Date.AddDays(-7);
			restriction.To = DateTime.Today.Date.AddDays(1);

			// Create the criteria to return sales order objects that changed
			salesOrderCriteria = new SalesOrderChangedKeyCriteria();
			salesOrderCriteria.LastModifiedDate = restriction;

			// Retrieve the changed sales order key objects
			changedSalesOrderKeyObjects = wsDynamicsGP.GetChangedSalesOrderKeyList(salesOrderCriteria, context);

			// Display the numbers of sales orders that were acted on this week
			int created = 0;
			int updated = 0;
			int deleted = 0;

			foreach (ChangedSalesOrderKey key in changedSalesOrderKeyObjects)
			{
				if (key.Action == DataModificationAction.Created)
					created++;

				if (key.Action == DataModificationAction.Updated)
					updated++;

				if (key.Action == DataModificationAction.Deleted)
					deleted++;
		}

			string message;
			message = "Sales orders: \n";
			message = message + "Created: " + created.ToString() + "\n";
			message = message + "Updated: " + updated.ToString() + "\n";
			message = message + "Deleted: " + deleted.ToString() + "\n";

			MessageBox.Show(message);

			// Close the service
			if(wsDynamicsGP.State != CommunicationState.Faulted)
			{
				wsDynamicsGP.Close();
		}
	}
}
}


Documentation Feedback