2015-10-16 95 views
0

我试图增加通过网络服务“联系人”,但不断收到错误如下:通过Web服务API添加“接触”时,遇到了错误

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

任何人可以帮助我,让我知道我做错了什么?

谢谢。

回答

0

我一定是错过了一些东西的 - 现在我的代码工作的某些原因。我仍然使用与我在此处发布的涉及“联系ID”注释和“Actions.Save”的代码相同的代码,但它以某种方式工作。不知道为什么,但现在我正在关闭这个问题。感谢无论如何都有回应的人。

0

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

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

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

或者你可以拉分配最后的ContactID和增加这个数字(+1),并以此作为你的CR302000.ContactSummary值。 ContactID也应保存记录。

0

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

CR302000.Actions.Insert而不是使用关键

+0

我尝试使用“插入”而不是“保存”,但没有运气。 – Gladiator