ぺーぺーぷーぷーな日々

Claris FileMaker と戯れる日々です。

前職でのローコード開発 by Claris FileMaker

前の職場では、Claris FileMaker を利用した独自Solutionを長年に渡って構築していました。転職して3ヶ月が経ちますが、日常的な設定変更やトラブル対応は、かつての同僚がカバーしてくれています。ちょっとしたスクリプトの変更なども対応してくれます。ありがたいことです。インハウスの一人情シスだったのですが、ある程度、属人化からは免れていたようで安心しています。…窓際でしたし(笑)。

 

こういったことが可能となった要因のひとつは、今で言う「ローコード開発」だったから、と言えるかもしれません。つまり、あまり高度なことはやっていない。

 

目次

 

15年におよぶ開発 

自分で言うのも何ですが、構築したSolutionは職場の業務を広範囲にカバーするものでした。様々な情報が連動するSolutionでして、止まってしまうと経営に支障が出るレベルと言えなくもありません。図にすると、なかなか凄いでしょ。ほぼ一人でやってましたから。でも、ローコードなので、ある程度再現は可能です。

f:id:Kei0114:20210515220652p:plain

Claris FileMaker による構築

 

開発過程を共有

上図に描かれていない機能もたくさんあります。とはいえ、そのひとつひとつは、それほど難しいものではありません。また、在職時から、数人の同僚に完全アクセス権を付与して、開発の着手から運用、バグの発生まで多くの事案をオープンにして見てもらっていました。見てもらえば、何となく理解できるレベル。そんな手の内を晒したローコード開発でした。

 

プロの方との連携

プロの方々とも連携して、環境面の整備もできていたんじゃないかと思います。

現在は、私自身が株式会社エヌ・ケイ・カスタマイズの社員として関わっております。

 

当ブログの過去記事から連携事例を振り返りますと、例えば、FileMaker のライセンスは、ASLA ( 年間サイトライセンス )ですが、公式トレーニングを受講したご縁でご教示いただき、以来、株式会社ジェネコム様よりライセンスを購入しています。あの頃はまだ、鹿児島にはリセラーさんがいなかったような。

 

kei0114.hatenablog.com

 

 

FileMaker Server のセットアップについては、株式会社キー・プラニング様にご支援いただきました。今では、コールドスタンバイマシンをサブマシンとしてテスト用に活用しています。コールドにしていない(笑)。

 

kei0114.hatenablog.com

 

 そして、電子カルテ ANNYYS を導入・開発するにあたって、株式会社エムシス様と提携して現在も継続中です。

 

kei0114.hatenablog.com

 

 

前職の経験は、まさに私の血肉です。

 

www.claris.com

Wi-Fi の親機と子機、そしてHUB

事業所内のLAN環境の整備に関する、自分の記事のまとめです。

Claris FileMaker Server を運用する以前に、ネットワークインフラには本当に悩まされてきました。その経緯は度々当ブログでも記事にしてきました。ネットワークインフラは全体的な設計はもちろん、ケーブル1本にしたって大切ですが、ここでは、お世話になった機器についてまとめてみます。もっと良いものがあれば、ぜひ、教えてちょーだい。

 

目次

 

Wi-Fi親機

 

 まず、Wi-Fi親機。Cisco社のMeraki Go だと、スマホアプリを使って自宅からでも監視できるのはもちろん、各端末の電波強度(受信強度)が確認できるのが嬉しい。メッシュだし、有線LANでバックホール接続もできますし。

 

下図のように、アプリで各端末(子機)の受信強度を確認できます。加えて、どの親機に接続されているかも確認できます。この点、「なぜ遠くのWi-Fi親機を掴んでるの?」という事態も確認できます。

 

f:id:Kei0114:20210508074113p:plain

Meraki-Go アプリ

 

 

意外と受信強度が弱い、遠くのWi-Fiを掴んでしまう、という事態は、意外と発生しやすいうえに把握が難しく、対応に悩まされてきた問題でした。それこそ数社の親機を試してみたり、親機の設置場所を工夫してみたり、長年、悪戦苦闘を続けてきました。で、ここで目を向けたのが子機でした。

 

Wi-Fi子機

 

ちょっといい子機に換えることで受信強度がかなり改善されました。そして、その強度をアプリで確認できたのも嬉しい。とりあえず、子機は迷ったらこれを買っています。

 

 

 

