PickUp 投稿記事

Forguncy(フォーガンシー)で見積管理システムを作ってみました!(7)

Forguncy(フォーガンシー)で見積管理システムを作ってみました!(7)

Excel関数もグラフも使えて画面も変更できる、ノンプログラミングWebシステム開発ツール「Forguncy(フォーガンシー)」。

前回に引き続き、見積管理システムを作ります。

↓↓ 前回の記事はこちら ↓↓

今回は、以前作成した「簡単な見積管理システム」にメールによる通知機能を追加したいと思います。
以下のタイミングで通知を行います。

  • 承認処理を要求されているとき(ワークフロー担当になったとき)
  • 承認処理がされたとき
  • テーブルデータが更新されたとき

そこで、Forguncyに用意されているメール送信機能について調べてみました。

Forguncyに用意されているメール送信機能には、以下のものがあります。

  • メール送信コマンド
  • メール通知の登録コマンド
  • SendMailメソッド
  • パスワードのリセット案内メール

先ずは、ボタン型セルと「メール送信コマンド」を使って任意のタイミングでのメール送信機能を確かめてみます。
メール送信機能を使用する場合、事前に送信メールサーバーの設定を行う必要があります。
オンラインヘルプに以下の記載がありましたので、設定前に確認してください。

  • メール送信機能を使うためには、SMTP(簡易メール転送プロトコル)を利用できるメールサーバーが必要です。メールサーバーを持っていない場合、GmailやOutlook.comといったWebメールのサービスをSMTP送信サーバーとして利用することも可能ですが、認証に使用するメールアドレス(ユーザー名)と送信元のメールアドレスが異なっていても、メールの送信が許可されている必要があります。そのような設定に変更できない場合、SendGridやAmazon SESといったメール配信サービスの利用を検討してください。
  • アプリケーション開発時にForguncy Builder上で設定したメール送信サーバーの設定は、運用環境に引き継がれません。Forguncy Serverのサーバー管理ポータル上で設定しなおす必要があります。
  • SMTPS(SMTP over SSL/TLS)には対応しておりません。設定やご利用いただいているメール配信サービスによって異なりますが、ポート番号は465を利用することが多いため、設定がうまくいかない場合はSMTPS(SMTP over SSL/TLS)を利用していないかご確認ください。

送信メールサーバーの設定は、開発時ユーザーアカウント管理画面を用います。(運用時にはForguncyサーバー管理ポータルを用います)

以下の手順で開くことができます。

  1. Forguncy Builderの「ユーザー認証」リボンタブにある「開発時ユーザーアカウント管理」をクリック
  2. 「開発時ユーザーアカウント管理」をクリック
  3. 管理者のユーザー名とパスワードを入力してログイン
    (Forguncyの規定の管理者アカウントはアカウント名:Administrator、パスワード:123456です)
  4. 開発時ユーザーアカウント管理画面

開発時ユーザーアカウント管理画面が開いたら、「設定」-「送信(SMTP)」をクリックし、必要な項目を入力します。

「送信(SMTP)」をクリック

必要な項目を入力したら「テストメールの送信」ボタンをクリックして、テストメールが送信先アドレスに届くことを確認します。
無事にテストメールが届いたら、「設定の保存」ボタンをクリックします。
送信が失敗する場合の原因の1つに、SMTPサーバーの中には送信元のメールアドレスと送信サーバーのユーザー名が一致していないと送信できないという設定が、規定値として設定されていることがありますので、その場合は、SMTPサーバー側の設定を変更するか、送信元のメールアドレスと送信サーバーのユーザー名を一致させる必要があります。
以上で、送信メールサーバーの設定は終わりです。

次に、「簡単な見積管理システム」のTOP画面にボタン型セル「メール送信」を作成します。

「メール送信」を作成

「メール送信」ボタンのコマンドは、「メール送信」を設定します。

「メール送信」を設定

宛先アドレスには受信を確認できるアドレスを指定します。
差出人アドレスには、「送信者となる電子メールアドレスの文字列」「フォーム認証のユーザーの「ユーザー名」」「セルの参照値」「%CurrentUser%(ログインユーザー)」のいずれかとなっていますが、利用するSMTPサーバーの設定によっては、ユーザーアカウント管理画面のメールサーバーの設定と同じメールアドレスを指定します。

デバッグを開始し、「メール送信」ボタンをクリックしたところ、テストメールを受信したことを確認できました。

いよいよワークフローのプロセスに「メール送信」コマンドを追加して、承認要求の通知と承認結果の通知を追加します。
「見積リスト」テーブルのワークフローダイアログを開きます。

ワークフローダイアログ

それぞれのアクションの実行後コマンドに、「メール送信」コマンドを設定します。

●「提出」アクション:

「提出」アクション

ワークフロー設定の中で使う「メール送信」コマンドでは、宛先に以下のキーワードが使用できます。

  • %ReleatedAssignTo%:関係する承認者。承認者が3人(A,B,C)いた場合、3人に送信します。もしAが承認済みの場合、BとCの2名に送信します。
  • %HistoryPartner%:ワークフローの履歴に含まれる人
  • %AssignTo%:次の担当者
  • %Creator%:作成者
  • %LastModifier%:最終更新者

