WebServiceConnection.Execute メソッド (XPathNavigator, XPathNavigator, XPathNavigator)
DataConnection 基本クラスから継承される既定の Execute メソッドを上書きし、送信するデータのソースや返されたデータの挿入場所を変更したり、返されるエラー テキストの挿入場所を指定したりすることができます。
名前空間: Microsoft.Office.InfoPath
アセンブリ: Microsoft.Office.InfoPath (Microsoft.Office.InfoPath.dll)
構文
'宣言
Public MustOverride Sub Execute ( _
input As XPathNavigator, _
output As XPathNavigator, _
errors As XPathNavigator _
)
'使用
Dim instance As WebServiceConnection
Dim input As XPathNavigator
Dim output As XPathNavigator
Dim errors As XPathNavigator
instance.Execute(input, output, errors)
public abstract void Execute(
XPathNavigator input,
XPathNavigator output,
XPathNavigator errors
)
パラメーター
- input
型: System.Xml.XPath.XPathNavigator
Web サービスの <SOAP:Body> 要素に挿入するために XML ノードに配置された XPathNavigator オブジェクト。指定する XML ノードは、クエリ パラメーターとその値の全セットに対応する XML を含んでいる必要があります。クエリ操作として構成されたデータ接続の場合、宣言的な設定、つまり関連付けられた DataSource オブジェクトのクエリ フィールド (<dfs:queryFields> の子孫) は、これによって上書きされます。
送信操作として構成されたデータ接続の場合、部分フラグメント マッピングの全セットがこれによって上書きされます。
input パラメーターが null 参照 (Visual Basic ではNothing ) として指定されている場合は、宣言的な設定が使用されます。
- output
型: System.Xml.XPath.XPathNavigator
Web サービスによって返される <SOAP:Body> 要素の内容を挿入する XML ノードに配置された XPathNavigator オブジェクト。クエリ操作として構成されたデータ接続の場合、宣言的な設定、つまり関連付けられた DataSource オブジェクトのデータ フィールド (<dfs:dataFields> の子孫) は、これによって上書きされます。
送信操作として構成されたデータ接続の場合、部分フラグメント マッピングの全セットがこれによって上書きされます。
クエリ操作として構成されたデータ接続に対して output パラメーターが null 参照 (Visual Basic ではNothing ) として指定されている場合は、宣言的な設定が使用されます。データ接続が送信操作として構成されている場合、返されたデータの書き込みは行われません。
- errors
型: System.Xml.XPath.XPathNavigator
Web サービスによって <Fault> 要素で返されるエラー テキストの内容を挿入する XML ノードに配置された XPathNavigator オブジェクト。errors パラメーターが null 参照 (Visual Basic ではNothing ) として指定されている場合、エラー データの書き込みは行われません。
例外
例外 | 条件 |
---|---|
WebException | Web サービスへのアクセス中にネットワーク エラーが発生しました。 |
ArgumentNullException | このメソッドに渡されたパラメーターは null 参照 (Visual Basic ではNothing ) です。 |
ArgumentException | このメソッドに渡されたパラメーターは有効ではありません。たとえば、型または形式が正しくありません。 |
解説
WebServiceConnection オブジェクトが表すデータ接続の動作が実行されると、InfoPath はデータを (クエリ パラメーターとして) SOAP エンベロープでラップし、Web サービスに送信します。次に、データ接続は、Web サービスによって返されたデータを SOAP メッセージで取得するか、または失敗した場合はエラー メッセージ データを受け取ります。WebServiceConnection オブジェクトが表す各データ接続は、InfoPath でデータ接続ウィザードを使用してクエリ操作または送信操作として作成されます。
クエリ操作として定義されたデータ接続は特定の DataSource オブジェクトと関連付けられており、それらのオブジェクトからクエリ パラメーター (フォームのデータ ソースの <dfs:queryFields> ノードで定義されているクエリ フィールド内に格納されている) を受け取り、返されたデータ (フォームのデータ ソースの <dfs:dataFields> ノードで定義されているデータ フィールド内) をそれらのオブジェクトに挿入します。
送信操作として定義されたデータ接続では、クエリ パラメーターのデータを異なる DataSource サブツリーから取り出すための部分フラグメント マッピングが設定されています。
DataConnection 基本クラスから継承された Execute メソッドは、宣言的に定義された入力 (クエリ パラメーター) と、InfoPath でデータ接続ウィザードを使用して定義された出力場所を使用します。
Execute (XPathNavigator, XPathNavigator, XPathNavigator) メソッドは、上記のパラメーターのいずれかまたはすべてを指定するために Execute メソッドの既定のバージョンを上書きします。
このメンバーには、現在開いているフォームと同じドメインで実行中のフォーム、またはクロスドメインのアクセス許可が与えられたフォームのみがアクセスできます。
この型またはメンバーには、Microsoft InfoPath Filler または Web ブラウザーで開かれたフォームを実行中のコードからアクセスできます。
例
次の例では、3 つの XmlDocument オブジェクトを作成して、Execute メソッドを使用しています。最初の XmlDocument にデータを設定した後、3 つの XPathNavigator オブジェクトを Execute メソッドの input、output、および errors パラメーターとして渡すために作成し、メソッドを呼び出します。
// Open connection.
WebServiceConnection wsc =
(WebServiceConnection)this.DataConnections["Main query"];
// Create XmlDocuments.
XmlDocument inputDocument = new XmlDocument();
XmlDocument outputDocument = new XmlDocument();
XmlDocument errorsDocument = new XmlDocument();
// Load input document.
inputDocument.LoadXml("<inputValue1>Test</inputValue1><inputValue2>5</inputValue2>");
// Create XPathNavigator objects for documents.
XPathNavigator inputNav = inputDocument.CreateNavigator();
XPathNavigator outputNav = outputDocument.CreateNavigator();
XPathNavigator errorsNav = errorsDocument.CreateNavigator();
// Call Execute method.
wsc.Execute(inputNav, outputNav, errorsNav);
' Open connection.
Dim wsc As WebServiceConnection = _
DirectCast(Me.DataConnections["Main query"], WebServiceConnection)
' Create XmlDocuments.
Dim inputDocument As XmlDocument = new XmlDocument()
Dim outputDocument As XmlDocument = new XmlDocument()
Dim errorsDocument As XmlDocument = new XmlDocument()
' Load input document.
inputDocument.LoadXml("<inputValue1>Test</inputValue1><inputValue2>5</inputValue2>")
' Create XPathNavigator objects for documents.
Dim inputNav As XPathNavigator = inputDocument.CreateNavigator()
Dim outputNav As XPathNavigator = outputDocument.CreateNavigator()
Dim errorsNav As XPathNavigator = errorsDocument.CreateNavigator()
' Call Execute method.
wsc.Execute(inputNav, outputNav, errorsNav)