概要

Adobe Sign には、契約書への署名時に署名者から入力されたデータに基づいて文書(契約書)内のフィールドを動的に更新できる機能が用意されています。これをおこなうには、計算フィールドを使用します。文書を署名のために送信する前に、計算フィールドを使用して、文書(または文書テンプレート)内のルールをセットアップすることができます。署名者が文書を操作したり、フィールド/値に基づいて文書を動的に更新したりすると、これらのルールが処理されます。

計算フィールドは、次の仕組みのいずれかを使って文書内に定義できます。

計算フィールドのユースケース

計算フィールドは、文書を署名時に動的に更新する必要があるシナリオに使用できます。計算フィールドを使用できるユースケースのサンプルを以下にいくつか示します。なお、これらのユースケースは説明用のものです。

1. 注文フォームのセットアップ — 署名者が入手可能な商品のリストから選択して数量を指定できる注文フォームをセットアップするために、計算フィールドを使用できます。リストから商品を選択すると、選択した商品の価格がフォームに自動的に反映されます。さらに、署名者が数量を選択すると、商品の総額が自動的に計算されます。また、フォームには、注文の合計税額決定したり、顧客に対する割引のビジネスルールに基づいてボリュームディスカウントを計算したりするための、追加計算を組み込むこともできます。

2. 契約期間満了日の自動入力 — 契約期間の長さ(6 ヶ月、12 ヶ月、24 ヶ月など)を署名時に顧客が選択できる契約書の場合、契約署名時の顧客の選択に基づいて契約の終了日を自動的に入力するために、計算フィールドを使用できます。

3. 複数の選択肢があるフォームのサインアップ — フォームの署名者が一連のオプションから選択できるサインアップフォーム(会員登録フォームなど)をセットアップするために、計算フィールドを使用できます。署名者が選んだ選択肢によって、署名者が同意している条件、契約期間、総費用といった、フォームの他の動的な側面が左右されることがあります。

計算フィールドの基礎知識

Adobe Sign フォームにあるフォームフィールド、チェックボックスフィールド、ラジオボタンフィールドは計算フィールドとしてマークすることができます。署名時には、計算フィールドとして指定されたフィールドに署名者が値を直接入力することはできず、フォーム内に定義されたルールに基づいて計算フィールドの値が自動的に計算されます。

計算フィールドの定義は、式と書式の 2 つの要素から成ります。

必須

指定されたフィールドの値がどのように計算されるかについての数式/ルールを定義します。Adobe Sign では署名時にこの式を評価し、結果として得られた値がフィールドに表示されます。

書式

オプション

計算フィールドの結果値は、書式を指定することで日付、数値、通貨などに書式設定することもできます。

計算フィールドは、Adobe Sign テキストタグ、Adobe Sign Web アプリケーション、PDF フォームフィールドのいずれかを使って定義することができます。Adobe Sign テキストタグまたは PDF フォームフィールドを使用して計算フィールドを定義する場合、計算式は「calc」というディレクティブを使って定義されます。計算フィールドの書式設定は、「format」というディレクティブを使って指定することができます。

{{someCalculatedField_es_:signer1:calc(someExpn):format(formatType, someFormat)}}

この例では、テキストタグを使用して「someCalculatedField」というフィールドを文書内に定義しています。このフィールドは、signer1 として識別される受信者に割り当てられます。このフィールドの値は、「someExpn」に指定された数式に基づいて計算されます。結果値の種類は「formatType」パラメーターで指定され、結果値は「someFormat」として定義された書式に基づいて書式設定されます。

Adobe Sign Web アプリケーションのオーサリング環境には、計算フィールドの式を定義するためのフル機能の式ビルダーが用意されています。式の作成の詳細については、「式ビルダーを使用して計算フィールドを指定する」を参照してください。


計算フィールドの式

式では、計算フィールドの値を決定するための数式/ルールを定義します。式は次の要素の 1 つ以上で構成されます。

リテラル

式の一部として使用される実際の値を指定します。式は文字列値、数値、日付のいずれかです。次に例を示します。

• {{helloField_es_:signer1:calc("Hello")}} – このリテラルは「helloField」というフィールドの値を "Hello" に設定します。

• {{numField_es_:signer1:calc(10)}} – このリテラルは「numField」というフィールドの値を "10" に設定します。

