ここでは、Lightning Experience(LEX)の画面で取引先のレコードを開いているとき、RaySheetによる関連する商談の一覧を「商談の一覧」ボタンからポップアップ表示する例を紹介します。具体的には、次のような画面で操作できます。
ボタンの拡大:
ボタンをクリック後に表示されるポップアップ:
ポップアップの幅はLightning Experienceで定義されているため、変更できません。 データの保存操作はRaySheet画面上の機能を使うため、ポップアップに表示される「保存」ボタンは使用しません。 Salesforce Classicでは「商談の一覧」ボタンはChatterに表示されます。
Salesforce Classicでの表示結果:
Lightning ExperienceアクションからRaySheetのビューを呼び出す手順は次のようになります。
取引先ページでLightning Experienceアクションから商談の一覧を表示する方法を例として以下に説明します。
Lightning Experienceアクションをクリックしたときに表示するRaySheetのビューを作成します。
RaySheetのビューを表示するためのVisualforceページを作成します。
<apex:page standardController="Account" showHeader="true" sidebar="false">
<div style="position: absolute; left:0; top:0; right: 0; bottom: 0">
<gcss:Spreadsheet
ShowTitleBar="false"
ShowToolbar="true"
AllowEdit="true"
AllowAdd="true"
AllowDelete="true"
AllowPaste="true"
AllowRefresh="true"
Object="Opportunity"
ViewId="ここにビューIDを記入する"
ParentId="{!account.id}"
ParentField="AccountId"/>
</div>
</apex:page>
「AccountOpportunityPopup」Visualforceページを作成できたら、「プレビュー」をクリックしてRaySheetのビューがブラウザーの新しいタブに表示されることを確認します。
このVisualforceページはオブジェクトモードが前提です。フォルダーモードの場合は、gcss:Spreadsheetコンポーネントの属性”object”の部分を”FolderId”に変更してください。”FolderId”属性に指定する18桁のIDの値の取得方法についてフォルダーのプロパティを参照してください。
Visualforceページに表示するgcss:Spreadsheet
タグの属性を変更することで、RaySheetのどの機能をユーザーに許可するか指定できます。詳細は「どこでもViewの基本」を参照してください。
前項で作成したVisualforceページは、既定ではシステム管理者のプロファイルを割り当てられたユーザーだけが表示できます。システム管理者以外のプロファイルにも許可するには、Visualforceページのセキュリティを設定します。
「取引先」のLightning Experienceアクションを作成します。「商談」ではなく「取引先」なので取り違えないように注意します。
作成したアクションを「取引先」ページに表示します。「商談」ではなく「取引先」なので取り違えないように注意します。
Salesforce ClassicのChatterに表示する場合は5の手順で「Salesforce Classic パブリッシャーのクイックアクション」にドラッグします。
Lightning Experienceで任意の取引先レコードを開き、「商談の一覧」ボタンをクリックしてRaySheetがポップアップ表示されるかどうか確認します。
「2.visualforceページを作成する」のVisualforceページを流用する場合の修正箇所を説明します。例として以下のようなカスタムオブジェクトへの流用を想定します。
修正を加える箇所は以下の5つの箇所です。
修正例
<apex:page standardController="ObjA__c" showHeader="true" sidebar="false">
<div style="position: absolute; left:0; top:0; right: 0; bottom: 0">
<gcss:Spreadsheet
ShowTitleBar="false"
ShowToolbar="true"
AllowEdit="true"
AllowAdd="true"
AllowDelete="true"
AllowPaste="true"
AllowRefresh="true"
Object="ObjB__c"
ViewId="ここにビューIDを記入する"
ParentId="{!ObjA__c.id}"
ParentField="ObjAField__c"/>
</div>
</apex:page>