1月 2021

WHY... 3.11の避難所で見た紙がこれを作るきっかけになった


 3.11から1ヶ月ほど経ったある日、私達家族は2時間ほどかけて娘の知り合いの子が避難している沿岸の小学校に向かった。娘の服が入った衣装ケースを車に積んで。

 途中の道の駅では自衛隊のトラックが休憩していた。


 避難所では、体育館で寝泊まりしている人達のためのダンボールの衝立作りを手伝った。奥に立ててあるのは着替え用の衝立。


 ふと避難所の入り口に置いてあったバインダーが気になった。


 緊急物資の配送状況。配送場所、地区、日付、数量。どこの地区にはいつどれくらいの物資が届けられているのか。予定も書かれていたかも知れない。

 これを見て避難所の状況によっては調整を本部に依頼するのだろうか。人数や年齢や性別、健康状態によって必要なものを判断しているのだろうか。

 「これ全部紙でやってるのか...大変だな」 システムのイメージが湧いてきて思わず写真を撮った。

 壁の張り紙が目についた。

 誰かに向けた伝言だった。連絡がつかないが、必ずどこかの避難所に立ち寄るはずだと信じている人たちのための。


 伝言メモの掲示は避難所の責任者の了承が必要だった。

 ワークフローだった。


 この時はシステムのイメージは沸いたものの、震災後の自分の仕事に追われ、イメージが焼き付いたままになっていた。

 時々思い出しては、「インターネットに繋がらなくてもオンプレで動くFileMakerがあればデータ管理と共有と再利用ができるのにな。」「インターネットに繋がらなくてもオンプレで動くRedmineがあれば避難所の運営スタッフのワークフローができるのにな。」と想像を膨らませていた。

 そんな漠然と抱いていた思いが、9年の時間を経て、FileMaker19でアドオンが作成できると知ったとたん、つながった。まさに「点と点がつながった」※1ような感じで、様々な入力フォームをFileMakerで作り、アドオンを貼り付けて、Redmineでまとめて受付けすればいいよね。

 FileMakerなら使いながらどんどんカスタマイズできる。日々変わる避難所の運営上の課題を反映しながら。そして避難所で起きるすべての事柄をひとつの窓口に集約してスタッフで共有したり責任者の承認を得たり。

 以上がレセプションfor Redmineを作るきっかけでした。

◈◈◈

 しかし、現実はそんなに甘くはない。
最近こんなシミュレーションゲームがあることを知りました。
 NHK「おはよう日本」でも放映されたようです。

 各地で開催されているセミナーの動画を見ると、次々と事案が起こり、データ化している時間などないように見えます。現場でシステムをカスタマイズしている暇もない。かなり操作に手間がかからないように作りこまないと追いつかないでしょう。

 音声入力やタッチのみの入力、画像や地図、屋内平面図との連動、顔認証などなど次々と思いつきますが...

 このゲームにすら対応できないものは、真の避難所運営システムではないのだろうと思います。
 FileMaker + レセプション for Redmine + Redmine で避難所で次々と発生する事象をワークフロー管理できたとしても、肝心の意思決定をどのように行うかが未知数。スタッフの多数決で決めることもあるかもしれないし、被災者でもある避難所の代表者が一人で決められることも限られているだろうし。緊急度によって変わる優先順位、共同生活とプライバシー、家族や知人というバイアスに囚われない公平性などなど。本当にどうやって決めるんだろう。
 このガイドラインには、女性が避難所運営の意思決定に加わることの必要性が書かれている。でも避難所運営委員会の3割を女性にというその3割の根拠は何?多数決で負けるよね。というか、そもそも委員会のメンバー構成の考え方もそうだしわからないことが多すぎる。
 少なくとも避難所で起きている問題が、意思決定する人たちに漏れなく可視化されるべきだとは思う。

◈◈◈

 しかし、本当に避難所では同じ事が起きていたのだろうか。3.11の避難所で何が起きていたのかを調べています。



Googleで検索 "3.11 避難所 現実"

◈◈◈

※1ちなみに点と点をつなげるジョブスの有名なスピーチはこちら。スタンフォード大学のサイトです。














HOW... 開発環境ほか


Photo by Clark Young on Unsplash
Photo by Clark Young on Unsplash

開発環境

  • macOS Catalina 10.15.7
  • Claris FileMaker Pro 19.2.1.14

動作確認環境

  • iPadOS 14.3
  • Redmine
    • bitnami Redmine Redmine 4.1.1.stable
      • オンプレで動かす場合を想定した環境です。
    • Planio 
      • クラウド版Redmine互換のサービスです。アカウント2つまでは無料。今回私はデモ用として利用しました。
  • Slack
  • Gmail
