設計情報

投稿者:SPIRERS ナレッジ向上チーム 2021年12月14日 (火)

MKupdate vol.3「SPIRAL ver.2.18 DBトリガ」

SPIRAL ver.2.18の新機能のひとつである「DBトリガ」ですが、SPIRERSナレッジ向上チームが実際に使ってみたところ、アプリのメンテナンス性が向上する機能であることが分かりました。
そもそもメンテナンス性とは何か、DBトリガの活用例とそのメンテナンス性の高さについてご案内します。

DBトリガの詳しい説明は、SPIRAL ver.2 サポートサイト DBトリガを参照ください。

SPIRAL ver.2のメンテナンス性

SPIRAL ver.2の新バージョン2.18は、メンテナンス性が爆上がりするアップデートとなっています。

メンテナンス性とは
情報システムにおけるメンテナンス性とは、以下のようなことを言います。
・バグ対応や機能追加ができる
・外部環境の変化に適応できる

メンテナンス性が高いと…
では、そのメンテナンス性が高いとどんなメリットがあるのでしょうか。
作る人、使う人、売る人に分けてメリットを上げてみました。
作る人
(アプリを開発・設定する人)
・追加/改修がしやすい
使う人
(作成したアプリを使用する人)
・反映スピードが速い
・改修コストを抑えられる
売る人
(アプリを販売する人)
・追加/改修があっても素早く対応できる
このように、事業に関わる全ての人にメリットがあります。

じゃあSPIRAL ver.2のメンテナンス性は?
実は、SPIRAL ver.2はもともとメンテナンス性が高いサービスなんです。
DBの構造
→フィールドの並び替えや新規追加、設定を後からでも簡単に変更できる。
ページとブロック
→フォームの付け替えやURLの変更が簡単にできる。
ロール
→運用開始後でも権限設定を簡単に変更できる。

つまり、使いづらいと思ったところをすぐに追加・修正して、使いやすいアプリに改善していくことができます!

他のサービスでこれらのことをしようとすると、データベースから作り直したり、一部の変更でも費用や時間がかかったりと、なかなか大変かと思います...
SPIRAL ver.2ではクリック操作で柔軟に対応できるため、外注をしなくても自分たちで解決できます。
なので、SPIRAL ver.2は内製化に向いているプラットフォームでもあります。

メンテナンス性が高く、いろいろなメリットがあるSPIRAL ver.2ですが、今回のアップデートによってさらにメンテナンス性が向上しました。
ver.2.18では、認証エリア、PHP対応など様々なアップデート機能がありますが、その中でもメンテナンス性をぐんと向上させるのが「DBトリガ」機能です。

新機能「DBトリガ」

DBトリガは、レコードの登録/更新/削除をきっかけに、各種アクションが実行できる機能です。

レコードアクション
自DBへの更新処理と、他DBへの登録/更新/削除を実行することができます。
アクションを複数組み合わせることで、複数DBへの登録や、更新登録といった動作も設定可能です。

非同期アクション
メールアクションでは、レコード内のメールアドレス、または固定のメールアドレスにメール送信をすることができます。
※非同期アクションにはメールアクションのみが用意されています。(ver.2.18 2021/11/30時点)

では、このDBトリガの活用方法とそのメンテナンス性の高さを2パターンの利用シーンに沿ってご紹介いたします。

活用シーン①問い合わせ管理

まず、問い合わせ管理アプリに機能を追加するシーンです。
このようなアプリがあったとします。
(1)利用者はフォームからお問い合わせ内容を送信する
(2)業務担当者はアプリ操作画面から内容を確認し、自身のメーラーから回答メールを送信する
(3)対応が完了したら、アプリ操作画面から対応内容やステータスを更新する

といったシンプルなフローです。
ただこのフロー、(2)の"自身のメーラーから回答メールを送信する"が少し気になりますね。
業務担当者は、アプリ操作画面 → メーラー → アプリ操作画面 と複数の画面で業務をしなければいけません。
しかも、対応内容をDBに残すために送信したメールをコピー&ペーストする必要もありそうです。

