Help us understand the problem. What is going on with this article?

FileMaker で作業ログを取得する

More than 3 years have passed since last update.

破損は検知したけれど

FileMaker で真っ白レコードを見つけるで破損レコードの検知方法を見つけることが出来ました。

時間帯からバッチ処理などではなく、作業中に破損を誘引する何かがあったことは分かりましたが、はっきりとした原因究明には至りませんでした。

そこで対応の1つとして、作業ログを取ってみることにしました。

作業ログを取る

  1. 作業ログテーブルを作成
  2. 作業ログ取得スクリプトを作成
  3. onRecordCommit を仕込む

作業ログテーブルを作成

まずは記録用のテーブルが必要ですので、こんな感じでつくりました。

(テーブルイメージ)
20160928130016.png

作業ログ取得スクリプトを作成

これは本当に簡素なスクリプトで、およそこんな感じにしました。

  • レイアウト移動
  • 新規レコードを作成
  • フィールド設定
  • レイアウトを元に戻す

onRecordCommit に登録

レコードの修正タイミングでスクリプトを走らせたいので、レイアウトスクリプトトリガ onRecordCommit を使います。

詳しく知りたい方はリファレンスをお尋ねください。

これで、レコードを修正したタイミングで作業ログを登録できるようになりました!!

はじめてのレイアウトスクリプトトリガにちょっとルンルン気分なのを隠して、事務チームに報告です。

「もし何かあったら言ってくださいね」と、一応予防線を貼ることも忘れず。

事務チームからのフィードバック

1回カーソルを外すたびに、記録用のスクリプトが走るので、
その度に別レイアウトに裏で飛ばされてしまいます。

そこから元のレイアウトに戻ってくると、レイアウトの
1番上に引き戻されてしまうので、メンテ作業が
ものすごくしにくいです…

あ。。。なるほど。。
事務チームが作業しているレイアウトは縦に長いレイアウトなのですが、
裏で走る記録処理の結果、レイアウトの最上部に表示が移動してしまってやりにくい、ということでした。

たしかに使いづらいですね。。

レイアウト移動をしない方法に修正

といっても方法が思いつかなかったので、ピティナで一番FMに詳しい noguchi に相談したところ、

「レイアウト移動せずに実装できるよ」というので、方法を教えてもらいました。

(データベースの管理)
・記録用テーブルを作業用テーブルの子テーブルとしてリレーションを貼る
・その際、作業テーブルのPKと修正日時をリレーションキーとする
・リレーションを貼る際、「このリレーションシップを使用して、このテーブルでのレコードの作成を許可(I)にチェック」

(スクリプト)
・これで"新規レコード作成"は不要になったので削除する
・レイアウトスクリプトトリガはそのままでOK

ということでした。

説明を聞いた時は???という感じだったのですが、
詳しく聞くと、こういうことでした。

今回の要点は
・レイアウト移動+新規レコード作成+フィールド設定
という処理から
・関連レコードのフィールド設定+関連レコードがなければ自動的にレコード作成
という処理への変更。

"関連レコードのフィールド設定"自体は、リレーションを貼ったことで出来るようになった。
あとは、「関連レコードがなければ自動的にレコード作成」の部分だが、

修正日時をリレーションキーにしているので、スクリプトで関連レコードのフィールド設定をしようとした時、必ず関連レコードがない状態になっている。

この時、
「このリレーションシップを使用して、このテーブルでのレコードの作成を許可(I)」にチェックしていることで
・関連レコードがなければ新規レコードを作成
をしてくれる。

うまく説明でき・・・てないと思いますが(苦笑
これで担当チームに煩わしい思いをさせずに作業ログを取れるようになりました。

参考になれば幸いです。

hiroto_otake
システムは「実装」するのではなく「表現」するもの。 #RDB #MySQL #GCP #Ruby #Vuejs #Rails 職種:システムエンジニア(教育系) 職歴:社内SE(2015~) < SIer(2006) 好き:DB設計、orchestra、日本酒、 足利市 楽器:Didgeridoo、oboe(ピアノは弾けない)
piano
ピティナは音楽指導者の団体で、また世界最大のピアノコンクールを主催する団体でもあります。 「~音楽の必要性を社会に向けて立証する~」ため、エンジニアを採用し始めました!!
http://recruit.piano.or.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした