LoginSignup
0
0

More than 1 year has passed since last update.

FMDB-blue導入のチュートリアル【基礎編】

Last updated at Posted at 2021-12-01

はじめに

FileMakerでのMarkdownエディタであるMarkdownThingの開発者(@qbxxdp)さんから、チュートリアルがあるとよいのでは? とご指摘いただいたので、作ってみた記事です。既存のデータベースに組み込むのも、そこまで大変ではないと思っているのですが、このチュートリアルで練習ファイルを作成し、全体の流れと、上手く動くことを確認した上で、その次に、既存のデータベースへの組み込みにチャレンジすると導入もしやすいと思います。動画は苦手なので、スクショばかりの長文ですみません。不具合報告は大歓迎です。

このチュートリアルで作れるもの

フィールド編集のログが取られ、レコードの作成、削除、フィールドの編集についてundo、redoが可能なカスタムAppが作成できます。
20211201_Practice1.gif

準備するもの

  1. FileMaker Pro 19
    「FMDB-blueの使い方」を読んでいただければ、FMP16までなら導入可能だと思います。 このチュートリアルではFMP19前提で進めます。

  2. FMDB-blueファイル一式

    • FMDB-blue_Processor.fmp12
      このチュートリアルでは「Processorファイル」と呼びます。
    • SampleApp_Interface.fmp12
      このチュートリアルでは「Interfaceファイル」と呼びます。
    • FMDB-blue_Data.fmp12
    • SampleApp_Data.fmp12
      これらのファイルは、このチュートリアル内では登場しませんが、FMDB-blueの導入、稼働には必要なファイルです。

    導入が済んでしまえば、SampleAppのファイル2つは削除してしまっても稼働に問題ありませんが、新たなファイルに導入するときには、また必要になるので、そのまま残しておいた方が無難かと思います。

    ここから最新版がダウンロードできます。

  3. ログ記録を残したいFileMakerファイル。
    チュートリアルでは、このファイルを作成するところから始めます。
    ある程度の細工は必要ですが、どんなFileMakerのカスタムAppでも導入は可能だと思っています。本当は、どんなものでも、と言いたいですが、ダメなものもあるかも知れません。このファイルでは導入できない!ってのがあったら、ご連絡いただければ、対応策を頑張って考えます。

FMDB-blue導入のチュートリアル

0. チュートリアル開始前の注意事項

このチュートリアルを読んでいただくと分かると思いますが、Processorファイルと、ログを残したいFileMakerファイルとの設定を交互にやっていく感じになります。この順序を間違えると、エラーが出てうまく導入できない危険性が高まります。途中の作業でエラーが表示されたら、再度前の工程から確認した方がよいです(ちなみにカスタムApp内の「使い方」と若干順番が異なっているところはありますが、その違いはどちらでも問題ありません)。
あと、FMDB-blueファイルはカスタムメニューが設定されており、通常使用の中では、余分なところが触れられないようになっています。チュートリアルで、メニューバーに該当メニューが見つけられない場合には、ツール > カスタムメニュー > [FileMakerの標準メニュー]を選択してください。それもグレーアウトとしているときは、完全アクセスで開いていない可能性が高いです。完全アクセスのアカウントで再ログインしてください(メニューバーのSample Appかスクリプト > Development Toolsに再ログインのコマンドがあります)。
このチュートリアルは、macOS Montereyで作成しています。Windowsでも同様の流れで導入できると思いますが、Windows用にチュートリアルを作成いただいた方もいらっしゃるので、参考にしてください。

1. ログを残したいFileMakerファイルの作成

1-1.
FMP19を起動させ、でファイルを新規作成します。
20211130_194047.png

1-2.
ファイルを作成する場所はどこでもよいですが、まずは、Processorファイルがあるフォルダに作りましょう。ファイルの名前もなんでもよいですが、ここではAnyNameFileにしておきます(以後、ログを残したいFileMakerファイルは「AnyNameFileファイル」と呼びます)。
20211130_194200.png

1-3.
フォルトの設定だと5つのフィールドが自動で作られて、追加のフィールド作成の画面になります。そこで、1つフィールドを作成します。フィールド名もなんでもよいですが、ここではAnyNameFieldにしておきます。
20211130_194700.png

