从POLine发行基于屏幕的API创建收货单 [英] Screen based API creation of PO receipt from POLine issue

查看:115
本文介绍了从POLine发行基于屏幕的API创建收货单的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在尝试使用 ADD PO LINE智能面板将PO行添加到收据文档中。下面是代码,但是它总是选择前2行而不是命令中指定的键。

We are trying to add PO lines to the receipt document using 'ADD PO LINE' smartpanel. Below is the code, but it always chooses the first 2 lines instead of the keys specified in the command.

//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);

我们试图选择顺序Nbr'000014'[Nbr(1,2)]行,但添加的行顺序为Nbr'000012'[Nbr(1,2)Line]。

We are trying to select the lines of order Nbr '000014' [Line Nbr(1,2)], but the lines added are of Order Nbr '000012' [Line Nbr(1,2)]. Please assist.

推荐答案

解决方案是清除默认情况下为AddPurchaseOrderLine.LinkedCommand设置的字段。

The solution is to clear LinkedCommand set by default for the AddPurchaseOrderLine.Selected field:

receiptSchema.AddPurchaseOrderLine.Selected.LinkedCommand = null;

下面是完整的SOAP请求,该请求允许在添加购买中找到并选择记录通过基于屏幕的API弹出订单行

Below is the complete SOAP request, that allows to locate and select records on the Add Purchase Order Line popup via the Screen-Based 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
};

这篇关于从POLine发行基于屏幕的API创建收货单的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