HUB(スマートスイッチ)

 

見えづらい「ループ」にも悩まされていました。

これも機器を買うことで解決。この価格でループ防止機能がついているのが嬉しい。要所要所に配置してしまいましょう。

 

 

以上、Claris FileMaker Server で何かおかしいなと思ったら、これらにも目を向けてみてください。私からの経験でした。

 

 


以下、関連記事。 

kei0114.hatenablog.com

kei0114.hatenablog.com

 

病床管理システムのサンプルを作成中

稼働数、稼働率、入退院履歴、さらにはそこから派生する様々な指標の算出に関して。

当ブログに対して、今でも忘れた頃にお問い合わせのあるカテゴリーのお話です。


 例えば在庫管理であれば、商品マスタ、入出庫履歴がすべての元になります。

病床管理であれば、患者マスタと入退院履歴など。

あるいは、宿泊施設の予約管理でも同様かもしれません。

これらは日々の基礎データの入力がとても重要で、すべての業務がここから派生していると言っても過言ではありません。逆にこれらがしっかりしていれば、あとの仕事が非常に楽になります。

 

病床管理に関して、私は前の職場(病院)で、Claris FileMaker を使って自作でシステムを構築、運用しておりました。かれこれ10年以上、手を加えながら運用しておりまして、未だに稼働中。いまも日々の病院運営に寄与しております。

 

私の仕組みは、3つのテーブルを基本にしていて、そのことは2007年に記事にしています。これが、様々な集計の基礎になっています。

 

kei0114.hatenablog.com

kei0114.hatenablog.com

 

こと「病床管理」に関していえば、たとえ電子カルテを導入したとしても、電子カルテから平均在院日数が算出されるというわけではありません。少なくとも狭義の電子カルテにはその機能はない。それは、紙のカルテ庫に行っても平均在院日数が算出できるわけではないのと一緒です。この点、前の職場においても、病棟用の電子カルテが導入されたとしても、私のシステムは機能し続ける予定です。

 

現在、「3つのテーブル」を基本にしたサンプルを作成中です。

自分の考え方の基礎でもあるので、説明の際にも役立つのではないかと思っております。

 

f:id:Kei0114:20210504081433p:plain

Home画面

f:id:Kei0114:20210504081506p:plain

稼働履歴

f:id:Kei0114:20210504081531p:plain

入退院登録

 

While関数を使って対象レコードの特定のフィールドの値を改行区切りで取得する

以下、 以前に書いた記事の補足になります。


kei0114.hatenablog.com

 


目次


 

GetFieldValues関数について

 

上記の記事の中で、GetFieldValues関数 というカスタム関数を拝借しておりました。

大変お世話になったカスタム関数なのですが、再帰回数5万回という制限があるとのご指摘も頂いておりました。 

iphlox.hatenadiary.org

 

また現在では、 上記カスタム関数が掲載されていたサイトが無くなっていて、残念ながらオリジナルの情報にたどりつくことができないようです。

 

 

While関数

 

解決策としては、FileMaker 18 以降から使えるようになった While関数 と SetRecursion関数 を組み合わせて代替する計算式を書いてしまうのが良さそうです。While関数単体だと5万回の再帰回数制限があるそうなのですが、それを SetRecursion関数 で解除できるのだとか。

 

とりあえず今回は、再帰回数制限のことは脇に置いておきます。<おい!

まずは GetFieldValues関数で実現していたことを While関数で作り直してみます。

下図は以前の記事でも掲載していた画像です。この画像中のスクリプトで GetFieldValues関数で記述していたことを While関数で作り直します。

 

f:id:Kei0114:20210424221849p:plain

 

While関数で書き直した内容が、以下です。

取り出したいフィールドは、[患者_idorrk::__fk_患者番号]というフィールドです。

 

