ブログが少し長いので、気になる機能があれば、クリックして見てください。
FileMakerには、データベースの構造を出力するDDR(Database Design Report)という機能があります。
テーブル、フィールド、リレーション、スクリプト、レイアウトなど、FileMakerファイルの設計情報を確認するうえで非常に重要なものです。
ただ、DDRにはたくさんの情報が含まれているため、
- 「このフィールドはどこで使われているのか」
- 「このスクリプトは何を呼び出しているのか」
- 「以前のDDRから何が変わったのか」
といったことを追いかけようとすると、なかなか大変です。
そこで、自分がFileMakerの開発をするときにDDRをもう少し見やすく、調べやすくできないかと思い、DF-DDR inspectorというツールを作りました。
最初は完全に自分用のツールでしたが、ある程度まとまってきたので、他のFileMaker開発者にも使ってもらえる形に整理しています。
DDRを1つ読み込んで解析
DF-DDR inspectorでは、FileMakerから出力したDDRを読み込んで解析します。
DDRが1つあれば、ファイルの構造や依存関係などをさまざまな方向から確認できます。
単純にDDRを一覧表示するのではなく、検索したり、グラフで表示したりしながら、FileMakerファイルの構造を追っていけるようにしています。
解析結果はHTMLで出力
解析結果はHTMLファイルとして出力されます。
そのため、一度解析してしまえば、その後の確認にDF-DDR inspector自体は必要ありません。
ブラウザでHTMLを開けば、解析結果をいつでも確認できます。
解析した時点の状態をそのまま残しておけるので、FileMakerファイルの設計資料として保存しておく使い方もできます。
テーブル・TOのリレーションをグラフで確認
FileMakerのリレーションシップグラフは、ファイルの構造を把握するうえで重要です。
一方で、TOが多くなってくると目的のものを探したり、その周辺だけを確認したりするのが難しくなります。
DF-DDR inspectorでは、TOを検索して、そのTOと関係するものだけに絞ってグラフ表示できます。
大きなリレーションシップグラフの中から、確認したい部分だけを見るための機能です。
リレーションの条件を確認
リレーションが存在することだけでなく、その中でどのような条件が設定されているかも確認できます。
たとえば、
- どのフィールド同士が関連しているか
- どの比較演算子が使われているか
- ソートが設定されているか
といった情報です。
FileMaker上ではリレーション設定を開かないと気づきにくい情報も、解析結果から追いやすくしています。
スクリプトの依存関係をグラフ化
スクリプトについても、呼び出し関係をグラフで確認できます。
あるスクリプトを起点として、
「このスクリプトから、どのスクリプトが呼び出されているのか」
といった関係を追うことができます。
スクリプトが増えてくると、こうした依存関係を頭の中だけで把握するのは難しくなります。
その構造を視覚的に確認するための機能です。
スクリプトの内容を検索
スクリプト名だけではなく、スクリプトの中身も検索できます。
たとえば特定のフィールド名や変数名、レイアウト名などを検索して、
「この文字列を使っているスクリプトはどこにあるのか」
を探すことができます。
FileMakerファイル全体を調査するときには、かなり便利な機能だと思っています。
スクリプトをFileMakerへコピー
解析結果に表示されたスクリプトは、FileMakerへ貼り付けられる形式でコピーできます。
HTML上でスクリプトを確認し、その内容を必要に応じてFileMakerへ戻すことができます。
解析ツールの中だけで完結するのではなく、実際のFileMaker開発へつなげるために追加した機能です。
レイアウトとスクリプトの関係を確認
レイアウトについても、関連するスクリプトなどを追うことができます。
あるレイアウトを起点に、
- 「このレイアウトからどこへ移動するのか」
- 「どのスクリプトが関係しているのか」
といった流れを確認できます。
FileMakerファイルを引き継いだときなどにも、構造を理解する手がかりになると思います。
条件付き書式を可視化
条件付き書式は便利な機能ですが、FileMakerファイルを調査するときには意外と見落としやすい設定でもあります。
DF-DDR inspectorでは、条件付き書式が設定されているレイアウトを判別しやすくしています。
「ここには通常とは違う設定がある」
ということを、まず視覚的に気づけるようにしています。
2つのDDRを比較
DDRを2つ読み込むと、それぞれの内容を比較できます。
以前のDDRと現在のDDRを読み込めば、
- 追加されたもの
- 削除されたもの
- 変更されたもの
などを確認できます。
FileMakerファイルを改修したあとに、実際にどこが変わったのかを確認する用途を想定しています。
変更によるリスク候補を確認
DDRの変更内容から、少し気になる部分をリスク候補として表示する機能も作っています。
たとえば、スクリプトを複製したあとに移動先のレイアウトだけ変更し忘れているようなケースです。
もちろん、機械的な解析だけですべての問題を判断できるわけではありません。
そのため「これは間違っています」と断定する機能ではなく、
人間が確認したほうがよさそうな場所を見つけるための機能
という位置づけです。
この部分については、まだ改善の余地もあると考えています。
フィールドから影響範囲を追う
個人的に、DF-DDR inspectorの中でも特徴的だと思っている機能です。
たとえば、あるフィールドを選択すると、
- どのレイアウトで使われているか
- どのスクリプトで使われているか
- そこからさらに何につながっているか
といった関係を追っていくことができます。
フィールドを削除したり変更したりするとき、
「これを変更すると、どこに影響するのだろう」
という確認に利用できます。
TOから影響範囲を追う
同じように、TOを起点として影響範囲を確認することもできます。
TOからレイアウトへ、レイアウトからスクリプトへ、といった形で関連をたどります。
FileMakerの構造を「一覧」として見るのではなく、1つの要素を起点に周囲を調べるという考え方で作っています。
テーブルから影響範囲を追う
テーブルについても同様に、関連する要素を追跡できます。
FileMakerのDDRには大量の情報がありますが、実際の開発では、そのすべてを一度に知りたいわけではありません。
「今調べているものの周辺だけを詳しく知りたい」
という場面が多いため、このような仕組みにしています。
レポート全体を横断検索
解析結果全体を対象にした検索もできます。
「この名前をどこかで見たけれど、どのレポートだったかわからない」
という場合に、まず全体検索をして、そこから詳しい解析結果へ移動できます。
FileMakerファイル全体をざっと調査するときにも使える機能です。
DDRを世代ごとに残して比較
解析したDDRは世代ごとに残しておけます。
そのため、
「今回と前回」
だけでなく、
「現在と最初のバージョン」
といった比較もできます。
定期的にDDRを保存しておけば、FileMakerファイルがどのように変化してきたかを振り返る資料にもなります。
OpenAI APIを使ったAI要約
OpenAIのAPIキーと利用するモデルを設定すると、AIを使った補助機能も利用できます。
たとえばスクリプトについて、
「このスクリプトは何をしているのか」
を人間が読みやすい文章として要約します。
長いスクリプトを読み始める前に、まず概要をつかむ用途などを想定しています。
もともとは自分のために作ったツール
DF-DDR inspectorは、もともと販売するために企画した製品ではありません。
自分自身がFileMaker開発をする中で、
「こういうふうにDDRを見られたら便利なのに」
と思った機能を少しずつ作ってきたものです。
その結果、かなりいろいろな角度からFileMakerファイルを調べられるようになりました。
せっかくなので、自分だけではなく、同じようにFileMakerの構造を調べたり、既存ファイルを読み解いたりしている開発者にも使ってもらえるよう、現在整理を進めています。
9月末まで利用可能なバージョンを用意しました(Mac版のみ)。
実際にみなさんに触っていただけるように、ダウンロード可能なプログラムをご用意しました。
以下よりダウンロード可能です。(Mac版のみ)
動画による解説
動画の内容
- 00:00 はじめに
- 00:13 DDRの解析・差分比較とAI設定
- 01:02 解析結果をHTMLレポートとして出力
- 01:35 テーブル/TOのリレーションを確認
- 02:42 スクリプトの依存関係を確認
- 03:19 AI要約とFileMakerへのスクリプトコピー
- 04:19 レイアウト遷移・条件付き書式の確認
- 05:19 スクリプト本文を検索
- 06:03 2つのDDRの変更差分を比較
- 06:32 変更内容のリスク検査
- 07:25 フィールド・TOなどから影響範囲を追跡
- 09:54 DDRの世代管理と過去バージョンとの比較
- 10:29 AIに任せるのではなく、自分で判断するためのツール
- 11:22 レポート全体を横断検索
投稿がお役に立ちましたら、いいねをしていただけると嬉しいです。
お困りごとをお聞かせください。
FileMakerについてのご相談、ご依頼など。お気軽にお問い合わせください。
頂いた内容については、3営業日以内の返信を心がけております。
既に稼働中のFileMakerの修正も、頻繁にご依頼頂いております。
小さなことから、お気になさらずお気軽にご相談ください。
投稿がお役に立ちましたら、いいねをしていただけると嬉しいです。
その他のFileMaker一覧
-
FileMaker
A tool for “looking at and thinking about” FileMaker’s DDR: DF-DDR inspector
The blog post is a bit long, so if there’s a feature that catches your interest, please click and take a look. FileMaker includes a feature called DDR (Database Design Report), which outputs the st...
続きを読む
-
FileMaker
FileMakerのDDRを「見て考える」ためのツール、DF-DDR inspectorを作りました
ブログが少し長いので、気になる機能があれば、クリックして見てください。 FileMakerには、データベースの構造を出力するDDR(Database Design Report)という機能があります。テーブル、フィールド、リレーショ...
続きを読む
-
AI・DX・業務改善
Appleヘルスケアの記録を振り返るアプリ「DF-HealthBalance」を公開しました
株式会社データファームは、iPhone・iPad向けアプリ「DF-HealthBalance」をApp Storeで公開しました。DF-HealthBalanceは、Appleヘルスケアに集まった食事・活動・睡眠・水分・体組成などの記録を、日ごとや期間...
続きを読む
-
AI・DX・業務改善
コピーしたものを、あとから取り戻す。Mac用アプリ「DF-ClipRoll」を公開しました
株式会社データファームでは、Mac用のクリップボード履歴アプリ「DF-ClipRoll」をMac App Storeで公開しました。DF-ClipRollは、コピーしたテキストやURLなどをこのMac内に保存し、必要になったときに検索して再...
続きを読む
-
技術
フレッツ光クロス移行後、固定IPと外部公開でハマった話
先日、事務所のインターネット回線をフレッツ光クロス環境へ移行しました。回線速度そのものは問題なく、インターネット接続も無事に復旧しました。ところが、そのあとにハマったことがありました。それが、固定I...
続きを読む
-
技術
最近Codexで行っていること
今週はちょっと毛色を変えて、最近Codexで行っていることをご紹介したいと思います。使ってます。Codex当社はChatGPTをProプランにして、あわせてCodexを利用しています。 複数のAIを使い分けていないわけではな...
続きを読む