0

我想在通过 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"  };

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

谢谢!

4

1 回答 1

1

找到解决方案:

在更新销售发票策略的 Dynamics GP Web 服务策略配置中,您需要将“计算单价行为”更新为“不计算”。

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

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

于 2018-06-05T15:54:50.033 回答