【Claris FileMaker 2023】 新機能~基本テーブルに関する機能追加~

2023年05月23日 04:59 PM

Claris FileMaker 2023


このブログでは、Claris FileMaker 2023で追加された基本テーブルに関する機能についてご紹介していきたいと思います。

基本テーブルに関する追加された機能は以下の4つです。

関数

・BaseTable IDs関数

・BaseTable Names関数

・GetBaseTableName関数

システムテーブル(SQLクエリオプション)

・FileMaker_BaseTables システムテーブル

これらの新しい機能について、順番に確認していきましょう。

・BaseTableIDs 関数

構文:BaseTableIDs ( ファイル名 )
ファイル名のすべての基本テーブルIDの一覧を返します。

新しく”BaseTableTest”という名前のファイルを作成し、下図のようにテーブルを作成しました。

図1. 作成したカスタムAppのデータベースの管理画面

データビューアを開き、式に BaseTableIDs ( “BaseTableTest” ) と入力すると、
下図のように結果が返ってきました。

図2. BaseTableIDs 関数を試したデータビューア

新しくファイルを作成するところから始めましたが、一番小さなIDは129となっています。

また、結果は基本テーブルID順とは異なる順番で返ってきているようです。いろいろなテーブル名のテーブルを作成しデータベースデザインレポート(DDR)と照らし合わせて確認してみたところ、テーブル名の昇順で返ってきているようでした。

※DDRでは以前から基本テーブル情報としてBaseTable IDは確認できるようになっています。

ヘルプを見てみると下記のような記載があります。

この ID は、各テーブルを作成した順番とは関係なく、最初のテーブルの ID が最小値、中間値、最大値のいずれかになる可能性があります。

試してみた限りでは129から順番にIDは振っているようではありますが、そうではない可能性もあるようです。

※この関数を使用して、アクティブになっているファイル以外の外部ファイルのテーブルの情報を表示するには、ファイルアクセスの認証設定が必要です。
下記の手順でファイルアクセスの認証についての設定・確認が可能です。
「ファイル」>「管理」>「セキュリティ」
セキュリティの管理画面で「詳細設定」>「ファイルアクセス」

図3. ファイルアクセス画面

以前のバージョンから似た関数としてTableIDs関数がありますが、こちらは「テーブルオカレンスID」の一覧を返す関数となっています。

・BaseTableNames 関数

構文:BaseTableNames ( ファイル名 )
ファイル名のすべての基本テーブル名の一覧を返します。

先ほどのファイルでデータビューアを開き、式に BaseTableNames ( “BaseTableTest” ) と入力すると、下図のように結果が返ってきました。

図4. BaseTableNames 関数を試したデータビューア

この結果の一覧もテーブル名の降順で返ってくるようです。

※BaseTableID関数と同様に、外部ファイルの情報を表示するにはファイルアクセスの認証設定が必要になります。

以前のバージョンから似た関数としてTableNames 関数がありますが、こちらは「テーブルオカレンス名」の一覧を返す関数となっています。

これまでテーブル名の一覧を取得するにはExecuteSQL 関数を駆使して情報を取得したりしていました。その際に、ファイルに存在するテーブルオカレンスの情報をもとに取得していたため、テーブルオカレンスがないテーブルの情報は取得できませんでした。この新しい関数はテーブルオカレンスがなくてもテーブル名の情報が取れますし、構文も簡潔なので、とても使いやすく感じます。

・GetBaseTableName 関数

構文:GetBaseTableName ( フィールド )
参照されているフィールドの基本テーブル名を返します。

似た関数としては、Get ( アクティブフィールドテーブル名 ) 関数があります。この関数では、フィールドにフォーカスしている場合に限りますが、そのフィールドのテーブルオカレンス名が取得できました。テーブル名が知りたい場合はさらにExecuteSQL 関数で情報の取得する必要がありました。

今回追加されたGetBaseTableName 関数では、フォーカスがないフィールドでもテーブル名を取得することができます。

FileMaker_BaseTables システムテーブル

FileMaker データベースへのSQLクエリで、FileMaker_BaseTableシステムテーブルにアクセスできるようになりました。

これまでFileMaker システムテーブルとしては、下記のものがありました。

・FileMaker_Tables

              ・TableName – テーブルオカレンス名

              ・TableID – テーブルオカレンスID

              ・BaseTableName – テーブルオカレンス作成元の基本テーブル名

              ・BaseFileName – 基本テーブルが含まれるファイル名

              ・ModCount – テーブル定義で確定された変更の合計回数

・FileMaker_Fields

              ・TableName – フィールドが含まれるテーブルオカレンス名

              ・FieldName – フィールド名

              ・FieldType – フィールドのSQLデータタイプ

              ・FieldID – フィールドID

              ・FieldClass – Summary(集計フィールド)、Calculaeted(計算フィールド)、Normalのいずれか

              ・FieldReps – フィールドの繰り返し回数

              ・ModCount – テーブル定義で確定された変更の合計回数

・FileMaker_BaseTableFields (バージョン 19.4.1以降)

              ・BaseTableName – フィールドが含まれる基本テーブル名

              ・FieldName – フィールド名

              ・FieldType – フィールドのSQLデータタイプ

              ・FieldID – フィールドID

              ・FieldClass – Summary(集計フィールド)、Calculaeted(計算フィールド)、Normalのいずれか

              ・FieldReps – フィールドの繰り返し回数

              ・ModCount – テーブル定義で確定された変更の合計回数

今回これに加え、FileMaker_BaseTableの情報にアクセスできるようになりました。

FileMaker_BaseTableに含まれる列(情報)としては下記の通りです。

・BaseTableName – 基本テーブル名

・BaseTableId – 基本テーブル ID

・Source – ソース (<internal>、MYSQL など)

・ModCount – テーブルが変更された回数

例えば、先ほど使用したファイルでデータビューアを使って、下記の式を入力してみました。

ExecuteSQL ( “SELECT * FROM FileMaker_BaseTables” ; “” ; “” )

すると、下図のように返ってきました。

基本テーブルのテーブル名、テーブルID、ソース、変更回数の情報がテーブル名順の一覧になって返ってきました。

SQL文を変更すれば、もっと柔軟に情報取得ができそうです。

簡単にはなりましたが、新しい機能についてのご紹介は以上となります。

これら基本テーブルに関する機能が追加されたことにより、これまでよりもより手軽に基本テーブルについての情報取得ができるようになったのではないでしょうか。

ぜひ新しい機能を活用していきましょう。