本記事では、ViewFramerを用いてSalesforceのキャンペーンに紐づくキャンペーンメンバーからラベル印刷用のExcelを生成する方法をご紹介します。
ラベル出力するために、明細行をZ型に出力できるというExcelアドインの機能を使用しますので、その設定方法が本記事のメインになります。
今回生成するラベル印刷用のExcelは以下です。
例として非常に簡単なものを取り上げているので、必要に応じてデザインや内容は変更してください。
目次
- Excelファイルのテンプレートを用意する
- ViewFramerでSalesforceのレコードとExcelテンプレートを紐づける設定をする
- Excelファイルを出力するボタンをSalesforceに設置する
Excelファイルのテンプレートを用意する
白紙のExcelファイルを用意します。
アドインをインストールし「OPROARTS」を選択します。
続く画面では「OK」「Get Started」をクリックします。
Excelシート内の1ラベルのデザインは以下のようにします。
アドインの画面で「フィールドを追加」欄に「住所、会社名、氏名」と入力し、「+」をクリックしてフィールドを追加します。
追加したフィールドをExcelのラベルデザイン内に配置します。
繰り返ししたい範囲を選択し、繰り返し定義タブ(左から2番目のタブ)に移動して、「繰返し」をクリックします。
「繰返し」をクリックすると、タグが埋め込まれます。
タグが埋め込まれたセルを選択し、「右方向に繰り返す数」をデフォルト値の1から2に変更します。
住所のセルに入る文字列は長くなることが予想されるので、フォントサイズを下げておきます。
ここまで設定したら、テンプレートの作成は完了です。
作成したテンプレートをOPROARTSサーバーにアップロードします。
アップロードタブ(1番右のタブ)へ移動し、「アップロードフォームを開く」をクリックします。
OPROARTSサーバー内での管理に使用するテンプレート名などを設定します。
「Excelブック」に、作成・アドイン設定したExcelファイルを選択し、「作成」をクリックします。
「配備」をクリックします。
もう一度「配備」をクリックします。
ViewFramerでSalesforceのレコードとExcelテンプレートを紐づける設定をする
ビューの設定
まずはビューを作成します。
ビュータブで「新規」をクリックします。
Salesforceへのログインが促されますので、認証情報を入力してログインします。
※ 次からこの画面が表示されたときは、「現在のセッション情報を使用する」をクリックすればOKです。
ビューの名前を入力します。
※以後、次の画面に移動する際は右下の「次へ」をクリックします。
使用するオブジェクトを指定します。
今回は「キャンペーンメンバー」オブジェクトを選びます。
帳票に出力する項目を指定します。
「住所」「会社名」「氏名」の3項目を出力項目とします。
住所については、項目ビルダーで以下の数式を用い、キャンペーンメンバーレコードの「郵便番号」「都道府県」「市区郡」「町名・番地」項目の値を繋げて出力します。
'〒' || CampaignMember.PostalCode || ' ' || CampaignMember.State || CampaignMember.City || CampaignMember.Street
会社名についてはキャンペーンメンバーレコードの「会社名(取引先)」項目の値を、氏名については「名前」項目の値をそのまま出力します。
それぞれのオブジェクトについてどのようなレコードを取得するか、条件を指定します。
今回はキャンペーンレコード詳細画面から紐づくメンバーのラベルを出力することを考えて設定するため、キャンペーンレコードのIDを出力条件として使用できます。
キャンペーンメンバー.キャンペーン の値がパラメータ「CampaignId」と等しいキャンペーンメンバーのみを出力するよう条件設定します。
このパラメータ「CampaignId」には、帳票出力ボタンを押した画面のキャンペーンレコードのIDが入ります。
条件指定が済んだら、「保存」をクリックします。
マッピングの設定
マッピングタブで「新規」をクリックします。
マッピングの名前を入力します。
帳票タイプは「一覧型」を指定します。
※ 「ビューの編集を許可する」がOFFの場合は、マッピングで使用したビューを編集不可になります。
作成したビューを選択したら「取得」をクリックします。これでビューの項目をExcelテンプレートに紐づけられるようになります。
画面右下の「次へ」をクリックするとSalesforceへのログインを促されるため、既にSalesforceへのログインを済ませていれば「現在のセッションを使用」、ログインしていなければ「ログイン」をクリックしてSalesforceにログインします。
ログインが済むとマッピング出力設定画面に移動します。
Documentizerタブへ移動し、作成したExcelテンプレートを選択します。
ここまでの設定で、Excelテンプレート内の各フィールドとビューの項目名を同じに設定しているため、「自動マッピング」をクリックするだけでテンプレートのフィールドとビューの出力項目の紐づけが完了します。
右下の「配備」をクリックすれば、このマッピングをSalesforceから呼び出せるようになります。
Excelファイルを出力するボタンをSalesforceに設置する
キャンペーンレコードの詳細画面にExcelファイル出力ボタンを設置します。
詳細画面に設置する出力ボタンの作成方法は以下記事に説明がございます。
Lightning Experienceの詳細ページ用 ボタン作成
基本的に上のリンク先ページに記載されている手順を踏むことでExcel出力ボタンを設置可能ですが、1点だけ異なる設定があります。
ViewFramerのマッピング一覧画面からダウンロードしたVisualforceページに関して、以下箇所を編集してください。
編集前
<apex:page standardController="CampaignMember" standardStylesheets="false"
編集後
<apex:page standardController="Campaign" standardStylesheets="false"
編集前
CampaignId:'{!JSENCODE(CampaignMember.CampaignId)}',
編集後
CampaignId:'{!JSENCODE(Campaign.Id)}',
他の設定に関しては上のリンク先ページに記載されている手順と同じになります。
設置した出力ボタンをクリックすると、それぞれのキャンペーンメンバーの情報を表示するセルのまとまりが折り返して繰り返し出力されることが分かります。
↓
ちなみにキャンペーンメンバーは以下のようになっています。