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

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

ワークフローの概要

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

ワークフローの流れ

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

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

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

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

利用する部品

[wc_row] [wc_column size=”one-fourth” position=”first”]

[/wc_column] [wc_column size=”three-fourth” position=”last”]

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

[/wc_column] [/wc_row] [wc_row] [wc_column size=”one-fourth” position=”first”]

[/wc_column] [wc_column size=”three-fourth” position=”last”]

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

[/wc_column] [/wc_row] [wc_row] [wc_column size=”one-fourth” position=”first”]

[/wc_column] [wc_column size=”three-fourth” position=”last”]

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

[/wc_column] [/wc_row]

準備

自社内に 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. 承認データに基づいてスクリプトを実行

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]
1.入力フォームからデータを取得

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

フリープランを選択

メールアドレスの検証

1-2 Typeform で Web フォームを作成
New typeform をクリック。
[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

今回は、Registration の中の Sign Up Sheet Template を使います。
[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

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

1-3 Claris Connect で、新規ステップを作成
(Claris Connect 側で)
App で Typeform を選択。
アカウントの認証。
Typeform 側で使用するための URL をコピー。
[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]
2.データベースで新規レコード作成

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

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]
3.承認処理

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

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

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から送信される承認依頼メールのイメージ

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

[備考]
一度承認したメールで再度承認を行うと、以下の画面が表示されます。
[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row] 承認結果によってその後のフローを分岐させる方法は、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 で行います。

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]
5.承認データに基づいてスクリプトを実行

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row]

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

[wc_row] [wc_column size=”one-half” position=”first”]

[/wc_column] [wc_column size=”one-half” position=”last”] [/wc_column] [/wc_row] ※画像クリックで拡大します

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