Compartilhar via


Entity ID filtering example

The following C# code example shows how the Scope property of the criteria object is used. This example retrieves the historical sales orders for the current user. The Scope property of the Sales Order Criteria object is set to ReturnBasedOnSalespersonID, so that only documents associated with the current user will be returned. To work, this example requires that the user has access to the "Query Sales Orders Based On User" operation for the Dynamics GP service. There must also be an entity ID assignment that maps the user to a Salesperson ID in Microsoft Dynamics GP.

Cc508753.LegacyEndpoint(en-us,MSDN.10).gif** Legacy endpoint**

using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Web.Services.Protocols;
using DynamicsGPWebServiceSample.DynamicsGPService;

namespace DynamicsGPWebServiceSample
{
    class Program
    {
        static void Main(string[] args)
        {
            CompanyKey companyKey;
            Context context;
            ListRestrictionOfNullableOfSalesTransactionState
            transactionStateRestriction;
            SalesOrderCriteria salesOrderCriteria;
            SalesOrderSummary[] salesOrderSummary;

            // 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 a transaction state restriction object
            transactionStateRestriction = new
            ListRestrictionOfNullableOfSalesTransactionState();
            transactionStateRestriction.EqualValue =
            SalesTransactionState.History;

            // Create a sales order criteria object
            // Retrieve summary objects for historical sales orders
            salesOrderCriteria = new SalesOrderCriteria();
            salesOrderCriteria.TransactionState =
            transactionStateRestriction;

            // Specify the scope so that transactions for only the current
            // user are retrieved
            salesOrderCriteria.Scope =
            SalesDocumentScope.ReturnBasedonSalespersonId;

            try
            {
                // Retrieve the sales order summaries specified
                salesOrderSummary =
                wsDynamicsGP.GetSalesOrderList(salesOrderCriteria, context);

                // Display the ID and amount of each summary object
                StringBuilder summaryList = new StringBuilder();
                foreach (SalesOrderSummary a in salesOrderSummary)
                {
                    summaryList.AppendLine("Order number: " + a.Key.Id +
                    "  Order amount: " + a.TotalAmount.Value.ToString("C"));
                }
                MessageBox.Show(summaryList.ToString());
            }
            catch (SoapException soapErr)
            {
                MessageBox.Show(soapErr.Message);
            }
        }
    }
}

Cc508753.NativeEndpoint(en-us,MSDN.10).gif** Native endpoint **

using System;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using WebServiceSample.DynamicsGPService;
using System.ServiceModel;

namespace DynamicsGPWebServiceSample
{
    class Program
    {
        static void Main(string[] args)
        {
            CompanyKey companyKey;
            Context context;
            ListRestrictionOfNullableOfSalesTransactionState
            transactionStateRestriction;
            SalesOrderCriteria salesOrderCriteria;
            SalesOrderSummary[] salesOrderSummary;

            // 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 a transaction state restriction object
            transactionStateRestriction = new
            ListRestrictionOfNullableOfSalesTransactionState();
            transactionStateRestriction.EqualValue =
            SalesTransactionState.History;

            // Create a sales order criteria object
            // Retrieve summary objects for historical sales orders
            salesOrderCriteria = new SalesOrderCriteria();
            salesOrderCriteria.TransactionState =
            transactionStateRestriction;

            // Specify the scope so that transactions for only the current
            // user are retrieved
            salesOrderCriteria.Scope =
            SalesDocumentScope.ReturnBasedonSalespersonId;

            try
            {
                // Retrieve the sales order summaries specified
                salesOrderSummary =
                wsDynamicsGP.GetSalesOrderList(salesOrderCriteria, context);

                // Display the ID and amount of each summary object
                StringBuilder summaryList = new StringBuilder();
                foreach (SalesOrderSummary a in salesOrderSummary)
                {
                    summaryList.AppendLine("Order number: " + a.Key.Id +
                    "  Order amount: " + a.TotalAmount.Value.ToString("C"));
                }
                MessageBox.Show(summaryList.ToString());
            }
            catch (FaultException<System.ServiceModel.ExceptionDetail> ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
    }
}