この記事では、Lightning Message Service を利用するための Lightning Message Channel を Winter '20 のプレリリース環境に SalesforceDX でデプロイする手順を紹介します。
Lightning Message Service とは
Lightning Message Service では、 Lightning Message Channel を介して Visualforce ページと Lightning コンポーネント(Aura, LWC)間で PubSub 方式の通信が可能になります。
Winter '20 リリースでは開発者向けプレビュー機能として、 Developer エディションでのみ利用可能となる予定です。
[Salesforce Winter ’20 Release Notes | Communicate Across Salesforce UI Technologies with Lightning Message Service (Developer Preview)](tps://releasenotes.docs.salesforce.com/en-us/winter20/release-notes/rn_lc_message_channel.htm) のサンプルコードより
プレリリース版 Developer 環境を取得
Winter '20 プレリリース環境のサインアップページ から Developer エディションの環境を取得します。
プレリリース版 SalesforceDX プラグインをインストール
Lightning Message Channel をデプロイするには API バージョンが 47 以上である必要があるので、 sfdx もプレリリース版を利用します。
$ sfdx plugins:install salesforcedx@pre-release
$ sfdx plugins --core
> salesforcedx 47.0.7 (pre-release)
SFDX プロジェクトを作成
Visual Studio Code を開き、 Command + Shift + p > SFDX: Create Project with Manifest でプロジェクトを作成します。
次に、 Command + Shift + p > SFDX: Authorize an Org で Winter '20 プレリリース環境にログインしておきます。
Lightning Message Channel を作成
今回は Custom Message Channel をという名前のメッセージチャネルを作ってみます。
以下のコマンド、または同等の操作でメタデータを作成します。
$ mkdir force-app/main/default/messageChannels
$ touch force-app/main/default/messageChannels/SampleMessageChannel.messageChannel-meta.xml
そして、以下の要領でファイルを編集します。
<?xml version="1.0" encoding="UTF-8"?>
<LightningMessageChannel xmlns="http://soap.sforce.com/2006/04/metadata">
<masterLabel>Sample Message Channel</masterLabel>
<isExposed>true</isExposed>
<lightningMessageFields>
<fieldName>recordId</fieldName>
</lightningMessageFields>
<lightningMessageFields>
<fieldName>recordData</fieldName>
</lightningMessageFields>
</LightningMessageChannel>
<?xml version="1.0" encoding="UTF-8"?>
<Package xmlns="http://soap.sforce.com/2006/04/metadata">
...
<types>
<members>*</members>
<name>LightningMessageChannel</name>
</types>
<version>47.0</version>
</Package>
Lightning Message Channel をデプロイする
VS code の Explorer 上の manifest/package.xml を 右クリック > SFDX: Deploy Source in Manifest to Org でデプロイが開始します。
正常終了すれば完了です。