我正在使用Acumatica 4.2并通过另一个系统的api插入销售订单 . 该请求已经出现在销售订单中添加注释,我没有看到有关如何执行此操作的任何有用信息 . 提前致谢 . 这是我使用Acumatica WebAPI插入SalesOrder的代码 . 它功能很好 .
在销售订单屏幕上,右上角还有一个Notes指示器,可在其中将注释添加到销售订单 . 如何使用acumatica web api添加注释?或者我只是使用返回的SONumber并使用SONumber作为参考插入注释 . 我以前没有必要处理笔记 .
try
{
cmds.AddRange(
new SO301000_509.Command[]
{
so301000.Actions.Insert,
new SO301000_509.Value { Value = "SO", LinkedCommand = so301000.OrderSummary.OrderType },
new SO301000_509.Value { Value = "='new'", LinkedCommand = so301000.OrderSummary.OrderNbr },
new SO301000_509.Value { Value = dealerOrder.accountCode, LinkedCommand = so301000.OrderSummary.Customer },
//new SO301000_509.Value { Value = ((DateTime)dealerOrder.orderDateTime).ToShortDateString(), LinkedCommand = so301000.OrderSummary.Date },
new SO301000_509.Value { Value = (dealerOrder.orderDateTime), LinkedCommand = so301000.OrderSummary.Date },
new SO301000_509.Value { Value = "Hubsoft Order Nbr: " + dealerOrder.hubsoftOrderNumber, LinkedCommand = so301000.OrderSummary.Description },
new SO301000_509.Value { Value = dealerOrder.hubsoftOrderNumber, LinkedCommand = so301000.OrderSummary.CustomerRef },
new SO301000_509.Value { Value = "HS-" + dealerOrder.purchaseOrderNumber, LinkedCommand = so301000.OrderSummary.CustomerOrder },
//new SO301000_509.Value { Value = dealerOrder.hubsoftOrderNumber, LinkedCommand = so301000.OrderSummary.ControlTotal },
}
);
//create the sales order lines in loop
for (var idx = 0; idx < SalesOrderLine.Length; idx++)
{
cmds.AddRange(
new SO301000_509.Command[]
{
so301000.DocumentDetails.ServiceCommands.NewRow,
//simple line adding
so301000.DocumentDetails.ServiceCommands.NewRow,
new SO301000_509.Value { Value = SalesOrderLine[idx].inventoryCD, LinkedCommand = so301000.DocumentDetails.InventoryID },
new SO301000_509.Value { Value = SalesOrderLine[idx].UOM, LinkedCommand = so301000.DocumentDetails.UOM },
new SO301000_509.Value { Value = SalesOrderLine[idx].Qty, LinkedCommand = so301000.DocumentDetails.Quantity },
new SO301000_509.Value { Value = "MAIN", LinkedCommand = so301000.DocumentDetails.Warehouse},
new SO301000_509.Value { Value = SalesOrderLine[idx].UnitPrice, LinkedCommand = so301000.DocumentDetails.UnitPrice, Commit = true },
}
);
}
cmds.Add(so301000.Actions.Save); //save all
cmds.Add(so301000.OrderSummary.OrderNbr); //return Order #
SO301000_509.Content[] SO301000Content = context.Submit(cmds.ToArray()); //submit
PXTrace.WriteInformation(SO301000Content[0].OrderSummary.OrderNbr.Value);
acumaticaSONbr = SO301000Content[0].OrderSummary.OrderNbr.Value;
}
catch (Exception ex)
{
PXTrace.WriteError("Error adding Sales Order - " + ex.Message);
}
return acumaticaSONbr;
2 回答
另一种方法是在销售订单本身的第一个插入内 . 由acumember发布的示例需要第二次调用API . 由于我们一次插入许多销售订单,因此我们希望限制我们的通话 . 所以以下也可以工作,只需要一个电话 .
谢谢