mcpField
G
generating-custom-application

generating-custom-application

github.com/forcedotcom開発1.1k3.9k 回インストール1 日前に更新
リポジトリ

generating-custom-application について

Salesforce Lightning アプリを作成し、タブや機能を役割・業務プロセス別にまとめるためのスキルです。ナビゲーション、ブランディング、デバイス設定、ページ上書き、デプロイ確認を扱います。

主な機能

  1. 01Lightning アプリメタデータの設定
  2. 02Standard または Console ナビゲーションの選択
  3. 03タブとユーティリティバーの整理
  4. 04ブランドとデバイスフォームファクターの設定
  5. 05ページとプロファイル上書きの設定

活用シーン

  1. 01業務プロセス向けアプリの作成
  2. 02複数レコード対応のサポートコンソール構築
  3. 03ナビゲーションとアプリブランドのカスタマイズ
  4. 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)が入力されている

コメント