本記事では、Salesforceのレコード画面からD3Workerを呼び出して帳票を作成し、メール配信するまでの設定の流れについてご紹介します。
目次
<データの流れ>
ここでは、Salesforceから抽出したデータがViewFramerを経由してD3Workerへ、そして最後に帳票テンプレートへと受け渡されるまでの流れを簡単に説明します。
データの最終的な受け取り先は帳票テンプレートであるため、帳票テンプレートのCSVフィールドに合わせてD3Workerのマッピングとデータソースを設定し、更にそれに合わせてViewFramerのビュー、マッピングを設定する必要があります。
データの流れのイメージは次のようになります。
また、D3Workerの文書とのマッピング設定では使用する帳票テンプレートの選択をする箇所が、ViewFramerのマッピング設定ではSalesforceのオブジェクト、D3Workerのワークを選択する箇所があることを考慮に入れると
- 帳票テンプレート(データ受け取り先)
- D3Worker(文書化、配信、保管、etc.)
- (用意していなければ)Salesforceオブジェクト(データ抽出元)
- ViewFramer(CSVデータ生成)
の順に設定することが望まれます。
<帳票テンプレートの用意>
本記事ではあくまでSalesforce ~ D3Worker間のデータのやり取りに焦点を当てているため、どのような帳票を作成するかには重きを置かず、既存のサンプルテンプレートを用います。
テンプレート作成の詳細についてはこちらの「ViewFramerデザイナーガイド(PDF)」をご覧ください。
今回は、見積書3のサンプルテンプレートを使用します。
デザイナー画面です。
マッピングは以下です。
ここで表示されているフィールドの内容を、<D3Workerの設定>の「ワーク設定(文書とデータのマッピング)」にて使用します。
<D3Workerの設定>
サービス > エンベロープ > ワークの順に設定していきます。
サービス、エンベロープ、ワーク設定の詳細についてはこちらをご覧ください。
サービス設定
サービス「OPROARTS」と「メール送信」を作成します。
エンベロープ設定
作成した「OPROARTS」サービスを文書化サービスに、「メール送信」サービスを配送サービスに設定します。
ワーク設定(データソース)
ここには、ViewFramerから渡されるCSVデータのフィールドの並びを順番通りに定義します。
データソースとして渡された値は、帳票テンプレートに渡す値として用いるほか、D3Workerの処理におけるフラグ等に使用することもできます。
フィールドの1 ~ 9に、ViewFramerから渡されるCSVデータの各フィールドの値が入ります。このデータソースとViewFramerとのマッピングは次の<ViewFramerの設定>で行います。
ワーク設定(エンベロープ)
「エンベロープ設定」で作成したサービスを選択します。
ワーク設定(文書とデータのマッピング)
ここでは、データソースとしてD3Workerに渡されたCSVデータのフィールドから帳票テンプレートに渡すCSVデータのフィールドとなるものを抽出して順番通りに定義します。
データセット1にヘッダー/フッターのCSVフィールドに渡す項目を、データセット2に明細のCSVフィールドに渡す項目を記述します。
※作成したテンプレート名の前に必ず「live_」を記載してください。
<Salesforceオブジェクトの作成>
※オブジェクトの用意が済んでいる場合、本工程は飛ばしてください。
出力元となるオブジェクトを作成します。 今回は、見積書3テンプレートに合わせてヘッダー部分のデータ元となる「見積書」オブジェクトと明細部分のデータ元となる「見積商品」オブジェクトを作成しました。
<ViewFramerの設定>
!注意!
同じウェブブラウザーで複数のビューやマッピングを参照・編集すると上書きされてしまいます。
必ず1つのタブで操作してください。
既存のビューを参考にしたい場合は、別のブラウザーで参考にしたいビューを開くようお願いいたします。ただし、同時編集はできませんので参照のみにしてください。
また、別のブラウザーにした場合も複数のビューを開くことは避けてください。
ビュー設定
今回使用する見積書のテンプレートはヘッダー明細型なので、ヘッダーと明細それぞれにビューを作成します。 ビューでは、Salesforceオブジェクトの各項目をViewFramerが生成するCSVデータのどのフィールドに当てはめるかを決定します。
ヘッダービューの出力項目は以下のように設定します。
明細ビューでは主オブジェクトを「見積」に、関連オブジェクトに「見積商品」を指定し、見積オブジェクトIDで紐づけます。
明細ビューの出力項目は以下のように設定します。
マッピング設定
タイプにヘッダー明細型を選択し、作成したビューを指定します。
次へ進み、[D3Worker]タブを開きます。
D3WorkerのURL https://d3w.ap.oproarts.com/d3w/api/{お客様用テナント}/ を入力して「接続」をクリックします。
D3Workerのワークが表示されるので<D3Workerの設定>で作成したワークを選択します。
「Workフィールド」(ワークのデータソース)に「データフィールド」(指定したビューの出力項目)を
マッピングします。
マッピングが終わったら、保存・配備してViewFramerの設定は完了です。
<アクションボタンの作成>
ViewFramerにて「APIサンプル」欄にある[APIサンプル]ボタンをクリックします。
サービスを「D3Worker」にしてから[Visualforceページ]ボタンをクリックすると、Visualforceページのコードを含んだテキストファイルがダウンロードされます。
※サービスは必ず「D3Worker」を選択してください。サービス「Documentizer」、形式「PDF」のままダウンロードしたテキストファイルの内容ではD3Workerを呼び出すアクションボタンが作れません。
ダウンロードしたファイルのコメントより上の内容をVisualforceページ新規作成画面のVisualforce Markup欄に貼り付けてVisualforceページを作成し、それを基に帳票出力のためのアクションボタンを作成して配置します。
設定方法の詳細についてはこちらをご覧ください。
作成したボタンをクリックすると、帳票PDFの添付されたメールが送信されます。
送信されたメールがこちらです
添付された帳票です。
<終わりに>
SalesforceとD3Workerを連携すれば、Salesforce上に存在するレコードを用いて帳票を作成・出力することに加えて、作成した文書のメール配信や、更に外部サービスと連携してFAX配信、DM配送、クラウドストレージへ保管などと様々なことが可能になります。
本記事が、Salesforce ~ D3Worker間のデータの流れやマッピングの様子を理解する上で役立てば幸いです。