メインコンテンツへスキップ
見出し画像

[Winter '26] 気になるリリースをピックアップ(開発・カスタマイズ系を大量に)

    こんにちは、木村です。

    先日「ゆるっとSalesforce #61 Winter '26リリースノートピックアップ」を開催しました。これはそのイベントでの発表内容をまとめた記事です。

    私は、他のメンバーのピックアップから漏れたリリースの中で気になるリリースを挙げていきたいと思います。大量に挙げていくので、できるだけ簡潔にわかりやすくすることを心がけます。
    💬 は私の感想。⭐️は私が特に気になるリリースです。

    他のメンバーのピックアップは以下からご覧ください。

    カスタマイズ

    複数の列でのリストビューの並び替え (正式リリース)

    リストビューのソートキーに複数項目を設定できます。

    💬 確か前回ベータでしたね。

    画像

    先行入力検索を使用したリストビュー設定の高速化

    リストビューの「表示する項目を選択」で項目名の最初の一文字を入力するとその項目にジャンプします。

    💬 日本語はだめでした。他のメンバーに聞くとClassicにあった機能らしいですね。

    画像

    権限セットおよび権限セットグループの割り当て解除後の権限セットライセンスの削除

    権限セットを削除したときに関連する権限セットライセンスは

    [Before] 手動で削除しないといけない
     ⬇️
    [After] 自動で削除される

    に変わりました。

    💬 地味に便利

    外部サービス制限の引き上げによるより堅牢なインテグレーションの作成

    外部サービスの制限が緩和。

    • 有効なオブジェクトの最大数:1,250 ➡️ 3,000

    • 有効な操作の最大数:1,250 ➡️ 3,000

    • 外部サービス登録数:150 ➡️ 700

    📝 有効なオブジェクト・有効な操作についてはシステム制限を参照

    外部サービスのバイナリファイルサポートを使用したファイルのアップロードおよびダウンロード

    16MBまでのバイナリファイルのアップロード・ダウンロードに対応。

    💬 API連携でやれることが増えます。

    新しい [設定] ホームページを使用したより効率的な ToDo の完了

    設定のホーム画面が変わりました。

    画像

    ユーザーの項目履歴管理を有効化(ベータ版)

    ユーザーの項目履歴管理が可能になりました。

    1. [ユーザー管理設定] > [ユーザー項目履歴管理を有効化 (ベータ)]から有効化

    2. ユーザーオブジェクトの項目設定画面で[項目履歴管理の設定]から履歴管理する項目を設定

    3. ユーザーレコードの[概要を表示]の一番下に履歴が表示される

    Jen’s Top Winter ’26 Features for Admins - Salesforce Admins に動画があるので、気になる方はご覧ください。

    💬 うれしそう。設定を変えた犯人がわかるw

    Lightning コンポーネント

    ローカル開発を使用した 1 つの Lightning Web コンポーネントのプレビュー (ベータ)

    Local Devで単一コンポーネントをプレビューする際にApexやwireが実行可能になりました。

    💬 便利

    画像
    Preview Components with Local Dev | Get Started | Lightning Web Components Developer Guide | Salesforce Developers より引用

    ⭐️LWCのGraphQL APIモジュールが新しくなりました

    Lightning/uiGraphQLApiは非推奨になり、新しくlightning/graphqlがリリースされました。

    これに合わせて大きく2つの新機能が利用可能になりました。

    • オプショナルな項目のサポート:権限のない可能性がある項目はオプショナルにすればエラーにならない

    • 動的クエリのサポート:JavaScript変数をクエリとして渡せる

    オプショナルな項目

    EmployeeNumberにアクセス権がない場合、EmployeeNumberは返されません。

    query optional {
      uiapi {
        query {
          User {
            edges {
              node {
                Id
                EmployeeNumber @optional {
                  value
                }
              }
            }
          }
        }
      }
    }

    動的クエリ

    ${this.objectName}の部分は実行時に解決されクエリが構築されます。

    import { LightningElement, track, wire } from 'lwc';
    import { gql, graphql } from 'lightning/graphql';
    
    export default class DynamicGraphQLQuery extends LightningElement {
      @track objectName = 'Account';
    
      get resolvedQuery() {
        return gql`
          query {
            uiapi {
              query {
                ${this.objectName} {
                  edges {
                    node {
                      Id
                      Name
                    }
                  }
                }
              }
            }
          }
        `;
      }
    
      @wire(graphql, { query: '$resolvedQuery', variables: {} })
      result;
    
      get data() {
        return this.result?.data ? JSON.stringify(this.result.data, null, 2) : '';
      }
    }

    💬 動的クエリがあるとだいぶ使えるようになりそう。
    💬 他のメンバーに聞いたところ、元のLightning/uiGraphQLApiでも変数は埋め込めたが、テンプレートリテラルをwireに直接書くしかできなく、柔軟性に乏しかったとのこと(確かにそうでした)。

    Salesforce Lightning Design System

    Salesforce Lightning Design System 2 を使用した組織の活性化 (正式リリース)

    SLDS2が正式リリース。「テーマおよびブランド設定」から有効化できます。

    画像

    ⭐️SLDS リンターによる SLDS 2 への移行の簡略化 (正式リリース)

    SLDS Linterというのがリリースされ、問題点のハイライトおよび一括修正ができるそうです。

    💬 要検証です。

    Apex

    Apex およびフローテストの取得と実行の合理化

    フローテストがApexと同じAPIで実行できるようになり、画面からもApexとフローを一緒にテスト可能になった。

    画像

    また、関連してsfコマンドでApexとフローのテストを一緒に実行できるようになりました。(参照)

    sf logic run test --test-level RunLocalTests --test-category Apex --test-category Flow --target-org my-scratch

    💬 ということはVSCodeからフローテストが実行できるのかも?要確認。

    ApexDoc コメント形式を使用した Apex ドキュメントの標準化

    ApexDocというApexのコメント記法が標準化された。

    💬 何が変わったのかよくわからないが、「AI エージェントがコードベースを理解しやすくなります」と書かれているので、そのためにちゃんと仕様化したのだと予想されます。

    public class OpportunityService {
        /**
         * @description Retrieves a list of open opportunities for a given account,
         * accessible from Lightning web components. If the set of open opportunities
         * can change during interaction with the component, the author will 
         * need to use {@code refreshApex()}. 
         * @param accountId The ID of the Account to retrieve opportunities for.
         * @return A List of open Opportunity records. Returns an empty list if no
         * open opportunities are found or if accountId is invalid.
         * @see OpportunitySelector
         */
        @AuraEnabled(cacheable=true)
        public static List<Opportunity> getOpenOpportunities(Id accountId) {
            List<Opportunity> result = new List<Opportunity>();
            //... implementation details...
            return result;
        }
    }

    AuraEnabled コントローラメソッドをエージェントアクションとして公開(ベータ版)

    エージェントアクションにできるのはInvocableMethodだけだったのが、AuraEnabledメソッドもできるようになった。

    💬 InvocableMethodは無駄に引数が配列になってしまうので、すっきりしてうれしい。
    💬 と思ったが、OpenAPIドキュメントを生成して、デプロイしないといけないようで、どっちがいいかはなんとも言えません…🥲

    パッケージ化

    第二世代管理パッケージまたはロック解除済みパッケージの複数レベルの連動関係のより簡単な設定

    sfdx-project.jsonでパッケージの依存関係を指定するときの指定が簡単になりました。

    例: [pkgC] → [pkgB] → [pkgA] のときに

    [Before] pkgAとpkgBを指定しないといけない。

            {
                "path": "pkgC-wsp",
                "default": false,
                "package": "pkgC",
                "versionName": "ver 0.1",
                "versionNumber": "0.1.0.NEXT",
                "dependencies": [ 
                    {
                       "package": "pkgA@1.1.0.RELEASED"
                    },
                    {
                        "package": "pkgB@2.0.0.RELEASED"
                    }
                   
                 ]
            }

    [After] pkgBだけ指定すればよい。
    そのときにcalculateTransitiveDependenciesを指定する必要がある。

            {
                "path": "pkgC-wsp",
                "default": false,
                "package": "pkgC",
                "versionName": "ver 0.1",
                "versionNumber": "0.1.0.NEXT",
                "calculateTransitiveDependencies": true,
                "dependencies": [
                    {
                        "package": "pkgB@2.0.0.RELEASED"
                    }    
                 ]
            }

    💬 うれしいけど、なぜ最初からそうしなかった?という感想

    ⭐️リリース済みの第一世代管理パッケージバージョンをベータに簡単に戻す

    リリース済みのパッケージをベータに戻せるようになった。ただし、全ての組織からアンインストールが必要。

    💬 間違えて入れてはいけないリソースをパッケージに入れてしまったときに取り返しがつかなかったが、少しなんとかなるようになった。

    プラットフォーム開発ツール

    ⭐️Agentforce DX の正式リリース

    エージェントの作成・テストなどを行うAgentforce DX CLIコマンドとエージェントの会話プレビューを行えるVSCode拡張機能が正式リリース。

    画像
    Keep Up with the Latest Agentforce DX Enhancementsから引用

    💬 Web画面を使わずVSCodeだけで開発ができるかな?

    Salesforce CLI

    フローテストの実行

    CLIからフローテストを実行できるようになった。

    sf flow run test --target-org my-scratch --class-names Flow1 --class-names Flow2

    ⭐️転送アップグレードの実行

    CLIから第二世代管理パッケージの転送アップグレードが可能になった。

    • package push-upgrade schedule: ロック解除済みまたは第二世代管理パッケージの転送アップグレードをスケジュールします。

    • package push-upgrade abort: 転送アップグレード要求をキャンセルします。

    • package push-upgrade list: 特定のパッケージのすべての転送アップグレード要求の状況を表示します。

    • package push-upgrade report: 特定の転送アップグレード要求の詳細情報を表示します。

    💬 今まではPackage Visualizerからしか実行できなかったので便利。CIでステージング環境に自動転送アップグレードとかも簡単に。

    ⭐️ソースモビリティ(正式リリース)

    ローカルのSFDXプロジェクトでソースを移動して、デプロイしても、削除&再作成とならず、移動と認識して無視してくれるようになった。
    Salesforce CLI 2.93.7 (June 18, 2025)からデフォルトで有効になっています。

    💬 とってもうれしい。削除&再作成ならまだしもこのせいでforce pushが必要になることもあった。

    Salesforce モバイルアプリケーション

    QR コードを使用したモバイルデバイスでの Salesforce へのログイン(削除されました)

    デスクトップでSalesforceにログインしている状態で、モバイルアプリにパスワードレスでログインできるQRコードを生成できる機能。

    しかし、2025年9月8日の週に英語リリースノートから削除されました。

    💬 便利そうなのに残念。

    ユーザー名なしのログイン

    デスクトップに続き、モバイルアプリでもメールアドレスのみでのログインが可能になりました。

    💬 ユーザー名を忘れたときに助かります。

    Salesforce フロー

    Einstein 次世代 (ベータ) を使用したより正確なドラフトフローの取得

    生成AIでフローの作成が賢くなった。ボタンから分かれています。
    しかし、まだpreview組織ではボタンが現れなかった。

    画像
    Einstein for Flow - YouTube から引用

    ⭐️Apex で定義されたコレクションのサポートを使用したデータテーブルでの複雑なデータの表示

    画面フローのデータテーブルでApex定義型がサポートされました。以前はオブジェクトのみサポートしていました。

    画像
    Display Complex Data with Apex-Defined Collection Support in Data Tables から引用

    💬 とても便利。APIレスポンスを無加工でフローに表示とかできそう。

    表示テキストコンポーネントで見出しを設定できるようになりました

    今まではフォントサイズの設定だけでした。見出しを設定できることで、書式の統一化が簡単になります。

    画像
    表示テキストコンポーネントのテキストの読みやすさとアクセシビリティの向上 から引用

    💬 地味に便利そう。

    ⭐️更新されたデバッガーでの画面フローのテストとトラブルシューティングの簡易化

    画面フローのデバッグが可能になりました。

    画像
    更新されたデバッガーでの画面フローのテストとトラブルシューティングの簡易化 から引用

    💬 ありがたい。

    より多くのフロー種別のサポートと拡張された詳細による永続的なロギングを使用したフローデータの記録

    レコードトリガーフローとプラットフォームイベントトリガーフローについてより詳細なログがData Cloudに出力されるようになりました。元はフロー全体の概要レベルのログしか出力されませんでした。

    以下のようにフローアクションごとのログをレポートで出すことができます。

    画像
    より多くのフロー種別のサポートと拡張された詳細による永続的なロギングを使用したフローデータの記録 から引用

    💬 試してみたが、フローを実行してもログが増えたり、増えなかったりして、よくわからなかった。
    💬 ログ系は段々とData Cloudがないとちゃんと使えなくなりそう。

    更新されたデフォルトのフローレコードページレイアウトの使用

    フローレコードページのレイアウトを編集できるようになりました。

    画像

    💬 あんまりうれしさがわかっていない。

    新しいアクション拡張メタデータを使用した呼び出し可能な Apex 設定設計の強化

    InvocableActionExtensionメタデータを作成することで、Apexアクションのフロービルダー上の入力UIをカスタマイズすることができます。表示する入力の順番の設定・折りたたみ可能なグルーピングなどを設定できます。(関連)

    <?xml version="1.0" encoding="UTF-8"?>
    <InvocableActionExt xmlns="http://soap.sforce.com/2006/04/metadata">
        <targets>
            <targetType>ActionParameter</targetType>
            <targetName>Example.Request.inputOne</targetName>
            <attributes>
                <key>Order</key>
                <dataType>Integer</dataType>
                <value>1</value>
            </attributes>
            <attributes>
                <key>Group</key>
                <dataType>String</dataType>
                <value>Group A</value>
            </attributes>
        </targets>
        <targets>
            <targetType>ActionParameter</targetType>
            <targetName>Example.Request.inputTwo</targetName>
            <attributes>
                <key>Order</key>
                <dataType>Integer</dataType>
                <value>2</value>
            </attributes>
            <attributes>
                <key>Group</key>
                <dataType>String</dataType>
                <value>Group A</value>
            </attributes>
        </targets>
        <targets>
            <targetType>ActionParameter</targetType>
            <targetName>Example.Request.inputThree</targetName>
            <attributes>
                <key>Order</key>
                <dataType>Integer</dataType>
                <value>3</value>
            </attributes>
            <attributes>
                <key>Group</key>
                <dataType>String</dataType>
                <value>Group B</value>
            </attributes>
        </targets>
    </InvocableActionExt>

    💬 カスタムプロパティーエディターを作るのは大変なので、便利かも。要研究。

    ID とアクセス管理

    環境スイッチャーでお気に入りのアカウントをまとめる

    メールアドレスでログインで表示される環境スイッチャーにお気に入り機能が追加されました。

    画像

    💬 そもそも環境スイッチャーが忘れてしまったユーザー名を探すのにめちゃめちゃ便利なことに気づいた。

    おわりに

    年々リリースノートのボリュームが大きくなっている気がします…
    しかも、最近はメジャーリリースの間にひっそりリリースして、前のリリースノートが更新される機能がめちゃめちゃ多い。年3回のリリースじゃあ世の中のAI機能の進化に追いつけないということなのでしょう。がんばっていてパートナーとしてはありがたいのですが、リリースを追うのは大変です。

    しかし、SalesforceはAgentforce等の大きな機能追加だけでなく、地味便利機能も忘れずリリースしてくれて、バランスよくバージョンアップしているのはありがたいですね。

     
     
    株式会社co-meetingのCEOです。ここでは個人的なことを書いていましたが、最近は仕事のことも書いてます。

    あなたへのおすすめ