Share via


CreateSalesInvoice

Description

This method creates a new sales invoice.

Parameters

Parameter

Type

Description

salesInvoice

SalesInvoice

The sales invoice object being created.

context

Context

Specifies information about how the method will be called.

policy

Policy

Specifies the set of behaviors and behavior options to be applied during the operation.

Interfaces

  • Dynamics GP
  • Sales

Examples

The following C# example creates a sales invoice. The example first populates the required DocumentTypeKey, CustomerKey, and BatchKey properties. The sales invoice uses a sales invoice line to specify the item and quantity sold. The sales invoice line requires the ItemKey, and Quantity properties to be populated. The sales invoice key and sales invoice line key are not populated. The CreateSalesInvoice operation automatically populates the empty sales invoice key and sales invoice line key with the next available invoice number. All other sales invoice properties are set to default values. The CreateSalesInvoice operation saves the new sales invoice.

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

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

namespace DynamicsGPWebServiceSample
{
    class Program
    {
        static void Main(string[] args)
        {
            CompanyKey companyKey;
            Context context;
            SalesInvoice salesInvoice;
            SalesDocumentTypeKey salesInvoiceType;
            CustomerKey customerKey;
            BatchKey batchKey;
            SalesInvoiceLine salesInvoiceLine;
            ItemKey invoiceItem;
            Quantity invoiceCount;
            Policy salesInvoiceCreatePolicy;

            // 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 sales invoice object
            salesInvoice = new SalesInvoice();

            // Create a sales document type key for the sales invoice
            salesInvoiceType = new SalesDocumentTypeKey();
            salesInvoiceType.Type = SalesDocumentType.Invoice;

            // Populate the document type key for the sales invoice
            salesInvoice.DocumentTypeKey = salesInvoiceType;

            // Create a customer key
            customerKey = new CustomerKey();
            customerKey.Id = "AARONFIT0001";

            // Set the customer key property of the sales invoice
            salesInvoice.CustomerKey = customerKey;

            // Create a batch key
            batchKey = new BatchKey();
            batchKey.Id = "SALES INVOICES";

            // Set the batch key property of the sales invoice object
            salesInvoice.BatchKey = batchKey;

            // Create a sales invoice line to specify the invoiced item
            salesInvoiceLine = new SalesInvoiceLine();

            // Create an item key
            invoiceItem = new ItemKey();
            invoiceItem.Id = "32X IDE";

            // Set the item key property of the sales invoice line object
            salesInvoiceLine.ItemKey = invoiceItem;

            // Create a sales invoice quatity object
            invoiceCount = new Quantity();
            invoiceCount.Value = 2;

            // Set the quantity of the sales invoice line object
            salesInvoiceLine.Quantity = invoiceCount;

            // Create an array of sales invoice lines
            // Initialize the array with the sales invoice line object
            SalesInvoiceLine[] invoiceLines = { salesInvoiceLine };

            // Add the sales invoice line array to the sales line object
            salesInvoice.Lines = invoiceLines;

            // Get the create policy for the sales invoice object
            salesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateSalesInvoice", context);

            // Create the sales invoice
            wsDynamicsGP.CreateSalesInvoice(salesInvoice, context, salesInvoiceCreatePolicy);
        }
    }
}

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

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using DynamicsGPWebServiceSample.DynamicsGPService;

namespace DynamicsGPWebServiceSample
{
    class Program
    {
        static void Main(string[] args)
        {
            CompanyKey companyKey;
            Context context;
            SalesInvoice salesInvoice;
            SalesDocumentTypeKey salesInvoiceType;
            CustomerKey customerKey;
            BatchKey batchKey;
            SalesInvoiceLine salesInvoiceLine;
            ItemKey invoiceItem;
            Quantity invoiceCount;
            Policy salesInvoiceCreatePolicy;

            // 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 sales invoice object
            salesInvoice = new SalesInvoice();

            // Create a sales document type key for the sales invoice
            salesInvoiceType = new SalesDocumentTypeKey();
            salesInvoiceType.Type = SalesDocumentType.Invoice;

            // Populate the document type key for the sales invoice
            salesInvoice.DocumentTypeKey = salesInvoiceType;

            // Create a customer key
            customerKey = new CustomerKey();
            customerKey.Id = "AARONFIT0001";

            // Set the customer key property of the sales invoice
            salesInvoice.CustomerKey = customerKey;

            // Create a batch key
            batchKey = new BatchKey();
            batchKey.Id = "SALES INVOICES";

            // Set the batch key property of the sales invoice object
            salesInvoice.BatchKey = batchKey;

            // Create a sales invoice line to specify the invoiced item
            salesInvoiceLine = new SalesInvoiceLine();

            // Create an item key
            invoiceItem = new ItemKey();
            invoiceItem.Id = "32X IDE";

            // Set the item key property of the sales invoice line object
            salesInvoiceLine.ItemKey = invoiceItem;

            // Create a sales invoice quatity object
            invoiceCount = new Quantity();
            invoiceCount.Value = 2;

            // Set the quantity of the sales invoice line object
            salesInvoiceLine.Quantity = invoiceCount;

            // Create an array of sales invoice lines
            // Initialize the array with the sales invoice line object
            SalesInvoiceLine[] invoiceLines = { salesInvoiceLine };

            // Add the sales invoice line array to the sales line object
            salesInvoice.Lines = invoiceLines;

            // Get the create policy for the sales invoice object
            salesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateSalesInvoice", context);

            // Create the sales invoice
            wsDynamicsGP.CreateSalesInvoice(salesInvoice, context, salesInvoiceCreatePolicy);

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