管理タスクのスケジュール : サーバーサイドスクリプトの実行 : FileMaker スクリプトの実行
 
FileMaker スクリプトの実行
メモ  次の情報は、サーバー管理者およびグループ管理者向けです。
FileMaker Server は、ホストされているデータベースで定義されている FileMaker スクリプトを実行できます。FileMaker スクリプトのタスクスケジュールを実行するスケジュールを作成し、スクリプト実行に使用するデータベースおよび FileMaker アカウントを指定します。次に、データベース内で定義されているスクリプトを選択して、スクリプトを実行するタイミングを選択します。FileMaker Server で実行される FileMaker スクリプトは、次のような単純または複雑なタスクを実行できます。
すべてのレコードのフィールドの再計算を実行する
新しいトランザクションを夜に処理およびアーカイブする
バックアップスケジュールの前に重複するレコードを削除する
スクリプトを作成するには、FileMaker Pro のスクリプトワークスペース(以前の名称は [スクリプトの管理])を使用して、スクリプトステップと呼ばれる FileMaker Pro コマンドの一覧から選択してオプションを指定します。FileMaker スクリプトを FileMaker Server で実行するには次が必要です。
スクリプトには、FileMaker Server スケジュールでサポートされるスクリプトステップが含まれている必要があります。
スクリプトは、FileMaker Server でホストされているデータベースファイルで定義されている必要があります。データベースのホストを参照してください。
FileMaker Server スケジュールでサポートされているスクリプトステップを使用した FileMaker スクリプト作成の詳細については、FileMaker Pro ヘルプを参照してください。
また、スクリプトシーケンスタスクスケジュールを作成して、FileMaker スクリプトの前後にオプションの前処理および後処理システムレベルスクリプトを実行することもできます。スクリプトシーケンスタスクの作成を参照してください。
メモ
スクリプトの実行に、指定した [制限時間(分):] よりも長い時間がかかる場合、またはデータベースサーバーが停止した場合に FileMaker スクリプトスケジュールを中止するときは、スケジュールアシスタントで [制限時間に達するかサーバーが停止したらスケジュールを中止] を選択します。[制限時間に達するかサーバーが停止したらスケジュールを中止] を選択しない状態で FileMaker スクリプトがハングした場合は、[アクティビティ] > [クライアント] タブでスクリプトを停止できます(イベントログを参照してください)。スクリプトは、[アクティビティ] > [クライアント] タブで停止できます。
FileMaker WebDirect ソリューション、カスタム Web 公開、または FileMaker Server スクリプトスケジュールでサポートされていないステップを含むスクリプトが含まれている場合は、これらのスクリプトステップを実行すると、FileMaker Pro エラー3(「コマンドが使用できません」)が返されます。これらのサポートされていないスクリプトステップはスキップされ、スクリプトの実行が続行されます。FileMaker 14 では、[ユーザによる強制終了を許可] スクリプトステップは、サポートされないスクリプトステップの動作に影響しません。
スクリプトに不明なステップ(古いステップや認識されないステップなど)が含まれる場合、これらのスクリプトステップを実行すると FileMaker Pro エラー4(「コマンドが見つかりません」)が返されます。[ユーザによる強制終了を許可] スクリプトステップを使用して、その後のステップの処理方法を決定します。
[ユーザによる強制終了を許可] スクリプトステップオプションが有効(オン)の場合、不明なスクリプトステップはスクリプトの続行を停止します。
[ユーザによる強制終了を許可] スクリプトステップオプションが無効(オフ)の場合、不明なスクリプトステップはスキップされ、スクリプトの実行が続行されます。
このスクリプトステップが含まれない場合、スクリプトはこの機能が有効な場合と同様に実行されるため、不明なスクリプトステップはスクリプトを停止します。
スクリプトステップによっては、ダイアログボックスを表示するオプションなど、スキップされるオプションがあります。Event.log ファイルには、エラー、または FileMaker Server で FileMaker スクリプトが実行されるときにスキップされたスクリプトステップの詳細情報が含まれています。ログファイルのエントリの参照を参照してください。
サーバーサイド FileMaker スクリプトは、カスタム Web 公開と同様に、FileMaker スクリプトエンジンの個別のセッションで実行されます。各セッションには、グローバルフィールドおよび変数の独自のコピーがあります。計算機能は、カスタム Web 公開でスクリプトが実行された場合と同じ値を返します。ただし、次の例外があります。
Get(アカウント名)では、最初にスクリプトが実行されたときのアカウント名が返されます(これは、スケジュールの作成時にスケジュールアシスタントで指定されます)。
Get(ユーザ名)では、スケジュール名が返されます。
Get(アプリケーションバージョン)では、データベースサーバーバージョン文字列が返されます。
Get(システム IP アドレス)など、ハードウェア関連の機能では、データベースサーバーから情報が返されます。
サーバーサイド FileMaker スクリプトのセッションが開始されると、FileMaker Server コンピュータの temp フォルダ内にそのセッション固有の一時サブフォルダが作成されます。この一時サブフォルダの名前は「S」という文字から始まり、その後にセッションを表す数字が続きます。Get(テンポラリパス)関数を使用すると、一時サブフォルダのパスを返すことができます。セッションが終了すると、一時サブフォルダ、およびその中に配置されたファイルはすべて削除されます。
FileMaker Server 上で実行している場合、Get(ドキュメントパス)関数はドキュメント(または書類)フォルダのパスを返します。これは、サーバーのバックアップ、データベース、およびスクリプトフォルダと同じフォルダにあります。スクリプトシーケンスケジュールスタスクの前処理スクリプト、FileMaker スクリプト、および後処理スクリプト間でインポートファイルやエクスポートファイルを渡すための共有場所としてドキュメントフォルダを使用することができます。
[レコードのインポート] および [レコードのエクスポート] スクリプトステップで Get(ドキュメントパス一覧)関数を使用すると、[ファイルを開く] スクリプトステップを使用してファイルを開く前にファイルが存在するかどうかを判断したり、複数のスクリプトから同じ FileMaker Pro データベースに読み書きしても安全なことを確認することができます。
FileMaker Server は、インポートおよびエクスポートスクリプトステップの相対ファイルパスを、Get(テンポラリパス)の固有のサブフォルダを基準にして相対的に評価します。(..)が含まれる相対パスを使用しているスクリプトステップは、実行時にアクセスエラーを返します。スクリプトステップがドキュメントフォルダまたはそのサブフォルダのいずれかを指している場合は、絶対パスを使用することができます。つまり、絶対パスの先頭が、Get(ドキュメントパス)関数で返されるパスと同じである必要があります。たとえば、/ライブラリ/FileMaker Server/Data/Documents で始まる OS X のパスにアクセス可能です。
サードパーティの ODBC ドライバと共に ODBC のインポートを使用する FileMaker スクリプトを実行する場合は、64 ビットバージョンの ODBC ドライバを使用する必要があります。サーバー上で実行するスクリプトの場合、64 ビットの ODBC ドライバのみがサポートされます。
関連項目 
スケジュールの作成
サーバーサイドスクリプトの実行
管理タスクのスケジュール