通过 Web 服务 API 添加 "contact" 时出错
Getting error when adding "contact" through web service API
我试图通过 Web 服务添加 "Contacts",但一直出现如下错误:
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());
任何人都可以帮助我让我知道我做错了什么吗?
谢谢。
问题是您在屏幕上看到的实际上是显示名称,而不是真实的联系人 ID,这是一个特殊领域,Acumatica 在很多地方都这样做,我只是解决它。
您应该尝试在显示名称中使用标签,这可能会成功。 (我猜想标签引用了您的 Web 服务以获取 DisplayName 上的正确名称)
cmds.Add(new Value { Value = "<NEW>", LinkedCommand = CR302000.ContactSummary.DisplayName });
或者您可以提取最后分配的 ContactID 并增加该数字 (+1) 并将其用作 CR302000.ContactSummary.ContactID 的值,这也应该保存记录。
应该有命令(操作)插入,我想你可以使用
CR302000.Actions.Insert 而不是使用密钥
我一定是漏掉了什么——我的代码由于某种原因现在可以工作了。我仍然使用与我在此处发布的代码相同的代码,其中涉及 "Contact ID" 的行被注释掉并且 "Actions.Save",但它以某种方式起作用。不知道为什么,但我现在关闭这个问题。感谢无论如何都做出回应的人。
我试图通过 Web 服务添加 "Contacts",但一直出现如下错误:
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());
任何人都可以帮助我让我知道我做错了什么吗?
谢谢。
问题是您在屏幕上看到的实际上是显示名称,而不是真实的联系人 ID,这是一个特殊领域,Acumatica 在很多地方都这样做,我只是解决它。
您应该尝试在显示名称中使用标签,这可能会成功。 (我猜想标签引用了您的 Web 服务以获取 DisplayName 上的正确名称)
cmds.Add(new Value { Value = "<NEW>", LinkedCommand = CR302000.ContactSummary.DisplayName });
或者您可以提取最后分配的 ContactID 并增加该数字 (+1) 并将其用作 CR302000.ContactSummary.ContactID 的值,这也应该保存记录。
应该有命令(操作)插入,我想你可以使用
CR302000.Actions.Insert 而不是使用密钥
我一定是漏掉了什么——我的代码由于某种原因现在可以工作了。我仍然使用与我在此处发布的代码相同的代码,其中涉及 "Contact ID" 的行被注释掉并且 "Actions.Save",但它以某种方式起作用。不知道为什么,但我现在关闭这个问题。感谢无论如何都做出回应的人。