mcpField
G
generating-custom-application

generating-custom-application

github.com/forcedotcom开发1.1k3.9k 次安装1 天前更新
代码仓库

关于 generating-custom-application

用于创建 Salesforce Lightning 应用的技能,可将标签页和功能组织为面向角色或业务流程的体验。内容涵盖导航、品牌、设备设置、页面覆盖及部署检查。

主要功能

  1. 01配置 Lightning 应用元数据
  2. 02选择 Standard 或 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 App)元数据规范

概述

自定义应用(Lightning Apps)将选项卡和功能组合在一起,为特定业务流程提供专注的用户体验。始终为 Lightning Experience 配置。

🎯 用途

  • 将相关功能组织成专注型应用
  • 为特定用户角色组合选项卡和组件
  • 提供量身定制的用户体验
  • 控制对特定功能和数据的访问
  • 通用业务应用使用 Standard 导航;需要多选项卡工作区的专业服务/支持工作流使用 Console 导航
  • 通过自定义颜色和品牌形象打造专业的应用标识
  • 使用自定义 Lightning 页面覆盖标准操作,提升用户体验
  • 通过针对配置文件的操作覆盖提供配置文件专属体验

⚙️ 必需属性

核心应用属性
  • fullName:应用的 API 名称
  • label:应用的显示名称
  • uiType:现代应用始终为 "Lightning"
  • navType:关键属性——根据用户需求和工作流模式选择
    • "Standard":通用业务应用的默认选项(例如销售、市场营销、运营)
    • "Console":仅在工作流需要同时管理多条记录,并使用分屏视图或多选项卡工作区时选择(例如客户服务、呼叫中心、支持运营)
  • formFactors:外形规格数组(桌面端为 ["LARGE"],移动端为 ["SMALL"],也可同时包含两者)
可选属性
  • description:应用用途的简要说明
  • tabs:要包含的选项卡名称数组
  • utilityBar:实用工具栏配置的 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)
实用工具栏
  • utilityBar:对 Lightning 实用工具栏的引用(显示在 Lightning Experience 底部)
品牌配置(强烈推荐 - 请勿跳过)

重要:请提供品牌配置,以创建专业且具有鲜明视觉特色的应用标识。

  • brand.headerColor:标题栏颜色,采用十六进制格式(例如,"#0070D2")- 推荐
  • brand.shouldOverrideOrgTheme:是否覆盖组织主题(true/false)- 默认值:false
  • brand.footerColor:页脚颜色
操作覆盖(关键 - 请勿跳过)

重要:对于每个由 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 during activation 创建的操作覆盖。"
  • actionOverrides.skipRecordTypeSelect:跳过记录类型选择(默认值:false)
配置文件操作覆盖
  • profileActionOverrides.actionName:要覆盖的操作("View" 或 "Tab")
  • profileActionOverrides.content:页面/组件名称
    • 对于 "View" 操作:引用由 flexipage expert 生成的配置文件专属记录页面
    • 对于 "Tab" 操作:引用由 flexipage expert 生成的配置文件专属主页
    • 可为配置文件专属体验引用与 actionOverrides 相同或不同的 FlexiPages
  • 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 等)
  • 使用清晰、描述性强的应用名称
  • 以合乎逻辑的方式对相关功能分组
  • 考虑不同用户角色和需求
  • 在不同设备类型上进行测试
  • 确保权限和访问控制配置正确
  • 为用户提供有意义的说明
  • 遵循一致的命名规范
  • 始终配置品牌标识:设置 headerColor,打造专业的应用形象
  • 使用易于访问的品牌颜色:确保十六进制颜色具有足够的对比度(符合 WCAG AA 标准)
  • 配置实用工具栏:添加对用户有用的快速访问工具
  • 善用操作覆盖:使用 flexipage expert 提供的 FlexiPages,为特定对象自定义页面布局
  • 使用配置文件覆盖:引用 flexipage expert 针对不同配置文件生成的页面,为不同角色提供专属体验

🎯 增强规则

  • uiType:始终设为 "Lightning",以提供现代应用体验
  • navType:关键决策——仔细分析用户需求
    • 一般业务应用设为 "Standard"(默认值)
    • 仅当工作流需要以下功能时,才设为 "Console":
      • 通过分屏视图同时管理多条相关记录
      • 使用多标签工作区处理复杂且相互关联的数据
      • 同时查看来自多个来源的上下文信息
    • Console 示例:客户服务运营、呼叫中心、支持服务台
    • 如果无法确定该选用 Standard 还是 Console,大多数业务场景请选择 "Standard"
  • formFactors:始终设为 ["LARGE"],用于桌面版 Lightning Experience
  • 标准标签页:自动添加 Home、Accounts、Contacts、Opportunities、Leads、Cases
  • 导航设置:将所有导航标志设为 false,以获得最佳用户体验
  • 品牌标识:始终包含品牌配置,打造专业的应用形象
    • 必须:将 brand.headerColor 设为合适的颜色(例如,"#0070D2" 表示 Salesforce Blue)
    • 根据需求设置 brand.shouldOverrideOrgTheme
  • 操作覆盖:存在自定义记录页面时,始终创建操作覆盖
    • 必须:添加 actionOverrides,使 "View" 操作指向 flexipage expert 生成的记录页面
    • 使用 "Flexipage" 类型,并引用准确的 FlexiPage 名称
    • 将 formFactor 设为 "Large",用于桌面版
    • 添加 pageOrSobjectType,并填写对象 API 名称
  • 配置文件操作覆盖:引用 flexipage expert 生成的页面,以支持基于角色的自定义
  • Form Factors:在覆盖项中,桌面版使用 "Large",移动版使用 "Small"

⚠️ 关键验证清单(必须验证)

  • 应用中包含所有选项卡
  • navType 设置正确——验证选择的是 Console 还是 Standard
  • 对于大多数通用业务应用,默认使用“Standard”
  • 仅当工作流需要同时管理多条记录、分栏视图或多选项卡工作区时,才设置为“Console”
  • 如果需求通用或含糊不清 → navType 应设置为“Standard”
  • 已配置品牌信息——强烈建议用于专业应用
  • brand.headerColor 已设置为有效的十六进制颜色(例如,“#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