式に文字列を含める場合は、文字列を二重引用符(")または一重引用符(')で囲む必要があります。結果値に一重引用符または二重引用符が含まれる場合は、バックスラッシュ(\)を使用して引用符を閉じます。

重要な注意:これ以降のすべての例では、式のみ示し、テキストタグの完全な構文は示しません。

演算子

演算子は、式の一部として 1 つ以上の演算を実行するために使用します。次に例を示します。

• 6 + 4 – この演算子の場合は、値 "10" が計算フィールドに入力されます。

• 5/22/2016 - 3 – この演算子の場合は、値 "5/19/2016" が計算フィールドに入力されます。

式の中で使用できる演算子の一覧については、「サポートされている演算子」を参照してください。

フィールド

文書内の既存のフィールドを使用して、式を定義することができます。その場合、フィールドを名前で参照します。フィールドは、Adobe Sign フィールド(署名、日付フィールド、署名者の名前、署名者の会社名など)でも、文書内に定義されたフィールドでも、他の計算フィールドでもかまいません。次に例を示します。

• price * quantity – この式では「price」と「quantity」という、文書内の他の 2 つのフィールドを参照しています。これら 2 つのフィールドの値を乗算した結果が計算フィールドに入力されます。

• signerName & "employee of " & signerCompany – この式では、「signerName」と「signerCompany」という、文書内の 2 つのフィールドを参照し、それらを連結しています。これらのフィールドは、可能であれば Adobe Sign によってあらかじめ入力されています。署名者の名前が「Casey Jones」で署名者の会社名が「Acme Corp」の場合、この式の結果は「Casey Jones employee of Acme Corp」という値になり、計算フィールドに入力されます。

フィールド名に空白が含まれている場合は、フィールド名を角かっこ([])で囲んで、式中で参照できるようにする必要があります。例えば、[field name with spaces] は「field name with spaces」という、文書内のフィールドを参照します。

関数

式には、Adobe Sign でサポートされている関数を 1 つ以上含めることもできます。指定された関数は、契約書の署名プロセス中に評価され、その結果値が計算フィールドに表示されます。次に例を示します。

• dateAdd(d, signedDate, 3) – この式では、「dateAdd」関数を使用し、この契約書の署名日に 3 日を加算することを指定しています。したがって、文書が 5/22/2016 に署名される場合、この式の結果値は 5/25/2016 になります。

式の中で使用できる関数の一覧については、「サポートされている関数」を参照してください。


サポートされている演算子

計算フィールドでサポートされている演算子は次のとおりです。

+

2 つの数値を加算します。

-

2 つの数値を減算します。

/

2 つの数値を除算します。

*

2 つの数値を乗算します。

&

2 つの文字列を連結します。

=

次と等しい。2 つの値を比較し、2 つの値が等しい場合は true を返し、等しくない場合は false を返します。

! =

次に等しくない。2 つの値を比較し、2 つの値が等しくない場合は true を返し、等しい場合は false を返します。

次の値未満。2 つの値を比較し、第 1 の値が第 2 の値より小さい場合は true を返し、そうでない場合は false を返します。

>=

次の値以上。2 つの値を比較し、第 1 の値が第 2 の値以上の場合は true を返し、そうでない場合は false を返します。

<=

次の値以下。2 つの値を比較し、第 1 の値が第 2 の値以下の場合は true を返し、そうでない場合は false を返します。

次の値より大きい。2 つの値を比較し、第 1 の値が第 2 の値より大きい場合は true を返し、そうでない場合は false を返します。

%

剰余演算子。2 つの数値の除算後の余りを返します。

^

べき乗(累乗)演算子。指定された数値のべき乗値を返します。


サポートされている関数

計算フィールド内で式を指定する際に使用できる関数は次のとおりです。

関数

カテゴリ

説明

abs(number1)

計算

数値「number1」の絶対値を返します。

roundUp(number1)

計算

数値「number1」を切り上げます。

roundDown(number1)

計算

数値「number1」を切り下げます。

round(number1)

計算

数値「number1」を最も近い整数に四捨五入します。

min(number1,number2)

計算

2 つの数値「number1」と「number2」のうち、小さい方を返します。

max(number1,number2)

計算

2 つの数値「number1」と「number2」のうち、大きい方を返します。

datePart(part, date)

日付

日付のうち、第 1 引数で指定された部分を整数として返します。例えば、datePart(m, 5/22/2016) は、日付の月の部分である 5 を返します。

part 属性に使用できる値については、後述の「日付の各部を示す値」を参照してください。

dateAdd(part, date, addition)

日付

指定された部分 (例えば、「d」は日、「m」は月、「y」は年) の数を日付に加算し、未来の日付を計算します。数値またはフィールド名を使用できます。

例えば、dateAdd("m", "Jan 1, 2016", 3) の場合は、2016 年 4 月 1 日の日付が返されます。この例では、指定された日付に 3 ヶ月が加算されます。

dateDiff(part, date1, date2)

日付

2 つの日付の間の部分(例えば、「d」は日、「h」は時間、「n」は分)の数を返します。数値またはフィールド名を使用できます。

例えば、dateDiff("d", "Jan 1, 2016", "Jan 2, 2016") の場合、1 月 1 日と 1 月 2 日の間の 1 日間を表す値 1 が返されます。

daysIn(part, date)

日付

指定された日付の部分(例えば、「d」は日、「m」は月、「y」は年)に含まれる日数を返します。数値またはフィールド名を使用できます。

例えば、daysIn("m", "Feb 1, 2016") の場合は、2016 年 2 月の日数として値 29 が返されます。daysIn("y", "02/01/2015") の場合は、2015 年の日数として 365 が返されます。

date(string)

日付

"1/1/2016" などの文字列値を、他の関数で使用できる日付オブジェクトに変換します。

now()

日付

式が評価された時点(ほとんどの場合 eSign ページが読み込まれた時点)の日付と時刻を返します。

if(logical_test, value_if_true, value_if_false)

論理

logical_test」を評価します。「logical_test」は式でもかまいません。評価結果が TRUE の場合は、「value_if_true」で指定した値が返されます。評価結果が FALSE の場合は、「value_if_false」で指定した値が返されます。「value_if_true」属性と「value_if_false」属性は式でもかまいません。

例えば、if (1>0, "Correct", "Incorrect") の場合は「Correct」が返されます。

and(logical1, logical2, ...)

論理

すべての論理引数が TRUE に評価される場合にのみ true を返します。それ以外の場合は、false を返します。

例えば、and(1>0, 2>1) の場合は「true」を返し、and(1>0, 2=1) の場合は「false」を返します。

or(logical1, logical2, ...)

論理

論理引数(logical1、logical2、...)のいずれかが TRUE に評価される場合に true を返します。すべての論理引数が FALSE に評価される場合は、false を返します。

例えば、or(1>0, 2>1) の場合は「true」を返します。or(1>0, 2=1) の場合は「false」を返します。

not(logical)

論理

logical」の逆の値を返します。したがって、「logical」が FALSE に評価される場合は、true を返します。「logical」が TRUE に評価される場合は、false を返します。例えば、not(1>0) の場合は「false」を返します。

 

日付の各部を示す値

日付のうち、日付関連関数が演算対象となる部分を関数で指定する際に使用できる値は次のとおりです。

部分

日付のうち、関数の適用先となる部分

y

q

四半期

m

d

h

時間

n

s


計算フィールドの書式設定

計算フィールドの式を指定する以外に、出力値の書式を設定することもできます。出力はテキスト(デフォルト)、数値、日付のいずれかに書式設定することができます。

テキストタグで使用する場合、書式ディレクティブは FormatType と Format の 2 つの引数を取ります。

FormatType

計算フィールドで表される値の種類を指定します。このパラメーターに使用できる値は数値と日付です。

Format

計算フィールドに配置する出力値の構成を指定します。


計算フィールドを数値として書式設定する

数値形式での出力の書式設定を指定するには、次の文字を使用することができます。

書式設定文字

説明

_

(アンダースコア)任意の数字のプレースホルダーを表します。

9

任意の数字のプレースホルダーを表します。

.

必須の小数点(またはロケール上適切な記号)の位置

0

必須の小数点の左または右に付けます。ゼロでパディングします。

( )

数値がゼロ未満の場合、かっこで囲みます。

+

正の数の前にプラス記号を付け、負の数の前にマイナス記号を付けます。

-

正の数の前に空白を入れ、負の数の前にマイナス記号を付けます。

,

10 進 3 桁ごとにコンマ(またはロケール上適切な区切り文字)で区切ります。

$

書式設定された数値の前にドル記号(またはロケール上適切な記号)を付けます。指定する場合は、書式文字列の先頭に付ける必要があります。

%

フィールド内の数値を百分率に変換します。100 倍してから、

末尾に % 記号を付けます。指定する場合は、書式文字列の末尾に付ける必要があります。


計算フィールドを日付として書式設定する

日付形式での出力の書式設定を指定するには、次の文字を使用することができます。

形式

説明

s

0 ~ 59 の秒数

「0」から「59」まで

ss

必要に応じて前にゼロを付けた秒数

「00」から「59」まで

n

0 ~ 59 の分数

「0」から「59」まで

nn

必要に応じて前にゼロを付けた分数

「00」から「59」まで

h

1 ~ 12 の時間数

「1」から「12」まで

hh

必要に応じて前にゼロを付けた時間数

「01」から「12」まで

H

0 ~ 23 の時間数

「0」から「23」まで

HH

必要に応じて前にゼロを付けた時間数

「00」から「23」まで

d

1 ~ 31 の日数

「1」から「31」まで

dd

必要に応じて前にゼロを付けた日数

「01」から「31」まで

ddd

曜日の略称

「Mon」から「Sun」まで

dddd

曜日の正式名称

「Monday」から「Sunday」まで

m

1 ~ 12 の月数

「1」から「12」まで

mm

必要に応じて前にゼロを付けた月数

「01」から「12」まで

mmm

月の略称

「Jan」から「Dec」まで

mmmm

月の正式名称

「January」から「December」まで

yy

2 桁で表した年数

「99」または「15」

yyyy

4 桁で表した年数

「1999」または「2015」

t

A.M./P.M. 指定子の先頭文字を表示します。

「A」または「P」

tt

A.M./P.M. 指定子を表示します。

「AM」または「PM」


書式設定の例

次の例では、日付および数値の計算フィールドを書式設定する方法を示しています。

  • 日付として書式設定された計算フィールド:

{{myField_es_:calc(otherDateField + 3):format(date, "mmm dd, yyyy")}}

「May 22, 2016」のような出力になります。

  • 数値として書式設定された計算フィールド:

{{myTax_es_:calc(total * taxrate):format(number, "$,.00") }}

「$1,987.65」のような出力になります。


式ビルダーを使用して計算フィールドを指定する

計算フィールドは、Adobe Sign の文書オーサリング環境を通じて指定することができます。以下では、文書オーサリング環境で計算フィールドを定義する手順を説明します。

1. 文書にフィールドをドラッグアンドドロップします。追加したフィールドをダブルクリックして、フィールドプロパティダイアログを表示します。フィールドに適切な名前を付けます。ドロップダウンリストを使って、「値のタイプ」属性を「計算値」タイプに変更します。これで、署名時に計算に基づいてフィールド値が決定されます。

「値のタイプ」フィールド

 

2. 計算式を「数式」というテキストフィールドに入力するか、関数ボタン(「fx」)をクリックして式ビルダーを表示します。

式ビルダー

 

3. 式ビルダーを使用して、計算フィールドの式を定義します(下図を参照)。上部の式エリアには、フィールド値の計算に使用される式が表示されます。この式エリアに式を入力するか、文書オーサリング環境を使用して式を作成します。式ビルダーでは、使用可能なすべての関数のリスト、文書内の既存フォームフィールドのリスト、サポートされている演算子のリストを提供して、式の作成を支援します。式ビルダーのリストエリアで項目をダブルクリックして、フィールドまたは関数を式に追加できます。また、演算子リストで特定の演算子をクリックして、式に演算子を追加することもできます。

4. 式の定義が完了したら、「構文を確認」ボタンをクリックして式の構文をチェックした後、変更内容を保存することができます。

5. 「表示形式」ドロップダウンリストを使って、計算フィールドのタイプを設定します。

「表示形式」フィールド

 

6. 「表示形式」の値が「日付」または「数値」の場合は、「日付フォーマット/数値形式」フィールドの値をドロップダウンリストを使って設定します。また、「カスタム」書式を選択して、フィールドのカスタム書式設定を定義することもできます。

「数値形式」フィールド

計算フィールドの例

 

  • {{shipState_es_:signer1:calc([billingState]):showif(sameAs=unchecked)}}
    • 最初の署名者に割り当てられるドキュメント内のフィールドで、「sameAs」という別のフィールド(チェックボックス)がオフになっている場合にのみ表示されます。フィールドの値は、署名者が文書に入力したフィールド「billingState」の値と共に自動的に入力されます。
  • {{total_es_:signer1:calc(q1*pr1):format(Number,”$,0.00”):align(right)}}
    • 最初の署名者に割り当てられる文書内のフィールドです。この値は、フィールド「q1」および「pr1」の値の積として自動的に計算されます。結果値は通貨として書式設定され、先頭にドル記号($)を付けて小数点以下 2 桁で表示されます。また、結果値はフィールド内に右詰めで表示されます。
  • price_es_:signer1:calc(if(pn1=”W1”,9.99,if(pn1=”W2”,5.99,if(pn1=”W3”,24.99,0))))}
    • 文書内の「price」というフィールドで、文書内の別のフィールド「pn1」で署名者により選択された値に基づいて計算されます。この例では、フィールド「pn1」が W1 に等しい場合、「price」フィールドに表示される値は "9.99" になります。また、フィールド「pn1」が W2 に等しい場合、「price」フィールドに表示される値は "5.99" になります。その他も同様です。どの値もフィールド「pn1」の値に一致しない場合、「price」フィールドに表示される値は "0" になります。この仕組みにより、計算フィールドを使用して、署名時に署名者がおこなった選択に基づいて商品の価格を自動的に入力することができます。

 


ダウンロード可能なバージョン

ダウンロード

本作品は Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License によってライセンス許可を受けています。  Twitter™ および Facebook の投稿には、Creative Commons の規約内容は適用されません。

法律上の注意   |   プライバシーポリシー