本記事では請求書を例にして、PDFをパスワード付きのZipファイルにしてメール送信し、さらにパスワードの通知メールも自動送信する手順をご紹介します。
基盤はSalesforceを使いますので、D3Workerとのデータ連携にViewFramerも使うことになります。
テンプレートの作成方法などは割愛しつつ、ポイントに重きを置いて説明しますのでご了承ください。
目次
1. 帳票テンプレートを作る
2.D3Workerの設定をする
・サービス
・エンベロープ
・ワーク
3. ViewFramerの設定をする
4. ボタンを作る
1. 帳票テンプレートを作る
今回は請求書を例にしてPDF出力タイプのテンプレートを作ります。
ここは本記事のメインではないので詳細は割愛いたします。
今回はサンプルテンプレートを少しだけ変えました。
マッピングは以下です。「フィールドを定義」が後で重要になります。
2.D3Workerの設定をする
・サービス
D3Workerの設定になります。一つのボタンを作るのに、サービス→エンベロープ→ワークの順で設定していきます。
サービスは、使いたい機能を設定する単位です。文書化・保管・配信の区別があり、文書化と保管・配信はそれぞれ1つずつ必要だと考えてください。
今回は、「Salesforceから請求書を作って、メール送信をする」という処理を作りますので、
・文書化:OPROARTSでドキュメント化
・配信:メール送信
の2つのサービスを作ります。
文書化
「OPROARTS」を指定し、必要な認証情報を設定します。
配信
「メール送信」を選択します。
使用するSMTPサーバーの設定を行い、接続の確認を行ってください。それ以外の設定はここでは空でけっこうです。
↓画像では例としてgmailをいれていますが、それ以外でも利用できます。
エンベロープ
エンベロープは処理の単位です。今回はメール送信だけなので1つですが、他にも処理を分けること(フラグによって配信方法を変えるなど)があれば複数にすることもあります。
設定は以下の通りです。
・文書化サービス:サービスで作成したOPROARTS文書化
・配送サービス:サービスで作成したメール送信
配送サービスのメール送信はここで色々な設定を行います。
動的にしたい部分はパラメータ{}で指定をしておきます。
「添付ファイルのZIP」を「する」にし、パスワードや通知メール設定を行ってください。
ワーク
[データソース]
D3Workerが受け取るデータのフィールドと順番です。
今回、Salesforceのデータを使いますが、SalesforceとD3Workerの間のデータ連携処理はViewFramerが受け持つことになります。つまり、後でこのデータソースに指定したフィールドをViewFramer側に指定することになります。
ここでは、帳票テンプレートで使用するフィールドとパラメータに渡す必要があるフィールドを登録してください。
ちなみに、テンプレートの「フィールドを定義」画面にある「サンプルCSV」でカラム付きCSVをダウンロードして少し加工してここに読み込ませると楽です。
[エンベロープ]
使用するエンベロープを選択します。
先ほど作ったエンベロープを選択してください。
「エンベロープフィールド」は、1ドキュメント化/配送する単位です。今回はobjectid(ViewFramerで追加します)にしています。
「アクティブ化するフィールド」は、エンベロープが複数あるときの仕分け単位です。今回は使用しないので、「ELSEとして使用する」にチェックをいれてください。
エンベロープパラメータの値は、ViewFramerから渡された値を使用することになります。データソースから該当するフィールドを指定してください。
[文書とデータのマッピング]
テンプレートとデータのマッピングになります。
テンプレート名には"live_"を先頭につけて「live_{作成したテンプレート名}」と入れてください。
・切り替えフィールド:
複数のドキュメントをひとつにまとめたい時に指定する項目です。例えば、A社に発注する注文書が複数あるのでそれを1PDFに結合したい時には「発注先」を指定します。
・データセットの追加:
テンプレートのマッピングにある「フィールドの追加」の画面と対応します。
同じ順番になるように、データソースから追加してください。
3. ViewFramerの設定をする
ViewFramer自体の説明は割愛しております。ポイントのみになりますのでご了承ください。
!注意!
同じウェブブラウザーで複数のビューやマッピングを参照・編集すると上書きされてしまいます。
必ず1つのタブで操作してください。
既存のビューを参考にしたい場合は、別のブラウザーで参考にしたいビューを開くようお願いいたします。ただし、同時編集はできませんので参照のみにしてください。
また、別のブラウザーにした場合も複数のビューを開くことは避けてください。
1. ヘッダ用のビューと明細用のビューをそれぞれ作ります。
2.マッピングを作成する
タイプにヘッダー明細型を選択し、主データと明細データそれぞれに作成したビューを指定します。
次へで進み、[D3Worker]タブを開きます。
D3WorkerのURLを接続すると、ワークが表示されます。このワークは、設定が正しくできている場合のみ表示されますので、表示されない場合は設定を見直してみてください。
ワークに設定したものを選択したら、「Workフィールド」と「データフィールド」をマッピングします。
最後に配備してください。
4. ボタンを作る
Salesforceにボタンを作ります。
詳細ページ用とリストページ用でボタンのコードが違うこと、また、ViewFramerの出力条件設定が異なることをお気を付けください。
ViewFramerのマッピング一覧画面で、呼び出したいマッピングの「APIサンプル」欄にある[APIサンプル]ボタンをクリックします。
サービスで「D3Worker」を選択し、[Visualforceページ]ボタンをクリックします。
ボタン作成手順は以下詳細なFAQをご覧ください。
Lightning Experienceの詳細ページ用 ボタン作成
Lightning Experienceのリストビューページ用 ボタン作成
完成すると以下のような動きになります!
ボタンクリックで、
ZIPファイルの添付付きメールが届きます。
同時にZIPファイルパスワード通知メールも届きました。
※データはダミーです。
以上です。
<最後に>
ポイントだけかいつまんでのご紹介でしたが、イメージはつきましたでしょうか?
よく使われる処理かと思いますので、D3Workerの導入としてお試しいただければと思います。