ロビー管理グリーターダッシュボードイベントへの登録
グリーターが Lobby Management ダッシュボードでサービステリトリーを変更すると、Salesforce Scheduler は Lightning Message Service (LMS) イベントを lightning__appointmentBooking_greeterDashboard チャネルに公開します。カスタムLightning WebコンポーネントまたはAuraコンポーネントから登録して、カスタム待機リスト、予定、またはデータビューを、選択したテリトリーと常に同期させます。
必要なエディション
| 使用可能なインターフェース: Lightning Experience。 |
| 使用可能なエディション: Enterprise Edition および Unlimited Edition |
チャネル
| チャネル名 | lightning__appointmentBooking_greeterDashboard |
| 範囲 | APPLICATION |
| 露出 | 外部。このチャネルは、名前空間間およびプラットフォームで実行される顧客コードで使用できます。 |
メッセージペイロード
| プロパティ | データ型 | 詳細 |
|---|---|---|
eventType |
String | ダッシュボードイベントの種別。たとえば、TERRITORY_CHANGE です。 |
eventData |
オブジェクト | イベントに固有のデータ。内部構造はeventTypeによって異なります。 |
Lightning Web コンポーネントの例
lightning__appointmentBooking_greeterDashboard イベントを聞くには、lightning/messageService から Lightning Message Service 機能をインポートし、チャネル参照を subscribe() メソッドに渡します。
import { LightningElement, wire } from 'lwc';
import {
subscribe,
unsubscribe,
APPLICATION_SCOPE,
MessageContext
} from 'lightning/messageService';
import GreeterDashboardChannel from '@salesforce/messageChannel/lightning__appointmentBooking_greeterDashboard';
export default class GreeterDashboardExample extends LightningElement {
subscription = null;
eventType;
eventData;
@wire(MessageContext)
messageContext;
connectedCallback() {
this.subscribeToMessageChannel();
}
subscribeToMessageChannel() {
if (!this.subscription) {
this.subscription = subscribe(
this.messageContext,
GreeterDashboardChannel,
(message) => this.handleMessage(message),
{ scope: APPLICATION_SCOPE }
);
}
}
handleMessage(message) {
const { eventType, eventData } = message;
if (eventType === 'TERRITORY_CHANGE') {
console.log('Territory changed:', eventData);
}
}
}Aura コンポーネントの例
コンポーネントマークアップで、メッセージチャネルを宣言します。
<lightning:messageChannel type="lightning__appointmentBooking_greeterDashboard"
scope="APPLICATION"
onMessage="{!c.onGreeterDashboardMessage}" />コントローラーで、メッセージを処理します。
({
onGreeterDashboardMessage: function(cmp, evt, helper) {
var eventType = evt.getParam('eventType');
var eventData = evt.getParam('eventData');
if (eventType === 'TERRITORY_CHANGE') {
console.log("Territory changed:", JSON.stringify(eventData));
}
}
})この記事で問題は解決されましたか?
ご意見をお待ちしております。

