0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Salesforce】Lightningデータサービスを学ぶ

0
Last updated at Posted at 2025-12-25

この記事は新社会人のSalesforce学習記録とその他 Advent Calendar 2025のだいたい25日目くらいの記事です。
調べていたらこんなものがあったので学習します。

Ligtningデータサービス(LDS)とは

Lightning Webコンポーネントの中で、APIを使用してSOQLも使わずにSalesforceのデータを使用できるものになります。
通常のLightningWebコンポーネントでは、Apexを一緒に使用してデータを操作します。しかし、LDSを使用することでApexがなくてもJavascript側のfunctionで直接APIを使用してデータを取得→表示、作成や更新ができるようになります。
例えばボタンを押す→レコードを作成するときなどに便利です。

Apexの必要性

jsでのレコード操作は基本的なもの(CRUDの操作)のみのようです。例えばボタンを押すと大量のデータを入れられるようなバッチ処理を行いたい場合等の状況ではApexを使用する必要があります。
Apexを使用した方が良い状況の一例を載せておきます。

トランザクション処理は不可能

大量のデータを入れようとしてガバナ制限に引っかかった場合、Apexでは入れようとしたデータは基本ロールバックされます。しかし、LDSでは基本的にロールバックされません。
Apexでは1回のトランザクションで行われるため、エラーが起きる→その回のトランザクション処理がロールバックとなります。しかしLDSではレコード単位のため1レコードずつ処理されているようです。これによりロールバックの処理はされずエラーが起きても起きる前のデータは正常に処理されたままになります。

複雑な操作ができない

LDSは簡単にデータを取ってくることができるサービスではありますが、SOQL分を使用していないため複雑な操作を行うことはできません。集計関数を使用して集計を行うなどといった操作は、Apexを使用して行うことになります。

メリット

Apexよりも
・パフォーマンス
・一貫性
・簡潔さ
が優れているそうです。

パフォーマンス

一度とってきたデータはキャッシュができます。これにより新しく同じデータを取ってくる必要がなくなります。

一貫性

項目レベルセキュリティや共有ルールが常に適用された状態になるようです。

簡潔さ

Apexクラスをわざわざ作って、SOQLを書く手間が省けます。
開発的な面で見ても効率がいいです。

実際に作ってみる

最小構成です。
単純にlwcコンポーネントとしてつけたオブジェクトのデータを取ってくるなら

1225.js
import { LightningElement,api,wire } from 'lwc';
import { getRecord } from 'lightning/uiRecordApi';
import ACCName from '@salesforce/schema/Account.Name';
export default class Study1222 extends LightningElement {
    @api recordId;
    @wire(getRecord,{recordId:'$recordId',fields:[ACCName]})
        account;
}

これと

1225.html
<template>
    <template if:true={account.data}>
    <p>そのオブジェクトのデータを取ってこれる↓(今回は名前)</p>
    <p>{account.data.fields.Name.value}</p>
    </template>
</template>

結果⇩
image.png
jsの$recordIdをレコードIDに変更すると、任意のデータを取ってくることができるみたいです。

まとめ

jsで完結できるので便利。少ないレコードのみ取得する場合はとても良い機能だと感じました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?