Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Acumatica 基于屏幕的API从POLine issue创建采购订单收据_Acumatica - Fatal编程技术网

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
};