〈 HULFT Square 技術コラム【つないでみた編】 〉

HULFT Square 技術コラム【つないでみた編】一覧

技術コラム一覧

Vol.23
GMOサインにつないでみた

はじめに

2016年の電子帳簿保存法によるペーパーレス化の傾向が与える影響は今でも大きく、多くの企業がそれらに関わるサービスを利用していると思います。今回はそのうちのひとつであるGMOグローバルサイン・ホールディングス株式会社の「電子印鑑GMOサイン」に対して、HULFT SquareでDXを図っていきたいと思います。

GMOサインとは

電子印鑑GMOサイン(以下GMOサイン)は、GMOグローバルサイン・ホールディングス株式会社が開発・提供している電子契約サービスです。

アカウントを作成することで、電子契約の機能を手軽に利用することができます。またGMOサインは契約書を送る側に寄ったサービスのため、契約書を受け取る側がGMOサインのアカウントを所持している必要もありません。

さらに、GMOサインにはAPIによる各種処理が実装されており、RESTを用いた他システムやサービスとの連携が可能です。例えば、以下のようにHTTPトリガー等を用いてHULFT Squareの処理をキックし、APIを用いてGMOサインから契約書を送信するなどが挙げられます。

検証内容

今回はHULFT SquareとGMOサインのAPIを活用して、以下の処理が実行できることを確認していきます。

  • 契約書の複数宛先一括送信

事前準備

◎GMOサインの設定

GMOサインのAPIを利用するためには、接続するための認証情報が必要になります。こちらはあらかじめGMOサイン側に発行してもらう必要があるので、API利用の旨を伝え認証情報を発行してもらいます。

また、以下のURLより無料で利用可能な「お試しフリープラン」のアカウントを入手することで、基本的な機能の確認を行うことが可能となっています。

料金プラン│電子契約なら電子印鑑GMOサイン

(開発環境に移行したい場合はGMOサイン側に問い合わせを行う必要があります。)

◎HULFT Square設定

GMOサイン側の認証情報を取得次第、GMOサインへのHULFT Squareの接続設定を行っていきます。

最初に、コネクションの設定を行います。[リソース]>[コネクション]を開いて、青い[新規追加]を選択し、以下の設定で作成します。

  • {api_domain}はGMOサインから認証情報をもらうときに指定されるので、そちらを入力します。間違った値だと認証が通りません。

スクリプト概要

今回作成するスクリプトは以下の通りです。

  • 1.アクセストークン取得
  • 2.APIを利用して契約書登録
  • 3.APIを利用して契約書の複数宛先一括送信

スクリプト作成

1.アクセストークン取得

任意のプロジェクトと内部に任意のスクリプトを作成し、スクリプト変数を定義します。デザイナの上部メニューから[スクリプト変数新規作成]を選択します。

hulft-square-Vol.23_05.png

作成する変数は以下の通りです([空白]は値を空にして下さい。{}内は指定されるものに変更してください)。あとで使用するものもここで作ってしまいます。

変数名/型/値

  • token/文字列/[空白]
  • cus_id/文字列/{GMOサインからもらったID(以降{cus_id})}
  • secret/文字列/{GMOサインからもらったsecret key(以降{secret})}
  • document/文字列/{契約書PDFをbase64変換したもの}
  • doc_code/文字列/test_doc
  • envelope_name/文字列/{任意契約書名}
  • document_name/文字列/{任意ドキュメント名}
  • 1(int)/文字列/1

次に右のメニューから[ネットワーク]>[REST]>[POST実行]をスクリプトフィールドにドロップします。表示された設定画面に以下のように設定を入力していきます。

  • 必須設定
  • 接続情報(コピー用)
    name : post_create_token
    接続先 : GMOsign_api_base
    Path : accesstoken/create
  • リクエスト設定
    今回は以下のようなjsonをそのまま投げます。{}内は指定された値を入力し、HULFT Square内のストレージに置いておきます。整理するためにも、今回は /Personal/data/GMOsign に acc.json として配置します。

-----acc.json-----
{
"secret_key": "{secret}",
"cus_id": "{cus_id}"
}
-----------

配置が完了次第、以下のようにリクエスト設定を入力します。

  • レスポンス設定
  • ヘッダ設定

Content-Type : application/json

以上で設定は完了です。[完了]を選択します。

 

次に[基本]>[処理]>[待機]をスクリプトフィールドにドラッグ&ドロップして以下のように設定し完了をクリック。その後、[post_create_token]を[wait]にドラッグ&ドロップしてフローを作成します。

次に[ネットワーク]>[REST]>[POST実行]をスクリプトフィールドにドラッグ&ドロップします。以下のように設定していきます。

  • 必須設定
  • 接続情報(コピー用)
    name : post_get_token
    接続先 : GMOsign_api_base

    path : accesstoken/get

  • リクエスト設定
  • レスポンス設定

