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