※現在、macOS BigSurで検証中です。BigSurへアップグレードした際にbitnami Redmineが起動しなくなった顛末は、別のブログで公開しています。

【bitnami】【Redmine】【OSX】cannot calculate MAC address: signal: killed

Mac版 bitnami Redmineのネットワーク設定

  •  Mac版 bitnami Redmine は、仮想環境で提供されており、初期設定のままだとインストールしたMac内でしかアクセスできません。他の機器からアクセス可能とするには、ポートフォワーディング設定が必要です。
  • まずは、Mac本体側のネットワーク設定を確認しておきます。
  • bitnami Redmine 側の設定を確認します。同じMac内ですがIPアドレスが異なっているのがわかります。
  • そこでポートフォワーディング設定を追加します。今回は、8080ポートで受けることにしました。
  • Network > Add
  • OK > Enable
  • 編集する場合は、選択して Edit
  • iPadから8080ポートで接続できました。

WHAT... もっと説明したいこと(随時更新中)



  • FileMakerの持つ他にはないアドバンテージ(状況によっては逆もまた真だが)
    • オンプレで動く。
    • iPad,iPhoneの無料のアプリ(FileMakerGo)に直接カスタムAppをインストールできる。
    • REST用の関数、JSON用の関数あり。
    • 画面・帳票・データベースがイメージしやすい。
    • 七つ道具のような一体感を持てる。
  • どうやってFileMakerの不具合を回避したか
  • いろいろな様式のFileMakerによる申請を一つの窓口で受け付けられるということの意味(ポテンシャル)
  • Redmineを推す理由
    • 仕事の記録を残せます。案件(チケット)に対する協議の記録。決定の根拠。
    • エビデンスでもあり、業務を引継ぐ際の資料にもなります。
    • 過去にプレゼンした資料 Preziで公開 「Excelで進捗管理している人のためのRedmine活用法」 「ヘルプデスクとの併用」でこのアドオンを使うイメージ。様式別に管理も分散しがちなので人を軸にしてその人が抱えている作業をまとめて見れるようにするのがねらい。
  • 言語切り替えの仕組み
    • 言語切替機能は現場によってかなり需要があるはず。
  • (Clarisへの要望も含め)アドオンを開発する際に共通化したかったもの
    • 共通のスクリプト、カスタム関数、値一覧、データベースなどなど
  • 極力標準のアイコンを使うようにした
    • フリーのアイコンはライセンス表記など取扱いに注意が必要なため。
  • カスタムAppとRedmineがつながるということは、FileMakerGoとRedmineがつながるということで、それはつまりFileMakerServerがなくても(一部の機能を除いて)使えるということ。

HOW... ステルスモードでデータ送信


Photo by Matt Artz on Unsplash

 このアドオンは、できるだけ操作数が少なくなるよう工夫したつもりですが、それでもまだ操作が面倒くさいという声もあろうかと思い、ステルスモードを用意しました。

 アドオンを貼り付けたレイアウト上で、スクリプト create_or_update_stealth を引数なしで実行してください。他のスクリプトから呼ぶことも可能です。新規データ送信にあたる「申請」か、送信済の場合の「訂正」かは、スクリプト内で判断します。レセプション3部作共通です。

HOW... Redmineのワークフロー


Redmine互換サービス Planioの管理>ワークフロー設定画面


 何らかの申請,報告,提案,問合せ,タスクは、受付した者(担当者)が全ての責任を負うのであればワークフローは不要です。担当者の対応案を他メンバーでチェックしサポートし、最終的には責任者が承認するなど、複数のメンバーが関与するのであればそこにはワークフローが存在します。

 Redmineのワークフローは、チケットのステータスで流れを決めます。例えば、チケットが新規登録されると「受理待」。対応案,回答案を協議し始めたら「審査中」。責任者が決定したら「承認済」。このようにステータスについて誰がどう変更できるのかを設定しておくのが、Redmineのワークフローです。

Redmine.jpサイトより:Redmineのワークフロー

 Slackにもワークフロー機能がありますが、Redmineの場合は案件をチケット(issue)として登録し、チケット単位にステータスを管理します。案件に対するスタッフのコメントは、スレッドのようにチケットごとにぶら下がります。担当者別の未完了リストや、審査中リストなど、チケット駆動型プロジェクト管理ツールならではの豊富な機能で案件の管理が可能です。



WHAT... 作り切れていないところ(随時更新中)



