通过Web服务API添加“联系人”时出错

时间:2015-10-16 19:04:59

标签: acumatica

我试图通过网络服务添加“通讯录”,但不断收到如下错误:

Failed to convert parameter value from a String to a Int32. ---> System.FormatException: Input string was not in a correct format.

如果我按如下方式注释掉该行:

//cmds.Add(new Value { Value = "<NEW>", LinkedCommand = CR302000.ContactSummary.ContactID });

我没有任何错误,但没有添加任何联系。

代码如下:

            CR302000Content CR302000 = context.CR302000GetSchema();
            context.CR302000Clear();

            List<Command> cmds = new List<Command>();               

            //add header info

            //cmds.Add(new Value { Value = "<NEW>", LinkedCommand = CR302000.ContactSummary.ContactID });
            cmds.Add(new Value { Value = contact.LastName, LinkedCommand = CR302000.DetailsSummary.LastName });

            cmds.Add(new Value { Value = "CA", LinkedCommand = CR302000.DetailsAddress.Country });


            cmds.Add(CR302000.Actions.Save);

            CR302000Content[] CR302000content = context.CR302000Submit(cmds.ToArray());

有人可以帮我告诉我我做错了吗?

感谢。

3 个答案:

答案 0 :(得分:0)

问题是你在屏幕上看到的实际上是显示名称而不是真正的联系人ID它是一个特殊字段Acumatica在很多地方做到这一点我只是解决它。

您应该尝试在显示名称中使用该标记,并且可能会这样做。 (我猜这些标签会引用您的Web服务以获取DisplayName上的正确名称)

cmds.Add(new Value { Value = "<NEW>", LinkedCommand = CR302000.ContactSummary.DisplayName }); 

或者您可以拉出最后一个分配的ContactID并递增该数字(+1)并将其用作CR302000.ContactSummary.ContactID的值,该值也应该保存记录。

答案 1 :(得分:0)

应该有命令(动作)插入,我想你可以使用

CR302000.Actions.Insert而不是使用键

答案 2 :(得分:0)

我一定错过了什么 - 我的代码现在因某种原因而起作用了。我仍然使用与我在此处发布的相同代码,其中包含“Contact ID”注释掉的行和“Actions.Save”,但它以某种方式工作。不知道为什么,但我现在正在关闭这个问题。感谢那些已做出回应的人。