展開の前にフォーム テンプレートを確認する

最終更新日: 2010年7月6日

適用対象: SharePoint Server 2010

ブラウザー互換の InfoPath フォーム テンプレートは、InfoPath Forms Services を実行するサーバーに展開する前に確認できます。フォーム テンプレートを確認することで、展開に関する問題に、展開を行う前に対処できます。InfoPath デザイン UI の [デザイン チェック] 作業ウィンドウの [サーバーで確認] オプションを使用するのと同じように、SharePoint 2010 サーバーの全体管理 Web サイトで、または FormTemplateCollection() クラスの VerifyFormTemplate メソッドを使用したコードで、確認を行うこともできます。

SharePoint サーバーの全体管理 Web サイトを使用してフォーム テンプレートを確認するには

  1. 発行ウィザードを使用して、発行に管理者の承認が必要なフォーム テンプレートを準備します。手順については、「[方法] 完全信頼を必要とするフォーム コードを含むフォーム テンプレートを展開する」の最初の手順に従ってください。

  2. SharePoint 2010 サーバーの全体管理サイトを開きます。

    注意

    これ以降の手順を実行するには、ファームの管理者グループのメンバーである必要があります。

  3. [アプリケーションの全般設定] の下にある [フォーム テンプレートの管理] リンクをクリックします。

  4. ページの上部にある [フォーム テンプレートのアップロード] リンクをクリックします。

  5. [参照] ボタンをクリックしてダイアログ ボックスを開き、発行するフォーム テンプレートのパスを入力します。

  6. [確認] ボタンをクリックして、フォーム テンプレートがサーバーにアップロードできる状態であることを確認します。

FormCollection クラスの VerifyFormTemplate メソッドを使用してフォーム テンプレートを確認するには

  1. 発行ウィザードを使用して、発行に管理者の承認が必要なフォーム テンプレートを準備します。手順については、「[方法] 完全信頼を必要とするフォーム コードを含むフォーム テンプレートを展開する」の最初の手順に従ってください。

  2. Visual Studio を開きます。

    注意

    以下の手順を実行するには、InfoPath Forms Services を実行しているコンピューターに Visual Studio がインストールされている必要があります。

  3. Visual Basic または C# で新しいコンソール アプリケーションを作成します。

  4. ソリューション エクスプローラーでプロジェクトを右クリックし、[参照の追加] をクリックします。

  5. [参照の追加] ダイアログ ボックスの [.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] をクリックします)。

  6. 手順 3. を繰り返し、[参照の追加] ダイアログ ボックスで [参照] タブをクリックします。

  7. [参照の追加] ダイアログ ボックスの [参照] タブで、C:\Program Files\Microsoft Office Servers\14.0\Bin\ を参照し、Microsoft.Office.InfoPath.Server.dll アセンブリを選択して、[OK] をクリックします。

  8. 手順 2. で選択した言語に対応したコード例を以下からコピーして、コード ウィンドウに貼り付けます。

  9. SolutionPath 変数を、管理者承認用にフォーム テンプレートを発行した場所に変更します。

  10. プロジェクトを保存し、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();
            }
        }
    }
}

関連項目

タスク

[方法] フォーム テンプレートを一括して検証する