InfoPathフォームコンポーネントを備えたASP.NETアプリケーションがあり、InfoPathFormsServerを使用してInfoPathフォームをブラウザーに配信します。フォームをSharePointに保存するのではなく、XMLフォームデータをASP.NET Webサービスに送信します。ASP.NETWebサービスは、SQL Server 2005でデータをXMLデータ型として保存します。これは正常に機能しており、XMLデータの読み込みに問題はありません。 InfoPathフォームに戻ります。
この問題は、古いデータ(フォームのバージョン1から)を新しいバージョンのフォーム(バージョン2)にロードしようとしたときに発生します。この新しいバージョンのフォーム(V2)には、たとえば、新しいテキストボックスフィールドがあります。V2フィールドはV1XMLに存在しないため、V2フォームに表示されますが、無効になっており、入力できません。
私たちの質問は、V1 XMLデータをV2フォームにロードし、ユーザーがフォームのV2に現在存在するフィールドに入力できるようにする方法です。
この動作は、InfoPathFormsServerおよびフォームライブラリに保存されているフォームを使用して実行できます。フォームテンプレートを更新すると、新しいテンプレートで古いフォームを開いたり、新しいフィールドを表示したり、新しいフィールドにデータを保存したりできます。フォームXMLデータがフォームライブラリではなくSQLServerに格納されている場合、プログラムでそれを行う方法を知る必要があります。