お気づきの方もいらっしゃるかもしれませんが、この回答メールを送る部分はDBトリガで自動化できそうですよね。
ということで、この既存のアプリに回答メール自動送信機能を追加してみたいと思います!
フィールドを追加する
まず、回答メールの自動送信に必要なフィールドをDBに追加します。 今回は、2つのフィールドを追加しました。
フィールド名 タイプ 用途 セレクト項目
メール送信フラグ セレクト メールを送信する/しないを指定するフラグ 1 送信しない
2 送信する
回答内容 テキストエリア メールに差し込む回答内容を入力する項目
メールアクションを設定する
次に、自動回答メールの設定を追加します。
今回は、操作画面からレコードが更新されたときにトリガを作動させるので、更新トリガに非同期アクションを作成します。 作成ボタンをクリックするとメールアクションの作成画面が表示されます。
設定項目が多いため、一部の設定項目のみ紹介いたします。
経路条件 一部の経路 > 操作画面
指定方法 レコード
フィールド メールアドレス
配信条件 条件付き配信
条件抽出(簡易) [メール送信フラグ] [等しい] [送信する]
作成したメールアクションは無効化されているため、有効化をします。 以上でメールアクションの設定は完了です。

追加したフィールドの権限を設定する
最後に、アプリロールから追加したフィールドの権限を設定します。
追加したフィールドは権限が無い状態になっているため、閲覧/作成/変更の権限を追加します。 以上で設定は完了です。

追加設定してみた感想
・3ステップだけですぐに自動回答メールの設定ができた
フィールドの追加、メールアクションの設定、権限追加だけで実装ができるため、実際に設定にかかった時間は15分ほどでした。
・担当者画面の修正が不要だった
SPIRAL ver.2にはアプリ操作画面が用意されているため、ソースをいじって担当者画面に項目を追加する必要はありませんでした。

ver.2はもともとメンテナンス性が高く、さらにDBトリガ機能でメンテナンス性がやや上がりしているということが分かりました!

活用シーン②Web申請

Web申請アプリに機能を追加するシーンです。
このようなアプリがあったとします。
(1)申請者はフォームから申請内容を送信する
(2)業務担当者はアプリ操作画面から内容を確認し、不備がある場合は申請者にメールや電話で連絡をして情報を修正する
(3)業務担当者は内容に問題が無ければ申請を承認する

というフローです。
このフローでは、(2)の"申請者にメールや電話で連絡をして情報を修正する"が気になりますよね。
業務がWeb化できているようで、実は手動での運用が残ってしまっています。ここもWeb化したいですね。
また、現場から「データに変更がかかるたびに履歴を残し、見れるようにして欲しい」といった要望が出たとします。
差し戻しフローの追加と、変更履歴機能の追加... そう簡単にはいかなさそうなそうですが、この2つも追加実装してみようと思います!

差し戻しフロー
(1)業務担当者が審査ステータスを「差し戻し」にすると再申請依頼メールが飛ぶ(DBトリガ メールアクション)
(2)申請者がメールのURLをクリックすると再申請フォームにアクセスできる(認証エリア+クリックログイン)
(3)申請者が該当箇所を修正して送信すると、データが更新される(更新フォームブロック)

というようにフローを追加しました。
DBトリガのメールアクションと既存機能の組み合わせによって、差し戻しのフローを簡単にWeb化することができました!

変更履歴の取得
(1)申請DBと同じ内容を格納できる変更履歴DBを作成
(2)申請DBを更新したとき、変更履歴DBにデータを登録するレコードアクションを設定

というようにフローを追加しました。
DBの作成と、DBトリガのレコードアクションの設定だけで変更履歴機能を追加することができました。

ちなみに、削除したときに作動するレコードアクションも設定することで、削除したデータの履歴を取ることも可能です。
データを間違えて削除してしまい青ざめる... みたいな恐怖体験ともおさらばできそうです!

追加設定してみた感想
結構ボリュームのある追加実装になるかと思いましたが、1時間ほどで追加することができました。
なぜ短時間で設定できたかというと、追加や修正をするときに一から作り直さないといけないものが無かったからです。
通常、既存のシステムに手を加えるとなると、画面やデータベースを再構成する必要が出てしまうことが多いですが、SPIRAL ver.2では追加したい機能だけをくっつけていくような感覚で実装をすることができます。

まとめ

もともとメンテナンス性の高いSPIRAL ver.2にDBトリガ機能が追加されたことで、実現できることが格段に増え、機能追加も柔軟に対応できるようになりました。
まとめると、SPIRAL ver.2は今回のアップデートでメンテナンス性爆上がりしてます!!!
みなさんもぜひ、新機能「DBトリガ」を活用して業務アプリをパワーアップさせてみてください。

今回はメンテナンス性をキーワードに、新機能「DBトリガ」の紹介をさせていただきました。
DBトリガの詳しい説明は、サポートサイト DBトリガを参照ください。
解決しない場合はこちら コンテンツに関しての
要望はこちら