@salesforce モジュール

@salesforce の範囲が設定されたモジュールでは、実行時に Lightning Web コンポーネントに機能が追加されます。

lightning/uiRecordApi のように @salesforce なしでインポートされたモジュールには、変更されずにすべての組織に対してユニバーサルなリソースが含まれます。

モジュールによっては、モジュール識別子のセットが固定であるものがあります。たとえば @salesforce/i18n モジュールでは、@salesforce/i18n/dir@salesforce/i18n/lang を含む多数の識別子がサポートされます。

モジュールによっては、モジュール識別子のセットが動的であるものがあります。このセットは、組織のメタデータで定義されます。たとえば、@salesforce/schema は、組織のオブジェクトと項目にアクセスします。

@salesforce/apex 

@salesforce/apex から Apex メソッドをインポートします。インポートされたメソッドは、コンポーネントが @wire を使用して、または命令としてコールできる関数です。「Apex メソッドのコール」を参照してください。

1import apexMethodName from '@salesforce/apex/Namespace.Classname.apexMethodReference';
2@wire(apexMethodName, { apexMethodParams })
3propertyOrFunction;
  • apexMethodName — Apex メソッドを識別する記号。
  • apexMethodReference — インポートする Apex メソッドの名前。
  • Classname — Apex クラスの名前。
  • Namespace — Salesforce 組織の名前空間。組織がデフォルトの名前空間 (c) を使用していない場合は名前空間を指定します。使用している場合は名前空間を指定しないでください。
  • apexMethodParams — 必要に応じて apexMethod のパラメータと一致するプロパティを含むオブジェクト。パラメータ値が null の場合、メソッドがコールされます。パラメータ値が undefined の場合、メソッドはコールされません。Apex メソッドをオーバーロードしている場合、コールするメソッドの選択は非決定的 (実質的にランダム) であり、渡されたパラメータにより現在エラーが発生しているか、その後発生する可能性があります。@AuraEnabled Apex メソッドをオーバーロードしないでください。

apexMethodParams はオブジェクトです。Apex メソッドにパラメータ値を渡すには、Apex メソッドのパラメータと一致するプロパティを持つオブジェクトを渡します。たとえば、Apex メソッドが文字列パラメータを取る場合、文字列を直接渡さず、値が文字列であるプロパティを含むオブジェクトを渡します。

Important

propertyOrFunction — ワイヤサービスからデータのストリームを受信する非公開のプロパティまたは関数。プロパティが @wire でデコレートされている場合、結果はそのプロパティの data プロパティまたは error プロパティに返されます。関数が @wire でデコレートされている場合、結果は data プロパティまたは error プロパティを持つオブジェクトで返されます。

data プロパティと error プロパティは、API のハードコードされた値です。これらの値を使用する必要があります。

Note

1// Example
2import getAccounts from '@salesforce/apex/MyAccountController.getAccounts';
3
4// Use the wire service to provision data to either a property or a function.
5// This example provisions data to a property.
6@wire(getAccounts)
7accounts;
8
9// This example provisions data to a function.
10@wire(getAccounts)
11wiredAccounts({ error, data }) {
12  if (data) {
13    this.accounts = data;
14    this.error = undefined;
15  } else if (error) {
16    this.error = error;
17    this.accounts = undefined;
18  }
19}

@salesforce/apex から getSObjectValue をインポートします。このメソッドをコールすると、Apex メソッドで取得されたオブジェクトから項目値を取得できます。

1import { getSObjectValue } from "@salesforce/apex";
2getSObjectValue(sObject, fieldApiName);
  • sObject — Apex メソッドから返されるオブジェクト。

  • fieldApiName — 項目の API 参照名。値は文字列、または @salesforce/schema からインポートされた項目への参照にすることができます。最大 5 レベルの拡張項目を指定できます。たとえば、Opportunity.Account.CreatedBy.LastModifiedById は 4 レベルの拡張項目を返します。

@salesforce/apex から refreshApex をインポートします。このメソッドをコールすると、Apex によって返される更新データについてサーバを照会し、ワイヤプロパティのキャッシュを更新できます。

1import { refreshApex } from "@salesforce/apex";
2refreshApex(valueProvisionedByApexWireService);

refreshApex を使用した Apex 以外のワイヤアダプタからのデータの更新が廃止されました。Apex 以外のワイヤアダプタから返されたレコードデータを更新するには、代わりに notifyRecordUpdateAvailable(recordIds) を使用します。