レセプションシリーズ・バージョン1.00でまだやり切れていないところをメモしておきます。
  • ボタン,ボタンバーの利用
    • Clarisに製品の不具合報告していますが、19.2でも再現しています。というかまだアドオンの作成機能自体がプレビュー扱いなので対応されるのを待つしかない状況です。
  • 命名規則の規定
    • オブジェクト名が衝突しないように製作者側で工夫しないといけないようです。暫定で接頭語を工夫しましたが完全ではありません。
    • テーブル定義・フィールド名の命名規則は明文化していません。
  • オリジナルテーマの作成 
  • MacとWinのフォント統一問題
    • Macのデフォルトフォントはまだ許せるが、Winのデフォルトフォントは許せない。かと言ってアドオンのためにレイアウトを2つ用意するわけにもいかず。
    • ライセンスに問題のないフォントも一緒に同梱すればいいのか?
  • グローバル変数の廃止または局所化
  • アドオン3部作を同じレイアウトに一度に複数インストールしようとした際の問題
    • FileMakerが応答なしの状態になります。いわゆるフリーズ。
    • 今のところ1レイアウトに(3部作のうちの)1つのアドオンをインストールしてもらうよう注意書きを「使い方」のページに記載しました。
    • もう少し検証してみてClarisへ問合せしようと思います。
  • Slack版での記事の修正機能実装
    • 記事の追加機能だけ実装しています。
  • Slack版での真のワークフロー対応
    • レセプション for  Slack はSlackの真のワークフロー機能に対応していません。単純にメッセージを投稿するだけの機能です。
    • Slackのワークフロービルダーは調査中ですが、Redmineのような現在受付中の案件一覧や、エスカレーションを必要としている案件一覧など、管理機能がどの程度あるのか知りたいところです。
    • slackの絵文字リアクションはいいですね。
    • おっと、Webhookを使ってslackのワークフローをトリガーできるみたいですね。
  • 画像の送信
    • レセプション=受付というコンセプトなので、実際に申請があった内容の詳細は、データ発生元(FileMaker側)を見てくださいという考え方でしたが、サムネイルを添付するとより分かりやすくなるのかも知れません
  • リセットボタン
    • 一度申請したレコードのリセット。管理者が行えるように。 これ実装してました。自分でも忘れてました。設定>チケットIDのリセット「✗」ボタンです。
    • 全件リセットはアドオンをアインインストールすればアドオンのデータ全て削除されるが。
  • 設定のエキスポート・インポート
    • 同じ設定を流用したいときのために。
  • アドオンひとつで複数のサービスを切り替える
  • 申請する側のポータルサイト(別カスタムAppとして)
    • 受け付けしたあとのバックオフィスでのワークフローは、RedmineやSlack、メールを使う想定ですが、申請する側も色々な様式で申請したログを一覧できればいいですよね。
    • いわば、個人用のポータルサイトのような。
    • 別のカスタムAppとして独立させ、レセプションシリーズのアドオンからログを書き込むようにすればいいかなと。どの様式でいつ申請して現在どういう進捗状況かと、自分が申請した案件へのリンクをログとして書き込むようにすれば、既存のカスタムAppが沢山動いている環境でも導入しやすそうです。REST APIで。
    • アドオン・レセプションシリーズのオプション機能としてポータルサイト用のデータ送信機能を追加する。

HOW... アドオン作成で参考にしたサイト


アドオンを製作する際の制約事項などを参考にしたサイト

DB Services 様

  • アドオンが自動的に現在のレコードとリレーションシップを作成するための必須条件や制約事項を解説したDB Services 様提供のデモ動画です。ほんの数分ですが、大変貴重な情報が詰まっておりました。ありがとうございました。

アドオンとして保存する時の一連の流れについて参考にしたサイト

AppWorks 様

Deploying Add-Ons Automatically with FileMaker 19

  • アドオン本体の製作が終わり、利用者がアドオンをインストールする際に目にする説明文などの準備に進んだら参考にすべきサイト。フリーのサンプルファイルが公開されており、スクリプトを自分用にカスタマイズできます。 
  •  AppWorks さん作の fmLog 2.1 は、Creative Commons Attribution 4.0 license で提供されています。


Claris Community の記事

Add-ons: (almost) everything you wanted to know about them but didn't know where to ask


GmailアカウントでFileMakerから送信する方法

うさぎのメモ帳 様 

Gmailアカウントを「メールを送信」のSMTPオプションに設定

Claris FileMaker Pro 19 ヘルプ

サポートされている cURL オプション