0

Microsoft Dynamics GP 2013 の Web サービスから、次のコードで売上請求書を作成します。

    private void CreateInvoice()
    {
        CompanyKey companyKey;
        Context context;
        SalesInvoice salesInvoice;
        SalesDocumentTypeKey salesInvoiceType;
        CustomerKey customerKey;
        BatchKey batchKey;
        SalesInvoiceLine salesInvoiceLine;
        ItemKey invoiceItem;
        Quantity invoiceCount;
        Policy salesInvoiceCreatePolicy;
        MoneyAmount unitPrice;

        DynamicsGPClient wsDynamicsGP = new DynamicsGPClient();
        context = new Context();
        companyKey = new CompanyKey();
        companyKey.Id = (-1);
        context.OrganizationKey = (OrganizationKey)companyKey;
        salesInvoice = new SalesInvoice();
        salesInvoice.Key = new SalesDocumentKey();
        salesInvoice.Key.Id = "XX555";
        salesInvoiceType = new SalesDocumentTypeKey();
        salesInvoiceType.Type = SalesDocumentType.Invoice;
        salesInvoice.DocumentTypeKey = salesInvoiceType;
        customerKey = new CustomerKey();
        customerKey.Id = "ADAMPARK0001";// "AARONFIT0001";
        salesInvoice.CustomerKey = customerKey;
        batchKey = new BatchKey();
        batchKey.Id = "SALES INVOICES";
        salesInvoice.BatchKey = batchKey;

        IList<SalesInvoiceLine> salesInvoiceLines = new List<SalesInvoiceLine>();
        string[] itemId = { "ACCS-HDS-1EAR", "32X IDE" };    //"ACCS-RST-DXBK";// "512 SDRAM";//              
        for (int i = 0; i < itemId.Count(); i++)
        {
            salesInvoiceLine = new SalesInvoiceLine();
            invoiceItem = new ItemKey();
            invoiceItem.Id = itemId[i];
            salesInvoiceLine.ItemKey = invoiceItem;
            unitPrice = new MoneyAmount();
            unitPrice.Currency = "USD";
            unitPrice.DecimalDigits = 2;
            unitPrice.Value = 1.00M;
            salesInvoiceLine.UnitPrice = unitPrice;
            invoiceCount = new Quantity();
            invoiceCount.Value = 1 + i;
            salesInvoiceLine.Quantity = invoiceCount;
            salesInvoiceLines.Add(salesInvoiceLine);
        }            
        SalesInvoiceLine[] invoiceLines = salesInvoiceLines.ToArray();
        salesInvoice.Lines = invoiceLines;
        salesInvoiceCreatePolicy = wsDynamicsGP.GetPolicyByOperation("CreateSalesInvoice", context);
        wsDynamicsGP.CreateSalesInvoice(salesInvoice, context, salesInvoiceCreatePolicy);
        if (wsDynamicsGP.State != CommunicationState.Faulted)
        {
            wsDynamicsGP.Close();               
        }
    }

売上請求書の作成例はこちら

次のコードによる販売請求書の読み取り:

    private void ShowInvoice()
    {

        CompanyKey companyKey;
        Context context;
        LikeRestrictionOfstring salespersonIdRestriction;
        ListRestrictionOfNullableOfSalesTransactionState transactionStateRestriction;
        SalesInvoiceCriteria salesInvoiceCriteria;
        SalesInvoiceSummary[] salesInvoiceSummary;
        BetweenRestrictionOfNullableOfdateTime restriction;

        DynamicsGPClient wsDynamicsGP = new DynamicsGPClient();
        context = new Context();
        companyKey = new CompanyKey();
        companyKey.Id = (-1);
        context.OrganizationKey = (OrganizationKey)companyKey;
        salespersonIdRestriction = new LikeRestrictionOfstring();
        transactionStateRestriction = new ListRestrictionOfNullableOfSalesTransactionState();
        transactionStateRestriction.EqualValue = SalesTransactionState.Work;
        salesInvoiceCriteria = new SalesInvoiceCriteria();
        salesInvoiceCriteria.TransactionState = transactionStateRestriction;
        salesInvoiceCriteria.SalespersonId = salespersonIdRestriction;
        salesInvoiceSummary = wsDynamicsGP.GetSalesInvoiceList(salesInvoiceCriteria, context);

        StringBuilder summaryList = new StringBuilder();           
        foreach (SalesInvoiceSummary a in salesInvoiceSummary)
        {
           summaryList.AppendLine("<b>Invoice number:</b> " + a.Key.Id + "  <b>Invoice amount:</b> " + a.TotalAmount.Value.ToString("C"));
        }
        if (wsDynamicsGP.State != CommunicationState.Faulted)
        {
            wsDynamicsGP.Close();
        }
    }

売上請求書の読み方例はこちら

質問:特定の請求書の明細を取得する方法を教えてください。

4

1 に答える 1

1

SalesInvoice関連する項目を含む実際のオブジェクトを取得する必要があります。これを行うGetSalesInvoiceByKey()には、請求書の注文番号 (SOPNUMBE) を渡します。

2 番目の例を拡張します。

foreach (SalesInvoiceSummary a in salesInvoiceSummary)
{
    summaryList.AppendLine("<b>Invoice number:</b> " + a.Key.Id + "  <b>Invoice amount:</b> " + a.TotalAmount.Value.ToString("C"));

    SalesInvoice invoice = wsDynamicsGP.GetSalesInvoiceByKey(a.Key.Id, context);
    SalesInvoiceLine[] lineItems = invoice.Lines;
}

ただし、GetSalesInvoiceList()最初に電話する必要はありGetSalesInvoiceByKey()ません。注文番号がわかっている場合は、直接電話することができます。

于 2014-05-01T19:32:20.487 に答える