この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

カスタムアクションの作成

ケースフィードでカスタムアクションとして使用する Visualforce ページを作成できます。たとえば、対応付けおよびローカル検索アクションを作成することで、エージェントは顧客の場所を検索して、最寄りのサービスセンターを見つけることができるようになります。

標準ケースコントローラを使用する Visualforce ページをカスタムアクションとして使用できます。

使用事例

Viaggio Italiano は、イタリアへのツアーを専門に取り扱う特化型の旅行代理店です。この会社は、飛行機の便、陸上交通機関、食事に関する希望、旅程など、顧客ごとに複数の詳細を追跡します。Viaggio Italiano のエージェントには、長いケースコメントを作成する機能が必要ですが、標準ケースメモは 1000 文字に制限されています。したがって、この制限をスキップする方法を希望しています。

Viaggio Italiano では、Visualforce を使用して、4000 文字までのケースコメントを投稿できる機能を含むページを作成しました。さらに、ケースフィードページレイアウトを編集して、ページをカスタムアクションとして追加しました。

ケースフィードのカスタムパブリッシャーの例

コードサンプル

次のコードサンプルは、パブリッシャーでアクションが有効化されていない組織、またはパブリッシャーでアクションが有効化されていてもページレイアウトエディタではなくケースフィードの設定ページを使用してケースフィードパブリッシャーでアクションを設定する組織の [ケースコメントを投稿] カスタムアクションを示します。

1<apex:page standardcontroller="Case"
2    extensions="CaseCommentExtension" showHeader="false">
3    <apex:includeScript value="/support/api/26.0/interaction.js"/>
4    <div>
5        <apex:form >
6            <!-- Creates a case comment and on complete notifies the Case Feed page
7               that a elated list and the feed have been updated -->
8            <apex:actionFunction action="{!addComment}" name="addComment" rerender="out" 
9            oncomplete="sforce.interaction.entityFeed.refreshObject('{!case.id}', 
10            false, true, true);"/>   
11            <apex:outputPanel id="out" >
12                <apex:inputField value="{!comment.commentbody}" style="width:98%;
13                height:160px;" />
14            </apex:outputPanel>
15        </apex:form><br />
16        <button type="button" onclick="addComment();" style="position:fixed; bottom:0px; 
17        right:2px; padding: 5px 10px; font-size:13px;" id="cpbutton" >Post Case Comment
18        </button>
19    </div>              
20</apex:page>

次のコードは、組織のパブリッシャーでアクションが有効化され、ページレイアウトエディタを使用してケースフィードパブリッシャーでアクションを選択および設定する場合に、[ケースコメントを投稿] カスタムアクションに使用されます。

1<apex:page standardcontroller="Case"
2    extensions="CaseCommentExtension" showHeader="false">
3    <!-- Uses publisher.js rather than interaction.js -->
4    <apex:includeScript value="/canvas/sdk/js/28.0/publisher.js"/>
5    <div>
6        <apex:form >
7            <!-- Creates a case comment and on complete notifies the Case Feed page
8                that a related list and the feed have been updated -->
9            <apex:actionFunction action="{!addComment}" name="addComment" rerender="out" 
10            <!-- Different oncomplete function using publisher.js -->
11            oncomplete="Sfdc.canvas.publisher.publish(
12            {name : 'publisher.refresh',  payload : 
13            {feed: true, objectRelatedLists: {}}});"/>   
14            <apex:outputPanel id="out" >
15                <apex:inputField value="{!comment.commentbody}" style="width:98%;
16                height:160px;" />
17            </apex:outputPanel>
18        </apex:form><br />
19        <button type="button" onclick="addComment();" style="position:fixed; bottom:0px; 
20        right:2px; padding: 5px 10px; font-size:13px;" id="cpbutton" >Post Case Comment
21        </button>
22    </div>              
23</apex:page>

次のサンプルは、上記のいずれかのバージョンの Visualforce ページで使用されるコントローラ拡張を含む Apex クラスを示します。

