さまざまな共有ポイント サーバーへの InfoPath フォームの展開をどのように管理していますか? フォームを開いたり、データ接続を編集したり、環境ごとに再公開したりせずに、サイト固有のすべてのデータ接続を処理するより良い方法はありますか?
7 に答える
これは、開発システムで作業していて、生産システムへの展開が時々必要な場合によくある問題です。正規表現に基づいて (プレーン テキストの) 置換を実行するスクリプトを使用します。
各デプロイで:
- フォームのバックアップを作成してください ;-)
- フォームをソース コードとして保存します。(xsn は名前が変更された .cab にソース ファイルが含まれているだけなので、.xsn ではなくソース コード ファイルで作業することをお勧めします。また、より満足のいく方法でソース管理を使用できます。)
- manifest.xsfファイルを開く
- xml ノード「DataConnections」を検索します。
- site-url 部分を検索して置換する
- (save-path、file-&site 属性、および publishUrl を忘れないでください)
- InfoPath Designer から展開する
すべての置換を行うスクリプトを使用します。それはうまく機能し、すでに多くの作業を節約できました。
送信オプションに入ると、ルールを使用してカスタムアクションを実行するオプションがあります。すべてのデータ接続を設定している場合は、送信する接続を選択するルールを構成できます。
あなたのシナリオを正しく理解していれば:
データを送信するデータ接続を備えた InfoPath フォームがあります。このフォームを複数の SharePoint サーバーに展開し、それらのデータ接続で現在展開されているサーバーにデータを送信したいと考えています。
フォームを展開するすべての SharePoint サーバーで作業を行う必要があることを回避することはできません。ただし、InfoPath フォーム テンプレートを変更する必要を回避できます。
SharePoint データ接続ライブラリ (DCL) を使用し、使用するすべての SharePoint Server でデータ接続から UDC ファイルを作成すると、InfoPath テンプレートは UDC ファイルと通信できます。
InfoPath と SharePoint の DCL の統合に関する記事へのリンクを次に示します。
以下をカバーする関連するスナップショットをステップバイステップで紹介する私のブログ投稿を参照してください。
a。InfoPathデータ接続をSharePointのDCLライブラリに変換します。b。InfoPathフォームをSharePointリスト/ライブラリに公開するc。InfoPathフォームとその分離コード用の.wspソリューションパッケージを作成するd。実稼働サイトにInfoPathフォームを展開するバッチスクリプトを作成します。e。InfoPathフォームが機能として展開されていることを確認するf。実稼働環境でDCLを変更します。g。InfoPathコンテンツタイプをドキュメント/フォームライブラリに関連付けます
完全なブログ投稿を参照してください:http://www.sharepointfix.com/2009/12/infopath-2007-form-and-nintex-workflows.html
re: speedfox の回答です。可能な限りマニフェストを編集しないようにしてください。頭が痛くなるだけです。
私があなたの問題を理解した場合、あなたは複数のサーバー (DEV、UAT、本番) にデプロイしており、ある環境から別の環境に移動するたびにデータ接続を手動で編集する必要がありますか? 問題を単純化しすぎた場合はご容赦ください
データ接続サイトを相対的にする最良の方法は次のとおりです。
フォームでデータ接続ファイルを使用します。InfoPath でデータ接続ウィザードを開き、すべてのデータ接続に対して [変換...] をクリックすると、データ接続がフォームに埋め込まれている状態から独立した XML ファイルに変わります。これらを保存するには、sharepoint サイトに Data Conenction Library が必要です。これをブラウザーで作成します。
変換して接続を元に戻すと、[接続オプション...] ボタンが表示されます。これを使用して、[ローカル データ接続ライブラリ] から [集中管理された接続ライブラリ] に変更します。
サイトのデータ接続ライブラリにあるデータ接続を中央管理にアップロードします
フォームを発行するときは、一元管理された場所 (Central Admin) に発行していることを確認してください
そのサイト コレクションの任意のフォーム ライブラリで、フォームをコンテンツ タイプとして使用します。
別のサイトでフォームを使用するには、データ接続ファイルを新しいサーバーの中央管理にアップロードし、(変更されていない) フォームを中央管理フォームに発行します。
私のシナリオでは、組み込みの「保存」ボタンを使用していません。データを別のリストに「投稿」するために使用するデータ接続があります。
はい、それは私がサイトスペシフィックと言っていることです。localhost'cosを使用できるとは思いません。ユーザーがフォームを保存すると、ユーザーのコンピューター(つまり、localhost)に投稿しようとします。相対パスを使用しようとしましたが、うまくいかないようです。
サイト固有とは、フォームのデータ接続が、フォームが配置されているサーバーを参照するということですか? その場合は、接続を微調整して、データ接続 URL のホスト名部分にサーバー名の代わりに localhost を使用することができます。