HTTPレスポンスのbodyをデータとして扱うためにはスキーマを設定する必要があるので、最初は[データ出力先]を[ファイル]に設定します。[ファイルパス]には任意の場所を指定します。整理しやすいよう、今回は以下のように設定します。

ex) /Personal/GMOsign/token.json

  • ヘッダ設定

Content-Type:application/json

次に[start]を[post_get_token]へドラッグ&ドロップします。こうすることでフローを作成することができます。同じように[post_get_token]から[end]にもフローを作成して、上部メニューの以下のボタンをクリックします。これはスクリプトを実行するためのボタンです。

成功すれば、スクリプトが成功したことを通知するポップアップが開きます。確認出来たら次に進みます。

次にもう一度[post_get_token]の設定を開きます。レスポンス設定を以下のように[データ]に変更し、青い[JSONファイルを指定して出力スキーマを設定]をクリックして、先ほど作成したtoken.jsonファイルを探して指定します。完了次第、完了ボタンをクリックして、タブを閉じましょう。

完了次第、[wait]から[post_get_token]へドラッグ&ドロップしてフローを引きます。

 

次に、[基本]>[処理]>[変数代入]をスクリプトフィールドへドラッグ&ドロップしてクリック、左下のプロパティインスペクタから名前を[token_variable]に変更します。その後[token_variable]をダブルクリックして以下のように設定します。

post_get_token/root/result/access_token ----- スクリプト変数/token

 

これによってレスポンス内容のaccess_tokenをtokenに入力することができました。

以降はこれらスクリプト変数を利用してリクエスト内容を作成します。

完成図は以下の通り

2. APIを利用して契約書登録

次に、さらに[ネットワーク]>[REST]>[POST実行]をスクリプトフィールドに配置して以下のように設定していきます。今回利用するAPIはすべてPOSTでのリクエストなので、以降は[POST実行]として場所は省きます。

  • 必須設定
  • 接続情報(コピー用)
    name : post_registDocs
    接続先 : GMOsign_api_base
    path : envelope/document/regist
  • リクエスト設定
    以下のようなjsonをHULFT SquareストレージのGMOサインフォルダにregDoc.jsonとして保存して、[JSONファイルを指定して入力スキーマを設定]から指定してスキーマを設定します。

-----regDoc.json-----
{
"secret_key": "",
"cus_id": "",
"access_token": "",
"document_code": "",
"reuse_flag": 1,
"remarks": "",
"document": ""
}
----------

  • レスポンス設定(任意で設定)
  • ヘッダ設定

Content-Type:application/json

 

完了次第、[完了]をクリックして設定を完了します。
次に、[変換]>[基本]>[マッピング]をスクリプトフィールドにドラッグ&ドロップして、左下のプロパティインスペクタから名前を[create_body]に設定します。
設定後、[create_body]を[post_registDocs]へドラッグ&ドロップしてプロセスフローとデータフローを引きます。

完了次第、[create_body]をダブルクリックして以下のように設定していきましょう。

object --- post_regDocs/root/type
token --- post_regDocs/root/access_token
cus_id --- post_regDocs/root/cus_id
secret --- post_regDocs/root/secret_key
doc_code --- post_regDocs/root/document_code
document --- post_regDocs/root/document

 

Objectは右のツールパレットから、[文字列]>[基本]>[単一文字列定数]をフィールドにドラッグ&ドロップして以下のように設定することで作成できます。

最後に[token_variable]から[create_body]へプロセスフローを引きましょう。

以上で契約書の登録は完了です。

完成図は以下の通り。

3.APIを利用して契約書の複数宛先一括送信

まずはCSVの送信者リストを読み込みます。CSVの内容は以下のようにして、HULFT SquareのGMOサインフォルダにtest.csvとして配置しておきます。

-----test.csv-----
aaa , aaa@example.com
{名前},{email}
{名前},{email}

-----------

次に、[ファイル]>[CSV]>[CSV読み取り]をスクリプトフィールドにドラッグ&ドロップして配置し、ダブルクリックして以下のように設定します。

  • 必須設定
  • name : read_send_list
  • path : /Personal/GMOsign/test.csv
  • 列一覧 : name
    • email

設定後、完了をクリックします。[post_registDocs]から[read_send_list]にプロセスフローも引いてしまいましょう。

次に[基本]>[フロー]>[繰り返し(データ件数)]をスクリプトフィールドにドラッグ&ドロップします。配置された[foreach]に[read_send_list]をドラッグ&ドロップしてプロセスフローとデータフローを引いてしまいます。

その後、[POST実行]をスクリプトフィールドにドラッグ&ドロップして配置し、以下のように設定します。

  • 基本設定
  • 接続情報(コピー用)
    name : post_sendDocs
    接続先 : GMOsign_api_base
    path : envelope/sendRequest
  • リクエスト設定
    以下のsendRequestBody.jsonをHULFT Square内GMOサイン用フォルダに格納し、[JSONファイルを指定して入力スキーマを設定]から指定してスキーマを設定します。