1-4.
あと、このファイルを再起動したときに、FMDB-blueにアクセスする際にパスワードを聞かれないようにするために、アカウントにパスワードを設定しておきます。(実運用時は、FMDB-blueを含めて、このパスワードは適切に設定してください)。
20211130_194720.png

20211130_194730.png

これでログを残したいFileMakerファイルの作成は一旦終了です。

2. Processorファイルでの設定・その1

2-1.
まず、Processorファイルを開きます。
20211130_194759.png

2-2.
アカウント、パスワードは「admin」を入力します。
20211130_194813.png

2-3.
「外部データソースの管理」を開きます。
20211130_195001.png

2-4.
「外部データソースの管理」画面で「新規」を選択します。
20211130_195020.png

2-5.
「ファイルの追加...」からAnyFileNameファイルを選択します。データソースの名前もなんでもよいですが、ここではAnyFileNameのままにしておきます。
20211130_195100.png
20211130_195114.png

2-6.
今度は「データベースの管理」を開きます。
20211130_195405.png

2-7.
「リレーションシップ」を選択して、テーブルオカレンスの追加を行います。
20211130_195450.png

2-8.
「テーブルを指定」でデータソースにAnyFileNameを選択します。この選択のときに認証を確認するアラートが表示されますが、「はい」を選択してください。ここのオカレンス名もなんでも良いですが、AnyOccurenceNameとしておきます。
20211130_195520.png
20211130_195530.png

2-9.
次に、リレーションシップを追加します。
20211130_200110.png

2-10.
「リレーションシップ編集」のところで、下図の通りに設定を行います。
20211130_200139.png

2-11.
下図の通りになっていることを確認して、「OK」を押します。
20211130_200200.png

3. ログ記録を残したいFileMakerファイルでの設定・その1

3-1.
今度は、AnyFileNameファイルで、「外部データソースの管理」を開きます。
20211130_200247.png

3-2.
「外部データソースの管理」で「新規...」を選択します。
20211130_200341.png

3-3.
「ファイルの追加...」からProcessorファイルを選択します。この時の外部データソース名は、e_FMDB-blue_Processorとしてください。
20211130_200407.png

3-4.
作成されたのを確認して、「OK」を押します。
20211130_200415.png

3-5.
次に、「データベースの管理」を開きます。
20211130_200500.png

3-6.
「リレーションシップ」を選択して、テーブルオカレンスの追加を行います。
20211130_200502.png

3-7.
「テーブルを指定」でデータソースにe_FMDB-blue_Processorを選択します。この選択のときに認証を確認するアラートが表示されますが、「はい」を選択してください。ここのオカレンス名は、eM_Hub#FMDBblueにしてください。
20211130_200706.png
20211130_200707.png

3-8.
テーブルオカンレスが作成されたのを確認して、「OK」を押してください。ここではリレーションシップの設定は必要ありません。
20211130_200714.png

3-9.
次は、「スクリプトワークスペース」を開きます。
20211130_200822.png

3-10.
「スクリプトワークスペース」で「インポート...」を実行します。
20211130_200842.png

3-11.
インポート元は、Interfaceファイルを指定してください。
20211130_200908.png

3-12.
「_LogSystem」のところにチェックを入れて、全部で24個のスクリプトをインポートします。
20211130_200910.png

3-13.
スクリプトのインポートが終わったら、AnyFieldNameフィールドにカーソルを入れ(アクティブにし)た状態で、「Set TO Shift from Active Field」スクリプトを実行します。
20211130_201047.png

3-14.
フォーカスが、Processorファイルに移り、「TableOccurrenceShiftの設定」について尋ねられますが、「新規作成」を選択します。
20211130_201130.png

3-15.
TableOccurrenceShiftテーブルにレコードが作成されたのを確認します。ここで空欄があるのは問題ありません。次で設定を行います。
20211130_201305.png

4. Processorファイルでの設定・その2

4-1.
Processorファイルにフォーカスが移っているので、そのまま「レイアウトの管理」を開きます。
20211130_201449.png

4-2.
「レイアウトの管理」で_Log@SampleParent.formレイアウトを選択し、「複製」を押します。
20211130_201525.png

