MS DynamicsNAV Web 服务索引越界
MS DynamicsNAV Web service index out of bounds
您好,我在使用 Microsoft Dynamics NAV 2009 R2 Web 服务时遇到问题!
有一个名为 OrderGoodsInsert 的 webMethod 需要参数 lLanguageId [int], lRec [Text 250] [100]
lRec 应该是一个字符串数组,其值如下
- "Document Type"
- "Document No."
- "Line No." -(创建时为空)
- "Insert User"
- "Modify User"
- "Type" [0 – „”,1 – G/L 帐户,2 – 项目,3 – 资源,4 – 固定资产,5 – 费用(项目)]
- "No." – 商品代码
- 数量
我尝试使用 c# 代码调用作为 Web 服务引用添加到我的项目的方法。代码:
string[] arr = new string[8];
arr[0] = "1";
arr[1] = currentDocNo;
arr[3] = "SU04";
arr[5] = "2";
arr[6] = item.Code;
arr[7] = item.Amount;
arr[2] = "";
arr[4] = "";
navWS.OrderGoodsInsert(1062, arr);
但是当我这样做时我得到
A first chance exception of type 'System.Net.WebException'
occurred in System.dll
A first chance exception of type 'System.Web.Services.Protocols.SoapException'
occurred in System.Web.Services.dll
错误是index out of bounds
我是不是做错了什么?
您的 OrderGoodsInsert
方法在 SOAP 定义上看起来像这样
<sequence>
<element minOccurs="1" maxOccurs="1" name="lLanguageId" type="int"/>
<element minOccurs="1" maxOccurs="unbounded" name="lRec" type="string"/>
</sequence>
因此它期望变量 lRec
的 string
而不是 string[]
。
尝试将数组转换为一个带分隔符的字符串。
navWS.OrderGoodsInsert(1062, string.Join(";", arr));
但我不确定哪个是 NAV WebServices 的正确分隔符。
问题是 WS 的开发人员进行了更改,但没有发出新的文档。
数组中还需要一个字符串,表示物品所在的架子。
您好,我在使用 Microsoft Dynamics NAV 2009 R2 Web 服务时遇到问题!
有一个名为 OrderGoodsInsert 的 webMethod 需要参数 lLanguageId [int], lRec [Text 250] [100]
lRec 应该是一个字符串数组,其值如下
- "Document Type"
- "Document No."
- "Line No." -(创建时为空)
- "Insert User"
- "Modify User"
- "Type" [0 – „”,1 – G/L 帐户,2 – 项目,3 – 资源,4 – 固定资产,5 – 费用(项目)]
- "No." – 商品代码
- 数量
我尝试使用 c# 代码调用作为 Web 服务引用添加到我的项目的方法。代码:
string[] arr = new string[8];
arr[0] = "1";
arr[1] = currentDocNo;
arr[3] = "SU04";
arr[5] = "2";
arr[6] = item.Code;
arr[7] = item.Amount;
arr[2] = "";
arr[4] = "";
navWS.OrderGoodsInsert(1062, arr);
但是当我这样做时我得到
A first chance exception of type 'System.Net.WebException'
occurred in System.dll
A first chance exception of type 'System.Web.Services.Protocols.SoapException'
occurred in System.Web.Services.dll
错误是index out of bounds
我是不是做错了什么?
您的 OrderGoodsInsert
方法在 SOAP 定义上看起来像这样
<sequence>
<element minOccurs="1" maxOccurs="1" name="lLanguageId" type="int"/>
<element minOccurs="1" maxOccurs="unbounded" name="lRec" type="string"/>
</sequence>
因此它期望变量 lRec
的 string
而不是 string[]
。
尝试将数组转换为一个带分隔符的字符串。
navWS.OrderGoodsInsert(1062, string.Join(";", arr));
但我不确定哪个是 NAV WebServices 的正确分隔符。
问题是 WS 的开发人员进行了更改,但没有发出新的文档。 数组中还需要一个字符串,表示物品所在的架子。