Note

  • {valueProvisionedByApexWireService} が、Apex @wire が付加されたプロパティまたは結び付けられた関数で受け取る引数 (関数にアノテーションを付加した場合) の場合。

    1// Example of refreshing data for a wired property
    2// after you update data via an LDS-managed module (lightning/uiRecordApi).
    3
    4import { updateRecord } from 'lightning/uiRecordApi';
    5import { refreshApex } from '@salesforce/apex';
    6import getOpptyOverAmount from '@salesforce/apex/OpptyController.getOpptyOverAmount;
    7
    8@wire(getOpptyOverAmount, { amount: '$amount' })
    9opptiesOverAmount;
    10
    11// Update the record using updateRecord(recordInput)
    12// Refresh Apex data that the wire service provisioned
    13handler() {
    14  updateRecord(recordInput).then(() => {
    15    refreshApex(this.opptiesOverAmount);
    16  });
    17}
    1// Example of refreshing data for a wired property
    2// after you update data via imperative Apex.
    3
    4import { refreshApex } from '@salesforce/apex';
    5import { notifyRecordUpdateAvailable } from 'lightning/uiRecordApi';
    6import getOpptyOverAmount from '@salesforce/apex/OpptyController.getOpptyOverAmount;
    7
    8@wire(getOpptyOverAmount, { amount: '$amount' })
    9opptiesOverAmount;
    10
    11// Update the record in Apex, such as via a button click
    12// Refresh Apex data that the wire service provisioned
    13handler() {
    14  updateRecordApexMethod()
    15  .then(() => {
    16      refreshApex(this.opptiesOverAmount);
    17      notifyRecordUpdateAvailable(recordIds); // Refresh the Lightning Data Service cache
    18  });
    19}
    1//Example of refreshing data for a wired function
    2
    3import { refreshApex } from '@salesforce/apex';
    4import getActivityHistory from '@salesforce/apex/ActivityController.getActivityHistory;
    5
    6
    7@wire(getActivityHistory, { accountId: '$recordId', max: '500' })
    8wiredGetActivityHistory(value) {
    9    // Hold on to the provisioned value so we can refresh it later.
    10    this.wiredActivities = value;
    11    // Destructure the provisioned value
    12    const { data, error } = value;
    13    if (data) { ... }
    14    else if (error) { ... }
    15    ...
    16}
    17handler() {
    18  refreshApex(this.wiredActivities);
    19}

命令 Apex を介してレコードを更新するには、Apex メソッドをコールしてから、notifyRecordUpdateAvailable() をコールしてキャッシュを更新します。refreshApex() 関数では、Apex メソッドを命令としてコールすることで取得されたデータは更新されません。

Note

@salesforce/apexContinuation 

@salesforce/apexContinuation から Apex メソッドをインポートします。

1// Syntax
2import apexMethodName from "@salesforce/apexContinuation/Namespace.Classname.apexMethodName";
1// Example
2import startRequest from "@salesforce/apexContinuation/SampleContinuationClass.startRequest";
  • apexMethodName — Apex メソッドを識別する記号。
  • apexMethodReference — インポートする Apex メソッドの名前。
  • Classname — Apex クラスの名前。
  • Namespace — クラスがコンポーネントと同じ名前空間にある場合、名前空間を指定しません。クラスが管理パッケージ内にある場合、管理パッケージの名前空間を指定します。

「継続を使用した長時間コールアウトの実行」を参照してください。

@salesforce/client/formFactor 

1// Syntax
2import formFactorPropertyName from @salesforce/client/formFactor
1// Example
2import CLIENT_FORM_FACTOR from @salesforce/client/formFactor
  • formFactorPropertyName — ブラウザを実行しているハードウェアのフォーム要素を参照する名前。可能な値は次のとおりです。
    • Large — デスクトップクライアント。
    • Medium — タブレットクライアント。
    • Small — 電話クライアント。

getRecordCreateDefaults ワイヤアダプタにフォーム要素を渡し、レコードを作成するためのデフォルトのレイアウト情報とオブジェクト情報を取得します。

@salesforce/community 

@salesforce/community/Id から現在のエクスペリエンスビルダーサイトのネットワーク ID をインポートします。

1// Syntax
2import idName from "@salesforce/community/Id";
1// Example
2import networkId from "@salesforce/community/Id";

@salesforce/community/basePath からエクスペリエンスビルダーサイトのベース URL をインポートします。

1// Syntax
2import basepathname from "@salesforce/community/basePath";
1// Example
2import sitePath from "@salesforce/community/basePath";

ベースパスは、ドメインの後に続くサイトの URL のセクションです。サイトドメイン名が UniversalTelco.force.com で、サイトを作成したときに追加された URL 値が myPartnerSite の場合、コミュニティの URL は UniversalTelco.force.com/myPartnerSite/s です。この場合、myPartnerSite/s がベースパスです。

