Acumatica 使用仓库详细信息更新库存项

Acumatica 使用仓库详细信息更新库存项,acumatica,Acumatica,是否有人成功更新了包含WarehouseDetails数组的stockitem?在我尝试过的每一个变体中,我都会得到一个堆栈转储。我们正在使用制造模块,我不确定这是否会对行为产生影响 放http://myserver-name-here/entity/Default/20.200.001/StockItem/$expand=仓库详细信息 { "id": "0aeba316-893b-eb11-817c-06ec5f1e3982", &quo

是否有人成功更新了包含WarehouseDetails数组的stockitem?在我尝试过的每一个变体中,我都会得到一个堆栈转储。我们正在使用制造模块,我不确定这是否会对行为产生影响

放http://myserver-name-here/entity/Default/20.200.001/StockItem/$expand=仓库详细信息

{
    "id": "0aeba316-893b-eb11-817c-06ec5f1e3982",
    "InventoryID": {"value": "MYSKU.VALUE"},            
    "WarehouseDetails": [
        {
            "id": "0ceba316-893b-eb11-817c-06ec5f1e3982",
            "rowNumber": {"value": 1},
            "DefaultIssueLocationID": {"value": "WH1"},
            "DefaultReceiptLocationID": {"value": "WH2"} ,
            "WarehouseID": {"value": "LOCATION1"},
            "custom": {},
            "files": [],
            "note": {"value": ""}
        },
        {
            "id": "d070a3df-d343-eb11-817c-06ec5f1e3982",   
            "rowNumber": {"value": 2},
            "DefaultIssueLocationID": {"value": "WH3"},
            "DefaultReceiptLocationID": {"value": "WH4"}    ,
            "WarehouseID": {"value": "LOCATION2"}    ,
            "custom": {},
            "files": [],
            "note": {"value": ""}    
        }
    ]
}
堆栈转储总是这样

{
    "message": "An error has occurred.",
    "exceptionMessage": "Specified argument was out of the range of valid values.\r\nParameter name: Invalid uri structure",
    "exceptionType": "System.ArgumentOutOfRangeException",
    "stackTrace": "   at System.Monads.ArgumentCheck.Check[TSource](TSource source, Func`2 checkCondition, Func`2 exceptionSource)\r\n   at PX.Api.ContractBased.SystemContracts.V2.RestController.PutFile(String objectName, String ids)\r\n   at lambda_method(Closure , Object , Object[] )\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.<>c__DisplayClass6_2.<GetExecutor>b__2(Object instance, Object[] methodParameters)\r\n   at System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext, IDictionary`2 arguments, CancellationToken cancellationToken)\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ApiControllerActionInvoker.<InvokeActionAsyncCore>d__1.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<CallOnActionExecutedAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.ActionFilterAttribute.<ExecuteActionFilterAsyncCore>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ActionFilterResult.<ExecuteAsync>d__5.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Filters.AuthorizationFilterAttribute.<ExecuteAuthorizationFilterAsyncCore>d__3.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Web.Http.Controllers.ExceptionFilterResult.<ExecuteAsync>d__6.MoveNext()\r\n--- End of stack trace from previous location where exception was thrown ---\r\n   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)\r\n   at System.Web.Http.Dispatcher.HttpControllerDispatcher.<SendAsync>d__15.MoveNext()"
}
{
“消息”:“发生错误。”,
“exceptionMessage”:“指定的参数超出了有效值的范围。\r\n参数名称:无效的uri结构”,
“exceptionType”:“System.ArgumentOutOfRangeException”,
“stackTrace:”在PX.Api.ContractBased.SystemContracts.V2.RestController.PutFile(String objectName,String id)\r\n在lambda_方法(Closure,Object,Object[])上的“在System.Monads.ArgumentCheck.Check[TSource](TSource source,Func`2 checkCondition,Func`2 exceptionSource)\r\n\r\n在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ActionExecutor.c_uu显示Class6_2.b_u2(对象实例,对象[]方法参数)\r\n在System.Web.Http.Controllers.ReflectedHttpActionDescriptor.ExecuteAsync(HttpControllerContext controllerContext controllerContext,IDictionary`2参数,CancellationToken CancellationToken CancellationToken)\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务任务)\r\n在System.Web.Http.Controllers.ApiControllerActionInvoker.d\u 1.MoveNext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n在System.Web.Http.Filters.ActionFilterAttribute.d\u 6.MoveNext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪---\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处\r\n在System.Web.Http.Filters.ActionFilterAttribute.d\u 6.MoveNext()处\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n在System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n在System.Web.Http.Filters.ActionFilterAttribute.d\u 5.MoveNext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n在System.Web.Http.Controllers.ActionFilterResult.d\u 5.MoveNext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n在System.Web.Http.Filters.AuthorizationFilterAttribute.d\u 3.MoveNext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n在System.Web.Http.Controllers.ExceptionFilterResult.d\u 6.MoveNext()\r\n---从引发异常的上一个位置开始的堆栈结束跟踪---\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()处\r\n在System.Web.Http.Controller.ExceptionFilterResult.d\u 6.MoveNext()处\r\n---从引发异常的上一个位置开始的堆栈结束跟踪----\r\n在System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()\r\n在System.Runtime.CompilerServices.TaskWaiter.HandleNonSuccessAndDebuggerNotification(任务任务)\r\n在System.Web.Http.Dispatcher.HttpControllerDispatcher.d_15.MoveNext()
}

请记住,StockItem后面不是反斜杠,输入任何参数都是问号。这就是为什么会出现无效的uri错误


https://{{baseUrl}}/entity/Default/20.200.001/StockItem?$expand=WarehouseDetails,根据错误消息。您的URI是错误的。您不需要指定“展开”。这只适用于GET。Rick不完全正确,$expand返回有关成功的部分。您不需要它。我刚试过”http:///entity/Default/20.200.001/StockItem". 尽管如此,它还是返回了仓库的详细信息。这让库尔维尔很尴尬。有时候,就在你面前的是愚蠢的事情。非常感谢。不幸的是,我遇到了这个API调用的新问题。调用以200响应成功,但“DefaultIssueLocationID”和“DefaultReceiptLocationID”值从未更新。似乎API的一部分不起作用,但PUT to ItemWarehouse起作用!
{
    "id": "0aeba316-893b-eb11-817c-06ec5f1e3982",
    "InventoryID": {"value": "MYSKU.VALUE"},            
    "WarehouseDetails": [
        {
            "id": "0ceba316-893b-eb11-817c-06ec5f1e3982",
            "rowNumber": {"value": 1},
            "DefaultIssueLocationID": {"value": "WH1"},
            "DefaultReceiptLocationID": {"value": "WH2"} ,
            "WarehouseID": {"value": "LOCATION1"},
            "custom": {},
            "files": [],
            "note": {"value": ""}
        },
        {
            "id": "d070a3df-d343-eb11-817c-06ec5f1e3982",   
            "rowNumber": {"value": 2},
            "DefaultIssueLocationID": {"value": "WH3"},
            "DefaultReceiptLocationID": {"value": "WH4"}    ,
            "WarehouseID": {"value": "LOCATION2"}    ,
            "custom": {},
            "files": [],
            "note": {"value": ""}    
        }
    ]
}