Exmentの面白い機能 – 第2回「画面からの実行不可設定」
おはようございます。こんにちは。こんばんわ。
エヌ・ケイ・カスタマイズの 泉 です。
ちょっと前回から間が空いてしまいましたが、忘れていたわけではありません。
引き続きExmentの布教活動をやっていきたいと思います。
画面からの実行不可設定
私がExmentのシステムを構築する際に、この設定を考慮しないことはありません。
そう、皆さんご存知の
「画面からの実行不可設定」
です。
(参照)
・Exmentマニュアル「4.テーブル設定 – カスタムテーブル – 拡張設定 – 画面からの実行不可設定」
この機能を簡単に説明しますと
『画面』からデータの新規作成、編集、削除、インポート、エクスポートの実行可否を設定できる機能
です。
ちなみに、この『画面』というところがポイントになってきます。
私に刺さった機能の魅力 の前に
機能の魅力の前に、なぜ「画面からの実行不可設定」を常に考慮しているかを説明します。
そこには Claris FileMakerとExmentの連携 が影響しています。
Claris FileMakerとExmentの連携に限ったことではなく、複数のシステム間でデータ連携する場合、必ず注意しなければならないことに『データの完全性』があげられると思います。
特に、Claris FileMakerとExmentの連携のように、「非同期連携」がある場合は、特に気をつけなければいけません。
例えば以下のようなケースです。
(1) Exmentで Field A の値に X を登録
(2) Claris FileMakerがExmentの Field A の内容を取り込む
(3) Exmentで Field A の値を Y に更新
(4) Claris FileMakerで Field A の値を Z に更新し、Exmentに連携
このケースでは、(3)の時点で、ExmentとClaris FileMakerで Field A の内容に差異が生じており、(4)の時点で、Claris FileMakerの内容でExmentを更新することで、Exmentでの更新内容は破棄されています。
問題は、(4)の時点で、ExmentとClaris FileMakerの変更内容のどちらが正だったのかわからないまま、Claris FileMakerの内容で強制的に上書きしてしまっていることです。
解決策として、(4)のタイミングでClaris FileMaker側で、変更前の値を保持しておいて、変更前の値とExmentの現在の値を比較して、差異があれば、Claris FileMakerとExmentのどちらの値を採用するか、確認画面を出す。
などが考えられますが、処理やデータフローが複雑になります。
ですので、シンプルに設計するなら、Claris FileMakerとExmentで連携したタイミングで、どちらかのデータをロックし変更できなくします。
このデータをロックするのに便利なのが、「画面からの実行不可設定」です。
私に刺さった機能の魅力
「画面からの実行不可設定」という機能は、名称からして、『新規作成とか編集、削除ができなくなるんでしょ?』と私は思いました。
実際はそうなんですが、この機能には隠された『オプション効果』があります。
それは、
『画面(フォーム)からは実行できないけど、「データ更新設定」や「プラグイン」からは実行できるよ!!』
ということなんです。(拍手!!)
ピンとこない人がほとんどだと思いますので、例を示します。
例えば以下のような仕様の申請データを管理したいとします。
① 申請データはユーザが新規作成する。
② 申請データは削除不可。
③ 申請データは 起票→申請待ち→申請→承認待ち→承認/却下 という状態遷移を有する。
④ 申請データは [状態]:申請 以降、[状態]以外のフィールドのユーザによる編集不可。
上記の仕様をExmentだけで実現しようとすると、「ワークフロー」機能を使えば、簡単に実装できます。
ですが、[状態]の承認待ち、承認、却下をClaris FileMakerから更新しようとすると、同じようには行きません。
そこで活躍するのが「画面からの実行不可設定」です。
上記の仕様の場合、以下のような設定にします。
問題は上記③と④の仕様を満たすことですが、まず、[編集]にチェックを入れることで、画面から編集できなくします。
これで、一覧画面、詳細画面から「編集」ボタンが消え、編集画面が表示できないなります。
それでは、どうやって[状態]フィールドを更新するのか?
ここで、「データ更新設定」で以下の設定を登録します。
ポイント①の設定をすることで、詳細画面にボタンを追加できます。
ポイント②の設定をすることで、[状態]を特定の値に更新することができます。
この設定によって、下図のように詳細画面に、特定のフィールドを更新するボタンが表示されます。
「画面からの実行不可設定」によって、『編集不可』となっておりますが、「データ更新設定」による機能は、その影響をうけません!!
編集不可だけど編集(更新)ができるわけです!!
このような『機能のコンボ』をうまくつかうと、Exmentの可能性がさらに広がります!!
おわりに
いかがだったでしょうか?
私の説明下手のせいで、上記説明は言葉足らずのところがあるかもしれません。
『もう少し詳しく説明が聞きたい』という方は、是非、弊社にお問い合わせください。
我ながら、第1回目に続き、マニアックな機能の説明をしてしまったと思っていますが、
相変わらず、まったくもって後悔しておりません!!
それくらい、自分には刺さった機能だったのです。
次回もマニアックな機能なのか、
はたまた正統派な機能なのか、
ぜひご期待ください!!
PS.月1Exmentブログ、タイムリミット7分前に完了したことは内緒です。。。