Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/asp.net-mvc-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Acumatica 使用restapi更新客户_Acumatica - Fatal编程技术网

Acumatica 使用restapi更新客户

Acumatica 使用restapi更新客户,acumatica,Acumatica,我正在尝试使用RESTAPI更新应收客户的状态字段。更具体地说,我正在使用OAuth2身份验证,已成功获取令牌,并尝试更新通过使用$filter选择的单个客户记录的状态字段 以下是我正在使用的请求: PUT/entity/Default/17.200.001/Customer?$filter=CustomerID%20eq%20ABC HTTP/1.1 内容类型:application/json;字符集=utf-8 授权:持有人44243E3A139334848580857BE1EBC34FF9

我正在尝试使用RESTAPI更新应收客户的状态字段。更具体地说,我正在使用OAuth2身份验证,已成功获取令牌,并尝试更新通过使用$filter选择的单个客户记录的状态字段

以下是我正在使用的请求:

PUT/entity/Default/17.200.001/Customer?$filter=CustomerID%20eq%20ABC HTTP/1.1 内容类型:application/json;字符集=utf-8 授权:持有人44243E3A139334848580857BE1EBC34FF9

在请求正文中:

{“状态”:{“值”:“非活动”}


这将返回一个500错误。我是个新来的针灸师。我做错了什么

您缺少“ABC”参数值的单引号

对于客户拒绝,我在尝试时会遇到相同的错误:

/entity/Default/17.200.001/Customer?$filter=CustomerID%20eq%20ABCHOLDING
如果我在引号中加上“ABCHOLDING”,那么它是有效的:


/
entity/Default/17.200.001/Customer?$filter=CustomerID%20eq%20'ABCHOLDING'

您缺少'ABC'参数值的单引号

对于客户拒绝,我在尝试时会遇到相同的错误:

/entity/Default/17.200.001/Customer?$filter=CustomerID%20eq%20ABCHOLDING
如果我在引号中加上“ABCHOLDING”,那么它是有效的:


/
entity/Default/17.200.001/Customer?$filter=CustomerID%20eq%20'ABCHOLDING'

由于您使用的是客户屏幕的键字段CustomerID字段,您是否尝试过直接在URL中添加ID而不使用过滤器参数


PUT/entity/Default/17.200.001/Customer/ABC

由于您正在使用客户屏幕的键字段CustomerID字段,您是否尝试过直接在URL中添加ID而不使用过滤器参数


PUT/entity/Default/17.200.001/Customer/ABC

您的
500
响应的主体包含错误描述。遗憾的是,响应对我来说毫无意义。它只是告诉我,我试图更新的密钥不在字典中,后面是屏幕转储。我在上面的请求主体中使用的密钥实际上是我使用GET从Acumatica读取记录时收到的记录中使用的密钥。它的格式与接收时的格式完全相同,只是值不同。它很可能对回答您问题的人有意义,发布完整的错误消息和调用堆栈有助于调试。无论如何,我发布了一个答案,我认为错误在于字符串参数值缺少引号。即使响应对您没有任何意义,它可能会帮助了解系统如何工作的人来帮助您。这就是为什么建议发布完整的错误响应,而不仅仅是HTTP状态代码。您的
500
响应的主体包含错误描述。遗憾的是,响应对我来说毫无意义。它只是告诉我,我试图更新的密钥不在字典中,后面是屏幕转储。我在上面的请求主体中使用的密钥实际上是我使用GET从Acumatica读取记录时收到的记录中使用的密钥。它的格式与接收时的格式完全相同,只是值不同。它很可能对回答您问题的人有意义,发布完整的错误消息和调用堆栈有助于调试。无论如何,我发布了一个答案,我认为错误在于字符串参数值缺少引号。即使响应对您没有任何意义,它可能会帮助了解系统如何工作的人来帮助您。这就是为什么建议发布完整的错误响应,而不仅仅是HTTP状态码。不幸的是,返回的全文(>5000个字符)。以下是我得到的响应的前几百个字符:{“消息”:“出现错误”,“异常消息”:“给定的键在字典中不存在”,“异常类型”:“System.Collections.Generic.KeyNotFoundException”,“stackTrace”:“at System.ThrowHelper.ThrowKeyNotFoundException()\r\n在System.Collections.Generic.Dictionary`2.get\u Item(TKey)\r\n在Microsoft.Data.OData.Query.EndPathBinder.BindEndPath(EndPathToken EndPathToken,BindingState)\r\n在Microsoft.DataToken,返回的全文(>5000个字符)。以下是我得到的响应的前几百个字符:{”消息“:”出现错误“,”异常消息“:”给定的键在字典中不存在“,”异常类型“:”System.Collections.Generic.KeyNotFoundException“,”stackTrace“:”位于System.ThrowHelper.ThrowKeyNotFoundException()\r\n位于System.Collections.Generic.dictionary`2.get\u项(TKey)\r\n位于Microsoft.Data.OData.Query.EndPathBinder.BindEndPath(EndPathToken EndPathToken,BindingState)\r\n位于Microsoft.Data