今回は、次の担当者である「%AssignTo%」を選択しました。

本文には数式が使用できたので、ワークフローバーがある「見積書プレビュー」ページの非表示エリアに次の担当者の氏名を表示させ、セル参照をしてみました。

次の担当者の氏名を表示させ、セル参照

また、「メール本文の編集…」をクリックすると、画面右側に表示されるキーワードを使用できたので、「提出」アクションの実行者(%CurrentUser.FullName%)を挿入しました。

●「承認」アクション:

「承認」アクション

宛先には、見積書提出者である作成者(%Creator%)を選択しました。
本文には、キーワードを使って作成者の氏名(%CurrentRow=(見積リスト,作成者.氏名)%)を挿入しました。

●「却下」アクション:

「却下」アクション

「承認」アクションと同様です。

設定は以上ですが、確認するために開発時ユーザーアカウント管理画面から見積書作成者とそのリーダーのメールアドレスを実際に受信できるメールアドレスに変更します。
今回は、「正門 恵子」さんとリーダーである「秋山 秀樹」さんのメールアドレスを変更してから、デバッグを開始しました。
確認手順は以下です。

  1. 「正門 恵子」さんのアカウントでログイン
  2. 見積書作成をして「提出」ボタンをクリック
  3. 次の担当者に「秋山 秀樹」さんを指定して「OK」をクリック
  4. 以下内容のメールを受信
  5. 承認依頼⇒OK
  6. ログアウトして「秋山 秀樹」さんのアカウントでログイン
  7. 先ほど「正門 恵子」さんのアカウントで「提出」した見積書を表示
  8. 「却下」ボタンをクリック
  9. 以下内容のメールを受信
  10. 非承認通知⇒OK
  11. ログアウトして「正門 恵子」さんのアカウントでログイン
  12. 「却下」された見積書を表示
  13. 再度、次の担当者に「秋山 秀樹」さんを指定して「提出」ボタンをクリック
  14. ログアウトして「秋山 秀樹」さんのアカウントでログイン
  15. 先ほど「正門 恵子」さんのアカウントで「提出」した見積書を表示
  16. 「承認」ボタンをクリック
  17. 以下内容のメールを受信
  18. 承認通知⇒OK

設定した通りの動作で、承認要求の通知、承認結果の通知を確認できました。

次に、マスターテーブルである「取引先情報」テーブルが更新された際、自動で通知メールを送信する機能を追加します。
用いるコマンドは「メール通知の登録」です。
「取引先情報」ページに「メール通知の登録」コマンドを設定するボタン型セルを追加します。

「メール通知の登録」コマンド

コマンドは次のように設定します。

コマンドの設定

設定はこれだけです。
今回は、部長である「葛城 孝史」さんのメールアドレスも変更しておきます。
デバッグを開始して、以下の手順で確認します。

  1. 「正門 恵子」さんのアカウントでログイン
  2. 「取引先情報」をクリック
  3. 「メール通知の登録」ボタンをクリック
  4. 「取引先情報」をクリック し、「メール通知の登録」ボタンをクリックする
  5. 「すべての変更を通知する」にチェックを入れて「OK」をクリック
  6. 「すべての変更を通知する」にチェックを
  7. 「正門 恵子」さんに設定したメールアドレスで通知設定完了メールを受信
  8. 通知設定完了メールを受信⇒OK
  9. 「葛城 孝史」さん、「秋山 秀樹」さんのそれぞれのアカウントでログインして、2~5を繰り返す
    (作成したメール通知機能を受け取るか受け取らないかはユーザーアカウントごとに設定できるため)
  10. 「秋山 秀樹」さんのアカウントでログイン
  11. 「取引先情報」をクリック
  12. リスト中のいずれかの「編集」をクリックしてデータを変更
  13. リスト中のいずれかの「編集」をクリック
  14. 「登録」ボタンをクリック
  15. 「正門 恵子」さん、「葛城 孝史」さん、「秋山 秀樹」さんのそれぞれに設定したメールアドレスで通知メールを受信
  16. 通知メールを受信⇒OK
  17. 「葛城 孝史」さんのアカウントでログインし、取引先情報を編集
  18. 取引先情報を編集
  19. 「登録」ボタンをクリック
  20. 「正門 恵子」さん、「葛城 孝史」さん、「秋山 秀樹」さんのそれぞれに設定したメールアドレスで通知メールを受信
  21. 通知メールを受信⇒OK
  22. 「Administrator」でログインし、取引先情報を削除
  23. 取引先情報を削除
  24. 「正門 恵子」さん、「葛城 孝史」さん、「秋山 秀樹」さんのそれぞれに設定したメールアドレスで通知メールを受信
  25. 通知メールを受信⇒OK

Forguncyに用意されているコマンドだけで、更新日時や更新者を含めたテーブルの更新通知メールを送信することができました。
今回もコードを使っていません。
もちろんSendMailメソッドを使用して、JavaScriptから送信先とメールのタイトル、本文を指定してメールを送信することもできるようです。
今後もForguncyに用意されている機能を使って、簡単にアップグレードしてみたいと思います。