Classic MacOS時代はJeditとFileMaker Proがないと機能がなさすぎて即死でしたが、現在はAppleScriptのソリューションを成立させるのにFileMakerが必須ということもなくなりました。本Blog掲載のサンプルを見ていただければ分かるように、データのソーティングも抽出も、AppleScriptだけで相当なことがこなせます。
AppleScript単体でもCocoaの機能を利用することで、数万〜数十万件レベルのデータ件数であれば、別にFileMakerデータベースを併用する必要もなくなってきました。
ただ、かといってFileMakerの魅力が減ったわけではありません。とくに、小規模なチームで短期間で業務支援システムを組み立てる必要がある場合など、FileMakerの手軽さは圧倒的です(個人事業者ならなおのことです)。さらに、各種データソースからデータを自動で取り込んで蓄積する部品として、FileMakerが使えることは大きな力になります。
FileMakerは昔とはやや位置付けが変わりましたが、それでも大きな価値を持っています。
FileMakerのデータベースがAppleScriptから使えるようになるまで
実際にFileMaker v18のお試し版(FileMaker Advanced)をダウンロードして、AppleScriptを利用できるように設定を行ってみました。
デフォルトで、FileMakerのアプリケーションにnameやversionなどを問い合わせすることは可能ですが、データベースへのアクセスは行えません。FileMakerのアプリケーション本体にAppleScript制御受付の設定があるわけではなく、データベース書類に対してユーザー権限とDB書類オープン時のユーザー設定などを行うことで、AppleScriptからアクセスできるようになります。
データベースに対して権限設定を行うので、まずは対象となるデータベースをオープンしておく必要があります。そのうえで、「ファイル」>「管理」>「セキュリティ」を実行。
新規アカウント「AS User」(なんでもいい)を作成し、
この新規作成したアカウント「AS User」の権限を新規に定義します(新規アクセス権セット)。
拡張アクセス件で、必要な権限を設定した上で「Apple EventおよびActiveXによるFileMaker操作の実行を許可(fmextscriptacess)」にチェックを入れておきます。
ユーザーおよびユーザー権限を設定した上で、データベース書類に対して、この新規作成したアカウント「AS User」でオープンするように設定を行います。「ファイル」>「ファイルオプション…」を実行して、
「ファイルオプション」ダイアログ中の「開く」タブで、「次のアカウントを使用してログイン」の欄にユーザー名「AS User」と設定したパスワードを設定して「OK」ボタンをクリック。
これで、いったんデータベース書類をクローズして再度オープンし直すと、ユーザー名「AS User」でオープンした状態になり、AppleScriptからの操作を受け付けるようになります。
昔のFileMakerではpropertyを求めることでファイルメーカーDBのスキーマ定義やレイアウト一覧などが、パスワードを設定してある状態ですらすべて取得できていましたが(いろいろリバースエンジニアリングしました)、現在のFileMakerではproperty属性によるアクセスが行えないので、そこまでガバガバではないようです。