4-3.
複製されたレイアウトを選択し編集します。レイアウト名はなんでもよいですが、_Log@AnyOccurrenceName.formにしておきます。表示するレコードをAnyOccurrenceNameにて、「OK」を押します。
20211130_201604.png

4-4.
できたレイアウトを開きます。
20211130_201623.png

4-5.
「レイアウトモード」にします。
20211130_201649.png

4-5.
1つのフィールドを残して、残りは削除します。
20211130_201719.png

4-6.
残ったフィールドは、AnyOccurrenceNameテーブルのAnyFieldNameフィールドに変更します。
20211130_201746.png

4-7.
「ブラウズモード」に戻ります。
20211130_201830.png

4-8.
「Set TO Shift from Active Layout」スクリプトを実行します。
20211130_201908.png

4-9.
「TableOccurrenceShiftの設定」について尋ねられますが、ここでは「3」を入力して、「選択する」を押してください。
20211130_201932.png

4-10.
これで、TableOccurrenceShiftのレコードが全て埋まります。
20211130_201950.png

5. ログ記録を残したいFileMakerファイルでの設定・その2

5-1.
AnyFileNameファイルに戻って、次の2つのスクリプト「新規作成」「削除」を作成します。
20211130_202200.png
20211130_202300.png

5-2.
「レイアウトモード」にして、AnyFieldNameフィールドを右クリックし、「スクリプトトリガ設定...」を開きます。
20211130_202059.png

5-3.
「OnObjectEnter」スクリプトトリガにOnObjectEnter_Deposit_OldData()スクリプトを、「OnObjectSave」スクリプトトリガにOnObjectSave_Log_UpdatingField()スクリプトを設定します。
20211130_202100.png

5-4.
「新規作成」ボタンを作成します。
20211130_202500.png

5-5.
「削除」ボタンを作成します。
20211130_202516.png

5-6.
Interfaceファイルに移り、「Undo」「Redo」ボタンをコピーします。各々のボタンには、グレーアウトしたボタンが配置されていますので、それも一緒にコピーします。
20211130_202644.png

5-7.
AnyFileNameファイルに戻り、レイアウトモードで貼り付けします。
20211130_202716.png

5-8.
これで練習ファイルの作成は完了です!
フィールドは1つだけですが、レコードを追加したり削除したり、フィールドの内容を変更したりして、undo、redoを行なってみてください。FileMaker使いの方々なら、それだけの操作でも、結構エンターテイメントになると思います。予想通り動くのが分かったら、ぜひ、Interfaceファイルも分析してみてください。

20211201_Practice1.gif

チュートリアル後の注意事項

  • 一度に複数のFMDB-blueが稼働していると、動作に不具合が生じます。FMDB-blueフォルダを複製して、個別のデータベースファイルをそれぞれの中に入れて設定して使うと、その個別のデータベースファイルを複数立ち上げた場合、FMDB-blueが複数稼働する状況になります。できればFileMaker Serverにアップロードして、共有して使われるのがよいかと思います。
  • オブジェクトフィールド以外は、同様の操作で導入できます。オブジェクトフィールドは、特殊な設定が必要なので、それは、また別の話。

あった方がよいもの

FMDB-blueを導入する上で、あった方がよいもの。

  • FileMaker Server
    注意事項でも記載しましたが、ローカルで個別にFMDB-blueを導入しようとすると、不具合を起こす可能性があります。それを避けるためにもサーバーにアップロードして共有した方が安定します。
  • MBSプラグイン
    必須ではないのですが、チュートリアルの画面の端端で、ちょこちょこ出てくるので。Demo版ですみません。
  • MarkdownThing
    チュートリアル作成には必須でした。完全に試したわけではありませんが、MarkdownThingにもFMDB-blueを導入できそうです。

謝辞

  • FM-1GP大賞発表LIVE終了後の打ち上げzoomで、ご意見をいただいたのがきっかけです。FM-1GP運営に感謝!
  • 当チュートリアルを作成するのにMarkdownThing魔改造バージョン)を使用しています。@qbxxdpさんに感謝! 本チュートリアルのご指導もいただいております。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0