[toc]
概要
この記事では、CSVデータとD3Workerを組み合わせることで、複数の請求書をまとめて生成し、顧客ごとに異なるメールアドレスへ自動配信する方法を紹介します。
手作業による請求書作成と配信の手間を大幅に削減でき、請求業務の効率化を実現できます。
シナリオ:CSVデータから複数の請求書を自動生成し、顧客に配信する
このシナリオでは、請求書テンプレート、CSVデータ、D3Workerの3つを組み合わせることで、複数件の請求書を一括生成し、それぞれを異なる配信先にメール送信することが可能になります。
事前準備
まず、以下の3つの準備が必要です。
帳票テンプレートの用意
OPROARTS Designerに標準で用意されている「請求書3」テンプレートを使用する場合、ヘッダー部(請求書番号、取引先名、取引先責任者名、支払期日など)と明細部(商品名、単価、数量、金額など)に対応したフィールドが定義されています。
テンプレートが受け取るCSVデータフィールドの構成を確認してください。
本テンプレートが受け取るCSVデータのフィールドは以下です。
-
ヘッダー/フッター部
-
明細部
CSVデータの用意
D3Workerを利用してヘッダーと明細を含む帳票を生成する場合は、以下の形式のCSVデータを用意します。
"請求書番号","取引先名","取引先責任者名","支払期日","納品場所","担当者名","備考","配信先メールアドレス","商品名","単価","数量","金額"
"B-202006-0000000030","株式会社サンプルA","オプロ A子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者A","備考です。","ako.opro@jp.opro.net","物品A - 1","10000","1","10000"
"B-202006-0000000030","株式会社サンプルA","オプロ A子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者A","備考です。","ako.opro@jp.opro.net","物品B - 1","10000","1","10000"
"B-202006-0000000030","株式会社サンプルA","オプロ A子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者A","備考です。","ako.opro@jp.opro.net","物品C - 1","10000","1","10000"
"B-202006-0000000030","株式会社サンプルA","オプロ A子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者A","備考です。","ako.opro@jp.opro.net","物品D - 1","10000","1","10000"
"B-202006-0000000030","株式会社サンプルA","オプロ A子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者A","備考です。","ako.opro@jp.opro.net","物品E - 1","10000","1","10000"
"B-202006-0000000031","株式会社サンプルB","オプロ B子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者B","備考です。","bko.opro@jp.opro.net","物品A - 2","10000","1","10000"
"B-202006-0000000031","株式会社サンプルB","オプロ B子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者B","備考です。","bko.opro@jp.opro.net","物品B - 2","10000","1","10000"
"B-202006-0000000031","株式会社サンプルB","オプロ B子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者B","備考です。","bko.opro@jp.opro.net","物品C - 2","10000","1","10000"
"B-202006-0000000031","株式会社サンプルB","オプロ B子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者B","備考です。","bko.opro@jp.opro.net","物品D - 2","10000","1","10000"
"B-202006-0000000031","株式会社サンプルB","オプロ B子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者B","備考です。","bko.opro@jp.opro.net","物品E - 2","10000","1","10000"
"B-202006-0000000032","株式会社サンプルC","オプロ C子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者C","備考です。","cko.opro@jp.opro.net","物品A - 3","10000","1","10000"
"B-202006-0000000032","株式会社サンプルC","オプロ C子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者C","備考です。","cko.opro@jp.opro.net","物品B - 3","10000","1","10000"
"B-202006-0000000032","株式会社サンプルC","オプロ C子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者C","備考です。","cko.opro@jp.opro.net","物品C - 3","10000","1","10000"
"B-202006-0000000032","株式会社サンプルC","オプロ C子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者C","備考です。","cko.opro@jp.opro.net","物品D - 3","10000","1","10000"
"B-202006-0000000032","株式会社サンプルC","オプロ C子","2020/05/31","〒104-0031
東京都中央区京橋 2 - 14 - 1
兼松ビルディング 6F","担当者C","備考です。","cko.opro@jp.opro.net","物品E - 3","10000","1","10000"CSVデータの先頭行はカラム名とし、2行目以降に実データを記載します。
各行は帳票の非明細部に表示する情報と明細部に表示する情報を含み、赤文字部分のデータを帳票のヘッダー部で、青文字部分のデータを明細部で使用します。
D3Workerのワーク設定では、赤文字の「請求書番号」列の値が同じである行が1つの帳票のデータとして扱われ、その値が別の値に切り替わる度に別の帳票データとして扱うように設定します。
(このCSVデータの場合、明細行を5行含む請求データのまとまりが3つあるものとしてみなされます)
※値が改行を含む場合、引用符は二重引用符「""」を使用してください。
- CSVデータの中には帳票出力で使用するフィールドを全て含める必要がありますが、CSVデータの中に帳票出力で使用しない項目があっても問題ありません。
- 一部のCSVフィールドを帳票出力で使用し、他のCSVフィールドは帳票出力で使用せずにD3Worker内部のパラメータとして使用するといった使用が可能です。
例えば上のCSVデータでは、「配信先メールアドレス」の値は帳票出力には使用せず、生成した帳票の配信に使用します。
D3Workerの設定
サービスの設定
以下2つのサービスを作成します。
-
OPROARTS
詳しい設定内容は「D3Workerのサービス設定(OPROARTS連携)(Salesforce)」をご参照ください。
-
OPROARTS Drive [配送]
詳しい設定内容は「D3Workerのサービス設定(OPROARTS Drive [配送])(Salesforce)」をご参照ください。
エンベロープの設定
作成したOPROARTSサービスタイプのサービスを文書化サービスに、OPROARTS Drive [配送]サービスタイプのサービスを配送サービスに指定します。
-
文書化サービス
-
配送サービス
「通知先のメールアドレス」にはCSVデータの値を受け取るためにエンベロープパラメータ{配信先メールアドレス}を指定します。
ワークの設定
-
データソース
使用するCSVデータの先頭行は各カラム名であり、帳票生成に使用するデータは含まれません。
そのため、先頭行「データとして使用しない」をチェックを入れます。 文字コードはCSVファイルの文字コードに合わせてください。以下の様にデータソースフィールドを設定します。
-
エンベロープ
CSVデータの「請求書番号」カラムの値が変わったタイミングで請求書を区切るため、エンベロープフィールドに「請求書番号」を指定し、アクティブ化するフィールドに「エンベロープフィールド」を指定します。
このワークでは1つのエンベロープのみを使用するため、「ELSEとして使用する」にチェックを入れます。
エンベロープパラメータ{配信先メールアドレス}にデータソースのフィールド[配信先メールアドレス]を割り当てます。
-
文書とデータのマッピング
文書名(生成される請求書のファイル名)と請求書生成に使用するテンプレートの名称を指定したら、テンプレートで定義したCSVデータフィールドの順番に合わせてデータセットを設定します。
文書名で指定している[請求書番号]部分には、CSVデータの「請求書番号」カラムの値が入ります。
💡補足テンプレート名は、実際のテンプレート名の先頭に「live_」を付けた文字列を入力してください。
ワークの実行
-
以下URLでワーク実行画面を開きます。
https://d3w.ap.oproarts.com/d3w/a/{お客様のテナント名}/al/facade/upload.html -
以下の情報を入力し、「実行」ボタンをクリックします。
項目 説明 UID D3WorkerのUIDを入力します。 UPW D3WorkerのUPWを入力します。 ワーク 実行するワーク名を入力します。 CSVファイル 用意したCSVファイルを指定します。
実行結果
CSVデータに含まれるそれぞれのメールアドレスに向けて、OPROARTS Driveに保存された請求書が配信されます。
請求書その①
請求書その②
請求書その③