Acumatica 基于屏幕的API从POLine issue创建采购订单收据
我们正在尝试使用“添加采购订单行”智能面板将采购订单行添加到收据文档中。下面是代码,但它总是选择前两行,而不是命令中指定的键Acumatica 基于屏幕的API从POLine issue创建采购订单收据,acumatica,Acumatica,我们正在尝试使用“添加采购订单行”智能面板将采购订单行添加到收据文档中。下面是代码,但它总是选择前两行,而不是命令中指定的键 //select lines from smart panel foreach (POReceiptLine line in POReceiptlines.OrderBy(x => x.LineNum)) { AcumaticaInterface.apitest.Command[] Docline = new AcumaticaInterface.apite
//select lines from smart panel
foreach (POReceiptLine line in POReceiptlines.OrderBy(x => x.LineNum))
{
AcumaticaInterface.apitest.Command[] Docline = new AcumaticaInterface.apitest.Command[]
{
new Key
{
ObjectName = PORcptSchema.AddPurchaseOrderLine.OrderNbr.ObjectName,
FieldName = PORcptSchema.AddPurchaseOrderLine.OrderNbr.FieldName,
Value = "='" + line.BaseDocNum + "'",
Commit =true
},
new Key
{
ObjectName = PORcptSchema.AddPurchaseOrderLine.LineNbr.ObjectName,
FieldName = PORcptSchema.AddPurchaseOrderLine.LineNbr.FieldName,
Value = "='" + line.BaseLineNum + "'",
Commit =true
},
new Value
{
Value = "True",
LinkedCommand = PORcptSchema.AddPurchaseOrderLine.Selected,
Commit = true
}
};
Document = Document.Concat(Docline).ToArray();
}
// Add PO line and retrieve back the added lines.
var addPOLine = new Command[]
{
addPOLineWithCommit,
////get back the added lines in the grid
PORcptSchema.DocumentDetails.POOrderNbr,
PORcptSchema.DocumentDetails.POLineNbr
};
Document = Document.Concat(addPOLine).ToArray();
var receiptLines = context.PO302000Submit(Document);
我们正在尝试选择订单号为“000014”[行号为Nbr(1,2)]的行,但添加的行号为订单号为“000012”[行号为Nbr(1,2)]。请协助。解决方案是清除AddPurchaseOrderLine默认设置的LinkedCommand。所选字段:
receiptSchema.AddPurchaseOrderLine.Selected.LinkedCommand = null;
下面是完整的SOAP请求,允许通过基于屏幕的API在添加采购订单行弹出窗口中查找和选择记录:
Content receiptSchema = context.GetSchema();
receiptSchema.Actions.AddPOOrderLine.Commit = true;
receiptSchema.Actions.AddPOOrderLine2.Commit = true;
receiptSchema.AddPurchaseOrderLine.Selected.LinkedCommand = null;
var commands = new Command[]
{
new Value
{
Value = "Receipt",
LinkedCommand = receiptSchema.DocumentSummary.Type
},
new Value
{
Value = "PR000416",
LinkedCommand = receiptSchema.DocumentSummary.ReceiptNbr
},
new Value
{
Value = "OK",
LinkedCommand = receiptSchema.AddPurchaseOrderLine.ServiceCommands.DialogAnswer,
Commit = true
},
receiptSchema.Actions.AddPOOrderLine,
new Key
{
ObjectName = receiptSchema.AddPurchaseOrderLine.OrderNbr.ObjectName,
FieldName = receiptSchema.AddPurchaseOrderLine.OrderNbr.FieldName,
Value = "='PO000483'"
},
new Key
{
ObjectName = receiptSchema.AddPurchaseOrderLine.LineNbr.ObjectName,
FieldName = receiptSchema.AddPurchaseOrderLine.LineNbr.FieldName,
Value = "='1'"
},
new Value
{
Value = "True",
LinkedCommand = receiptSchema.AddPurchaseOrderLine.Selected
},
new Key
{
ObjectName = receiptSchema.AddPurchaseOrderLine.OrderNbr.ObjectName,
FieldName = receiptSchema.AddPurchaseOrderLine.OrderNbr.FieldName,
Value = "='PO000483'"
},
new Key
{
ObjectName = receiptSchema.AddPurchaseOrderLine.LineNbr.ObjectName,
FieldName = receiptSchema.AddPurchaseOrderLine.LineNbr.FieldName,
Value = "='2'"
},
new Value
{
Value = "True",
LinkedCommand = receiptSchema.AddPurchaseOrderLine.Selected
},
receiptSchema.Actions.AddPOOrderLine2,
receiptSchema.Actions.Save
};