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>