「現在のエクスペリエンスビルダーサイトに関する情報の取得」を参照してください。

@salesforce/community をインポートしたコンポーネントは、エクスペリエンスビルダーページのみを対象にできます。このコンポーネントは、他の Salesforce コンテナでは使用できません。「エクスペリエンスビルダーのコンポーネントの設定」を参照してください。

Important

@salesforce/contentAssetUrl 

@salesforce/contentAssetUrl からコンテンツアセットファイルをインポートします。

1// Syntax
2import myContentAsset from "@salesforce/contentAssetUrl/contentAssetReference";
1// Syntax for assets in managed packages
2import myContentAsset from "@salesforce/contentAssetUrl/namespace__contentAssetReference";
1// Example
2import SALES_WAVE_LOGO from "@salesforce/contentAssetUrl/SalesWaveLogo";
  • myContentAsset — アセットファイルを参照する名前。

  • contentAssetReference — アセットファイルの名前。

アセットファイル名には、アンダースコアと英数字のみ使用できます。また、アセットファイル名は、組織内で一意にする必要があります。最初は文字であること、空白は使用しない、最後にアンダースコアを使用しない、2 つ続けてアンダースコアを使用しないという制約があります。

  • namespace — アセットファイルが管理パッケージ内にある場合、この値は管理パッケージの名前空間です。

「コンテンツアセットファイルへのアクセス」を参照してください。

@salesforce/i18n 

@salesforce/i18n から Internationalization プロパティをインポートします。

1// Syntax
2import internationalizationPropertyName from @salesforce/i18n/internationalizationProperty
1// Example
2import LANG from "@salesforce/i18n/lang";
  • internationalizationPropertyName — internationalization プロパティを識別する記号。

  • internationalizationProperty — Internationalization プロパティ。

internationalization プロパティは、「Internationalization プロパティへのアクセス」に記載されています。

@salesforce/label 

@salesforce/label から Salesforce 組織の表示ラベルをインポートします。

1// Syntax
2import labelName from "@salesforce/label/labelReference";
1// Example
2import greeting from "@salesforce/label/c.greeting";
  • labelName — 表示ラベルを参照する名前。
  • labelReference — 組織の表示ラベルの名前。形式は namespace.labelName です。この形式が使用されるのは、Visualforce やその他の Salesforce テクノロジの管理パッケージで使用される形式と同じであるからです。これと同じ形式を使用すると、アクセス元の場所にかかわらず、表示ラベル myns.labelName にアクセスできます。

「表示ラベルへのアクセス」を参照してください。

@salesforce/messageChannel 

Lightning Message Service 経由で通信するためにコンポーネントが使用する Lightning メッセージチャネルをインポートします。

1// Syntax
2import channelName from "@salesforce/messageChannel/channelReference";
1// Syntax for resources in a managed package
2import channelName from "@salesforce/messageChannel/channelName__channelReference";
1// Example
2import SAMPLEMC from "@salesforce/messageChannel/SampleMessageChannel__c";
  • channelName — メッセージチャネルを識別する記号。

  • channelReference — メッセージチャネルの API 参照名。

  • namespace — メッセージチャネルが管理パッケージ内にある場合は、この値は管理パッケージの名前空間です。メッセージチャネルが管理パッケージ内にない場合は、名前空間を含めないでください。

「メッセージチャネルの作成」を参照してください。

@salesforce/resourceUrl 

@salesforce/resourceUrl から Salesforce 組織の静的リソースをインポートします。

1// Syntax
2import resourceName from "@salesforce/resourceUrl/resourceReference";
1// Syntax for resources in a managed package
2import myResource from "@salesforce/resourceUrl/namespace__resourceReference";
1// Example
2import TRAILHEAD_LOGO from "@salesforce/resourceUrl/trailhead_logo";
  • myResource — 静的リソースを参照する名前。

  • resourceReference — 静的リソースの名前。

静的リソース名には、アンダースコアと英数字のみ使用できます。また、静的リソース名は、組織内で一意にする必要があります。最初は文字であること、空白は使用しない、最後にアンダースコアを使用しない、2 つ続けてアンダースコアを使用しないという制約があります。

  • namespace — 静的リソースが管理パッケージ内にある場合、この値は管理パッケージの名前空間となります。

「静的リソースへのアクセス」を参照してください。

@salesforce/schema 

@salesforce/schema から Salesforce オブジェクトおよび項目への参照をインポートします。

