こんにちは、habravchane!

あらゆる組織のビジネスプロセスとワークフローには、多くのフォームとフォームの完成が必要です。 これらのプロセスを自動化するタスクには、とりわけ、前代紙のフォームを電子版に置き換えることが含まれます。 同時に、Excelドキュメントに基づくフォーム、Accessに基づくフォーム、asp.netアプリケーションのWebフォーム、企業のデスクトップアプリケーションなど、非常に多くの非常に異なるツールとテクノロジが使用されます。
MS Officeパッケージの一部として、電子フォームを作成するために特別に設計されたプログラムがあります-これはMicrosoft Office InfoPathです。
InfoPathフォームの開発の基本について説明します。 主な焦点は基本的なものにありますが、最終的には、データ接続、InfoPathフォームでのプログラミング、Sharepointとの統合など、より深い側面のいくつかに言及します。
コンセプト
InfoPathフォームの基本原則は、フォームテンプレートとそのデータの分離です。
- フォームテンプレートは、フォームの構造とそのデザインの説明を含む拡張子.xsnのファイルです。 ストレッチを使用すると、データのない空のフォームとして認識できます。
- フォームデータは、特定の情報を含むxmlファイルです。 これは、フォームの便利な「入力」です。
この部門に従って、InfoPathは2つの方法で動作します。テンプレートを開発するデザイナーと、テンプレートに基づいてフォームを開いて入力するクライアントです。 InfoPath 2007まで、この機能は1つのアプリケーションに統合されていました。 Office 2010では、アプリケーションは2つの独立したコンポーネントに分かれています。テンプレート開発用に設計されたInfoPath Designer(フォームデザイナー)と、テンプレートに基づいて特定のフォームに入力するInfoPath Fillerです。 この記事の例は、InfoPath 2007用です。
通常、フォームテンプレートは、ユーザーがアクセスできる有名な場所で公開されます。 ユーザーがテンプレートを開き、フォームに入力します。 さらにアクションが異なる場合があります:完成したフォームを.xmlファイルとして保存し、どこかに情報を送信します。
.xmlファイルとして保存されたフォームを開いて変更できます。 フォームの構造とデザインはテンプレートで定義されているため、対応するフォームテンプレートの場所を.xmlファイルが「認識」する必要があることは明らかです。 テンプレートが利用できない場合、InfoPathはキャッシュからテンプレートを取得し、変更されている場合は、更新されたテンプレートをダウンロードする機会が与えられます。 フォームテンプレートとそのデータ間のリンクを提供するために、InfoPathにはフォームテンプレートを公開するための高度なアーキテクチャがあります。
簡単な例
それを理解する最良の方法は、手で触ることです。 手始めに、プログラムに付属しているフォームの既製のサンプルを試すことができます。 Microsoft Office InfoPath 2007を開きます。「Getting Started」ウィンドウが表示されたら、左側の「Customize the sample」を選択し、表示されない場合は、「File」メニューに移動し、「Form Template Designer ...」を選択して、再び開くウィンドウで、 「サンプルのカスタマイズ...」を左クリックします。 たとえば、「資産会計」のサンプルをご覧ください。

サンプルをダブルクリックすると、InfoPathはデザインモードで開きます。 フォームテンプレートの編集、不要なフィールドの削除、新しいフィールドの追加などを行うことができます。使用可能なコンポーネント(入力フィールド、チェックボックス、ドロップダウンリスト)を含むパネルは、ウィンドウの右側のタスクバーの[コントロール]リンクで開きます。

テンプレートを「Asset Accounting.xsn」ファイルとして便利な場所に保存します。 おそらく同時に、InfoPathはそれを公開するのはいいと思いますが、今のところは行いません。

これで、テンプレートを開いてフォームに入力できます。
記入後、保存できます。 これは、拡張子が.xmlのファイル(テンプレートに基づくデータファイル)になります。 これにより、1つのテンプレートに基づいて多くのフォームに入力できます。

転記
既に述べたように、InfoPathにはフォームテンプレートを発行するための複雑なアーキテクチャがあります。 コンピューターのどこかに保存した資産会計フォームのテンプレートは、現在私たちだけが利用できます。 幅広いユーザーが利用できるようにしたいと思います。
まず、デザインモードでフォームテンプレートを開きます(ファイルのコンテキストメニューの[デザイナー]アイテム)。
公開ウィザードは、[ファイル]メニューの[公開...]コマンドで起動します。
InfoPathには、フォームを発行するためのいくつかのオプションがあります。 この場合、テンプレートを共有フォルダーに入れましょう。

次のウィザードウィンドウで、発行場所を指定する必要があります。 かつて、私はこの段階で苦しみました。 実行されたアクションの意味がよくわからないため、[参照]ボタンをクリックして、保存されたテンプレートファイルを選択しました。 これは必要ありません。 [フォームテンプレートのパスとファイル名]フィールドには、発行する場所に存在しないファイルへのパスが含まれている必要があります。 したがって、[参照]をクリックし、共有フォルダーにアクセスし、[ファイル名]フィールドで、今後公開されるテンプレートの名前を入力して、[OK]をクリックします。



