本記事では、PowerPointテンプレートとViewFramer を使用して、SalesforceからPowerPoint帳票を出力する方法を掲載しています。
先行して提供されていたExcelとWordのアドインと同じく、PowerPointにOfficeアドイン「Document Designer for Office」を入れてタグを入れるだけで、テンプレートとして使えるようになります。
この記事の例では、Salesforceの「ケース」オブジェクトで、詳細ページからボタンをクリックすると、そのケースの投稿者の全てのお問い合わせ一覧を出力する、という帳票を作成します。
簡単な見た目の雛形をPowerPiointで用意しました(本記事の最下部にも添付しています)。
表紙スライドと、表のスライドの2スライドのみの構成です。
このファイルをテンプレートとして設定していきたいと思います。
1.アドイン設定
アドイン「Document Designer for Office 」を入れます。
「挿入」タブの「アドインを入手」からアドインストアを開き、「OPRO」と検索すると出てきますので、追加します。
追加すると「挿入」タブにこのアドインのアイコンが表示されますので、クリックします。
アドインのスタート画面が開きますので、「OPROARTS」の方を選びます。
2.フィールド設定
(1)非明細部のフィールド追加
OPROARTSの他の帳票を作成したことがある方は既にご存知かもしれませんが、OPROARTSのテンプレートでは、「明細になる部分」と「明細以外の部分」の設定を分けて定義します。
先に「明細以外の部分」で、Salesforceからデータを流し込みたい部分を定義します。
スライドの表紙に「アカウント名」(ケースの申請者)と「発行日」を出力したいと思います。
「フィールドの追加」欄に「アカウント名」と「発行日」を入力して、「+」をクリックするとフィールドが作成されます。
以下の画像のように、「、」(句点)やカンマ・タブ区切りで複数のフィールドを一括追加できます。
「アカウント名」を、1つ目のスライドのサブタイトル部分に出力したいため、テキストボックスにカーソルを入れて、作成した「アカウント名」フィールドの横の鉛筆ボタンをクリックします。
下図のようにタグが入ります。この部分にSalesforceのデータが出力されるようになります。
「発行日」のタグも入れます。
作成したフィールドのタイプが「文字列」型になっていますので、「日付」に変更します。
「発行日」と表示されている部分をクリックすると、日付出力の詳細メニューが開きますので、出力形式を選んでから鉛筆マークをクリックします。
(2)明細テキストデータセット・フィールドの作成
お問い合わせ一覧の「表」部分を作成します。
2つ目のスライドに、元になる表の見た目を作っておきます。
下図のように、挿入タブの「表」メニューから、見出し行1行と、明細にする部分を1行だけ用意した、2行の表を追加しました。
この表に「ボタンをクリックしたケース申請者が作成したケース全件」を出力します。Salesforce側に何行入っているかは固定ではありません。
このように複数行の部分を設定する場合、先ほどの「アカウント名」「発行日」という1行分のデータとは別の「テキストデータセット」を作り、その中にフィールドを作成していきます。
「+明細テキストデータセットを追加」>「追加」をクリックします。
作成した「TextDataset2」の中に、一覧表で出力したい「ケースNo」、「件名」、「ステータス」、「最終更新日」、「作成日」フィールドを追加します。
「最終更新日」「作成日」は日時型のデータのため、「発行日」と同じくフィールドタイプを「日付」にして出力形式を選んでからタグを入れていきます。
それぞれ出力したいセルにカーソルを入れて、鉛筆ボタンをクリックしてタグを入れました。
これでテンプレートの設定は完了です。
このPowerPointファイルを保存して、デザイナーにアップロードします。
アドインのアップロードタブを開いて、「アップロードフォームを開く」をクリックします。
OPROARTS Designerにアクセスするので、ログインすると新規作成メニューが開きます。
テンプレート名を付けて先程保存したPowerPointファイルを添付し、「作成」をクリックします。
※普段通りSalesforceの「OPROARTS Connector」からSTARTボタンをクリックして、「新規作成」>
「PowerPoint」>「マッピング済みファイルアップロード」でも同じアップロードメニューにたどり着けます。
テンプレートが生成されたら「配備」をクリック→もう一度「配備」をクリックして、テンプレートをOPROARTSサーバに配備します。
後はViewFramerで、Salesforceのどのオブジェクトのどの項目をこのテンプレートに渡すかを設定します。
この記事はViewFramerの記事ではないので、簡略化していきます。
そもそもの基本的な使い方も確認したい方は、以下の記事や無償のセミナー(応用編)で紹介していますのでご確認ください。
記事:【TECH COLUMN】ViewFramerの基本的な利用方法(Salesforce) ~Salesforceの複数オブジェクトを使って帳票出力~
セミナー:https://event.opro.net/?f1=seminarWithHandsOn&r1=salesforce
【ViewFramerログイン】
以下の画面からCID/UID/UPWを入力してログインします。
https://vfui.ap.oproarts.com/view_framer_ui/
!注意!
同じウェブブラウザーで複数のビューやマッピングを参照・編集すると上書きされてしまいます。
必ず1つのタブで操作してください。
既存のビューを参考にしたい場合は、別のブラウザーで参考にしたいビューを開くようお願いいたします。ただし、同時編集はできませんので参照のみにしてください。
また、別のブラウザーにした場合も複数のビューを開くことは避けてください。
【ビュー作成】
ヘッダー用のビューと明細用のビュー、計2つのビューを新規作成します。
1.ヘッダービュー
①リレーション設定で、主オブジェクトを「ケース」にします。
・関連オブジェクトで「取引先責任者」を選択して、以下の条件式を設定
取引先責任者の「取引先責任者 ID」 等しい(=) 0-ケース 「取引先責任者 ID」
②出力項目設定で、テンプレートのフィールドに渡すデータの設定を行います。
(1)テンプレートの「アカウント名」に、ケースの「取引先責任者」に登録されている人の氏名を出力したい
「項目ビルダー」>「列追加」を開いて、①で選択した取引先責任者オブジェクトの「氏名」を取得する
(2)テンプレートの「発行日」に、帳票出力した日時を出力したい。「項目ビルダー」>「列追加」を開いて、「TODAY()」と記述する
③それぞれの出力項目名を「アカウント名」「発行日」として、テンプレート側のフィールド名と同じ名前にします。
④出力条件設定で以下の式を設定して、保存します。
ケースID 等しい(=) パラメータ名 {任意のパラメータ名(英数字)}
2.明細ビュー
1.のヘッダービューとは分けて、新規作成します。
①リレーション設定で、主オブジェクトを「ケース」にする。関連オブジェクトの設定はない状態にする。
②出力項目設定で、「項目ビルダー」>「列追加」を開いて、テンプレートのTD2のフィールドに割り当てる項目を設定する。
ケースオブジェクトの「ケース番号」「件名」「状況」「最終更新日」「作成日」をそれぞれ追加する。
③それぞれの出力項目名を「ケースNo」「件名」「ステータス」「最終更新日」「作成日」に設定して、テンプレート側のTD2のフィールド名と同じ名前にします。
(下図では作成日のソート順に「1」を入れて、「降順」にしているので、作成日が新しい順で一覧表を出力します。)
④出力条件設定で、以下の式を設定します。
(ボタンをクリックしたケースレコードの「取引先責任者」と同じ「取引先責任者」のケースレコードを取得するための条件式です。任意のパラメータ名は、1.のヘッダービューで設定したパラメータ名とは違うものにする必要があります。)
取引先責任者 ID 等しい(=) パラメータ名 {任意のパラメータ名(英数字)}
【マッピング作成】
マッピングを新規作成して、主データに1.のビューを選択・取得して、明細データに2.のビューを選択・取得します。
「次へ」で進んで「Documentizer」タブを開き、配備したPowerPointテンプレートを選びます。
td1の「自動マッピング」を押すと、1.のビューとPowerPointテンプレートの「TextDataset1」のフィールドで同じ名前のものが紐づきます。
その下にスクロールするとある「td2」は、PowerPointテンプレートの「TextDatast2」の設定です。
データ欄に「list1」(2.で作った明細ビュー)を選択して、「自動マッピング」します。
「配備」をクリックして、ViewFramerの設定完了です。
【ボタン作成】
作成したマッピングの「APIサンプル」欄にある[APIサンプル]ボタンをクリックします。
サービスは「Documentizer」、形式は「PowerPoint(アドインでマッピング)」を選択し、[Visualforceページ]ボタンをクリックすると、VIsualforceページサンプル(Lightning Experience画面用のボタンのサンプル)がダウンロードできます。
以下の手順でSalesforceの画面にボタンを作ります。
※ケースオブジェクトは他のオブジェクトと異なり、カスタムアクションを作成してレイアウト上に設置するとボタンではなくタブになるので、カスタムボタンとして作成します。
詳細な設定方法につきましては以下をご参照ください。
Lightning Experienceの詳細ページ用 ボタン作成
ということでボタンをクリックしたら出力できました。
上記の手順は通常のSalesforceの詳細画面に設置していますが、コミュニティ画面上にこのVisualforceページを呼び出すボタンを置けば、申請者が自分の申請したケース一覧を取得できます。
■おまけ
TD1に「表紙画像」というフィールドを作って、タイプを「画像」にします。
クリップボタンをクリックして、タグをコピーしておきます。
表紙の大きな画像を右クリックして、「代替テキストの編集」メニューを開いて、コピーしたタグを入れます。
以下の記事のように、Salesforceに登録してある画像のIDを、ViewFramer経由で「表紙画像」フィールドに渡すように設定して出力すると……
FAQ:【TECH COLUMN】Salesforceの画像の出し方(Excel/Wordアドイン篇)
Salesforceに添付している画像を表紙として出力できました。
元々のPowerPointに海の画像を挿入した際に、デザインアイデアを適用しておいたのですが、そのまま適用されています。ので、サイズにずれは生じましたが、レイアウト全体は崩れませんでした。
写真を撮ってSalesforceに添付しておいたものをそのまま報告書に使うとか、定期的に写真を入れて出力する必要があるものがあれば、手間を節約できるかもしれません。
PowerPointということで色々な表現ができると思います。企画書・日時や週次の報告書など、ぜひご活用ください。