応募部門:仕事効率化
作品名 :FileMaker PowerPack
製作者 :Piyomaru Software
作品概要:FileMaker Proのスクリプトに埋め込んで今日から使えるAppleScript集です(Mac用)。
さまざまな掲示板やフォーラムで調査を行い、FileMaker Proユーザーがお困りの機能や、困ってないけどすごい機能を中心に見繕ってみました。
画面上ですぐにテストデータを入れて実際に試せて、コピペで使えるコードも書き出せます(スクリプトエディタに即・転送)。
カスタムAppの解説
AppleScript界からやってきた黒船。
FileMaker Proにできない事を平然とやってのけるッ
そこにシビれる!あこがれるゥ! FileMaker Proで使えるAppleScript集です。
動作条件としてはmacOS限定となってしまいます。更にM1チップ搭載Macだと殆ど動きませんでした。→M1チップ搭載Macでも動きます。
M1チップ搭載Macで試したい場合はアプリケーションアイコンを選択して「⌘+I」で開くウインドウで「Rosettaを使用して開く」にチェックを入れます。
↓製作者様のブログによると(http://piyocast.com/as/archives/13466)
・データベースが複数オープンされていると正しく「最前面のデータベース」を検出できない、、、、database 1で最前面のデータベースを指定してしまったので、その点を修正。審査Blogには「M1対応していない」と書かれていますが、開発自体をM1 Mac miniで行なっているので、複数データベースをオープンしている状況に対処できていなかっただけでしょう(アプリケーションを終了してデータベース1つだけの状態になったので動作)
M1チップだと動かないと思ったのは、別のファイルを起動していたからで、「Rosettaを使用して開く」にチェックを入れる時に他のファイルを閉じたので、そう思い込んでしまいました。(2021/09/29追記)
なんと21本のAppleScriptサンプルが入っています。どれか1つのサンプルを膨らましても1つの作品が出来そうなネタの宝箱。
テーマ的に画面はシンプル。この画面で動作を確認できます。初期サンプルデータを消してしまっても復活する「データ初期化」ボタンがあるので、安心です。
テキスト処理 テキストからタグを除去する そうそうこの処理、FileMakerでやろうとすると、すごく面倒なんですよね。
テキスト処理 指定文字列をURLエンコード GetAsURLEncoded関数を使えばFileMakerでも可能
テキスト処理 URLエンコード文字列をデコード これは、、FileMakerでは出来ないと思う(確か)
テキスト処理 メールアドレスを抽出 これ、メールデータ取り込んで抽出ってことが出来るんで便利かも。 使い所はすぐに思いつかないけど、欲しい人はいるはず。
テキスト処理 リンクURLを抽出 メールアドレスと似てるが、こっちはURLを検出する
テキスト処理 住所を抽出 そらく、API叩いて出していると思う。Macのメーラーだと住所の所にカーソルを持っていくと住所部分や電話番号部分がフワッとして連絡先に登録出来たりするんですが、そこの機能を使っているのではなないかなと思います。 AppleScriptの「NSTextCheckingTypeAddress」かな、「NSTextCheckingTypePhoneNumber」というのもあるので、おそらくは・・・。
テキスト処理 電話番号を抽出(なぜかmacOS 12 beta6で動かない) こちらもAPI叩く系かなと思うんですが、それにしてはAppleScriptの中身が違うような。
テキスト処理 日付データを抽出 「Fri. Sept. 2」といった海外のフォーマット以外にも「今日」「昨日」も判定します。これはmacOSの機能を使ってるというか、AppleScriptなのでmacOSの機能を使っているのは当たり前ですね・・・。 「Sep. 4」が今年の9月4日と認識するのがFileMakerと同じで面白い。
テキスト処理 横書きテキストから縦書きテキストを作成 テキストを縦書きにするだけではなく、カッコの「→﹁変換もしている。 また、縦書きの先頭行に「、」が来ないように禁則処理もしています。
テキスト処理 絵文字クリーニング 絵文字の文字コードを決め打ちで判定させているので、macOSがバージョンアップしたら抜ける可能性はある。AppleScriptは絵文字かどうかを判定する機能があるの???と一瞬驚いたのですが、中身は決め打ちでちょっとホッとした。 FileMakerでやろうとすると、全文字コードを用意しないといけないのですが、AppleScriptだと「\\U0001F600-\\U0001F64」と範囲で指定出来るのは便利ですね。ですので、かなりソースコードが短く出来ます。
テキスト処理 テキスト自動要約 日本国憲法前文(要約してみた) 日本国民は、正当に選挙された国会における代表者を通じて行動し、われらとわれらの子孫のために、諸国民との協和による成果と、わが国全土にわたつて自由のもたらす恵沢を確保し、政府の行為によつて再び戦争の惨禍が起ることのないやうにすることを決意し、ここに主権が国民に存することを宣言し、この憲法を確定する。
テキスト処理 禁則処理つき原稿用紙枚数シミュレーション 読書感想文の進捗確認に。
画像処理1 オブジェクトフィールド上の画像を半分(50%)にリサイズ GetThumbnail関数を使えばFileMakerでも可能 次の処理と組み合わせて使うと便利かも。
画像処理2 画像1の上に画像2を重ね合わせる 画像に透かし入れるのに良いかも。合成位置の指定もAppleScriptを見るとなんとなく解ります。
画像処理1 スクリーンキャプチャを撮ってオブジェクトフィールドに入れる FileMaker Proのスクリプトを組み合わせて全レイアウトのスクリーンショットを撮ってテスト仕様書にできそうです。
画像処理1 このコンピュータのアイコンをオブジェクトフィールドに設定 ちょっと使い所が難しいですが、改造すればデスクトップのこのフォルダに入れて〜みたいなUIが作れるのかも。
画像処理1 オブジェクトフィールド上に指定月のカレンダー画像を生成 JPG,PNGを試しましたが動かず。なにか条件があるのかも。
画像処理1 オブジェクトフィールド上の画像を顔認識して塗りつぶし Retinaディスプレイだとズレます。Retinaディスプレイではないディスプレイだと上手くいくので、ディスプレイの解像度を考慮して黒四角を配置する座標を調整しないといけないと思います。
テキスト処理 インストールされているTTSキャラクターのうち指定音声の例文を発声 TTS(Text to Speech)の音声例文が流れる。
テキスト処理 テキスト読み上げ時間シミュレーション スピーチの時間シミュレーションに便利そう。 AppleScriptを全て解析したわけではないのですが、ソース内に「Kyoko」という読み上げ音声の名前があるので、文字数の判定じゃなくて、ちゃんとTTSに喋らせての時間を出しているかと思います。
テキスト処理 フィールドに入っている文章が何語かを判定する いくつか判定 言語が混ざると検討違いな言語と判定されますが、混ざらなければ正しく判定されます。 「ฉันอยากไปเชียงใหม่ 」→Thai(タイ語) 「Weiß Schwarz」→German(ドイツ語) 「FileMaker เป็นผลไม้」→Icelandic(アイスランド語) 「攻殻機動隊」→Japanese(日本語) 「我田引水」→Japanese(日本語) 「繩鋸木斷 水滴石穿」→Chinese(中国語)
カスタムAppの設計
テーブル
サンプルデータのオリジナルを別フィールドにしておいて、復帰出来るように作っている。
スクリプト
AppleScriptを起動させるための発火装置でしかないFileMakerのスクリプト。
画像の受け渡しはクリップボード。
感想
AppleScriptはあまり知られていないのにすごい機能が使えるんだなというのが正直な感想です。(Automatorまでは使った事があるんですが)RPA的な機能だけかと思いきや、画像合成や顔認識まで出来るとは。
FileMakerとAppleScriptの連携の取っ掛かりとして解りやすいサンプルだと思います。これはFileMakerの新しい扉を開きました。
AppleScriptなので、macOS限定になってしまいますが、Windowsばかりの環境でも一台だけMacを入れて、そこで処理させるようにすれば業務的にも使えそうだなと思います。
AppleScriptソースの改造して動きを確かめようと命令をコピーして検索すると作者のサイトが高確率で出てきます。
「FileMaker Pro Scripting Book with AppleScript」なんて素敵な本も出版されています。
どうしようもない点ですが、動作環境が限られるのが残念な所です。
審査結果
予選通過
改修ポイント
ライブラリ的なカスタムAppなので改修点は難しいのですが、すごく細かい点を指摘すると、スクリプト本文のスペルチェックは解除した方が読みやすいと思います。
Comments