如何通过Dynamics GP API更改UnitPrice

时间:2018-05-23 13:42:26

标签: microsoft-dynamics dynamics-gp gp dynamics-gp-api

我想在通过Dynamics GP API创建订单时更改UnitPrice,

所以我运行下一个代码:

// Create a sales order object
        var salesOrder = new SalesOrder();

        // Create a sales document type key for the sales order
        var salesOrderType = new SalesDocumentTypeKey();
        salesOrderType.Type = SalesDocumentType.Order;

        // Populate the document type key of the sales order object
        salesOrder.DocumentTypeKey = salesOrderType;

        // Create a customer key
        var customerKey = new CustomerKey();
        customerKey.Id = customerSummary[0].Key.Id;

        // Set the customer key property of the sales order object
        salesOrder.CustomerKey = customerKey;

        // Create a batch key
        var batchKey = new BatchKey();
        batchKey.Id = "01-INBOUND";

        // Set the batch key property of the sales order object
        salesOrder.BatchKey = batchKey;

        // Create a sales order line to specify the ordered item
        var salesOrderLine = new SalesOrderLine();

        // Create an item key
        var orderedItem = new ItemKey();
        orderedItem.Id = "AA1111";

        // Set the item key property of the sales order line object
        salesOrderLine.ItemKey = orderedItem;

        // Create a sales order quantity object
        var orderedAmount = new Quantity();
        orderedAmount.Value = 1;

        // Set the quantity of the sales order line object
        salesOrderLine.Quantity = orderedAmount;


        // THIS DOESN'T WORK
        salesOrderLine.UnitPrice = new MoneyAmount { Value = 1.11m, Currency = "USD"  };

        // Discount works ok
        // salesOrderLine.Discount = new MoneyPercentChoice { Item = new MoneyAmount { Value = 1.25m } };

        // Create an array of sales order lines
        // Initialize the array with sales order line object
        SalesOrderLine[] orders = { salesOrderLine };

        // Add the sales order line array to the sales order
        salesOrder.Lines = orders;

        // Get the create policy for the sales order object
        var salesOrderCreatePolicy = dynamicsGP.GetPolicyByOperation("CreateSalesOrder", context);

        // Create the sales order
        dynamicsGP.CreateSalesOrder(salesOrder, context, salesOrderCreatePolicy);

但改变UnitPrice的路线并不起作用。

        salesOrderLine.UnitPrice = new MoneyAmount { Value = 1.11m, Currency = "USD"  };

我做错了什么?感谢任何帮助。

谢谢!

1 个答案:

答案 0 :(得分:1)

找到解决方案:

  

用于更新销售的Dynamics GP Web服务策略配置   发票政策,您需要更新“计算单位价格行为”   “不要计算”。

     

此外,请确保您已选择合适的公司并已分配   政策的适当角色。该角色不应该是默认值。

来源:https://www.cloudfronts.com/dynamics-gp-sales-invoice-unit-price-always-0/