XMLリクエストでSPを呼び出す必要があります。この1は、次のような要素を持つXML文書としてウィザードによって自動生成されます。属性の代わりにxml要素を使用したBizTalkストアドプロシージャ要求
<xs:element name="sp_storedProcedureName">
<xs:complexType>
<xs:attribute name="Field1" type="xs:string"/>
<xs:attribute name="Field2" type="xs:string"/>
. . .
SPパラメータのいくつかがnullであるかもしれません。ヌル属性は「属性なし」を意味するため、スキーマの検証に失敗するため、このシナリオには属しません。
私は手動でこのように要求スキーマに再作成:
<ns0:sp_storedProcedureName>
<ns0:Field1>AB</ns0:Field1>
<ns0:Field2>ZZ</ns0:Field2>
<ns0:FieldN xsi:nil="true" />
. . .
:値であることを意味し、(LINTは、マップのテストが失敗し、そう言う)
<xs:element name="sp_storedProcedureName">
<xs:complexType>
<xs:sequence>
<xs:element name="Field1" type="xs:string"/>
<xs:element name="Field2" type="xs:string"/>
<xs:element name="FieldN" type="xs:string" nillable="true"/>
. . .
をして作成したメッセージが有効であると思われます
これは私が必要とするものです。
HRESULT="0x80040e10"
Description="Procedure or function 'sp_storedProcedureName' expects parameter '@Field1', which was not supplied."
まだそれが値がXMLによって供給されていることは明らかだが、私は、SQLアダプタが要素から読み取ることができないと思い、しばらく:メッセージは送信がエラーで失敗した送信ポートパイプラインに到達し 主要素の属性から読み取ることができます。
これはケースですか?
私の主な質問は次のとおりです。xmlを使用してストアドプロシージャにnull値を渡すにはどうすればよいですか?
名前空間を正しく宣言していますか? – Shnugo
@ Shnugoはい。私は名前空間を残している属性を、ウィザードで宣言されているように設定するだけです。さもなければ私は属性を持つスキーマの送信に失敗します – strongmmc
Field1の既定値をnullに設定するようにストアドプロシージャを変更します。 P.S.なぜまだbiztalk-2006のために開発していますか?それはサポート外です。 – Dijkgraaf