Multi-FrameworkでReactAppを(内部向けアプリ)

あれ、もうGAになったのかな?

前に外部向け(Experience Cloud)のReact Appを作成してみたので、今度は内部向けも試してみる。今回はSandbox環境にデプロイして動かせるのか試してみよう。

内部向けのsfdxプロジェクトを作成

今回は --templatereactinternalapp を指定する

$ sf template generate project --name wkInReactApp --template reactinternalapp

npmパッケージのインストール&ビルド

READMEにある通りに、作成したプロジェクトのルートディレクトリで、以下を実行する

$ npm install
$ npm run sf-project-setup

> @salesforce/ui-bundle-template-base-sfdx-project@1.135.0 sf-project-setup
> node scripts/sf-project-setup.mjs

Created .gitignore in /Users/takahiro-yonei/dev/salesforce/98_works/wkInReactApp/force-app/main/default/uiBundles/wkInReactApp
SFDX project root: /Users/takahiro-yonei/dev/salesforce/98_works/wkInReactApp
UI bundle directory: /Users/takahiro-yonei/dev/salesforce/98_works/wkInReactApp/force-app/main/default/uiBundles/wkInReactApp

--- npm install ---

npm warn deprecated whatwg-encoding@3.1.1: Use @exodus/bytes instead for a more spec-conformant and faster implementation
npm warn deprecated node-domexception@1.0.0: Use your platform's native DOMException instead

added 1122 packages, and audited 1123 packages in 7s

292 packages are looking for funding
  run `npm fund` for details

10 vulnerabilities (3 low, 2 moderate, 4 high, 1 critical)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

--- npm run build ---


> base-react-app@1.59.0 build
> tsc -b && vite build

No default org found. Run "sf org login" to authenticate an org, or "sf config set target-org=<username>" to set a default.
vite v7.3.3 building client environment for production...
✓ 2817 modules transformed.
dist/index.html                   0.41 kB │ gzip:   0.27 kB
dist/assets/index-CVqgXMhz.css   75.93 kB │ gzip:  12.48 kB
dist/assets/index-B758UktR.js   563.10 kB │ gzip: 178.89 kB

(!) Some chunks are larger than 500 kB after minification. Consider:
- Using dynamic import() to code-split the application
- Use build.rollupOptions.output.manualChunks to improve chunking: https://rollupjs.org/configuration-options/#output-manualchunks
- Adjust chunk size limit for this warning via build.chunkSizeWarningLimit.
✓ built in 1.70s

すると、uiBundles/wkInReactApp のビルドも完了した模様。

Sandboxにデプロイ

今回はscratch orgを用意するのではなく、sandbox環境を用意した(自社運用環境より作成)。かつては App Domainを有効化 みたいなボタンがあった記憶があるが、そんなものはもう見当たらない。(でもベータ)

sandboxに入れてみる。

$ sf project deploy start --source-dir ./force-app/main/default/uiBundles -o (alias)                                             
 ›   Warning: @salesforce/cli update available from 2.136.8 to 2.139.6.

 ─────────────── Deploying Metadata ───────────────

 Deploying v66.0 metadata to (接続先組織) using the v67.0 SOAP API.

 ✔ Preparing 75ms
 ✔ Waiting for the org to respond 485ms
 ✔ Deploying Metadata 30.97s
   ▸ Components: 116/116 (100%)
 ◯ Running Tests - Skipped
 ◯ Updating Source Tracking - Skipped
 ✔ Done 0ms

 Status: Succeeded
 Deploy ID: 0AfAz000009cmKzKAI
 Target Org: (接続先組織)
 Elapsed Time: 31.53s

デプロイできた。そういえば、 sfdx-project.jsonsourceApiVersion66.0 だったけどデプロイできた模様。ただ 67.0 を指定しておいた方が良いだろう。

さて、sandbox環境にログインしてみよう...といったところで、肝心のアプリがどこにも見当たらない。

そこで、内部向けのReact Appでは、カスタムアプリケーションから起動していたのを思い出して、カスタムアプリケーションを作成してみれば良いのかも?ということで試してみる。

<?xml version="1.0" encoding="UTF-8"?>
<CustomApplication xmlns="http://soap.sforce.com/2006/04/metadata">
    <formFactors>Large</formFactors>
    <isNavAutoTempTabsDisabled>false</isNavAutoTempTabsDisabled>
    <label>wkInReactApp</label>
    <navType>Standard</navType>
    <uiBundle>c__wkInReactApp</uiBundle>
    <uiType>Lightning</uiType>
</CustomApplication>

さて、デプロイしてみるとv66.0 ではやっぱりダメだった。

$ sf project deploy start -m CustomApplication:wkInReactApp -o (alias)             
 ›   Warning: @salesforce/cli update available from 2.136.8 to 2.139.6.

 ─────────────── Deploying Metadata ───────────────

 Deploying v66.0 metadata to (組織名) using the v67.0 SOAP API.

 ✔ Preparing 140ms
 ✔ Waiting for the org to respond 1.17s
 ✘ Deploying Metadata 799ms
   ▸ Components: 0/1 (0%)
 ◼ Running Tests
 ◼ Updating Source Tracking
 ◼ Done

 Status: Failed
 Deploy ID: 0AfAz000009cmUfKAI
 Target Org: (組織名)
 Elapsed Time: 2.12s


