KBS Cloud for GCP Windows をリリースしました

ハンズオンガイド: Claris Connect で承認ワークフローを作る

Claris Connect と自社内の FileMaker Server を使って承認ワークフローを作る方法を説明します。

ワークフローの概要

今回は、Web申請のサンプルアプリケーションを作成します。
Web画面からの申し込みがあったら、承認者がメールでその内容を確認して承認可否を判断します。承認の場合は受付手続き、否認の場合は申請者へのお断りの連絡を行います。申請内容および承認結果はデータベースに記録されます。

ワークフローの流れ

業務の流れは以下のとおりです。

  • STEP.1
    Webフォームから申し込み
  • STEP.2
    承認者がメールで承認処理
  • STEP.3
    申請者と担当者にメールで連絡

これをシステムの機能単位に落とし込むと、以下のような構成になります。
今回作成するClaris Connectのフローには以下の5つのステップが含まれます。

  1. 入力フォームからデータを取得
  2. データベースで新規レコード作成
  3. 承認処理
  4. 承認データをエンコード
  5. 承認データに基づいてスクリプトを実行

利用する部品

Claris Connect
FileMaker と Web サービスを連結してワークフローを構築することができます。

FileMaker Server
自社内でサーバを立てている場合と、FileMaker Cloud for AWS を利用している場合がありますが、ここでは自社内のサーバを使います。

Typeform
認証なしで誰でもアクセスできる、見た目のいいWeb画面を作成するために、Web 入力画面を提供する Web サービスを利用します。
Claris Connect で利用できる入力画面のWebサービスには、Formstack, Typeform, Wufoo がありますが、今回は月あたり 100 リクエストまで無料で使える Typeform を使います。

準備

自社内に FileMaker Server が稼働していて、Claris Connect を利用できるという前提で、サンプルアプリケーションを作成するのに必要な準備作業を説明します。

1.FileMaker Server データベース

データベースファイルをホストするFileMaker Serverは、18v3以上である必要があります。

2.Agent マシン

Firewall内にAgentというアプリケーション(あるいはサービス)を1つ立ち上げておくことで、社内にあるすべてのFileMaker ServerでホストしているデータベースとClaris Connectで通信ができるようになります。
手順に沿ってインストールを行ったあと、Configuration.ymlを編集して、接続したいデータベースの情報を入力しておきます。

3.SSL 証明書

FileMaker Server には、正式な SSL 証明書が必要です。

フローの作成

Claris Connect でフローを作成していきます。

  • STEP.1
    新規 Project を作成
  • STEP.2
    新規 Flow を作成
  • STEP.3
    Flow に Step を追加

以下のステップを、順に作成します。

  1. 入力フォームからデータを取得
  2. データベースで新規レコード作成
  3. 承認処理
  4. 承認データをエンコード
  5. 承認データに基づいてスクリプトを実行

最終的にできあがるフローは以下のようになります。

1.入力フォームからデータを取得

1-1 Typeform で登録手続き
Typeform でアカウントを作成します。
https://www.typeform.com/

フリープランを選択

メールアドレスの検証

1-2 Typeform で Web フォームを作成
New typeform をクリック。

今回は、Registration の中の Sign Up Sheet Template を使います。

テンプレートを適宜修正(日本語化など)します。
Typeformでは、アイコンを使ったり、キーボードショートカットを設定したりなどのカスタマイズが可能です。

1-3 Claris Connect で、新規ステップを作成
(Claris Connect 側で)
App で Typeform を選択。
アカウントの認証。
Typeform 側で使用するための URL をコピー。

(Typeform 側で)
設計画面の Connect -> Webhooks で、
データを送信する先として、Claris Connect 側で指定されたURLを設定。

2.データベースで新規レコード作成

On-Premise FileMaker Server という App を使います。

(FileMaker 側)
Web フォームに入力されたデータと、承認結果のデータ、レコード ID を保持するフィールドを準備し、レイアウトに配置します。

(Claris Connect 側)
Agent Key と Agent の configuration.yml で定義したデータベース名を入力します。

入力フォームのレスポンスとFileMakerのフィールドを紐付けます。

3.承認処理

このステップでは、Utility Appの一つ、Approvalを使います。
Approvalは、指定したメールアドレスに、Reject/AcceptのボタンがついたHTMLメールを送信し、その結果を受け取る機能を提供します。

設定画面で以下を設定します。

Title – 承認メールの表題
Description – 承認メールに含まれる説明文
Approver email – 承認依頼メールの送信先アドレス
Approver name – 承認者の名前
Requester name – 申請者の名前
Attachment link – 添付ファイルの URL
Due date – 承認処理を行える期限

それぞれ、前工程のステップのレスポンスから選択するか、文字列を直接入力します。

Due date については、1, 3, 5 days, 1, 2, 3, 4 weeks, 1, 2, 3, 6 months から選択できます。
あるいは計算で日数を求めたい場合は、前工程のステップのレスポンスなどを Dates utility を使って加工します。

Approvalから送信される承認依頼メールのイメージ

承認ボタンを押した後の画面

[備考]
一度承認したメールで再度承認を行うと、以下の画面が表示されます。

承認結果によってその後のフローを分岐させる方法は、2つあります。
a. Claris ConnectのIf-Then Utilityを使う。
b. FileMakerのIfスクリプトステップを使う。

承認か否認かによって起動するWebサービスが変わる場合は、Claris Connect内で分岐をさせるaの方法がいいですが、後工程がすべてFileMaker内で完結する場合は、bの方法も可能です。この場合は、承認結果の値を、呼び出すスクリプト名と共にFileMakerに渡す必要があります。
今回はbの方法を採用します。
 

4.承認データをエンコード

承認結果に基づいて、FileMaker Server にスクリプトを実行させるのですが、

  • レコードID
  • 承認ステータス(Accepted か Rejected の文字列)
  • コメント(承認メールで入力された任意の文字列)
の3つのデータを、スクリプト引数として渡す必要があります。しかし、FileMaker のスクリプトに渡す引数は1つしか指定できません。
そこで、3つのデータを JSON 形式にまとめます。
また、コメント欄に日本語が入力される場合があるので、エンコードも行います。
この2つの処理を、Text Utility という App で行います。

5.承認データに基づいてスクリプトを実行

On-Premise FileMaker Server で、Action として Execute Script を選択します。
レイアウト、スクリプト、スクリプト引数を指定しますが、レイアウトとスクリプトの名称、スクリプト引数の内容に日本語を使うことはできません。(設計画面で設定はできますが、フローの実行時にエラーになります。)

承認結果を申請レコードに書き戻すため、FileMaker側のスクリプトには以下のステップを含めます。

※画像クリックで拡大します

 
以上でフローの作成は終了です。