ソリューションの作成 > プラグインの使用 > プラグイン更新の例
 
プラグイン更新の例
次の例は、インストールされたプラグインのバージョンと、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 ) )
)
関連項目 
カスタムプラグインの作成
Get ( インストールされた FM プラグイン )
プラグインファイルのインストール