LoginSignup
1
0

More than 1 year has passed since last update.

【ServiceNow×DocuSign】ServiceNowのカタログアイテムからDocuSignのPowerFormへ遷移する方法

Last updated at Posted at 2022-06-02

突然ですがDocuSignという製品をご存知ですか?

DocuSignとは、世界シェアNo.1・グローバルスタンダードの電子署名サービス「DocuSign eSignature」をコア製品とする、「ビジネスの合意形成」のためのクラウドプラットフォームです。

各企業でテレワークが導入されペーパーレス化が求められている今、大活躍間違いなしの製品ですね。

三井情報でも取り扱いがあるので、ぜひ専用ページをご覧ください。

遷移する時のイメージ

実装方法の前に連携時の動作をまとめます。
①ServiceNowのカタログアイテムで申請概要、承認者を指定する。
➁カタログアイテムで[送信]をクリックするとDocuSignに作成してある申請フォーム(PowerForm)へ遷移する。
③DocuSignの申請フォーム(PowerForm)で申請内容を入力し[完了]をクリックする。
④後続の承認者へDocuSignから承認依頼メールが送付される。承認作業はDocuSign上で行う。
画像6.png

※DocuSignのPowerFormについて気になるかたは下記サイトをご覧ください。

使用する機能

ServiceNow、DocuSignそれぞれで使用する機能は下図のとおりです。

画像1.png

図中の番号順に設定方法を解説します。

1.PowerForm(DocuSign)

カタログアイテムから遷移するDocuSignのフォームを作成します。

詳しい作成方法はDocuSign eSignatureユーザーガイドを参照してください。

作成する際には 「受信者の追加」ページに必ず申請者や承認者を作成してください。

「役割名」は必須、「名前」と「メール」はカタログアイテムから取得する場合は空白で構いません。
※「役割名」はServiceNowのカタログクライアントスクリプトで使用します。
画像2.png

PowerFormを作成するとURLが生成されます。
ServiceNow側の処理で使用するため、控えておきましょう。
画像3.png

2.カタログアイテム(ServiceNow)

カタログアイテムでServiceNowでの申請画面を作成します。
詳しい作成方法はServiceNowの製品ドキュメントを参照してください。

3.カタログクライアントスクリプト(ServiceNow)

カタログアイテムで[送信]をクリックした際の処理を作成します。

今回は以下の処理を作成します。
① [onSubmit]のタイミングでHTML要素を作成
② DocuSignのPowerFormを別タブで開く

画面上部の設定内容は以下のとおりです。
画像4.png

次に[スクリプト]欄にスクリプトを記載します。

catalog Clinet Script

function onSubmit() {
//カタログの入力値をDocuSignへパスするためHTML要素を生成
  var form = this.document.createElement('form');
  this.document.body.appendChild(form);
  var input = this.document.createElement('input');

//PowerForm署名者情報
//PowerFormの『受信者の追加』ページで作成した受信者分作成する。下記で1人分。
  input = input.cloneNode(false);
  input.setAttribute('name', '作成者_UserName'); //PowerFormの『受信者の追加』ページにて指定した「役割」+「_UserName」
  input.setAttribute('value', g_form.getValue('sakuseisya')); //PowerFormの『受信者の追加』ページの「名前」にセットしたい値
  form.appendChild(input);
  input = input.cloneNode(false);
  input.setAttribute('name', '作成者_Email'); //PowerFormの『受信者の追加』ページにて指定した「役割」+「_Email」
  input.setAttribute('value', g_form.getValue('email')); //PowerFormの『受信者の追加』ページの「メール」にセットしたい値
  form.appendChild(input);

//PowerForm入力フォーム
//入力フォームに作成したフィールドに値をパスする
  input = input.cloneNode(false);
  input.setAttribute('name', 'kenmei'); //PowerForm設定している入力フィールドのデータラベル名を指定
  input.setAttribute('value', g_form.getValue('kenmei')); //PowerFormの「kenmei」フィールドにパスする値を指定
  form.appendChild(input);
  input = input.cloneNode(false);
  input.setAttribute('type', 'hidden'); //値はパスするが直後の承認では表示したくない場合にhiddenを使用する(例:2番目の承認者の作業タイミングで値を表示したい)
  input.setAttribute('name', 'kyokaNo');
  input.setAttribute('value', '12345');
  form.appendChild(input);

//リダイレクト先(PowerFormのURL)
  var url = 'https://~~~~~';

//Submit
  form.setAttribute('target', 'newtab'); 
  form.setAttribute('action', url);
  form.setAttribute('method', 'post');
  form.submit();
}

PowerFormのデータラベル名とは以下のことです。
画像5.png

以上で設定完了です。

終わりに

カタログアイテムで入力した申請者や承認者、その他入力内容がDocuSignのPowerFormにパスされることでServiceNowとDocuSignの連携が実現できました。

今回の処理はDocuSignの電子署名サービスを利用したいけれど申請の入り口はServiceNowが良い、という場合に活用できるのではと思っています。

参考サイトまとめ

DocuSign

DocuSign公式サイト
MKI特設サイト
公式ブログ - 電子署名プロセスをセルフセービス化できるPowerFormとは?
公式ブログ - オンデマンド・セルフサービスで署名ができる「PowerForm」の活用術
DocuSign eSignatureユーザーガイド - Using PowerForms

ServiceNow

製品ドキュメント - Create or edit a catalog item

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0