この記事の内容
概要
Microsoft Office InfoPath フォームを使用して大規模なビジネス プロセスの一部としてデータを収集する場合、通常、そのデータはユーザーが入力するフォームに残りは行き当たらない。 代わりに、フォーム データはビジネス プロセスのフォームから次のステージに移動します。通常は、Web サーバー上のデータベース、Web サービス、アプリケーションなどの外部データ ソースに移動します。 たとえば、従業員は InfoPath を使用して経費報告書フォームに入力し、そのフォームを処理できる Web サービスに送信できます。
フォームを保存する場合とは異なり、ユーザーはフォームの入力中にフォームを保存する場所を選択します。フォームを送信すると、フォームに関連付けられているフォーム テンプレートがデザインされた際に定義された特定の場所にフォームのデータが送信されます。 フォーム テンプレートを設計し、フォームの送信を有効にするときに、ユーザーがフォームに入力したデータを次の場所に送信することができます。
-
Microsoft Office Access または Microsoft SQL Server データベース
-
Web サービス
-
サーバーが実行Microsoft Windows SharePoint Services
-
電子メール メッセージ内
-
Web サーバー上のアプリケーション
-
InfoPath をホストするカスタム アプリケーション
フォーム内のデータを送信する場所を指定すると、ビジネス プロセスの精度と効率が向上する可能性があります。これにより、それらのプロセスに対する制御を高めることができます。 ユーザーがフォーム データを送信する前に、InfoPath はフォーム内のデータが有効であり、無効なデータを修正できます。 この機能は、有効なデータのみを外部データ ソースに送信するのに役立ちます。
ユーザーが 1 つの場所にデータを送信できるようフォーム テンプレートを設計するほか、フォーム テンプレートを設計して、ユーザーがフォーム データを複数の場所に一度に送信できます。 たとえば、ユーザーが完成したフォームを送信すると、フォームのデータがデータベースに送信され、完了した各フォームのコピーもマネージャーに電子メール メッセージで送信される、経費報告書フォーム テンプレートを設計できます。
外部データ ソースに送信できるフォーム テンプレートをデザインするたびに、InfoPath は既定で [ファイル] メニューの [送信] コマンドと標準ツールバーの [送信] ボタンをオンにします。 必要に応じて、[送信] コマンドの名前を 変更 できます。 さらに、フォーム テンプレートに直接ボタンを挿入して、ユーザーがフォームへの入力を完了した後にクリックしてフォーム データを送信することもできます。
フォーム テンプレートを設定して、フォームの送信後に次のいずれかを実行することもできます。
-
既存のフォームが閉じます。
-
既存のフォームが閉じ、新しい空白のフォームが開きます。
-
既存のフォームは開いたままです。
さらに、ユーザーがフォームを送信した後に表示されるメッセージを作成して、フォームが正常に送信されたかどうかを指定できます。
フォーム データを Access またはデータベースに送信SQL Serverする
InfoPath フォームは、1 つのテーブルを顧客レコードで更新する場合でも、経費報告書フォーム テンプレートでリンクされている複数のテーブルを変更するなどの複雑なシナリオでも、データベースに頻繁に送信されます。 フォーム テンプレートを InfoPath で設計すると、スクリプトやカスタム コードを使用することなく、Access または SQL Server データベースに直接送信できます。 カスタム コードを使用するか、そのデータベースに接続されている Web サービスにフォームを送信することで、フォーム データを他の種類のデータベースに送信することもできます。
Access または SQL Server にフォームを送信するには、そのデータベースに基づくフォーム テンプレートを設計する必要があります。 これにより、フォーム テンプレートのテンプレート データ ソース データベースの構造と一致する必要があります。 既存のフォーム テンプレートにデータベース接続を追加すると、フォームのデータ ソースがデータベースの構造と一致しないので、ユーザーは完成したフォームをデータベースに送信できません。 フォーム テンプレートがデータベースの構造と一致しない場合、InfoPath はデータの送信時にデータベース内の正しいフィールドを更新できません。
データベースに基づく InfoPath フォーム テンプレートを設計する場合は、次の問題に注意してください。
-
フォーム テンプレートをデータベース内の複数のテーブルに接続する場合、テーブルはキー フィールドで接続する必要があります。
-
画像、画像、OLE オブジェクト、添付ファイル、Access Memo、SQL などの長いデータ型は、データ接続から除外する必要があります。 InfoPath では、これらの長いデータ型へのデータ接続はサポートされていません。 データベース内の特定のフィールドを除外するには、データ接続ウィザードを使用してデータ接続を設定します。
データ接続ウィザードの最後のページにある [概要] ボックスの情報を読むことで、これらの問題のどちらが該当するか判断できます。 [ 概要] には 、フォームの送信が有効になっているかどうかと、無効になっている場合は、[概要 ] に理由が示されます。
フォーム テンプレートとデータベース間のデータ接続を設定した後、必要な他の送信オプションをカスタマイズできます。 たとえば、フォーム テンプレートの [送信] ボタンに表示 される テキストを変更できます。 ユーザーに表示されるメッセージを変更して、フォームが正常に送信されたかどうかを示し、送信後もフォームを開いた状態にするかどうかを指定することもできます。
フォーム データを Web サービスに送信する
Web サービスを使用してビジネス プロセスのワークフローを確立する場合でも、データベース上の中層としてワークフローを確立する場合でも、InfoPath を使用すると、Web サービスと対話するフォーム テンプレートを簡単に作成できます。 InfoPath には、フォーム テンプレートを Web サービスに接続するプロセスを案内するデータ接続ウィザードがあります。
フォームを Web サービスに送信するフォーム テンプレートを設計するには、次の 2 つの一般的な方法があります。
-
既存のフォーム テンプレートを Web サービスに接続する
-
Web サービスに基づく新しいフォーム テンプレートの設計
どちらの方法でも、InfoPath は Web サービスのスキーマに基づくデータ ソースを作成します。 これにより、フォーム テンプレートに基づくフォームは、Web サービスにデータを送信できます。
技術的な詳細
ユーザーが Web サービスにフォームを送信すると、フォームは SOAP エンベロープ内の拡張マークアップ言語 (XML) データとして送信されます。 SOAP エンベロープは、指定された Web サービス操作の入力パラメーターとして機能します。 これを HTTP を使用してフォームを送信する場合と比較できます。これにより、HTTP POST 要求で XML ドキュメントが生成されます。
InfoPath フォーム テンプレートを Web サービスに接続する前に、次の点を考慮してください。
-
InfoPath は、エンコードされたスタイルを使用する Web リモート プロシージャ コール (RPC) 接続できません。 ドキュメント リテラル エンコードだけがサポートされています。
-
フォーム テンプレートが Web サービスにデータを送信できるようフォーム テンプレートを構成する場合は、特定のフィールドまたはグループのデータのみを送信できるよう指定するか、フォーム内のすべてのデータを送信できます。
Web サービスへのデータ接続を設定した後、フォーム テンプレートに[送信] ボタンを追加し、必要なその他の送信オプションをカスタマイズできます。
フォーム データを実行しているサーバーに送信Microsoft Windows SharePoint Services
データを実行しているサーバーにデータを送信するフォーム テンプレートをMicrosoft Windows SharePoint Services。 これにより、すべてのユーザーのフォームをドキュメント ライブラリに保存して整理できます。 さらに、ユーザーは、フォーム テンプレートに基づくフォームをドキュメント ライブラリから直接入力できます。 また、フォーム データをエクスポートして複数Microsoft Office Excelデータを 1 つのフォームに結合したり、結合したりもできます。 さらに、ドキュメント ライブラリへのフォームの送信を直接有効にする場合は、静的な値、フォーム内のデータに基づく値、または 数式を使用して、フォームのファイル名を事前に定義できます。
SharePoint ドキュメント ライブラリへのフォーム送信を許可するフォーム テンプレートを構成したら、フォームに [送信] ボタンを追加し、[送信] ボタンのテキスト、フォームが正常に送信されたかどうかを示すためにユーザーに表示されるメッセージ、送信後にフォームを開いた状態にするかどうかを示すその他の送信オプションをカスタマイズできます。
電子メール メッセージでフォーム データを送信する
電子メール プログラムの使用は、ビジネス プロセスのワークフローを設定する最も簡単で最も一般的な方法の 1 つです。 ユーザーが標準ツール バーまたは [ファイル] メニューの [送信] ボタンをクリックして、完成したフォームを添付ファイルまたは電子メール メッセージの本文として送信できる InfoPath フォーム テンプレートを設計できます。 電子メール アドレス、件名、添付ファイル名はすべて、フォーム テンプレートをデザインするときに定義済みできます。静的な値、フォーム内のエントリに基づく値、または数式を使用します。 たとえば、フォーム テンプレートを設計して、フォーム内のエントリに基づくメール アドレスに対して定義済みの件名行を含む電子メール メッセージで完了したフォームが自動的に送信されます。 さらに、ユーザーがフォームに入力したデータに基づいて、フォームの動的ファイル名を定義できます。
ユーザーがフォームを電子メール メッセージとして送信するには、2003 年 2003 Microsoft Office Outlookコンピューターに Microsoft Office Outlook 2007 インストールされている必要があります。 Web ブラウザーでフォームに入力するユーザーは、フォームOutlookメール メッセージとして送信する必要があります。
電子メール メッセージでフォームの送信を許可するフォーム テンプレートを構成したら、[標準]ツール バーに [送信]ボタンを追加し、[ファイル] メニューの [送信] コマンドをフォーム テンプレートに追加し、[送信] ボタンに表示されるテキストなどの他の送信オプションをカスタマイズして、フォームが正常に送信されたかどうかを示すメッセージをユーザーに表示できます。 フォームを提出後も開いた状態にするかどうかを指定します。
Web サーバー上のアプリケーションにフォーム データを送信する
XML データを処理できる既存の Active Server Pages (ASP) ページまたは Web サーバー上の他のコードがある場合は、ユーザーが HTTP POST メソッドを使用して完成したフォームを Web サーバーに送信できるよう、フォーム テンプレートを設計できます。 ユーザーがフォームをこの方法で送信できるフォーム テンプレートを構成すると、InfoPath によってフォーム データを含むメッセージが作成され、そのメッセージが Web サーバーに送信されます。 Web サーバーにデータを送信するフォーム テンプレートを設計する場合は、フォームテンプレートに [送信] ボタンを追加し、[送信]ボタンに表示されるテキストを指定し、ユーザーに表示されるメッセージをカスタマイズして、フォームが正常に送信されたかどうかを示し、送信後もフォームを開いた状態にするかどうかを指定できます。
データ接続ファイルを使用してフォーム データを送信する
この Microsoft Office InfoPath 2007 、データ接続に必要なすべての設定を含むデータ接続ファイルと呼ばれる XML ファイルを作成することもできます。 そのファイルを Microsoft Office SharePoint Server 2007 サイトのデータ接続ライブラリに格納し、同じ XML ファイルを使用してデータ接続を構成する複数のフォーム テンプレートを設計できます。 データ接続ファイルを使用すると、データ接続が変更された場合 (たとえば、外部データ ソースの場所が変更された場合)、個々のフォーム テンプレートのデータ接続を更新するのではなく、データ接続ファイルを 1 回更新できます。 データ接続ファイルを使用するフォーム テンプレートはすべて、新しい設定で自動的に更新されます。
データ接続ファイルには、ユーザーがフォーム データを送信する方法を決定する設定を含めることができるようになりました。 このデータ接続ファイルの設定を使用するフォーム テンプレートを設計できます。 フォーム の送信を許可するフォーム テンプレートを構成したら、[ファイル] メニューに [送信]コマンドを追加し、フォーム テンプレートに基づくフォームの [標準] ツール バーに [送信] ボタンを追加し、[送信] ボタンやコマンドに表示されるテキストなど、その他の送信オプションをカスタマイズできます。 フォームが正常に送信されたかどうか、および送信後もフォームを開いた状態にするかどうかを示すためにユーザーに表示されるメッセージ。
コードを使用してフォーム データを送信する
フォーム データを送信するための高度な機能をフォーム テンプレートで作成するには、Microsoft Visual Basic .NET、Microsoft Visual C# .NET、またはスクリプトを使用してマネージド コードを記述します。 たとえば、フォーム テンプレートに、一度に複数の場所にフォームを送信できる機能や、InfoPath で通常サポートされていない外部データ ソースに追加できます。
ヒント: InfoPath データ接続オプションを使用してユーザーがフォームを外部データ ソースに送信できるようフォーム テンプレートを構成できない場合は、この機能を使用して、その外部データ ソースへのデータ接続の独自の実装を記述できます。