cybozu developer network

カテゴリー内の他の記事

【Garoon JavaScript API】ワークフロー承認後にメールを送信する

Moment.js はメンテナンスモードになり、日付処理できる代替ライブラリへの移行が推奨されています。
代替ライブラリのひとつ Luxon については、kintone カスタマイズでの導入方法の紹介記事があります。

Index

概要

2017年11月のアップデートで追加されたワークフローの承認実行後イベントを使い、ワークフローの申請内容をメール送信します(メール送信する部分はGaroon SOAP APIを使用しています)。

前提条件と注意事項

  • このカスタマイズには、クラウド版 Garoon または パッケージ版 Garoon 5.0.0以降の環境が必要です。
  • ワークフロー JavaScriptカスタマイズは、JavaScriptを適用した後に申請されたワークフローが対象になります。
    それ以前に申請されたワークフローには適用されません。
  • サンプルプログラムは、その動作を保証するものではありません。
  • サンプルプログラムの技術的なサポート等は行っていません。
  • 代理承認時にカスタマイズが動作しない不具合があることを確認しております。(2019/2/21追記)
  • このカスタマイズを利用できるのは、cybozu.com 共通管理者権限、またはワークフローのアプリケーション管理者権限を持つユーザーに限られます。(2021/8/30追記)

できること

ワークフローとメールを連携させることにより、メール送信前に上司の確認・承認をはさむことができます。
例えば、社外向けの情報発信メールについて、送信前に上司による確認を行うようなケースが想定されます。

完成イメージ 

Garoonのワークフローにて承認を行うと、申請内容がメールで送信される流れになります。

  • 「承認する」ボタンをクリックすると、メールが送信されます。

________________.png

ワークフローの設定に対して、JavaScriptファイルを設定しカスタマイズしていきます。

Garoon ワークフローの設定手順

ワークフローの項目の内容は、会社によって異なります。 
ここでは、サンプルということで、メール送信のために必要な項目を網羅した申請フォームにJavaScript/CSSカスタマイズを設定する流れをご説明します。

1. ワークフローの申請フォームを作成する 

まずは以下の項目を配置して、ワークフローの申請フォームを作成していきます。
申請フォームの作成方法については、Garoon ヘルプ - 申請フォームの作成の流れ クラウド版パッケージ版をご参照ください。

____.jpg

申請フォームの内容は、所謂メーラーです。それぞれの項目は以下の通り設定してください。
項目コードは、JavaScriptコード内でそれぞれの項目を指定するための一意の文字列になります。

項目名 項目タイプ 項目コード 必須 備考
申請理由 文字列(複数行)     承認者への通達事項を記載します。
JavaScriptでは扱わないため、項目コードは不要です。
To 文字列(複数行) To 〇  メールアドレスを1行1アドレスで入力します。
Cc 文字列(複数行) Cc   メールアドレスを1行1アドレスで入力します。
Bcc 文字列(複数行) Bcc   メールアドレスを1行1アドレスで入力します。
タイトル 文字列(1行) Subject 〇   
本文 文字列(複数行) Body 〇   
添付ファイル ファイル添付 Attach   5つまで登録可能とします。

上記の通り設定が完了したら、土台となる申請フォームの作成は完了です。

2. Javascript/CSSファイルを適用する

申請フォームの作成が完了したので、ここから作成した申請フォームにJavaScriptファイルを適用していきます。

3. 適用ファイルの準備

下記のサンプルコードをエディタにコピーして、ファイル名を「wf_to_mail.js」、文字コードを「UTF-8」で保存します。
※ ファイル名は任意ですが、ファイルの拡張子は「js」にしてください。

ポイント

  • workflow.request.approve.submit.successイベントに実装することにより、承認が行われた後に起動する処理を作成することができます。

  • ワークフローに登録した添付ファイルを、5つまで添付ファイルとして送信することができます。
  • 送信者は申請者ではなく、承認者になります。申請者名義での送信はできないため、タイトルに申請者名を明記しています。

4. JavaScript/CSSファイルとして使用するファイルのおよびリンクの追加

  1. 「申請フォーム情報」部分の右端にある「JavaScript / CSSによるカスタマイズ」をクリックします。

    ________.png

    ※ 申請フォームの詳細画面に「JavaScript / CSSによるカスタマイズ」というリンクが表示されない場合、
    ワークフローのカスタマイズが許可されていない場合はリンクが表示されませんので、Garoon ヘルプ - ワークフローのカスタマイズを許可する クラウド版パッケージ版をご参照ください。
  2. [カスタマイズ] 項目に「適用する」を選択します。jsが使用するjQuery、Moment.jsおよび作成した「wf_to_mail.js」ファイルを追加し、「設定する」をクリックします。

    JS__.png

本カスタマイズでは、Cybozu CDNの以下のライブラリーを使用します。

  • jQuery
    https://js.cybozu.com/jquery/3.3.1/jquery.min.js
  • Moment.js
    https://js.cybozu.com/momentjs/2.20.1/moment.min.js

※ jQuery、Moment.jsはwf_to_bbs.jsより上位に登録してください。

Promiseオブジェクトを使用しているため、IEをお使いの方は下記URLを追加してください。

  • Promise Polyfill
    https://www.promisejs.org/polyfills/promise-7.0.4.min.js

以上ですべての設定は完了です。最初にお見せした完成イメージの通り、動けば成功です。

おわりに

Garoon APIのカスタマイズサンプル ワークフローとメールとの連携方法をご紹介しました。
ワークフローの承認実行のタイミングでGaroon内の別アプリにデータを登録することが簡単にできます。

更新履歴

  • 2021年8月30日
    添付ファイルの ID を取得する処理を、workflow.request.approve.submit.success イベントのワークフローオブジェクトを使う方法から、REST API(申請データの全件取得) を使う方法に変更

このTipsは、2021年8月版 Garoonで確認したものになります。

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
s-naka

お世話になります。

こちらを試しに実装してみたところ、メール送信の箇所でPOST 520(Garoon Error)が発生したのですが、何か考えられる原因はありそうでしょうか。

Avatar
s-naka

エラーを解析してみたところ、指定されたメールサーバーが見つからないというエラーでした。

詳しく調査してみようと思います。

サインインしてコメントを残してください。