1// Syntax
2import objectName from "@salesforce/schema/objectReference";
3import objectName from "@salesforce/schema/namespace__objectReference";
4import fieldName from "@salesforce/schema/object.fieldReference";
1// Example
2import POSITION_OBJECT from "@salesforce/schema/Position__c";
3import POSITION_OBJECT from "@salesforce/schema/ns__Position__c";
4import NAME_FIELD from "@salesforce/schema/Account.Name";
5import SPANNING_FIELD from "@salesforce/schema/Account.Owner.Name";
  • objectName — Salesforce オブジェクトを識別する記号。
  • objectReference — Salesforce オブジェクトの名前。
  • fieldName — Salesforce 項目を識別するインポートされた記号。
  • fieldReference — Salesforce 項目の名前。最大 5 レベルの拡張項目を指定できます。たとえば、Account.Owner.Name は 3 レベルの拡張項目を返します。
  • namespace — オブジェクトまたは項目が管理パッケージ内にある場合は、この値は管理パッケージの名前空間です。

「Salesforce オブジェクトと項目への参照のインポート」を参照してください。

@salesforce/site 

@salesforce/site/Id から現在のエクスペリエンスビルダーサイトのサイト ID をインポートします。

1// Syntax
2import idName from "@salesforce/site/Id";
1// Example
2import siteId from "@salesforce/site/Id";

@salesforce/site/activeLanguages からエクスペリエンスビルダーサイトの有効な言語のリストをインポートします。

1// Syntax
2import LANGUAGES from "@salesforce/site/activeLanguages";
1import siteLanguages from "@salesforce/site/activeLanguages";

エクスペリエンスビルダーサイトの有効な言語のリストには、デフォルトのサイト言語とその他のすべての有効な言語に関するメタデータが含まれています。エクスペリエンスビルダーのサイトの言語は、[設定] | [言語] で設定できます。無効な言語はリストから除外されます。戻り値は言語オブジェクトの配列です。各オブジェクトには、言語の表示ラベルとコード (en-US など) が含まれています。配列はラベルのアルファベット順に並び替えられます。

「現在のエクスペリエンスビルダーサイトに関する情報の取得」を参照してください。

@salesforce/community または @salesforce/site をインポートしたコンポーネントは、エクスペリエンスビルダーページのみを対象にできます。他の Salesforce コンテナでコンポーネントを使用することはできません。「エクスペリエンスビルダーのコンポーネントの設定」を参照してください。

Important

@salesforce/user 

@salesforce/user/Id から現在のユーザの ID をインポートします。

1// Syntax
2import userId from "@salesforce/user/Id";
1// Example
2import Id from "@salesforce/user/Id";

userId — Salesforce ユーザ ID を識別するインポートされた記号。

ユーザがゲストユーザであるかどうかを確認するには、@salesforce/user/isGuest から現在のユーザの状況をインポートします。

1// Syntax
2import isGuestUser from "@salesforce/user/isGuest";
1// Example
2import isGuest from "@salesforce/user/isGuest";

isGuestUser — ユーザがゲストユーザであるのか (true)、ゲストユーザでないのか (false) を識別する記号。

「現在のユーザに関する情報の取得」を参照してください。

@salesforce/userPermission 

権限をインポートし、現在のユーザに割り当てられているかどうかを確認します。

1// Syntax
2import hasPermission from "@salesforce/userPermission/Permission";
1// Example
2import { LightningElement } from 'lwc';
3import hasViewSetup from '@salesforce/userPermission/ViewSetup';
4
5export default class App extends LightingElement {
6    get isSetupEnabled() {
7        return hasViewSetup;
8    }
9
10    openSetup(e) {...}
11}
  • hasPermission — 現在のユーザがインポートされた権限を持っているか (true)、否か (undefined) を示す Boolean。

  • Permission — Salesforce ユーザ権限の名前。

「権限の確認」を参照してください。

@salesforce/customPermission 

カスタム権限をインポートし、現在のユーザに割り当てられているかどうかを確認します。

1// Syntax
2import hasPermission from '@salesforce/customPermission/Permission';
3import hasPermission from '@salesforce/customPermission/namespace__Permission;
1// Example
2import { LightningElement } from "lwc";
3import hasViewReport from "@salesforce/customPermission/acme__ViewReport";
4
5export default class App extends LightingElement {
6  get isReportVisible() {
7    return hasViewReport;
8  }
9}
  • hasPermission — 現在のユーザがインポートされた権限を持っているか (true)、否か (undefined) を示す Boolean。

  • Permission — Salesforce カスタム権限の名前。

「権限の確認」を参照してください。

The Japanese Summer '24 guide is now live

日本語の Summer '24 ガイドが公開されました! 「Component Reference (コンポーネントリファレンス)」は、以前と同様にコンポーネントライブラリにあります。