-----sendRequestBody.json-----
{

  1. "secret_key": "",
  2. "cus_id": "",
  3. "access_token": "",
  4. "envelope_name": "",
  5. "document_list": [

{

  1. "document_code":"",
  2. "document_name":""

}

  1. ],
  2. "partner_signer_list": [

{

  1. "order_no":"1",
  2. "sign_type":"1",
  3. "name":"",
  4. "email":"",
  5. "is_send_mail":"1",
  6. "document_list":[

{

  1. "document_code":"",
  2. "request_type":"1"

}

]

}

]

}
----------

  • レスポンス設定(任意で設定)

(指定したファイルを見れば動作の確認が行えます)

  • ヘッダ設定

Content-Type:application/json

設定後、完了をクリックします。

その後、[foreach]から[post_sendDocs]へドラッグ&ドロップしてプロセスフローとデータフロー、およびマッピングを追加で作成します。作成されたマッピングをクリックして、左下のプロパティインスペクタから名前を[create_send_body]に設定します。

完了次第、[create_send_body]をダブルクリックしてマッピングを以下のように設定します。

(あまりに複雑なので、順を追って説明していきます)

まずは右メニューのツールパレットから[文字列]>[基本]>[単一行文字列定数]をフィールドに2つドラッグ&ドロップして、それぞれ以下のように設定します。

  • 一つ目(object)
  • 二つ目(array)

これらを出力先のtypeに入れることで、そのオブジェクトタイプを指定することができます。それぞれ以下のようにフローを引きます。

objectとつなぐ出力先

  • post_sendDocs/root/type
  • post_sendDocs/root/document_list/emlement/type
    • post_sendDocs/root/partner_signer_list/element/type
    • post_sendDocs/root/

partner_signer_listelement/document_list/element/type

Arrayとつなぐ出力先

  • post_sendDocs/root/document_list/type
  • post_sendDocs/root/partner_signer_list/type
  • post_sendDocs/root/ partner_signer_listelement/document_list/type

さらにもう一つ[単一行文字列定数]を作成し、以下のように設定します。

(*[space]to[space]となっています)

次に、ツールパレットから[文字列]>[演算]>[連結]をフィールドにドラッグ&ドロップして、以下のように設定します。

この連結ロジックの3つの入力に、以下の三つを上から順にフローでつなげていきます。

  • 1.スクリプト変数/envelope_name
  • 2.単一行文字列定数[to]
  • 3.foreach/table/row/name

こうすることで入力3つを順番に連結して出力することができます。最後に連結ロジックを出力先のpost_sendDocs/root/envelope_nameにドラッグ&ドロップしてフローを引きます。

最後に入力元から出力先へ、以下のようにフローを引きます。

  • スクリプト変数/secret --- post_sendDocs/root/secret_key
  • スクリプト変数/cus_id --- post_sendDocs/root/cus_id
  • スクリプト変数/token --- post_sendDocs/root/access_token
  • スクリプト変数/doc_code --- post_sendDocs/root/document_list/element/document_code
  • スクリプト変数/document_name---
    post_sendDocs/root/document_list/element/document_name
  • スクリプト変数/1(int)--- post_sendDocs/root/partner_signer_list/element/order_no.signer_type.is_send_mail
    (order_no,signer_type.is_send_mailの3つにフローを引く)
  • foreach/table/row/name---
    post_sendDocs/root/partner_signer_list/element/name
  • foreach/table/row/email---
    post_sendDocs/root/partner_signer_list/element/email
  • スクリプト変数/1(int)---post_sendDocs/root/partner_signer_list/element/document_list/element/request_type

以上で完了となります。マッピングタブを閉じて、スクリプトのタブへ戻ります。

最後に[foreach_end](loopの下にendと書いてある)に[post_sendDocs]をドラッグ&ドロップしてプロセスフローを引き、[foreach_end]から[end]へプロセスフローを引きます。

以上で完成です。完成図は以下の通り。

スクリプトの作成と実行

上部のメニューから以下のボタンをクリックしてテスト実行を行います。
(左の虫のボタンを選択すると、実行ログにログが残ります)

スクリプトが完了次第、GMOサインの[文書管理]を確認してください。ボックスに送信済みの書類が宛先リストに沿って複数存在していれば成功です。

おわりに

いかがだったでしょうか。

HULFT Squareを利用することで、GMOサインの契約書を送信することができました。

今回実施した内容は簡単な接続の確認となりましたが、他サービスとのユーザーの連携や書類の送信処理、宛先の制御など、GMOサインの様々な情報、操作はAPIで取得、操作することが可能です。これを機にGMOサインとの連携をHULFT Squareでお試しいただければと思います。

HULFT Square 技術コラム【つないでみた編】一覧

技術コラム一覧

Change Location

Are you visiting HULFT.com (Japanese language) outside Japan ?
When connecting "HULFT" to Japan from overseas, please select "HULFT8".

日本国外からHULFT.com(日本語)にアクセスされようとしています。
海外から日本の「HULFT」と接続する製品をお探しの場合、「HULFT8」をお選びください。