0

C# から SOAP メッセージを生成して、Navision 2009 R2 Web サービスにアクセスしようとしています。呼び出したコードユニットの関数にパラメーターがない場合にのみ、応答を取得します。

codeunit RunJob関数Testの例(パラメーターなし、ハードコーディングされた文字列を返す):

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<Test xmlns="urn:microsoft-dynamics-schemas/codeunit/runjob">
</Test>
</soap:Body>
</soap:Envelope>

その結果、その文字列を取得します...

同じコード単位のRunJob関数RunJobの例( parameter という名前の文字列パラメーターを 1 つ受け取り内部サーバー エラーを返します):

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<RunJob xmlns="urn:microsoft-dynamics-schemas/codeunit/runjob">
<parameter>aaaa</parameter>
</RunJob>
</soap:Body>
</soap:Envelope>

その結果、必要な情報の代わりにエラー ( WebResponse wr = request.GetResponse(); ) が表示されます。

最も興味深いのは、以前は機能していたことです。唯一の変更点 (私の場合) - NAV 2013 がインストールされました。

誰かが同じ問題を経験したか、解決策を知っていますか?

PS RunJob 関数の Web サービス定義の一部を次に示します。

<element name="Runjob">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="parameter" type="string"/>
</sequence>
</complexType>
</element>
<element name="Runjob_Result">
<complexType>
<sequence>
<element minOccurs="1" maxOccurs="1" name="return_value" type="string"/>
</sequence>
</complexType>
</element>
4

2 に答える 2

0

It sound awkward but try to put

<soap:Body><RunJob xmlns="urn:microsoft-dynamics-schemas/codeunit/runjob">

in single line, i.e. no carriage return between Body and RunJob.

于 2013-06-21T07:49:49.740 に答える