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

时间:2015-10-21 10:41:22

标签: c# .net vb.net web-services dynamics-nav

我正在尝试通过Dynamics NAV(2009 R2)中的页面Web服务 Codeunit 中公开功能。我按照MSDN documentationa blog post中的步骤进行了操作,但在连接到Web服务时出现以下错误:

  

System.IndexOutOfRangeException :索引超出了数组的范围。

我创建了一个页面Web服务和一个 Codeunit Web服务,它们都使用相同的名称,只发布了Page Web服务:

Web Services

我的 Codeunit 目前只包含1个功能,如下所示:

Codeunit

当我发布 Codeunit Web服务时,我也可以使用它,但页面Web服务仍会显示错误。

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

我错过了什么或做错了什么?

1 个答案:

答案 0 :(得分:1)

您的codeunit中的函数签名错误。此外,在博客中使用的是Run函数(不是用户函数)。不知道它是否重要。

  

下一阶段:过帐所选发票。我的网络服务中没有方法可以发布我的发票,因此我们将以这种方式扩展Web服务。非常简单!我刚刚用函数创建了一个codeunit。在此函数中,签名很重要:第一个参数应该是您发布的页面的相同记录变量(在我们的示例中," Sales Header")。这是我的codeunit的唯一函数:

     

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