我需要一些关于如何使用Acumatica REST API(v17.204.0019)使HttpClient DeleteAsync工作的建议。我已经使用GetAsync成功完成了GET,但是同一数据行的DeleteAsync的DELETE返回500错误。我在GET和DELETE调用中使用相同的URL -
https://localhost/AcuAmazon172040019/entity/Default/17.200.001/SalesOrder/SO/001337
但是GET返回预期的json,DELETE抛出500. GetAsync调用如下所示:
Response = HttpClient.GetAsync(url).Result.EnsureSuccessStatusCode();
并且DeleteAsync调用如下所示:
Response = HttpClient.DeleteAsync(url).Result.EnsureSuccessStatusCode();
其中Response是HttpResponseMessage属性,HttpClient是HttpClient属性。
我终于让它为我工作了。 500错误是一个红色的鲱鱼。正如我在上面的评论中提到的那样,#I我一直在使用的订单是已完成,所以它抛出500,但是有一条消息“删除按钮被禁用”,这意味着根据Acumatica无法删除订单申请规则。然后我尝试了我认为是一个开放的订单#,它也抛出了500和一条消息“没有实体满足条件”,这意味着订单无法找到。事实证明,由于某种原因,我使用的SalesDemo数据中的未结订单实际上具有“SO”前缀,因此不仅仅是“004108”,而是“SO004108”。一旦我包含“SO”前缀,订单就会成功删除。成功的url实际上看起来像这样:
http://localhost/AcuAmazon172040019/entity/Default/17.200.001/SalesOrder/SO/SO004108