Component Failures [1]
## エラーが表示されていましたが、要は以下のことでした。
---> Property 'uiBundle' not valid in version 66.0

sfdx-project.json でバージョンを 67.0 に変えて再トライ。

$ sf project deploy start -m CustomApplication:wkInReactApp -o (alias)
 ›   Warning: @salesforce/cli update available from 2.136.8 to 2.139.6.

 ─────────────── Deploying Metadata ───────────────

 Deploying v67.0 metadata to (組織名) using the v67.0 SOAP API.

 ✔ Preparing 65ms
 ✔ Waiting for the org to respond 1.72s
 ✔ Deploying Metadata 2.30s
   ▸ Components: 1/1 (100%)
 ◯ Running Tests - Skipped
 ◯ Updating Source Tracking - Skipped
 ✔ Done 0ms

 Status: Succeeded
 Deploy ID: 0AfAz000009cmcjKAA
 Target Org: (組織名)
 Elapsed Time: 4.10s

今度はうまくできたみたい。

sandboxにログインして、最後にカスタムアプリケーションへのアクセス権限を付与する。(意外に忘れがちだけれども必要...)

アプリケーションランチャーに表示された。

アプリケーションをクリックすると、無事にアクセスできた。

さいごに

内部向けのReact AppもSandbox環境に無事にデプロイできましたとさ。

  1. sfdx-project.json で、バージョンは 67.0 以降にする
  2. React Appを参照するカスタムアプリケーションも用意する
  3. カスタムアプリケーションへのアクセス権限も付与する

といったあたりが意外に忘れがちなので、試す際にはご注意を。

ちなみに、カスタムアプリケーションへのアクセス権限がないと、url直指定しても「そんなページは存在しない」とHome画面にリダイレクトされてしまうので、やっぱりカスタムアプリケーションは必要みたい。

あと2026年のDreamforceあたりでReact AppをLEXに組み込める?(Micro Frontend)みたいなことがロードマップにあった気がするので、楽しみに待ちましょう。

Read more

Salesforce

Multi-FrameworkでReactAppを(外部向けアプリ)

拝啓 もうすぐGAでしょうか... Salesforce Mult-Framework を使用した React による UI 開発 SalesforceでReactアプリを動かせるようになるということで試してみた備忘録を記録してみます。 以下、ご参考 GitHub - trailheadapps/multiframework-recipes: A collection of easy-to-digest code examples for React on Salesforce PlatformA collection of easy-to-digest code examples for React on Salesforce Platform - trailheadapps/multiframework-recipesGitHubtrailheadapps 公式ドキュメント -> Integrate Your React

By Takahiro Yonei
2026/5/15よりSalesforce組織に無償Slackワークスペースが付属

2026/5/15よりSalesforce組織に無償Slackワークスペースが付属

2026/5/15より、Salesforce組織に無償のSlackワークスペースが付属することになった。 出典: Slack is the AI Work Platform for Every Salesforce Customer, Ready on Day One Salesforce Staff / 2026-04-29 公開 既にSlackを導入している企業であれば、Salesforceと接続することで、SlackをSalesforceの新たな入口として使う体験は可能だった。 なので「前からできたじゃん」と言えばそうなのだけど、今回のポイントはそこではなさそうだ。 単に「SalesforceからSlack連携できます」が無償化という話でなくて、フォーム型UI(ユーザインタフェース)から会話型UIへ開発リソースを移していくというSalesforceの意思決定だろう。 Herokuの「sustaining engineering」に始まって、Salesforce Multi-Framework あたりから、風雲急を告げるな…的な動きと思っていたが、新しい組織での Chatt

By Hiroki Matsumoto

Salesforce

Salesforce Hosted MCPサーバーと遊んでみる

Salesforce Hosted MCPサーバーがGAになったということで、Claudeから使えるか試してみる。 https://github.com/forcedotcom/mcp-hosted (なお、大体のところはwikiを見ながら進めていけるので以下もご参考に。) https://github.com/forcedotcom/mcp-hosted/wiki 主な作業としてはこんなところ 1. 外部クライアントアプリケーションを作成 2. MCPサーバーを有効化 3. MCPクライアントから接続して試行 ※以下、Salesforce環境はDeveloper Editionを利用してます。 では早速↓ 1. 外部クライアントアプリケーションを作成 セットアップ  > アプリケーション  > 外部クライアントアプリケーション  > 外部クライアントアプリケーションマネージャー から、新規外部クライアントアプリケーションを作成する。 基本情報 アプリケーション名、API参照名などいつも通り好きに指定する。 API (OAuth設定の有効化) OAuthを有

By Takahiro Yonei