FileMakerメディア管理 実作編 Ver.3 日付の情報

設計と計算式の大変更

何だかインポートも上手くいかないし、これまでのスクリプトも上手く動かなかったり、変なエラーが出たり、フィールドが変だったりし始めたんです。「おっかしいなあ、今までもうちょっとちゃんと動いてなかったっけ」と、まだ気づいておりません。

根幹が変更された

何が原因で事故が起きたのか。それはデータベース管理のフィールド定義そのものにありました。

日付をゲットする以前、すべての重要フィールドの根幹がオブジェクトにありました。つまりFileMakerのインポートという工程があって初めて成り立つようなフィールド設計だったんです。

FileMakerメディア管理の関連記事でも、これまで全てそのように記述していました。GetAsText(オブジェクト)でパスを取得し、GetContainerAttribute(オブジェクト) でファイル名や取得方法を取得します。他のパスフィールドはすべてそれらを元にして生成していました。

日付ゲットを取り入れたあとは何が起きたか。根幹が日付リストのPOSIXパスになっていたわけです。そのせいでスクリプトやフィールドの計算式が「計算の前提がないよー」とアップアップしていたんです。

これはフィールドの全てを見直し、何を根幹に置き、何をどのように計算式で生成するかを洗い直さないといけないぞとようやく気づきます。

フィールドの変更

メインテーブルの根幹を ファイルパス とした

メインテーブルにはパスに関するフィールドがいくつもあります。その中で、基幹となるフィールドとして「ファイルパス」を定めました。

ファイルパスは、V2まで「パスモドキ」と呼んでいたFM形式パスから接頭語を除いたものです。リレーションにも使っています。これを根幹に置くのが最も都合が良く且つ合理的です。

厳密には、オブジェクトがあればオブジェクトを元にする、オブジェクトがない場合はファイルパスを元にする、といった定義となります。

インポート元パス

次に同じくらい重要なインポート元パスを練り直しました。以前はこれの役割を勘違いしていました。これを「パスの根幹」と思っていました。でも違います。「インポート元」を記録しておくフィールドとして確保。ただしオブジェクトがない状態のときはこれが根幹代理として機能します。根幹を変更したというより、常に前提が確保できるように計算式を変更しました。

ファイルパスを基幹とすることで、パスを元にしたその他のフィールドの生成計算式も見直しました。

作業用テーブルのフィールドを大変更

インポートで使用する作業用テーブルをメインテーブルのダミーと捉えていました。メインテーブルから、オブジェクト、サムネイル、ファイル名、ファイルパスなどをそのままコピペして作られたものです。ですがこれが大きな誤りでした。

作業用テーブルはメインテーブルと全く異なります。特に、最初のインポートをやめて日付リストを基幹としたことでそれが顕著になりました。

作業用テーブルではオブジェクトやFM形式のファイルパスは後回しで、POSIXが唯一の大元データになります。ですので、すべてのフィールドをPOSIXを元に計算式で作られるよう変更します。

 

 

ということでちゃぶ台返しでいろいろ根本から変更したわけですが、とりわけ重要なのは作業用テーブルの件でした。作業用テーブルのフィールドがほぼ全て全面的に作り直されましたが、これにより小さいけれど大きな一歩(何を言ってるんだか)を踏み出すことになったのです。

FileMaker Pro

Download FM_MediaDB_Ver3_5.zip

ダウンロードはご自由に

FMでメディア管理 実作編 Ver.3 日付の情報
次のページ: Importテーブル