Box Doc Genテンプレートタグを使用すると、カスタムドキュメントを動的に生成するためのドキュメントテンプレートを簡単に作成できます。 ドキュメント生成処理が実行されると、事前に構成されたBox Doc Genテンプレートは、テンプレート内のBox Doc Genタグを自動的に識別して、そのタグをJSON入力データ内のフィールドと照合し、タグを適切なデータに置き換えてドキュメントを動的に生成します。
テンプレートタグを使用すると、テキスト、画像、表、リスト、コンテンツのブロックのほか、Box Signタグも動的に生成できます。
テキストタグ
テキストタグは、文字列型、数値型、または日付型のデータフィールドです。 例えば、以下のフィールドはテキストタグになります。
- id
- date
- customerId
- customerName
- currency
- amount
{ "invoice":{ "id": "Inv1203", "date": "13-03-2023", "customerId": "90158", "customerName": "Acme Inc", "currency": "$", "amount": 5060.50 } }
生成される出力ドキュメントでは、すべてのテンプレートタグが入力データに置き換えられます。
ドキュメントテンプレート | 出力ドキュメント |
請求書 請求書ID: {{invoice.id}} 請求日: {{invoice.date}}
{{invoice.currency}}{{invoice.amount}} |
請求書 請求書ID: Inv1203 請求日: 13-03-2023
$5060.50 |
テキストタグの書式設定
入力形式 | 入力データ | 出力データ |
スクリプトによる サポート |
アドインによる サポート |
{{invoice.customerName :: uppercase}} | Acme Inc | ACME INC | 〇 | × |
{{invoice.customerName :: lowercase}} | Acme Inc | acme inc | 〇 | × |
{{invoice.date :: format( “dd-mm-yyyy”) }} |
13-03-2023 | 13-03-2023 | 〇 | × |
{{invoice.date :: format(“mm-dd-yyyy”) }} | 13-03-2023 | 03-13-2023 | 〇 | × |
{{invoice.date :: format(“dd-mmm-yy”) }} | 13-03-2023 | 13-Mar-23 | 〇 | × |
{{invoice.id :: format(“xxx-xxxx”) }} | Inv1203 | Inv-1203 | 〇 | × |
画像タグ
画像タグを使用すると、画像を動的に追加して表示できます。 Box Doc GenはBase64形式の画像をサポートしています。
Box Doc Genテンプレートに画像タグを追加するには、以下の手順に従います。
- プレースホルダ画像を挿入して位置を調整し、必要に応じてサイズを変更します。
- [代替テキスト] の下の画像に$image-path変数を追加します。 画像パスの下で、画像をBase64形式で保持するJSONデータの変数を参照します。
以下のJSONコードのサンプルでは、contract.logoを参照してBase64を指定します。
{
"image-path": "contract.logo”,
"alt-text": "Alt text"
}
Box Doc Genは、ドキュメント生成処理中に、このプレースホルダ画像を、指定されたキーに関連付けられているBase64値に置き換えます。
{ "contract":{ "customerId": "1203", "date": "18-08-2023", "country": "UK", "customerName": "Example Corporation", "logo": "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", "customerAddress":{ "street": "Example street", "city": "Example city", "zip": "EX-456" } } }
ドキュメントテンプレート
出力
Box Doc Genは、このプレースホルダ画像を、指定されたキーに関連付けられているBase64値に置き換えます。
生成されたドキュメントでの出力は次のようになります。
表タグ
入力データの配列を使用して、表を生成して動的に書式設定できます。
以下に例を示します。
- itemsは、動的な表として表示することができる配列です。
- id、name、quantity、price、amountは、配列内の変数であり、個々の列として動的な表に表示されます。
{ "invoice":{ "number": "Inv1203", "date": "13-03-2023", "customerId": "90158", "currency": "$", "amount": 5060.50, "items": [ { "id": 1, "name": "A4用紙", "quantity": 100, "price": 29, "amount": 2900 }, { "id": 2, "name": "インクカートリッジ", "quantity": 40, "price": 39, "amount": 1560 }, { "id": 3, "name": "接着テープ", "quantity": 20, "price": 30, "amount": 600.50 } ] } }
ドキュメントテンプレート
タグが挿入されたドキュメントテンプレートは次のようになります。
ID | 名前 | 数量 | 価格 |
{{tablerow item in invoice.items}} | |||
{{item.id}} | {{item.name}} | {{item.quantity}} | {{item.price}} |
{{endtablerow}} |
出力
Box Doc Genは、ドキュメントテンプレートに追加された表タグを自動的に識別して、入力JSONデータのフィールドと照合し、反復処理を数回実行して入力データに対応した表全体を生成します。
生成されたドキュメントに出力される表は次のようになります。
ID | 名前 | 数量 | 価格 |
1 | A4用紙 | 100 | 29 |
2 | インクカートリッジ | 40 | 39 |
3 | 接着テープ | 20 | 30 |
リストタグ
入力データの配列を使用して、順序付きリストまたは順序なしリストを動的に生成できます。
以下に例を示します。
- itemsは、動的なリストとして表示することができる配列です。
- id、name、quantity、price、amountは、配列内の変数であり、リスト内で繰り返されるフィールドとして表示されます。
{ "invoice":{ "number": "Inv1203", "date": "13-03-2023", "customerId": "90158", "currency": "$", "amount": 5060.50, "items": [ { "id": 1, "name": "A4用紙", "quantity": 100, "price": 29, "amount": 2900 }, { "id": 2, "name": "インクカートリッジ", "quantity": 40, "price": 39, "amount": 1560 }, { "id": 3, "name": "接着テープ", "quantity": 20, "price": 30, "amount": 600.50 } ] } }
入力データを使用して、さまざまな種類のリストを生成できます。
ユースケース | ドキュメントテンプレート | 出力ドキュメント |
箇条書きリストの追加 |
製品のリスト: {{ for item in invoice.items }}
|
製品のリスト:
|
1つ以上の変数を含む箇条書きリストの追加 |
製品のリスト: {{ for item in invoice.items }}
{{ endfor }} |
製品のリスト:
|
1つ以上の変数を含む、行頭文字が四角形の箇条書きリストの追加 |
製品のリスト: {{ for item in invoice.items }}
{{ endfor }} |
製品のリスト:
|
1つ以上の変数を含む、行頭文字が白丸の箇条書きリストの追加 |
製品のリスト: {{ for item in invoice.items }}
{{ endfor }} |
製品のリスト:
|
1つ以上の変数を含む番号付きリストの追加 |
製品のリスト: {{ for item in invoice.items }}
{{ endfor }} |
製品のリスト:
|
1つ以上の変数を含むローマ数字付きリストの追加 |
製品のリスト: {{ for item in invoice.items }}
{{ endfor }} |
製品のリスト:
|
1つ以上の変数を含むアルファベット付きリストの追加 |
製品のリスト: {{ for item in invoice.items }}
{{ endfor }} |
製品のリスト:
|
リストの書式設定
Box Doc Genテンプレートは、ドキュメントテンプレートで使用できるさまざまなカスタムコードをサポートしています。次のJSON入力データを参考に、さまざまな区切り記号や区切り文字を使用できます。
{ "items": ["A4用紙", "インクカートリッジ", "接着テープ"] }
リストのタイプ | ドキュメントテンプレート | 出力ドキュメント |
リスト - コンマ区切りを使用 | {{ items :: delimiter(“,”)}} | A4用紙, インクカートリッジ, 接着テープ |
リスト - セミコロン区切りを使用 | {{ items :: delimiter(“;”)}} | A4用紙; インクカートリッジ; and 接着テープ |
リスト - カスタム区切りを使用 | {{ items :: delimiter(“~”)}} | A4用紙~ インクカートリッジ~ 接着テープ |
リスト - コンマ区切りと最後の区切り文字を使用 | {{ items :: delimiter(“,”) , lastdelimiter (“, and”)}} | A4用紙, インクカートリッジ, and 接着テープ |
リスト - セミコロン区切りと最後の区切り文字を使用 | {{ items :: delimiter(“;”) , lastdelimiter (“; and”)}} | A4用紙; インクカートリッジ; and 接着テープ |
リスト - カスタム区切りと最後の区切り文字を使用 | {{ items | delimiter(“~”)}}, lastdelimiter (“~ and”)}} | A4用紙~ インクカートリッジ~ and 接着テープ |
条件
条件を使用して、出力ドキュメントに入力を追加できます。 Box Doc Gen Template Creatorアドインは、ドキュメントテンプレート内でこれらの条件を定義するのに役立ちます。
サポートされている条件と演算子
タグの種類 | サポートされている条件 | 条件のつなぎとしてサポートされている演算子 |
文字列 | == (に等しい)、!= (に等しくない)、isPresent | AND、OR |
日付 | isPresent | AND、OR |
数値 | <、>、==、!=、>=、<= | AND、OR |
以下のJSONを、Box Doc Genテンプレートの条件を定義するための入力とします。
{ "invoice":{ "number": "Inv1203", "date": "13-03-2023", "customerId": "90158", "currency": "$", "amount": 5060.50, "paymentMethod": "小切手", "paymentTerms": "Net60", "deliveryDate": "23-03-2023", "items": [ { "id": 1, "name": "A4用紙", "quantity": 100, "price": 29, "amount": 2900 }, { "id": 2, "name": "インクカートリッジ", "quantity": 40, "price": 39, "amount": 1560 }, { "id": 3, "name": "接着テープ", "quantity": 20, "price": 30, "amount": 600.50 } ] } }
ユースケース | ドキュメントテンプレート | 出力ドキュメント |
支払い方法と支払い条件に基づいたコンテンツの導入 |
支払い条件: {{ if invoice.paymentMethod == “オンライン送金” AND invoice.paymentTerms == “Net30” }}
{{ elseif invoice.paymentMethod == “小切手” AND invoice.paymentTerms == “Net60” }}
{{else}}
{{endif}} |
支払い条件:
|
請求書の金額と支払い方法に基づいた処理手数料の追加 |
処理手数料: {{ if invoice.amount > 1000 AND invoice.amount < 5000 AND invoice.paymentMethod == “小切手” }}
{{ elseif invoice.amount > 5000 AND invoice.paymentMethod == “小切手”}}
{{else}}
{{endif}} |
処理手数料:
|
請求書の納品日に基づいた納品条件の追加 |
納品条件: {{ if invoice.deliveryDate isPresent }}
{{else}}
|
納品条件:
|
計算
Box Doc Genテンプレートは動的な計算をサポートしています。 手動でタグ付け言語に計算コードを書き込むか、Box Doc Gen Template Creatorアドインを使用することができます。
サンプルコードの計算は以下のようになります。
- 請求書: 個々の明細項目から正味請求額の合計を決定する。
例: Sum (請求書の個々の明細項目の金額) - 発注書: 最大調達額の上限を設定する。
例: 5% * 正味発注額 - 販売契約書: SLA違反に対する違約金を定義する。
例: 10% * 総販売額
サポートされている演算
算術演算 | 集約演算 |
% | PERCENT |
+ | SUM |
* |
AVERAGE |
- | COUNT |
以下のJSONを、ドキュメントテンプレートに計算を追加するための入力とします。
{ "invoice":{ "number": "Inv1203", "invoiceDate": "13-03-2023, 12:10 PM", "deliveryDate": "23-03-2023", "customerId": "90158", "currency": "$", "taxRate": 3, "taxAmount": 151.8, "shippingCharge": 15, "grossAmount": 5060, "penaltyRate": 10, "billCap": 25, "items": [ { "id": 1, "name": "A4用紙", "quantity": 100, "price": 29, "amount": 2900 }, { "id": 2, "name": "インクカートリッジ", "quantity": 40, "price": 39, "amount": 1560 }, { "id": 3, "name": "接着テープ", "quantity": 20, "price": 30, "amount": 600 } ] } }
例:
ユースケース | ドキュメントテンプレート | 出力ドキュメント |
指定の総額と税額から正味金額を計算する 算術計算 |
正味金額: {{ invoice.grossAmount + invoice.taxAmount}} |
正味金額: 注釈: |
指定の総額、税額、送料から正味金額を計算する 算術計算 |
正味金額: {{ invoice.grossAmount + invoice.taxAmount + invoice.shippingCharge}} |
正味金額: 注釈: |
指定の税率と総額から税額を計算する 算術計算 |
税額: {{ invoice.taxRate % * invoice.grossAmount}} |
税額: 注釈: |
個々の明細項目の金額から総額を計算する 集約計算 |
総額: {{ $sum(invoice.items.amount) }} |
総額: 注釈: |
明細項目の数を計算する カウント計算 |
カウント: {{ $count(invoice.items.amount) }} |
カウント: 3 |
明細項目の平均を計算する |
平均金額: {{ $average(invoice.items.amount) }} |
平均金額: 1686.66 |
指定の明細金額と税率から正味金額を計算する 算術計算 + 集約計算 |
正味金額: {{ $sum(invoice.items.amount) + invoice.taxRate % * $sum(invoice.items.amount)}} |
正味金額: 注釈: |
Box Signテンプレートタグ
Box SignテンプレートタグをBox Doc Genテンプレートに追加することで、Box Doc Genによって作成された出力ドキュメントを電子サイン用に送信できます。
Box Doc GenはBox Signテンプレートタグをサポートしています。 以下の表に、Box Doc Gen Template Creatorアドインとタグ付けスクリプトで利用できるタグを示します。
フィールド | Box Signのテンプレートコード |
タグ付けスクリプトによるサポート |
アドインによる サポート |
テキストフィールド | [[t|0]] | 〇 | 〇 |
日付フィールド | [[d|0]] | 〇 | 〇 |
チェックボックスフィールド | [[c|0]] | 〇 | 〇 |
署名フィールド | [[s|0]] | 〇 | 〇 |
スタンプフィールド | [[st|0]] | 〇 | 〇 |
イニシャルフィールド | [[i|0]] | 〇 | 〇 |
名前フィールド | [[n|0]] | 〇 | 〇 |
名フィールド | [[fn|0]] | 〇 | 〇 |
姓フィールド | [[ln|0]] | 〇 | 〇 |
会社フィールド | [[co|0]] | 〇 | 〇 |
メールフィールド | [[e|0]] | 〇 | 〇 |
タイトルフィールド | [[ti|0]] | 〇 | 〇 |
添付ファイルフィールド | [[a|0]] | 〇 | 〇 |