プラグイン更新の例
次の例は、インストールされた
プラグインのバージョンと、FileMaker Proファイルのオブジェクトフィールドに配置されるバージョンを比較し、必要に応じてプラグインを更新します。
1.	ソリューションファイルで、「プラグインの更新」というテーブルを作成してプラグイン情報を保存します。
2.	次のフィールドを定義します。
 
フィールド名  | フィールドタイプ  | 
プラグイン名  | テキスト  | 
必要なプラグインのバージョン  | 数字  | 
インストールされたプラグインのバージョン  |  | 
インストールされたプラグインの状態  |  | 
プラグインファイル  | オブジェクト  | 
3.	「プラグイン更新情報」という名前のレイアウトを作成し、手順 2 で定義したフィールドを追加します。
4.	次のスクリプトを作成し、「プラグインをインストール」という名前を付けます。
エラー処理 [オン]
プラグインファイルのインストール [プラグインの更新:: プラグインファイル]
#
#エラー処理
If [Get ( 最終エラー ) ≠ 0]
	If [Get ( 最終エラー ) = 3]
		カスタムダイアログを表示 [プラグインの更新:: プラグインファイル & " をインストールできませんでした。FileMaker Pro の [プラグイン] 環境設定で [ソリューションにファイルのインストールを許可] オプションが選択されていることを確認してください。"]
	Else If [Get ( 最終エラー ) = 1550]
		カスタムダイアログを表示 [プラグインの更新:: プラグインファイル & " をインストールしましたが初期化できませんでした。"]
	Else If [Get ( 最終エラー ) = 1551]
		カスタムダイアログを表示 [プラグインの更新:: プラグインファイル & " をインストールできませんでした。"]
	Else
		カスタムダイアログを表示 [プラグインの更新:: プラグインファイル] & "をインストール時に一般エラー " & Get ( 最終エラー ) & " が発生しました。"]
	End If
End If
5.	次のスクリプトを作成し、「プラグインのバージョンを確認」という名前を付けます。
レイアウト切り替え [プラグイン更新情報]
レコード/検索条件/ページへ移動 [最初の]
Loop
	If [プラグインの更新:: インストールされたプラグインのバージョン < プラグインの更新:: 必要なプラグインのバージョン]
		#プラグインは、インストールまたは更新が必要です。
		スクリプト実行[「プラグインをインストール」]
	End If
	レコード/検索条件/ページへ移動 [次の; 最後まできたら終了]
End Loop
6.	次のスクリプトを作成し、「有効かどうかの確認」という名前を付けます。
エラー処理 [オン]
検索実行 [記憶する]
#「インストールされたプラグインの状態」フィールドで "Enabled" を検索します。
If [Get ( 対象レコード数 ) ≠ 0]
	カスタムダイアログを表示 ["一部の必須プラグインは有効になっていません。FileMaker Pro の [プラグイン] 環境設定で [ソリューションにファイルのインストールを許可] オプションが選択されていることを確認してください。"]
End If
7.	「プラグイン更新スクリプト」という名前の起動スクリプトを作成します。データベースが開くときに上記のスクリプトを順番に参照するものです。
スクリプト実行 [「プラグインバージョンを確認」]
スクリプト実行 [「有効かどうかの確認」]
レイアウト切り替え [元のレイアウト]
クライアントプラグインバージョンの計算式
Let (
	[
	PluginNamePosition = Position ( Get ( インストールされた FM プラグイン ); Plugin Name ; 1 ; 1 );
	PluginVersionStart = PluginNamePosition + Length( Plugin Name ) + 1;
	PluginVersionEnd = Position ( Get ( インストールされた FM プラグイン ) ; ";" ; PluginNamePosition ; 2 );
	PluginVersionLength = PluginVersionEnd - PluginVersionStart
	];
	If ( PatternCount ( Get ( インストールされた FM プラグイン ) ; Plugin Name ) = 0 ; "" ; Middle ( Get ( インストールされた FM プラグイン ) ; PluginVersionStart ; PluginVersionLength ) )
)
クライアントプラグイン有効状態の計算式
Let (
	[
	PluginNamePosition = Position ( Get ( インストールされた FM プラグイン ); Plugin Name ; 1 ; 1 );
	PluginStateStart = Position ( Get ( インストールされた FM プラグイン ) ; ";" ; PluginNamePosition ; 2 ) + 1;
	PluginStateEnd = If ( Position ( Get ( インストールされた FM プラグイン ); "¶" ; PluginNamePosition ; 1 ) > 0; Position ( Get ( インストールされた FM プラグイン ); "¶" ; PluginNamePosition ; 1 ); Length( Get ( インストールされた FM プラグイン ) ) + 1 );
	PluginStateLength = PluginStateEnd - PluginStateStart
	];
	If ( PatternCount ( Get ( インストールされた FM プラグイン ) ; プラグイン名 ) = 0 ;
	"" ; Middle ( Get ( インストールされた FM プラグイン ) ; PluginStateStart ; PluginStateLength ) )
)
関連項目