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

Salesforce Classic のパブリッシャー API

Salesforce Classic パブリッシャー JavaScript API では、Salesforce Classic アプリケーションのレコードページに追加した、フィードに対応しているオブジェクトのアクションを Visualforce ページとコンポーネントで操作できます。パブリッシャー API は、標準ナビゲーションやコンソールナビゲーションを使用する Salesforce Classic アプリケーションで動作します。たとえば、事前に作成されたカスタマイズ済みのテキストを生成するコンポーネントを開発し、そのテキストをケースフィードのポータルアクションで新しい投稿に追加し、投稿をポータルに送信する操作を、ワンクリックですべて行うことができます。
使用可能なインターフェース: Salesforce Classic (使用できない組織もあります)
使用可能なエディション: Enterprise Edition、Performance Edition、Unlimited Edition、および Developer Edition

Sfdc.canvas.publisher オブジェクトの publish メソッドを使用して、コンソールコンポーネントでクイックアクションを操作できます。

Salesforce Classic JavaScript パブリッシャー API の API バージョン 43.0 以降、Visualforce コンポーネントで使用されるメソッドは Lightning Experience で機能します。Lightning Experience で Visualforce ページを使用するには、カスタムクイックアクションを使用するか、Lightning アプリケーションビルダーでそれをページに追加します。Visualforce ページでパブリッシャー API スクリプトの 43.0 バージョンをポイントするだけです。

JavaScript パブリッシャー API メソッドを Lightning アプリケーションのカスタムコードで使用する場合、対象のクイックアクションがページに表示されるようにする必要があります。ページに表示されていないアクションを対象にすると、そのアクションは失敗します。

ヒント

publisher.selectAction

説明 ペイロードの値 使用可能なバージョン
指定されたアクションを選択し、そこにフォーカスを移動します。 actionName — 選択するアクション。サポートされている値は、次のとおりです。
  • action_name – 作成、活動の記録、またはカスタム Visualforce クイックアクション。たとえば、取引先責任者の作成アクションの action_namecreate_contact のようになります。
  • Case.CaseComment — ケースフィードのポータルアクション
  • Case.ChangeStatus — ケースフィードの状況の変更アクション
  • Case.Email — ケースフィードのメールアクション
  • Case.LogACall — ケースフィードの活動の記録アクション
  • FeedItem.TextPost — 標準 Chatter 投稿アクション (API バージョン 32.0 以降で使用可能)
  • SocialPostAPIName.SocialPost — ソーシャル投稿アクション (API バージョン 32.0 以降で使用可能)
API バージョン 29.0 以降で使用できます。
コードサンプル

次のコードスニペットは、メールアクションを選択し、そこにフォーカスを移動します。

Sfdc.canvas.publisher.publish({name:"publisher.selectAction",payload:{actionName:"Case.Email"}});

publisher.setActionInputValues

説明 ペイロードの値 使用可能なバージョン
アクションのどの項目に特定の値を入力する必要があるかと、その値を指定します。 actionName — 入力する必要がある項目でのアクション。
有効な項目��は、指定するアクションによって異なります。
  • emailFieldsCase.Email で使用できます。ケースフィードのメールアクションで使用できる標準項目です。
    • to
    • cc
    • bcc
    • subject
    • body
    • template
  • portalPostFieldsCase.CaseComment で使用できます。ケースフィードのポータルアクションで使用できる標準項目です。
    • body
    • sendEmail (boolean)
  • targetFieldsCase.ChangeStatusCase.LogACallFeedItem.TextPost、およびソーシャルアクションで使用できます。次のアクションで使用できる標準項目です。
    • Case.ChangeStatus: commentBody
    • Case.LogACall: description
    • FeedItem.TextPost: body

      body の属性は value および insertType です (省略可能)。insertType の有効な値は、beginendcursor、および replace です。デフォルト値は、replace です。(API バージョン 32.0 以降で使用可能)。

    • SocialPostAPIName.SocialPost では、content および insertType です (省略可能)。insertType の有効な値は、beginendcursor、および replace です。デフォルト値は、replace です。(API バージョン 32.0 以降で使用可能)。
  • parentFieldsCase.ChangeStatusCase.Email、および Case.LogACall で使用できます。ケースの標準項目およびカスタム項目です。参照項目はサポートされません。
API バージョン 29.0 以降で使用できます。
コードサンプル

次のコードスニペットは、メールメッセージの項目に定義済みの値を入力し、関連ケースの状況を [Closed (クローズ)] に設定します。

このコードスニペットによって、投稿アクションの本文の現在のカーソル位置に語句「Hello World」が挿入されます。

publisher.invokeAction

説明 ペイロードの値 使用可能なバージョン
指定されたアクションの送信機能 (メールの送信やポータルコメントの投稿など) をトリガします。 actionName — 送信機能のトリガ対象となるアクション。次のアクションがサポートされています。
  • Case.Email
  • Case.CaseComment
  • Case.ChangeStatus
  • Case.LogACall
  • FeedItem.TextPost (API バージョン 32.0 以降で使用可能)
  • SocialPostAPIName.SocialPost (API バージョン 32.0 以降で使用可能)
API バージョン 29.0 以降で使用できます。
コードサンプル

次のコードスニペットは、メールアクションで送信機能をトリガし、メールメッセージの送信と関連フィード項目の生成を行います。

Sfdc.canvas.publisher.publish({name:"publisher.invokeAction",payload:{actionName:"Case.Email"}});

publisher.customActionMessage

説明 ペイロードの値 使用可能なバージョン
カスタムイベントをカスタムアクションに渡します。Visualforce ベースのカスタムアクションでのみサポートされます。 actionName — イベントを渡す先となる Visualforce カスタムアクション。

message – カスタムアクションに渡すイベント。

API バージョン 29.0 以降で使用できます。
コードサンプル

次のコードスニペットは、Hello world イベントをアクション my_custom_action に渡します。

Sfdc.canvas.publisher.publish({name:"publisher.customActionMessage", payload:{actionName:"my_custom_action", message:"Hello world"}});

次のコードスニペットは、my_custom_action で Hello world イベントをリスンするために使用されます。

Sfdc.canvas.publisher.subscribe([{name : "publisher.customActionMessage", onData : function(e) {alert(e.message);}}]);

publisher.refresh

現在のレコードページを更新します。このメソッドに引数はありません。

使用事例とサンプルコード

Universal Cable では、全米で数 100 万人もの電話/ケーブル顧客にサービスを提供し、さまざまな規模のコールセンターに 4000 人のサポートエージェントを有しています。Universal では、Salesforce ナレッジに含まれる会社の大量の記事にエージェントが簡単にアクセスでき、サポートコストを抑えるためにメールを通して顧客と記事を共有したいと考えています。

Universal では、publish のイベントを使用して、次のようなカスタムコンソールコンポーネントを作成しました。
  • 最近公開されたものから順に、ナレッジ記事のリストを表示する。
  • エージェントは、タイトルをクリックして記事を参照できる。
  • エージェントは、コンソールコンポーネントで [メール] ボタンをクリックすることで、記事の完全な書式設定済みテキストをケースフィードのメールアクションでメッセージに追加できる。
ナレッジコンソールコンポーネントがあるケースフィード

次のコードスニペットは、以下の Visualforce ページで使用されるカスタムコントローラを含む Apex クラスを示します。

次のコードサンプルは、上記の使用事例でカスタムコンソールコンポーネントとして使用される Visualforce ページを示します。