generating-custom-application について
Salesforce Lightning アプリを作成し、タブや機能を役割・業務プロセス別にまとめるためのスキルです。ナビゲーション、ブランディング、デバイス設定、ページ上書き、デプロイ確認を扱います。
主な機能
- 01Lightning アプリメタデータの設定
- 02Standard または Console ナビゲーションの選択
- 03タブとユーティリティバーの整理
- 04ブランドとデバイスフォームファクターの設定
- 05ページとプロファイル上書きの設定
活用シーン
- 01業務プロセス向けアプリの作成
- 02複数レコード対応のサポートコンソール構築
- 03ナビゲーションとアプリブランドのカスタマイズ
- 04アプリのデプロイ問題の調査
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill generating-custom-applicationインストール後、Claude Code で/generating-custom-applicationを入力して読み込まれたか確認します。
詳細
このスキルを使用する場面
次の作業が必要な場合に、このスキルを使用します。
- Lightning アプリケーションを作成する
- タブや機能を、目的に合わせたアプリに整理する
- アプリケーションのナビゲーションやブランディングを設定する
- オブジェクト用のカスタムページレイアウトを設定する
- カスタムアプリケーションに関連するデプロイエラーをトラブルシューティングする
CustomApplication(Lightning アプリ)メタデータ仕様
概要
特定のビジネスプロセスに合わせたユーザーエクスペリエンスを提供するために、タブと機能をまとめるカスタムアプリケーション(Lightning アプリ)です。Lightning Experience 用に設定してください。
🎯 目的
- 関連する機能を目的に合わせたアプリケーションに整理する
- 特定のユーザーロールに合わせてタブやコンポーネントをまとめる
- ユーザーに合わせたエクスペリエンスを提供する
- 特定の機能やデータへのアクセスを制御する
- 一般的なビジネスアプリケーションには Standard ナビゲーションを使用し、複数タブのワークスペースが必要な専門的なサービス/サポートのワークフローには Console ナビゲーションを使用する
- カスタムカラーやブランディングを用いて、プロフェッショナルなアプリケーションのアイデンティティを作成する
- 標準アクションをカスタム Lightning ページで置き換え、ユーザーエクスペリエンスを向上させる
- プロファイルアクションのオーバーライドにより、プロファイルごとのエクスペリエンスを有効にする
⚙️ 必須プロパティ
アプリケーションの主要プロパティ
- fullName:アプリケーションの API 名
- label:アプリケーションの表示名
- uiType:最新のアプリでは常に "Lightning"
- navType:重要 — ユーザー要件とワークフローのパターンに基づいて選択します
- "Standard":一般的なビジネスアプリケーション(例:営業、マーケティング、運用)でのデフォルト
- "Console":分割ビューまたは複数タブのワークスペースを使って複数のレコードを同時に管理する必要があるワークフローでのみ使用します(例:カスタマーサービス、コールセンター、サポート業務)
- formFactors:フォームファクターの配列(デスクトップは ["LARGE"]、モバイルは ["SMALL"]、または両方)
オプションのプロパティ
- description:アプリケーションの目的の簡潔な説明
- tabs:含めるタブ名の配列
- utilityBar:Utility Bar 設定の API 名
- brand:⚠️ 強く推奨 — ブランディング設定オブジェクト(headerColor、shouldOverrideOrgTheme、footerColor)
- actionOverrides:⚠️ カスタムレコードページがある場合は必須 — アクションのオーバーライド設定(actionName、content、formFactor、type、pageOrSobjectType)
- profileActionOverrides:プロファイル固有のアクションのオーバーライド(actionName、content、formFactor、pageOrSobjectType、type、profile)
- isNavAutoTempTabsDisabled:ナビゲーションの動作設定(デフォルト:false)
- isNavPersonalizationDisabled:パーソナライズ設定(デフォルト:false)
- isNavTabPersistenceDisabled:タブの保持設定(デフォルト:false)
🔧 アプリケーションの設定
ナビゲーションタイプの選択(重要)
navType の選択基準:
次の場合は "Standard"(デフォルト)を選択します。
- 一般的なビジネスアプリケーションやほとんどのワークフロー
- 単一レコードへの集中、または直線的なナビゲーションパターン
- 標準的なタブベースのナビゲーションで十分な場合
ワークフローで次のことが必要な場合に限り、"Console" を選択します。
- 分割ビューで複数の関連レコードを同時に管理する
- 複雑に関連するデータを扱うための複数タブのワークスペース
- 複数のソースからのコンテキスト情報を一度に表示する
- 例:カスタマーサービス業務、サポートデスク、コールセンター
迷った場合: 一般的なビジネス用途の大半では、デフォルトの "Standard" を選択します
ナビゲーション設定
- isNavAutoTempTabsDisabled:一時タブの自動作成を制御します
- isNavPersonalizationDisabled:ユーザーによるパーソナライズ機能を制御します
- isNavTabPersistenceDisabled:セッション間でのタブの保持を制御します
タブの管理
- tabs:アプリケーションに含めるタブ名の配列
- formFactors:デバイス固有の設定(デスクトップは Large、モバイルは Small)
Utility Bar
- utilityBar:Lightning Experience の下部に表示される Lightning Utility Bar への参照
ブランディング(強く推奨 - 省略しないでください)
重要:プロフェッショナルで、視覚的に区別できるアプリケーションのアイデンティティを作成するため、ブランディング設定を指定してください。
- brand.headerColor:ヘッダーバーの色(16進数形式、例:「#0070D2」)- 推奨
- brand.shouldOverrideOrgTheme:組織のテーマを上書きするかどうか(true/false)- デフォルト:false
- brand.footerColor:フッターの色(16進数形式)
アクションのオーバーライド(必須 - 省略しないでください)
重要:flexipage expertによってレコードページが生成されるすべてのカスタムオブジェクトタブに対して、アクションのオーバーライドを作成する必要があります。
- actionOverrides.actionName:オーバーライドするアクション(「View」または「Tab」)
- actionOverrides.content:ページ/コンポーネント名(FlexiPage、Visualforce、Lightningコンポーネント)
- 「View」アクションの場合:flexipage expertによって生成されたレコードページを参照します
- 「Tab」アクションの場合:flexipage expertによって生成されたホーム/アプリページを参照します
- actionOverrides.formFactor:デバイスの種類(「Large」または「Small」)
- actionOverrides.type:オーバーライドの種類(「Default」、「Visualforce」、「Flexipage」、「LightningComponent」、「Scontrol」)
- 推奨:flexipage expertによって生成されたLightningレコード/ホームページには「Flexipage」を使用します
- actionOverrides.pageOrSobjectType:オーバーライドを適用するオブジェクトのAPI名
- actionOverrides.comment:任意の説明(最大1000文字)
- 自動生成されるコメント:「Lightning App Builderによる有効化中に作成されたアクションのオーバーライドです。」
- actionOverrides.skipRecordTypeSelect:レコードタイプの選択をスキップするかどうか(デフォルト:false)
プロファイルのアクションオーバーライド
- profileActionOverrides.actionName:オーバーライドするアクション(「View」または「Tab」)
- profileActionOverrides.content:ページ/コンポーネント名
- 「View」アクションの場合:flexipage expertによって生成されたプロファイル固有のレコードページを参照します
- 「Tab」アクションの場合:flexipage expertによって生成されたプロファイル固有のホームページを参照します
- プロファイル固有のエクスペリエンスには、actionOverridesと同じFlexiPageまたは異なるFlexiPageを参照できます
- profileActionOverrides.formFactor:デバイスの種類(「Large」または「Small」)
- profileActionOverrides.pageOrSobjectType:オブジェクトのAPI名
- profileActionOverrides.type:オーバーライドの種類
- 推奨:flexipage expertによって生成されたLightningページには「Flexipage」を使用します
- profileActionOverrides.profile:プロファイルのAPI名(例:「Admin」、「Standard User」)
- ユーザープロファイルごとに異なるページレイアウトを設定できます
📱 デバイスのサポート
デスクトップの設定
- formFactor:「Large」
- tabs:アプリケーションタブの全一覧
電話の設定
- formFactor:「Small」
- tabs:モバイルに最適化されたタブの選択
タブレットの設定
- formFactor:「Medium」
- tabs:タブレットに適したタブの選択
🎨 ユーザーエクスペリエンス機能
ナビゲーションの動作
- 自動一時タブ:有効/無効を切り替えられます
- パーソナライズ:ユーザーによるカスタマイズオプション
- タブの保持:ユーザーのタブ選択を記憶します
アクセシビリティ
- キーボードナビゲーション:完全なキーボード操作に対応
- スクリーンリーダー:支援技術に対応
- ハイコントラスト:ハイコントラストモードに対応
🔗 インテグレーションポイント
- カスタムタブ:カスタムオブジェクトタブとWebタブを含めます
- 標準タブ:標準のSalesforceタブを含めます
- Lightningページ:Lightningページレイアウトと統合します
- コンポーネント:カスタムLightningコンポーネントを含めます
✅ ベストプラクティス
- 常にLightning UIを使用する:最新のアプリには、
uiTypeを"Lightning"に設定します - 適切なナビゲーションを選択する:重要です。要件を慎重に分析して、
navTypeを選択します- 一般的な業務アプリケーションには、"Standard"(デフォルト)を使用します
- マルチタブワークスペース、分割ビュー、または関連する複数のレコードの同時管理がワークフローで必要な場合に限り、"Console"を使用します
- Consoleの例:カスタマーサービス、コールセンター、サポート業務
- ほとんどの一般的な業務用途では、デフォルトで"Standard"を選択します
- 標準タブを含める:一般的なSalesforceタブ(Home、Accounts、Contactsなど)を追加します
- 明確で説明的なアプリケーション名を使用する
- 関連する機能を論理的にグループ化する
- さまざまなユーザーロールとニーズを考慮する
- さまざまなデバイスタイプでテストする
- 適切な権限とアクセス制御を確保する
- ユーザーにとって有意義な説明を提供する
- 一貫した命名規則に従う
- 常にブランディングを設定する:ヘッダーの色を設定して、プロフェッショナルなアプリケーションのアイデンティティを作成します
- アクセシブルなブランドカラーを使用する:コントラストが十分な16進カラーを設定します(WCAG AA準拠)
- ユーティリティバーを設定する:ユーザーがすぐにアクセスできる便利なツールを追加します
- アクションオーバーライドを活用する:flexipage expertのFlexiPagesを使用して、特定のオブジェクトのページレイアウトをカスタマイズします
- プロファイルオーバーライドを使用する:プロファイルごとに異なるflexipage expert生成ページを参照し、ロールに応じたエクスペリエンスを提供します
🎯 拡張ルール
- uiType:最新のアプリエクスペリエンスには、常に"Lightning"に設定します
- navType:重要な決定事項です。ユーザー要件を慎重に分析します
- 一般的な業務アプリケーションには、"Standard"(デフォルト)に設定します
- ワークフローで以下が必要な場合に限り、"Console"に設定します:
- 分割ビュー機能を使って、関連する複数のレコードを同時に管理する
- 複雑で相互に関連するデータを扱うためのマルチタブワークスペース
- 複数のソースからのコンテキスト情報を一度に表示する
- Consoleの例:カスタマーサービス業務、コールセンター、サポートデスク
- StandardとConsoleのどちらにするか迷う場合は、ほとんどの業務用途で"Standard"を選択します
- formFactors:デスクトップのLightning Experienceでは、常に["LARGE"]に設定します
- 標準タブ:Home、Accounts、Contacts、Opportunities、Leads、Casesを自動的に追加します
- ナビゲーション設定:最適なユーザーエクスペリエンスを実現するため、すべてのナビゲーションフラグをfalseに設定します
- ブランディング:プロフェッショナルなアプリケーションのアイデンティティを実現するため、必ずブランド設定を含めます
- 必須:brand.headerColorを適切な色に設定します(例:"#0070D2"はSalesforce Blue)
- 要件に応じてbrand.shouldOverrideOrgThemeを設定します
- アクションオーバーライド:カスタムレコードページがある場合は、必ずアクションオーバーライドを作成します
- 必須:「View」アクションに対して、flexipage expert生成のレコードページを指定するactionOverridesを追加します
- "Flexipage"タイプを使用し、正確なFlexiPage名を指定します
- デスクトップではformFactorを"Large"に設定します
- オブジェクトのAPI名を指定したpageOrSobjectTypeを含めます
- プロファイルアクションオーバーライド:ロールベースのカスタマイズには、flexipage expert生成ページを参照します
- フォームファクター:オーバーライドでは、デスクトップに"Large"、モバイルに"Small"を使用します
⚠️ 重要な検証チェックリスト(必ず確認してください)
- すべてのタブがアプリケーションに含まれている
- navType が正しく設定されている - Console と Standard の選択を確認してください
- ほとんどの一般的なビジネスアプリケーションでは「Standard」をデフォルトにしてください
- 複数のレコードの同時管理、分割ビュー、またはマルチタブワークスペースがワークフローで必要な場合に限り、「Console」に設定してください
- 要件が一般的または曖昧な場合は、navType を「Standard」にしてください
- ブランディングが設定されている - プロフェッショナルなアプリケーションでは強く推奨されます
- brand.headerColor に有効な 16 進カラーコードが設定されている(例:「#0070D2」)
- brand.shouldOverrideOrgTheme が設定されている(デフォルト:false)
- アクションのオーバーライドが作成されている - レコードページを持つカスタムオブジェクトごとに必須です
- 正しいレコードページを参照するアクションのオーバーライドが、各カスタムオブジェクトのタブに定義されている
- actionOverrides.content が flexipage エキスパートによって生成された FlexiPage 名と完全に一致している
- actionOverrides.pageOrSobjectType に正しいオブジェクトの API 名が設定されている
- actionOverrides.type が「Flexipage」に設定されている
- actionOverrides.actionName が「View」に設定されている
- actionOverrides.formFactor が「Large」に設定されている
- すべての必須フィールド(fullName、label、uiType、navType、formFactors)が入力されている
コメント
Markdown 対応