CloudServiceCloudコンソールはじめにみなさんはじめまして。Sales)と呼ばれるようになりました。コンソールについて詳しくは過去の記事やヘルプをご参照ください。一画面に情報を集約して効率化を図れるコンソールですが、コンソールの標準機能とは別に必要な機能が出てきた時、Visualforce等での開発を行うこともあります。標準画面での操作とは違い、Visualforce画面をコンソール上に表示した場合、コンソールの標準機能が動作しない場合があります。標準画面では主タブに対してサブタブで関連するレコードを作成した場合、保存処理にあわせて主タブ全体がリフレッシュされ、変更が反映されるようになっていますが、Visualforceでレコードを保存した場合はリフレッシュがかかりません。標準機能の利用以外にも、主タブやサブタブの開閉やサイドバーやフッターからのタブへのアクセスなど、プログラムにより制御や自動化ができるようになれば、より自由にコンソールを使用することができます。Toolkitについて紹介します。APIとして提供され、ライブラリを読み込むことで使用できます。Toolkitを参照するためには以下のようにscriptファイルのURLを指定します。ない場合は組織のインスタンスのドメインもしくはデフォルトのインスタンスドメインを含めた絶対パスで指定します。サンプルではデフォルトのインスタンスを指定しています。注意点として外部のドメインからToolkitを使用するには、コンソールのホワイトリストに外部ドメインを追加する必要があります。それでは、Toolkitでどのようなことができるのか見て行きましょう。主タブ・サブタブタブIDを取得するタブを開くタブを閉じるタブにフォーカスするタブタイトルやスタイルの指定コンソール使用有無コンソールの最も特徴的な機能である、タブ表示に関して操作することができます。今現在そのページがコンソール内で開かれているのかを判断するメソッドも用意されています。カスタムコンソールコンポーネントコンポーネント表示状態の取得コンポーネント・ボタン表示方法の制御コンポーネントのスタイル設定コンソールではカスタムコンソールコンポーネントを作成してフッターに表示が可能です。作成したコンポーネントで自分自身の操作や他のタブの操作が行えます。イベントリスナータブの開閉ログアウトコンソールにおけるイベント時に行う処理を指定できます。ログアウトを遅延して独自の処理を行うこともできます。転送通知の取得LiveAgentの操作オムニチャネルの操作ソフトフォンへのアクセスやチャットのイベント制御など、各種コンソールの機能にアクセス可能です。注意点として、各メソッドは基本的に非同期での実行となっているため、コールバック関数を指定し、適切なコールバック処理を行う必要があります。Toolkitを使用すればコンソールの標準で提供されている機能にアクセスすることができるため、コンソールの状態やイベントを取得→開発機能による処理→必要に応じてコンソールの状態を更新といった流れで機能の実装が可能です。実例それでは、実際にToolkitを使用してみましょう。今回は、先ほど挙げたリフレッシュと、Visualforceページをタブに表示した際のタブ名「外部ページ」の上書きを行います。以下の想定で作成していきます。1.ヘッダと明細形式のデータを扱う2.明細をサブタブで登録した際に、主タブをリフレッシュする3.リフレッシュ完了後は主タブに戻るため、サブタブを閉じるまずは、明細の編集画面です。保存ボタンの処理は拡張クラスで行っており、保存に必要な処理を実装しています。この画面で明細編集画面を上書くのですが、この際ページをコンソールで開くとタブ名が外部ページになります。このタブ名を以下のスクリプトで変更します。次に、はじめのページでボタンのoncompleteに指定していたメソッドをScriptに追加します。ここでは、現在フォーカスしている主タブのIDを取得しています。タブのIDは引数に指定したコールバック関数へと渡されます。そのコールバック関数は以下のようになります。指定したIDでタブのリフレッシュが成功したかはコールバック関数に渡されます。リフレッシュ結果を受け取って処理を分岐し、成功していれば自身のサブタブを閉じることとします。この時、自身のタブはgetEnclosingTabIdメソッドで取得可能です。IDの取得結果は例によってコールバック関数で受け取ることとなるので、以下のコールバック関数を追加します。これでタブのクローズまで完了しました。ページは以下のようになりました。Toolkitにはまだまだ紹介できていない機能がたくさんあります。コンソール内のタブはそれぞれiframeで読み込まれますので、Toolkit同様Javascriptで操作するのも面白いですね。今年のDreamforceも開催が間近となっており盛り上がってきていますね。Consoleも毎年のように機能が追加されており、どんどんできることが増えていっています。Toolkitを使用してコンソールアプリケーションを構築してみてはいかがでしょうか。検索クラウドやるならテラスカイ。求む!Salesforce開発エンジニア。