次のステップでは、公開されたテンプレートにユーザーがアクセスする別の方法を入力する必要があります。 結局のところ、ネットワークリソースのマッピングは、開発者とエンドユーザーの間で異なる場合があります。 エンドユーザーに表示されるネットワークリソースは異なる場合があります。 また、InfoPathでは、公開されたテンプレートへのアクセスも同じ方法で行う必要があります。 したがって、公開時には、2つのパスが設定されます。1つは管理者用(既に設定済み)、もう1つはエンドユーザー用です。 ユーザー側からのパスに違いがない場合は、前の手順で指定したパスを入力フィールドにコピーします。

「次へ」ボタンをクリックした後、入力したデータを確認して「公開」をクリックします。
ウィザードの最後のウィンドウで、公開が成功したことに関するメッセージを楽しみ、公開されたテンプレートに基づいてフォームをすぐに開いて、すべてが正常であることを確認します。

安全性
パブリケーションウィザードの最後のウィンドウに、「セキュリティレベル:ドメイン」という行があります。
フォームのセキュリティレベルによって、フォームが実行できること、フォームの信頼レベルが決まります。
これは、「ツール」メニューから同じ名前のコマンドによって開かれる「フォーム設定」ダイアログボックスの「セキュリティと信頼」タブでフォームテンプレートを開発するときに設定されます。 信頼には、制限レベル、ドメインレベル、完全信頼の3つのレベルがあります。
- 信頼が制限されたフォームはあまり役に立ちません。外部データソースにアクセスできず、共有フォルダーで公開することもできません。これは、資産会計フォームのテンプレートで行いました。 ただし、限定的な信頼のテンプレートは電子メールで送信でき、受信者はそれらに基づいてフォームに入力できます。 ところで、電子メールでInfoPath 2007フォームを送信する場合、これを行うには2つの方法があります。 1つは、フォームを添付ファイルとして送信することです。 これは、受信者と当社が使用する電子メールクライアントに関係なく実行できます。 2番目のオプションは、メッセージの本文でフォームを送信することです。 これは、受信者とメールクライアントの両方がMicrosoft Office Outlook 2007である場合に可能です。
- ドメインレベルのセキュリティが設定されたフォームは、ドメイン内のコンテンツにアクセスできます。たとえば、MS SQL Serverデータベースに保存されているディレクトリまたはSharepointリストからドロップダウンリストに入力します。
- 完全な信頼とは、フォームが何でもできることを意味します。 特に、フォームにプログラムコード(イベントハンドラーなど)がある場合は、完全なレベルの信頼が必要です。 完全なレベルの信頼を持つテンプレートに署名する必要があります-これはここで行うことができます(「このフォームテンプレートに署名する」チェックボックス、電子デジタル署名証明書を作成および選択するためのボタン)。
デフォルトでは、「セキュリティと信頼」タブで「セキュリティレベルを自動的に検出する」チェックボックスが選択されています。 経験から、私はそれが自動的に常に正しく正しく判断されるとは限らないと言うことができます。あるテンプレートに基づいてフォームを開くときのエラーの重要な部分は、テンプレートのセキュリティレベルが低いという事実によって正確に引き起こされました。
異なることについて少し
データソース
既に述べたように、InfoPathフォームは外部データソースにアクセスできます。 データベース(MS SqlまたはAccess)、Sharepointリスト、Webサービス、.xmlファイルにすることができます。 最も明らかな使用法は、さまざまなディレクトリに基づいてドロップダウンリストに記入することです。
外部データソースにアクセスするフォームテンプレートには、セキュリティレベル(ドメイン)が必要であることを思い出させてください。
実際、InfoPathフォームの構造はデータソースによって決まります。 フォームテンプレートを最初から作成した場合でも、データソースには「メイン」データソースが存在します。 フォームに要素を追加すると、対応するノードがデータソースに追加されます。 InfoPathのデータソースはすべてxmlツリーで表されるため、フォームの構造は本質的に何らかの種類のxmlツリーです。
Webサービス、データベース、事前定義されたxmlスキームなど、利用可能なデータソースに基づいてInfoPathフォームを作成することができます。 この場合、フォームの構造の基礎であるデータソースを変更できなくなり、データソースにない新しいフィールドを追加することもできなくなります。
視聴回数
フォームには複数の表現を含めることができます。 ビューは、特定のフィールドグループを含む特定の「スライス」です。 フォーム上のデータソースのすべてのフィールドを同時に表示する必要はありません。 多くのフィールドがある場合、それらの意味に従ってそれらをグループ化し、いくつかの表現に分割できます。 さらに、特定のビジネスプロセスの一部としてフォームを操作するユーザーグループごとに異なるビューを作成できます。 最後に、この特定のタスクに焦点を当てた特に美しいデザインを持つフォームを印刷するための別のプレゼンテーションを作成できます。 フォームが開いているInfoPathクライアントの[表示]メニューを使用してビューを切り替えることができます。たとえば、プログラムで、たとえばフォームのボタンをクリックして(この場合は、[表示]メニューを手動で切り替える機能を無効にできます) )
プログラミング
複雑なフォームにはプログラムコードが含まれる場合があります(最も興味深いのは、C#またはVisual Basic .Netのマネージコードです)。 そのようなフォームのセキュリティのレベルは「完全な信頼」でなければならないことを思い出させてください。 たとえば、コードでは、必要なイベント処理、入力データの複雑な制御(InfoPathコンストラクターインターフェースを介して構成できる単純な検証に加えて)を実行できます。 インターフェイスとフォーム要素の動的な変更、特定の入力フィールドの追加と非表示、ビューの切り替えが可能です。 InfoPathコンストラクター(Oracleデータベースなど)で提供されていないデータソースにプログラムで接続できます。
Sharepointの統合
InfoPathフォームとSharepointの組み合わせは、おそらくこれまでで最も有望で普及しているInfoPathフォームのアプリケーションの1つです。 たとえば、InfoPathについての私の知り合いは、Sharepointの作業プロセス(ワークフロー)の開発を研究している過程で最近発生しました。 何年も前から、InfoPathはMS Officeスイートの一部としてコンピューターに静かに住んでいましたが、それに注意を向けることはありませんでした。
それでは、InfoPathとSharepointの統合についてはどうでしょうか。
- フォームテンプレートは、SharePointフォームライブラリとして公開できます。 この場合、Sharepoint Webサイトで公開するときに、このテンプレートに基づいてInfoPathフォームのライブラリが作成されます。 ユーザーはフォームに記入してライブラリに追加できます。
- 前の段落を続けるために、MOSS 2007(Microsoft Office Sharepoint Server 2007)で利用可能なInfoPath Forms Servicesを使用すると、ブラウザーウィンドウでInfoPathフォームに直接入力できます。 この場合、ユーザーはInfoPathアプリケーションをインストールする必要はありません。ブラウザーのみを使用してフォームに入力し、フォームライブラリにフォームを追加できます。 残念ながら、InfoPath Forms ServicesはMOSSでのみ利用できます。このサービスはWSS(Windows Sharepoint Services)では利用できません。 別の制限は、InfoPath Servicesと互換性のあるフォームで本格的なInfoPathフォームのすべての可能性から遠く離れて使用できることです。ブラウザでフォームを直接表示するには、いくつかのコントロール(画像、ActiveXコントロール、ブロック「メイン/詳細」、箇条書きおよび番号付きリストなど)、およびこのフォームのプログラムコードを記述するときは、強く切り捨てられたオブジェクトモデルを処理します(主に、動的変更に関連する可能性はありません ニエミフォーム要素)。
- テンプレートをフォームライブラリとして公開することには、1つの欠点があります。それは、テンプレートを再利用できないことです。 別のライブラリが必要な場合は、再度公開する必要があります。 幸いなことに、フォームテンプレートをSharepointコンテンツタイプとして発行し、好きなだけフォームライブラリを作成できます。
- InfoPathフォームは、Sharepointワークフローフォームとして使用できます。 Windows Workflow Foundation(WF)とHabréのワークフローについては、すでに記述されています 。 Sharepointプラットフォーム(WSSとMOSSの両方)は、リスト、ライブラリ、およびコンテンツタイプ用のWFベースのワークフローインフラストラクチャを提供します。 たとえば、ドキュメントがライブラリに追加されたときに起動されるドキュメント承認ワークフロー(はい、同じInfoPathフォーム!)を作成できます。 ワークフローには、ユーザーまたはユーザーのグループのタスクの形成が含まれます(この場合、これらは追加文書を検討のために承認するタスクです)。 ワークフローを開発するとき、ワークフローライフサイクルのさまざまな段階で記入する必要があるさまざまなフォームを作成する必要があります:ワークフローをリストに関連付けるとき、ワークフローを開始するとき、割り当てられたタスクを実行するとき。 また、これらのSharepointワークフローのフォームは、従来のasp.netページまたはInfoPathフォームのいずれかです。
- 最後に、Sharepoint Webサイトのドキュメントライブラリでドキュメントをダウンロードおよび編集するときにメタデータが入力されるのは、InfoPathフォームを介して行われます。 次の図は、作成者、タイトル、件名などのメタデータを入力するためのダッシュボードを持つWord文書を示しています。 このパネルは、InfoPathの埋め込み形式にすぎません。 必要に応じて、このフォームをカスタマイズし、このドキュメントライブラリ用に自動生成されたものに合わないものがある場合は、独自のデザインに置き換えることができます。

あとがき
この記事では、主にMicrosoft Office InfoPath 2007バージョンに焦点を当てて、InfoPathを使用した電子フォームの開発について話そうとしました。比較的最近形成され、それらを研究するプロセスは完全にはほど遠い。 このプロセスは、本に関する情報の主な情報源として役立った1冊の本がなければ、はるかに時間がかかる可能性があります-これは、フィロヤヌスによる「InfoPath 2007 for Professionals」です。
- ヤヌス、フィロ。 プロフェッショナル向けInfoPath 2007:あたり。 英語から -M。:LLC「I. D.ウィリアムズ」、2009年。-272 p .:病気。 -パラル。 シジュウカラ。 英語 ISBN 978-5-8459-1484-2(ロシア語)