現在、FileMakerでメールアドレスの管理をしているのですが、定期的なメンテナンスの際に、廃止のメールアドレスを抽出してメールアドレスをサーバーから削除しています。
その際に、
1)廃止するメールアドレスには廃止のマークをつけたい。
2)廃止のマークをつけたその日付を自動化したい。
このようなことをしたいと思っています。
そこで、ChatGPTにそのやり方を教えてもらいました。
ChatGPTに下記のようにお願いしました。
ファイルメーカーでメールアドレスの管理をしています。
現在、利用者、メールアドレス、ユーザー名などの設定情報が記載された一覧をPDFで配布しています。
新たに以下の2つのフィールドを追加したいです:
- 「廃止ステータス」:メールアドレスが有効か廃止かを示すテキスト型フィールド
- 「廃止日」:メールアドレスが廃止された日付を記録する日付型フィールド
要件:
- 「廃止ステータス」フィールドが「廃止」に変更された場合、「廃止日」フィールドに自動で現在の日付を設定したい。
- 「廃止ステータス」に変更がない場合は「廃止日」フィールドをクリアする。
この要件を満たすためのスクリプト作成方法を教えてください。
ChatGPTの回答
ファイルメーカーでご希望の仕様を実現するために、以下の手順でフィールドを追加し、スクリプトを作成する方法をご案内します。
1. 必要なフィールドの作成
まず、以下の2つのフィールドをファイルメーカーに追加します。
- 廃止ステータス(Status) フィールド(テキスト型):メールアドレスが有効か廃止かを示すテキストフィールドです。ここには「廃止」などの文字を入力します。
- 廃止日(Deactivation Date) フィールド(日付型):メールアドレスが廃止された日付を記録する日付フィールドです。
2. スクリプトの作成
次に、廃止ステータスフィールドが「廃止」に変更された場合、自動的に廃止日フィールドに現在の日付を入力するスクリプトを作成します。
スクリプト内容
- 新しいスクリプトを作成し、スクリプト名を「廃止ステータス更新時に日付を設定」に設定します。
- スクリプトの内容は以下の通りです:
If [ テーブル::廃止ステータス = “廃止” ]
Set Field [ テーブル::廃止日 ; Get ( 現在日付 ) ]
Else
Clear [ テーブル::廃止日 ]
End If
3. トリガーの設定
このスクリプトを自動で実行するために、フィールドの値が変更された時にスクリプトが発動するように設定します。
- レイアウトモードに切り替え、廃止ステータスフィールドを右クリックして、フィールド設定を選択します。
- 「スクリプトトリガー」タブを開き、「OnObjectModify」オプションにチェックを入れます。
- 作成したスクリプト「廃止ステータス更新時に日付を設定」を選択し、スクリプトトリガーとして設定します。
補足情報
- 廃止ステータスフィールドに「廃止」以外の値を入力した場合は、廃止日フィールドが自動的にクリアされます。
- 廃止日は、廃止ステータスフィールドの内容が「廃止」に変更された場合にのみ更新されます。
このようにして、廃止ステータスが更新されるたびに、廃止日も自動的に記録またはクリアされます。
最初は失敗の原因
「Set Field」と「Clear 」がスクリプトのリストの中になくて設定できませんでした。
そこで、似たような言葉があるか順番に調べていったところ、日本語に同じことを現した内容がありました。
「Set Field」は「フィールド設定 」⇒フィールド設定 [ テーブル::廃止日 ; Get ( 日付 ) ]
「Clear 」は「消去」⇒消去 [ テーブル::廃止日 ]
こうして、下記のように廃止にチェックを入れると自動的に廃止日が表示されるようになりました。
まとめ
最近は、エクセルの関数をChatGPTに聞いて作業をすすめています。
FileMakerのスクリプトについても今まで時間をかけて作成していましたが、このようにすぐに内容を教えてくれるので助かります。
ただ、FileMakerの場合、上の英語の部分を日本語にする、ということに気付くのに時間がかかってしまいました。
また、 Get ( 現在日付 )⇒ Get ( 日付 )のようにFileMakerのバージョンで記述が変わったものがあるので注意が必要です。
最初に試してうまくいかないと諦めてしまいそうですが、試行錯誤していくと段々ChatGPTのクセというかルールがわかっていきます。
それを理解できれば、ChatGPTとの会話がスムースにできますので、諦めないで頑張っていきましょう!
でも、仲良しになると本当に協力な助っ人ですね、ChatGPTさんは!!