Let ([
 
#field = 患者_idorrk::__fk_患者番号    //ターゲットにするフィールド
 
];
 
GetNthRecord ( #field ; 1 ) &  //最初のレコードだけ先に取り出しておく
 
While (
 
//条件を揃える
[
#max = Get ( 対象レコード数 );
#i = 1;
#result = ""
] ;
 
#i < #max ;  //終了条件
 
//繰り返し部分
[
#i = #i + 1;
#result = #result & ¶ & GetNthRecord ( #field ; #i )
];
 
#result
 
)//while
)//let

 

 

別のフィールドを書き出したい場合は、
[#field = 患者_idorrk::__fk_患者番号    //ターゲットにするフィールド]
という部分を書き換えれば、そのまま転用できると思います。
 

本当は、JSONでも使ってよりスマートに仕上げるべきところなのですが、とりあえず今回は、以前からのスクリプトを踏襲する形で修正いたしました。JSONは、もう少し勉強いたします(笑)。

 

参考

以下、While関数の解説など、参考にさせていただいた記事です。

ありがとうございます。

 

ywc.com

www.mirai-switch.com

usagi-mimi.com

qiita.com

help.claris.com

Wi-Fi は子機も大事

LAN環境の話が続きます。

どんなに優れたシステムだろうと、アプリ開発以前にインフラが整っていないとどうしようもありませんし、個人的に Claris FileMaker Server での運用は、思いのほか通信障害の影響を受けやすいと思っておりまして。

 

今回は、良い子機だと受信も安定するものなのですね、というお話。当たり前か。

 

 

5GHz帯だと、思いのほか遮蔽物の影響を受けるようです。紙の束とか本とか冊子とかも立派な遮蔽物になるようで、PCに接続された受信機がそれらに遮蔽されていると、思いのほか通信状態が悪くなっていたりするようです。高価な親機を導入しても、デスクが書類に埋もれていてはダメみたいです。

 

そういう埋もれた環境にPCが設置されている場合、PCから離した場所にアンテナを置けるタイプは実に有用です。上記の製品は値段もお手頃です。これまで意外と無かったタイプのような気がします。

 

電波の良く届く位置に、両面テープで貼り付けてしまいましょー。

f:id:Kei0114:20210501134026j:plain

貼り付け

 

ちなみに今回の環境ですが、親機は Cisco社のMeraki-Goです。

 アプリから遠隔管理もできますし、子機ごとの受信強度も確認できます。

受信強度の弱い端末、子機を特定して交換対応しています。

 

www.cisco.com

 

 

関連記事

 

kei0114.hatenablog.com

 

 

kei0114.hatenablog.com

 

 

kei0114.hatenablog.com

 

 

kei0114.hatenablog.com

 

FileMaker Server のログ | TopCallStats

FileMaker Server を運用する上で、問題の特定に役立つのではないかと個人的に考えている機能が、「TopCallStats」ログという機能です。

 

「TopCallStats.log」は共有データベースに伴うパフォーマンスの問題を特定するのに役立ちますが、ログプロセスによりサーバーのパフォーマンスが低下する可能性があります。

 最長呼び出しの使用状況のログ

 

上記公式サイトのヘルプによると、パフォーマンス低下の懸念があるとのことですが、私の経験した環境では特に影響はありませんでした。懸念よりも問題の特定につながるならばと思いまして、機能を有効にしてみました。

 

 

f:id:Kei0114:20210228082516p:plain

TopCallStatsを有効にする

 

得られるログは、こんな感じです。

f:id:Kei0114:20210228083143p:plain

TopCallStatsログ

 

このログを表計算ソフトやFileMakerで読み込んで、単純に経過合計が最も長かった端末に疑いをかけて、その周辺を捜索します。具体的には、その端末が接続している無線LAN親機やハブ、そこから派生している端末が捜索対象です。

 

その捜索結果としては、「無線LANの受信が弱い」ということが多いように思っておりますが、もしかするとループがあるかもしれません。

 

あくまで個人的な経験則ではありますが、FileMaker Server のトラブルも、LANの通信環境の影響が大きいような気がします。LAN環境のメンテナンスはなかなか重要で大変ですよね。

 

kei0114.hatenablog.com

 

 

kei0114.hatenablog.com

 

転職しました。

1月いっぱいで、17年勤めた病院を退職いたしました。

そして、この2月からは、株式会社エヌ・ケイ・カスタマイズ に雇用していただくことになりました。

 

nkcustomize.co.jp

 

 

なお、これまでの勤め先である病院へは、引き続き主に私が月10日を目安に訪問する契約となっております。これまでと変わらず、でもこれからは、機会をいただければ、新しいところへも関わっていく所存です。

 

こちらのブログは今後とも私個人の備忘録として、ボチボチと継続いたします。

これまで通り、よろしくお願いいたします。