展開の前にフォーム テンプレートを確認する
最終更新日: 2010年7月6日
適用対象: SharePoint Server 2010
ブラウザー互換の InfoPath フォーム テンプレートは、InfoPath Forms Services を実行するサーバーに展開する前に確認できます。フォーム テンプレートを確認することで、展開に関する問題に、展開を行う前に対処できます。InfoPath デザイン UI の [デザイン チェック] 作業ウィンドウの [サーバーで確認] オプションを使用するのと同じように、SharePoint 2010 サーバーの全体管理 Web サイトで、または FormTemplateCollection() クラスの VerifyFormTemplate メソッドを使用したコードで、確認を行うこともできます。
SharePoint サーバーの全体管理 Web サイトを使用してフォーム テンプレートを確認するには
発行ウィザードを使用して、発行に管理者の承認が必要なフォーム テンプレートを準備します。手順については、「[方法] 完全信頼を必要とするフォーム コードを含むフォーム テンプレートを展開する」の最初の手順に従ってください。
SharePoint 2010 サーバーの全体管理サイトを開きます。
注意
これ以降の手順を実行するには、ファームの管理者グループのメンバーである必要があります。
[アプリケーションの全般設定] の下にある [フォーム テンプレートの管理] リンクをクリックします。
ページの上部にある [フォーム テンプレートのアップロード] リンクをクリックします。
[参照] ボタンをクリックしてダイアログ ボックスを開き、発行するフォーム テンプレートのパスを入力します。
[確認] ボタンをクリックして、フォーム テンプレートがサーバーにアップロードできる状態であることを確認します。
FormCollection クラスの VerifyFormTemplate メソッドを使用してフォーム テンプレートを確認するには
発行ウィザードを使用して、発行に管理者の承認が必要なフォーム テンプレートを準備します。手順については、「[方法] 完全信頼を必要とするフォーム コードを含むフォーム テンプレートを展開する」の最初の手順に従ってください。
Visual Studio を開きます。
注意
以下の手順を実行するには、InfoPath Forms Services を実行しているコンピューターに Visual Studio がインストールされている必要があります。
Visual Basic または C# で新しいコンソール アプリケーションを作成します。
ソリューション エクスプローラーでプロジェクトを右クリックし、[参照の追加] をクリックします。
[参照の追加] ダイアログ ボックスの [.NET] タブで、[Microsoft.SharePoint Foundation] を選択し、[OK] をクリックします ([Microsoft SharePoint Foundation] が [.NET] タブにない場合、[参照] タブで、C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\ISAPI\ を参照し、Microsoft.SharePoint.dll アセンブリを選択して、次に [OK] をクリックします)。
手順 3. を繰り返し、[参照の追加] ダイアログ ボックスで [参照] タブをクリックします。
[参照の追加] ダイアログ ボックスの [参照] タブで、C:\Program Files\Microsoft Office Servers\14.0\Bin\ を参照し、Microsoft.Office.InfoPath.Server.dll アセンブリを選択して、[OK] をクリックします。
手順 2. で選択した言語に対応したコード例を以下からコピーして、コード ウィンドウに貼り付けます。
SolutionPath 変数を、管理者承認用にフォーム テンプレートを発行した場所に変更します。
プロジェクトを保存し、F5 キーを押してデバッグを行い、コードを実行します。
コンバーター メッセージのカウントと追加メッセージがコンソール ウィンドウに表示されます。
例
以下のコード例では、VerifyFormTemplate メソッドを使用して、コンバーターのメッセージ (ある場合) をコンソール ウィンドウに表示しています。フォーム テンプレートの場所は SolutionPath 変数に格納されているので、実際に検証するフォーム テンプレートのパスに合わせて変更する必要があります。
Imports Microsoft.SharePoint.Administration
Imports Microsoft.Office.InfoPath.Server.Administration
Module Module1
Sub Main()
Dim LocalFormsService As FormsService
Dim LocalFarm As SPFarm
Dim SolutionPath As String = "C:\FormTemplates\FormTemplate.xsn"
Dim VerifyMessages As New ConverterMessageCollection
Dim ConverterMsg As ConverterMessage
Try
LocalFarm = SPFarm.Local
LocalFormsService = LocalFarm.Services.GetValue(Of FormsService)(FormsService.ServiceName)
VerifyMessages = FormTemplateCollection.VerifyFormTemplate(SolutionPath)
Console.WriteLine("# of messages: " + VerifyMessages.Count.ToString())
For Each ConverterMsg In VerifyMessages
Console.WriteLine(ConverterMsg.ShortMessage.ToString() & ": " & ConverterMsg.DetailedMessage.ToString())
Next
Console.Write("Press Enter to Continue")
Console.ReadLine()
Catch ex As Exception
Console.WriteLine("Error: " + ex.Message)
Console.Write("Press Enter to Continue")
Console.ReadLine()
End Try
End Sub
End Module
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint.Administration;
using Microsoft.Office.InfoPath.Server.Administration;
namespace VerifyFormTemplate
{
class Program
{
static void Main(string[] args)
{
FormsService localFormsService;
SPFarm localFarm = SPFarm.Local;
string solutionPath = "C:\\FormTemplates\\FormTemplate.xsn";
ConverterMessageCollection verifyMessages;
try
{
localFormsService = localFarm.Services.GetValue<FormsService>(FormsService.ServiceName);
verifyMessages = FormTemplateCollection.VerifyFormTemplate(solutionPath);
Console.WriteLine("# of messages: " + verifyMessages.Count.ToString());
foreach (ConverterMessage convMessage in verifyMessages)
{
Console.WriteLine(convMessage.ShortMessage.ToString() + ": " + convMessage.DetailedMessage.ToString());
}
Console.Write("Press Enter to Continue");
Console.ReadLine();
}
catch (Exception ex)
{
Console.WriteLine("Error: " + ex.Message);
Console.Write("Press Enter to Continue");
Console.ReadLine();
}
}
}
}