1public with sharing class CaseCommentExtension {
2    private final Case caseRec;
3    public CaseComment comment {get; set;}
4
5    public CaseCommentExtension(ApexPages.StandardController controller) {
6        caseRec = (Case)controller.getRecord();
7        comment = new CaseComment();
8        comment.parentid = caseRec.id;
9    }
10
11    public PageReference addComment() {
12        insert comment;
13        comment = new CaseComment();
14        comment.parentid = caseRec.id;
15        return null;
16    }   
17}

追加の手順

Visualforce ページを作成したら、ユーザが使用できるようにします。

まず、ページにアクセスできるプロファイルを指定します。
  1. [設定] から、[クイック検索] ボックスに「Visualforce ページ」と入力し、[Visualforce ページ] を選択します。
  2. 作成したページの名前の横にある [セキュリティ] をクリックします。
  3. ページにアクセスできるプロファイルを選択します。
  4. [保存] をクリックします。
次に��ページをカスタムアクションとして含めます。ケースフィードの設定ページを使用してアクションを選択および設定する場合の手順は、次のとおりです。
  1. ケースのオブジェクト管理設定から、[ページレイアウト] に移動します。
  2. ケースフィードの設定ページへのアクセス方法は、使用しているページレイアウトの種類に応じて異なります。
    • [ケースページレイアウト] セクションのレイアウトの場合、[編集] をクリックし、ページレイアウトエディタで [フィードビュー] をクリックします。
    • [ケースフィードユーザのページレイアウト] セクションのレイアウトの場合、ケースフィードレイアウト展開ボタン をクリックし、[フィードビューを編集] を選択します (このセクションは、Spring '14 より前に作成された組織にのみ表示されます)。
  3. [カスタムアクション] で、[+ Visualforce ページを追加] をクリックします。
  4. 追加するページを選択します。
  5. アクションの高さを指定します。最適な外観を得るには、200 ピクセルの高さをお勧めします。
  6. [アクションを選択] で、カスタムアクションを [選択可能] から [選択済み] に移動します。
  7. [保存] をクリックします。
アクションの選択および設定にページレイアウトエディタを使用することを選択した場合は、まずカスタムアクションを作成する必要があります。
  1. ケースのオブジェクト管理設定から、[ボタン、リンク、およびアクション] に移動します。
  2. [新規アクション]をクリックします。
  3. [カスタム Visualforce] を選択します。
  4. 作成した Visualforce ページを選択してから、アクションウィンドウの高さを指定します (幅は固定です)。
  5. アクションの表示ラベルを入力します。これは、パブリッシャーでアクションについてユーザに表示されるテキストです。
  6. 必要に応じて、アクションの名前を変更します。
  7. アクションの説明を入力します。説明は、アクションの詳細ページと、[ボタン、リンク、およびアクション] ページのリストに表示されます。説明はユーザに表示されません。
  8. 必要に応じて、[変更アイコン] をクリックして、アクションに別のアイコンを選択します。このアイコンは、API を介してアクションを使用する場合にのみ表示されます。
次に、アクションをページレイアウトに追加します。
  1. ケースのオブジェクト管理設定から、[ページレイアウト] に移動します。
  2. ページレイアウトエディタへのアクセス方法は、使用しているページレイアウトの種類に応じて異なります。
    • [ケースページレイアウト] セクションのレイアウトの場合、[編集] をクリックし、ページレイアウトエディタで [フィードビュー] をクリックします。
    • [ケースフィードユーザのページレイアウト] セクションのレイアウトの場合、ケースフィードレイアウト展開ボタン をクリックし、[詳細ビューを編集] を選択します。(このセクションは、Spring '14 より前に作成された組織にのみ表示されます)。
  3. パレットで [クイックアクション] をクリックします。
  4. アクションをパレットから [Salesforce Classic パブリッシャーのクイックアクション] セクションにドラッグします。
  5. [保存] をクリックします。