本記事では、Salesforceのデータを使って生成したPDFファイルをBoxに保存する方法についてご説明します。
D3Workerの以下のサービスを使用します。
- OPROARTS: Salesforceから渡されたCSVデータを用いてPDFを生成します。
- Box [配送]: PDFをBoxに保存します。
目次
Salesforceオブジェクトの用意
本記事では、一連の処理の起点に商談レコードを使用します。
帳票テンプレートの用意
OPROARTS Designerで帳票テンプレートを作成します。
今回は、標準で用意されているサンプルテンプレート「見積書3」を使用します。
本テンプレートは、以下のCSVフィールドを持ちます。
D3Workerの設定
サービス設定
「OPROARTS」を選択してサービスを作成します。
詳細はこちらの記事をご覧ください。
リンク先記事では「OPROARTS(別アカウント)」を使用していますが、設定は同様です。
次に、「Box [配送]」を選択してサービスを作成します。
各設定項目を指定し、サービスを保存します。
項目の説明を以下に記載します。
項目名 | 必須 | 内容 |
---|---|---|
名称 | ○ | サービス名称(ユニークな任意の名称)を入力します。 |
メモ | 必要に応じて、簡単なメモを入力します。 | |
Boxへの接続 | ||
一度サービスを保存すると、「接続」ボタンが有効になります。 「接続」をクリックして、Boxのアカウントでログインしてください。 |
||
接続情報 | ||
タイムアウト | ○ | D3Worker - Box間の接続・読込における、タイムアウトするまでの時間を指定します。 |
保存先フォルダ定義 | ||
保存先フォルダの指定方法 | ○ | ・フォルダID指定 ・フォルダ階層指定 のどちらかを選択します。 |
保存先フォルダID or フォルダ階層指定 | ○ | 「フォルダID指定」を選択した場合はフォルダIDを、「フォルダ階層指定」を選択した場合はフォルダ階層を「/」区切りで指定します。 |
ファイル定義 | ||
ファイルのコメント | ファイルにコメントを付与できます。 | |
ファイルの説明 | ファイルの説明を指定できます。 | |
ファイルの共有リンク定義 | ||
共有リンクの設定有無 | ○ | ファイルを共有するためのリンクを設定するかどうか指定します。 |
アクセスレベル | 共有リンクからファイルにアクセスできるユーザーを指定します。 ・リンクを知っている全員 ・会社のユーザー ・このフォルダ内のユーザー の3つから選択可能です。 |
|
共有リンクのパスワード |
共有リンクからファイルにアクセスするためのパスワードを設定します。 パスワードの要件については以下の記事をご参照ください。 |
|
共有リンクの有効期限 | 共有リンクの有効期限を指定します。 日付は、以下のフォーマットを使用してください。 ・YYYY-MM-DD ・YYYY-MM-DDThh:mm:ss+hh:mm ・YYYY-MM-DDThh:mm:ss-hh:mm ・YYYY-MM-DDThh:mm:ssZ ・YYYY-MM-DDThh:mm:ss.SSSZ ・YYYYMMDD ・YYYYMMDDhhmmss |
|
共有リンクのダウンロード権限 | 共有リンクからファイルを開いたときに、ダウンロードを許可するかどうか指定します。 | |
ファイルのメタデータ定義 | ||
項目名 | 保存するファイルに付与したいカスタム項目の名前を入力します。 | |
値 | カスタム項目の値を入力します。 |
エンベロープ設定
文書化サービスに「OPROARTS」を基に作成したサービスを指定します。
配送サービスに「Box [配送]」を基に作成したサービスを指定します。
ワーク設定
※本記事で扱う処理に必要な設定のみ記載しています。ワーク設定の詳細はこちらの記事の「D3Workerの設定手順」をご覧ください。
データソース: Salesforceから受け取るデータのフィールドを定義します。Salesforceアプリの各項目のフィールドコードと同じフィールド名を付けると、後の設定が楽になるのでおすすめです。
エンベロープ: 作成したエンベロープを選択し、「エンベロープフィールド」に帳票を区別するデータフィールド(ここではQuotation_Number)を、「アクティブ化するフィールド」にエンベロープフィールドを指定します。また「ELSEとして使用する」にチェックを入れます。
文書とデータのマッピング: 帳票テンプレートのCSVフィールドと、データソースのフィールドをマッピングします。
※商談オブジェクトには顧客担当者名を保持する項目が存在せず、帳票テンプレートの「CustomerCharge」フィールドに受け渡す値が無いため、ここでは3つ目のフィールドを固定値「ご担当者」にしています。
テンプレート名には"live_"を先頭につけて「live_{作成したテンプレート名}」と入れてください。
ViewFramerの設定
ビューの設定
まずはビューを作成します。
今回はヘッダー明細型の帳票を生成したいので、ビューはヘッダー用のビュー・明細用のビューの2つを作成します。
ヘッダビューの設定
ビュータブで「新規」をクリックします。
Salesforceへのログインが促されますので、認証情報を入力してログインします。
※ 次からこの画面が表示されたときは、「現在のセッション情報を使用する」をクリックすればOKです。
ビューの名前を入力します。
※以後、次の画面に移動する際は右下の「次へ」をクリックします。
使用するオブジェクトを指定します。
「商談」オブジェクトを選び、関連オブジェクトに「取引先」「ユーザ」を選びます。
帳票に出力する項目を指定します。
「商談.商談 ID」「見積番号(関数で計算 ※)」「取引先.取引先名」「ユーザ.氏名」「商談.説明」を出力項目とします。
出力項目名はそれぞれ「Opportunity_Id」「Quotation_Number」「Customer_Name」「Company_Charge」「Remarks」とします。
※「見積番号」の項目ビルダー内の式は以下を指定しました。
'Quotation-' || FORMAT_DATE(NOW(), 'yyyyMMddHHmmss')
それぞれのオブジェクトについてどのようなレコードを取得するか、条件を指定します。
条件指定が済んだら、「保存」をクリックします。
明細ビューの設定
ビューの新規作成画面を開き、ビューの名前を入力して「次へ」をクリックします。
使用するオブジェクトを指定します。
「商談商品」オブジェクトを選びます。
帳票に出力する項目を指定します。
「商談商品名」「販売価格」「数量」「金額(関数で計算 ※)」「商談ID」を出力項目とします。
出力項目名はそれぞれ「Contents」「UnitPrice」「Quantity」「Price」「Opportunity_Id」とします。
※「金額」の項目ビルダー内の式は、以下のようにしました。
OpportunityLineItems.UnitPrice * OpportunityLineItems.Quantity
どのような商談商品レコードを取得するか、条件を指定します。
条件指定が済んだら、「保存」をクリックします。
マッピングの設定
マッピングタブで「新規」をクリックします。
マッピングの名前を入力します。
帳票タイプは「ヘッダー明細型」を指定します。
※ 「ビューの編集を許可する」がOFFの場合は、マッピングで使用したビューを編集不可になります。
作成したビューを「主データ」「明細データ」の両方に選択して、それぞれ「取得」をクリックします。
これでビューの項目をD3Workerのワークに紐づけられるようになります。
明細データの項目「Opportunity_Id」を主データの項目「Opportunity_Id」と紐づけます。
この設定により、明細ビューで取得した商談商品の情報がヘッダービューで取得した商談の情報と紐づけられます。
画面右下の「次へ」をクリックするとSalesforceへのログインを促されるため、既にSalesforceへのログインを済ませていれば「現在のセッションを使用」、ログインしていなければ「ログイン」をクリックしてSalesforceにログインします。
ログインが済むとマッピング出力設定画面に移動します。
D3Workerタブへ移動し、URLに以下を入力して「接続」をクリックします。
https://d3w.ap.oproarts.com/d3w/api/{お客様のD3Workerテナント名}/
作成したワークを選択します。
後半の4項目は明細ビューから値を取得するため取得元の「データ」を「list1」に変えておきます。
ここまでの設定で、ワークのデータソースの各フィールドとビューの項目名を同じに設定しているため、「自動マッピング」をクリックするだけでワークのフィールドとビューの出力項目の紐づけが完了します。
右下の「配備」をクリックすれば、このマッピングをSalesforceから呼び出せるようになります。
Salesforceにボタン設置
作成したマッピングをSalesforceの商談レコード画面から呼び出すために、Salesforceの設定をします。
詳細画面に設置する出力ボタンの作成方法は以下記事に説明がございます。
Lightning Experienceの詳細ページ用 ボタン作成
実際の流れ
以上を設定したら、ボタンを設置した商談のレコード画面でボタンをクリックします。
Boxの画面に移ると、PDFが保存されていることが確認できます。
おわりに
D3Workerを用いてPDF作成からBoxへのPDFアップロードまでのプロセスを自動化することで、Salesforceのデータを用いて生成したPDFファイルを容易に管理できるようになります。
本記事がD3WorkerとBoxを連携する際の参考になれば幸いです。