Microsoft Dynamics NAV - 创建销售订单的新条目 (Simple.OData.Client)

Microsoft Dynamics NAV - create new entry of SalesOrder (Simple.OData.Client)

我正在尝试 post 使用 Microsoft Dynamics NAV 中的 Simple.OData.Client 通过 OData 网络服务创建一个新的 SalesOrder 条目。

这个有效

        ODataClientSettings settings = new ODataClientSettings();
        settings.BaseUri = new Uri(Constants.ODataServiceEndpoint);
        settings.Credentials = new NetworkCredential(Constants.SecureUserName, Constants.SecureUserPassword);
        client = new ODataClient(settings);

        var items = await client
            .For("SalesOrder")
            .FindEntriesAsync();

不幸的是,这个不起作用,我不知道为什么:

        var product = await client
                .For<SalesOrder>("SalesOrder")
                .Set(CreateDummyOrder())
                .InsertEntryAsync();

我得到这个异常:

     Exception caught : Simple.OData.Client.WebRequestException: Internal Server Error
     at Simple.OData.Client.RequestRunner.PostExecute(HttpResponseMessage responseMessage)
     at Simple.OData.Client.RequestRunner.ExecuteRequestAsync(ODataRequest request, CancellationToken cancellationToken)
     at Simple.OData.Client.ODataClient.ExecuteRequestWithResultAsync[T](ODataRequest request, CancellationToken cancellationToken, Func`2 createResult, Func`1 createEmptyResult, Func`1 createBatchResult)
     at Simple.OData.Client.ODataClient.InsertEntryAsync(FluentCommand command, Boolean resultRequired, CancellationToken cancellationToken)
     at Simple.OData.Client.BoundClient`1.InsertEntryAsync(Boolean resultRequired, CancellationToken cancellationToken)

终于找到问题了。

对于每个要处理它的人来说,有必要使用 OData V4 URL。虽然我不确定为什么发布不适用于 OData V3 URL。之后,您必须启用手册编号