关于 platform-custom-application-generate
面向 Salesforce 开发者的 Lightning 应用元数据规范技能,用于组织导航标签、功能和品牌设置。还指导根据工作模式选择导航类型,并配置页面操作覆盖。
主要功能
- 01组织应用标签与功能
- 02指导 Standard 或 Console 导航选择
- 03配置设备规格与导航选项
- 04设置品牌和工具栏
- 05配置页面及用户配置文件操作覆盖
适用场景
- 01为业务流程创建 Lightning 应用
- 02为客服工作区选择 Console 导航
- 03为桌面和移动设备设置应用
- 04将记录操作指向自定义页面
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill platform-custom-application-generate安装后在 Claude Code 中输入/platform-custom-application-generate确认已加载。
详细介绍
何时使用此技能
在需要以下操作时使用此技能:
- 创建 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: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 Utility Bar 的引用(显示在 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”)
- 推荐:Lightning 记录页/主页使用 flexipage expert 生成的 “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 相同或不同的 FlexiPage,以提供特定配置文件的体验
- profileActionOverrides.formFactor:设备类型(“Large” 或 “Small”)
- profileActionOverrides.pageOrSobjectType:对象 API 名称
- profileActionOverrides.type:覆盖类型
- 推荐:Lightning 页面使用 flexipage expert 生成的 “Flexipage”
- profileActionOverrides.profile:配置文件 API 名称(例如,“Admin”、“Standard User”)
- 可为不同用户配置文件启用不同的页面布局
设备支持
桌面配置
- formFactor:“Large”
- tabs:完整的应用选项卡列表
手机配置
- formFactor:“Small”
- tabs:针对移动设备优化的选项卡选择
平板电脑配置
- formFactor:“Medium”
- tabs:适用于平板电脑的选项卡选择
用户体验功能
导航行为
- 自动临时选项卡:可启用/禁用
- 个性化:用户自定义选项
- 选项卡持久性:记住用户选择的选项卡
无障碍功能
- 键盘导航:全面支持键盘操作
- 屏幕阅读器:兼容辅助技术
- 高对比度:支持高对比度模式
集成点
- 自定义选项卡:包含自定义对象选项卡和网页选项卡
- 标准选项卡:包含 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
- 操作覆盖:存在自定义记录页面时,始终创建操作覆盖
- 必须为 "View" 操作添加 actionOverrides,并将其指向 flexipage expert 生成的记录页面
- 使用 "Flexipage" 类型,并引用准确的 FlexiPage 名称
- 桌面端将 formFactor 设置为 "Large"
- 将 pageOrSobjectType 设置为对象的 API 名称
- 配置文件操作覆盖:引用 flexipage expert 生成的页面,以进行基于角色的自定义
- 屏幕规格:覆盖项中,桌面端使用 "Large",移动端使用 "Small"
严格验证清单(必须验证)
- 所有选项卡都已添加到应用中
- 已正确设置 navType——验证 Console 与 Standard 的选择
- 对于大多数通用业务应用,默认使用“Standard”
- 仅当工作流需要同时管理多条记录、分栏视图或多选项卡工作区时,才设置为“Console”
- 如果需求笼统或不明确 → navType 应为“Standard”
- 已配置品牌信息——强烈建议专业应用进行此配置
- brand.headerColor 已设置为有效的十六进制颜色(例如,“#0070D2”)
- 已设置 brand.shouldOverrideOrgTheme(默认值:false)
- 已创建操作覆盖——每个带有记录页面的自定义对象都必须配置
- 为每个自定义对象选项卡定义操作覆盖,并指向正确的记录页面
- actionOverrides.content 与 flexipage expert 生成的 FlexiPage 名称完全一致
- actionOverrides.pageOrSobjectType 已设置为正确的对象 API 名称
- actionOverrides.type 已设置为“Flexipage”
- actionOverrides.actionName 已设置为“View”
- actionOverrides.formFactor 已设置为“Large”
- 所有必填字段均已填写(fullName、label、uiType、navType、formFactors)
评论
支持 Markdown