为页面 Web 服务创建扩展代码单元时出现 IndexOutOfRangeException

IndexOutOfRangeException when creating an Extension Codeunit for a Page Web Service

我正在尝试通过 Page Web Service[=38= 在 Codeunit 中公开 Function ] 在 Dynamics NAV (2009 R2) 中。我遵循 MSDN documentation and the steps in a blog post,但在连接到 Web 服务时出现以下错误:

System.IndexOutOfRangeException: Index was outside the bounds of the array.

我创建了一个 Page Web Service 和一个 Codeunit Web Service,两者使用相同的名称,只有 Page Web服务已发布:

我的 Codeunit 目前只包含 1 个函数,看起来像这样:

当我也发布Codeunit Web Service时,我可以使用它,但是Page Web Service仍然显示错误。

当我重命名 Codeunit Web 服务时,页面 Web 服务再次像以前一样工作,当然没有 Codeunit 的功能。

我是漏了什么还是做错了什么?

您代码单元中的函数签名错误。此外,在博客中使用的是 Run 函数(不是用户函数)。不知道有没有关系。

Next phase: post the selected invoice. I don't have a method in my web service to post my invoice, so this is where we are going to extend the web service with this possibility. Very simple! I just created a codeunit with a function. In this function, the signature is important: the first parameter should be the same record variable of the page you published (in our case, "Sales Header"). This is my (only) function of my codeunit:

PostInvoice(precSalesinvoice : Record "Sales Header") CODEUNIT.RUN(CODEUNIT::"Sales-Post", precSalesinvoice);