如何通过Acumatica Web服务更改客户ID

时间:2015-05-19 06:51:30

标签: c# web-services acumatica

如何通过Acumatica Web服务更改CustomerID我有这个代码但没有用。

            LoginResult loginResult = context.Login("admin", "123");
            Content AR303000 = context.GetSchema();
            context.Clear();
            context.SetSchema(AR303000);
            var commands = new List<Command>();

            //AR303000.CustomerSummary.CustomerID.LinkedCommand = null;

            commands.Add(new Value { Value = "ABARTENDE", LinkedCommand = AR303000.CustomerSummary.CustomerID });
            commands.Add(AR303000.Actions.ChangeID);
            commands.Add(new Value { Value = "ABARTENDE1", LinkedCommand = AR303000.SpecifyNewID.CustomerID });
            commands.Add(new Value { Value = "OK", LinkedCommand = AR303000.SpecifyNewID.ServiceCommands.DialogAnswer }); //---> I tried this line nothing works
            commands.Add(AR303000.Actions.Save);
            var result = context.Submit(commands.ToArray());

1 个答案:

答案 0 :(得分:1)

您需要稍微不同的命令顺序,并在几个地方设置Commit标志以使其起作用:

AR303000.Actions.ChangeID.Commit = true;
commands.Add(new Value { Value = "ABARTENDE", LinkedCommand = AR303000.CustomerSummary.CustomerID, Commit = true });
commands.Add(new Value { Value = "ABARTENDE1", LinkedCommand = AR303000.SpecifyNewID.CustomerID });
commands.Add(new Value { Value = "OK", LinkedCommand = AR303000.SpecifyNewID.ServiceCommands.DialogAnswer, Commit = true });
commands.Add(AR303000.Actions.ChangeID);
commands.Add(AR303000.Actions.Save);

我不完全理解为什么在ChangeID和DialogAnswer命令上需要提交标志,但这些信息直接来自Acumatica平台的创建者。