Custom Lightning Types 实战:酒店预订集合渲染器

简介: Custom Lightning Types 集合渲染器实战教程:酒店预订 Agent Action 列表输出 UI 自定义。涵盖 HotelReservation Apex 类设计、默认列表 JSON 输出问题、hotelResponse CLT(Collection Renderer -- collection 键包裹 componentOverrides)、LWC 通过 @api value 接收单个列表项、与航班示例顶级 Renderer 的对比、三种覆盖模式完整总结。

Custom Lightning Types — 酒店预订集合渲染器

酒店预订示例:集合渲染器覆盖列表输出

本示例展示如何使用集合渲染器(Collection Renderer)——这是一种自定义列表项显示方式的模式。与航班示例中使用的顶级 renderer/editor 覆盖不同,集合渲染器控制列表中每一项的渲染方式。我们将使用 HotelReservation Apex 类查找可用酒店,然后创建 hotelResponse 自定义 Lightning Type,将酒店列表渲染为精美的卡片。

Apex 类设计

HotelReservation — 主 InvocableMethod

  • @InvocableMethod(label='Find hotels' description='Find Available Hotels')

  • 输入:HotelRequest(city、checkInDate、checkOutDate)—— 三个简单字段

  • 输出:HotelResponse → List —— 关键区别:输出是列表

数据类结构

类字段
Hotelname (String), address (String), rooms (List), hotelCategory (HotelCategory)
Roomtype (String), available (Integer), discountPercentage (Double), price (Long), petAllowed (Boolean)
HotelCategorystar (String) — 如 "four"、"five"
HotelRequestcity (String), checkInDate (Date), checkOutDate (Date)

示例硬编码两家酒店(生产环境应从外部服务获取):Sahara Hotels(四星,Gacchibowli Hyderabad,DELUX 房间 $2000,15.15% 折扣)和 Taj Vivanta(五星,Kokapet,DELUX 房间 $2000,15.15% 折扣)。

Apex 类

默认 UI 和结果数据

创建 Agent Action

  • 方法:Find hotels

  • 输入:checkInDate (dateType), checkOutDate (dateType), city (textType)

  • 输出:hotels — list 类型,使用 @apexClassType/c__Hotel

默认输出问题

原始 JSON 无格式显示——酒店名称、地址、星级、房间信息全部混杂在一起,无法快速浏览和比较酒店选项:

{"hotels": [ {"name": "Sahara Hotels", "address": "Gacchibowli Hyderabad", "hotelCategory": {"star": "four"}, "rooms": [{"type": "DELUX", "price": 2000, "discountPercentage": 15.15, "available": 2}] }, {"name": "Taj Vivanta", "address": "Kokapet", "hotelCategory": {"star": "five"}, "rooms": [/* 同上结构 */] } ]}


目标:创建 hotelResponse CLT,使用集合渲染器将每个酒店显示为带样式的卡片。

![默认 UI 和结果数据](https://sfdcvideotest.oss-cn-beijing.aliyuncs.com/media/ADG001/slide_240/image.png)

## 自定义输出:hotelResponse CLT

### 目录结构

`lightningTypes/
  hotelResponse/
    schema.json
    lightningDesktopGenAi/
      renderer.json`

schema.json

引用单个 Hotel 的 Apex 类类型(而非列表):

{ "title": "Hotel Reservation", "description": "Hotel Reservation", "lightning:type": "@apexClassType/c__Hotel" }


### renderer.json — 集合渲染器(与航班示例的关键区别)

使用 "collection" 键包裹 componentOverrides,告诉系统对列表中的每个单独项目应用 LWC:

`{
  "collection": {
    "renderer": {
      "componentOverrides": {
        "$": {
          "definition": "c/hotelDetails"
        }
      }
    }
  }
}`

两种覆盖模式对比

模式渲染器结构适用场景
顶级 Renderer
(航班示例)"renderer": {"componentOverrides": {...}}覆盖整个输出组件
集合 Renderer
(酒店示例)"collection": {"renderer": {"componentOverrides": {...}}}覆盖列表中每一项的渲染方式。LWC 每次接收一个列表项

LWC:hotelDetails 组件

  • Target:lightning__AgentforceOutput

  • sourceType:lightning__listTypeitemTypeName="c__hotelResponse"

  • HTML 布局:lightning-card "Available Hotels" 带旅行图标 —— 迭代 {value} 数组 —— 每个酒店:名称 + 位置图标 + 地址 —— 每个房间:类型、可用数量、宠物政策、价格(₹)、折扣标签

  • JS:极简 —— 仅 @api value(组件通过 value 属性接收数据)

关键区别:集合渲染器中的 LWC 接收 单个列表项(而非整个列表),通过 @api value 属性。这使得每个酒店都能获得一致的卡片样式。

自定义输出 hotelResponse

集成和最终效果

集成步骤

  • 打开 Agent Action → 编辑 HotelResponse 的 Output Rendering 参数

  • 选择 hotelResponse 自定义 Lightning Type

  • 保存(忽略 "Unsupported Data Type" 提示)

  • 测试前重新加载 Agent 页面

改造前(默认 UI)

  • 原始 JSON —— 酒店名称、地址、星级和房间信息全部混杂

  • 无视觉卡片、无图标、无结构

  • 无法快速比较酒店

改造后(hotelResponse CLT)

  • "Available Hotels" 卡片 + 旅行图标标题

  • 每个酒店以独立样式卡片展示:酒店名称(标题)+ 位置图标 + 地址

  • 每个房间在阴影子框中展示:房型(粗体标题)、可用数量(事件图标)、宠物政策(动物图标)、价格(₹ 突出显示)、折扣百分比(标签/芯片)

  • 干净、专业、可快速浏览的布局

三种覆盖模式最终总结

模式renderer.json 结构适用场景
顶级 Renderer{"renderer": {"componentOverrides": {"$": {"definition": "c/xxx"}}}}覆盖整个输出显示(航班示例)
集合 Renderer{"collection": {"renderer": {"componentOverrides": {"$": {"definition": "c/xxx"}}}}}覆盖列表中每项渲染——LWC 接收单个项(酒店示例)
顶级 Editor{"editor": {"componentOverrides": {"$": {"definition": "c/xxx"}}}}覆盖输入表单显示(航班 Filter 示例)

集成和最终效果

集合渲染器是列表输出的核心模式 —— 它将每个列表项作为独立卡片渲染,配合顶级 Renderer 和 Editor 模式,组成了 Custom Lightning Types UI 自定义的完整工具箱。

发布来源:https://www.salesforcecrm.cn/article/agentforce/custom-lightning-types-hotel-collection.html

相关文章
|
9月前
|
JavaScript 前端开发 vr&ar
JSAR 粒子系统实战:打造炫酷 3D 烟花秀
本文介绍如何使用 JSAR 与 Babylon.js 打造 3D 烟花粒子系统。无需 Unity,前端开发者可借助熟悉的技术栈,在 Rokid AR 眼镜上实现沉浸式空间应用,涵盖粒子系统原理、性能优化及跨平台开发实践。
481 3
|
11月前
|
缓存 JSON API
京东 item_get 接口对接全攻略:从入门到精通
京东item_get接口是获取商品详情的核心工具,支持价格、库存、图片等数据调取。本文详解对接流程、签名生成、Python调用示例及错误处理,涵盖权限申请、批量查询与最佳实践,助力开发者高效构建合规电商应用。(239字)
|
Kubernetes 网络协议 Nacos
OpenAI 宕机思考丨Kubernetes 复杂度带来的服务发现系统的风险和应对措施
Kubernetes 体系基于 DNS 的服务发现为开发者提供了很大的便利,但其高度复杂的架构往往带来更高的稳定性风险。以 Nacos 为代表的独立服务发现系统架构简单,在 Kubernetes 中选择独立服务发现系统可以帮助增强业务可靠性、可伸缩性、性能及可维护性,对于规模大、增长快、稳定性要求高的业务来说是一个较理想的服务发现方案。希望大家都能找到适合自己业务的服务发现系统。
745 102
|
人工智能 Java 测试技术
通义灵码2.0·AI程序员加持下的智能编码实践与测评
通义灵码2.0是阿里云推出的新一代智能编程助手,集成DeepSeek模型并新增多项功能,显著提升开发效率。本文通过实际项目体验新功能开发、跨语言编程、单元测试自动生成和图生代码等功能,展示其在代码生成、质量内建和人机协作方面的优势。相比1.0版本,2.0在模型选择、代码质量和用户体验上均有显著提升。尽管存在依赖网络和多语言混合项目中的不足,但整体表现优异,极大优化了开发流程。[了解更多](https://lingma.aliyun.com/)
2057 59
|
算法
数据结构中的KMP算法及其改进算法
KMP算法通过引入部分匹配表,有效避免了重复计算,从而将字符串匹配的时间复杂度降低到O(m+n)。通过进一步优化next数组,KMP算法的效率得到了进一步提升。对于大规模字符串匹配问题,KMP算法及其改进算法提供了高效的解决方案,是计算机科学领域的经典算法之一。
1147 3
|
存储 人工智能 安全
阿里云服务器热门配置2核4G与4核8G配置最新收费标准、活动价格及实例选择参考
阿里云服务器2核4G与4核8G配置是众多个人开发者、中小企业及初创企业选择云服务器配置时的热门配置。现在企业用户购买通用算力型u1实例2核4G5M带宽80G ESSD Entry云盘特惠价199元1年,个人用户则是531.79元1年起,4核8G配置价格目前通用算力型u1实例,4核8G活动价格955.58元1年起。本文将为大家解析这两款热门配置的实例规格、价格策略及适用场景,以供选择参考。
|
机器学习/深度学习 人工智能 图形学
I2V3D:微软+港城大黑科技!单图秒变3D动态视频,相机轨迹自由操控
I2V3D 是由香港城市大学和微软联合开发的图像到视频生成框架,支持将静态图像转换为动态视频,基于3D几何引导实现精确的动画控制,适用于动画制作、视频编辑和内容创作等领域。
660 3
I2V3D:微软+港城大黑科技!单图秒变3D动态视频,相机轨迹自由操控
|
SQL 调度
如何基于Dataphin智能研发开发“留存率”指标
用户留存率是指在互联网行业中,某段时间内新增用户中,在后续特定时间点或时间段内继续使用应用的用户比例。它是衡量应用质量和用户保留能力的重要指标。 本文为您介绍如何基于Dataphin规范建模结合SQL加工能力进行留存率指标开发。
576 11
|
存储 网络协议 安全
Java网络编程,多线程,IO流综合小项目一一ChatBoxes
**项目介绍**:本项目实现了一个基于TCP协议的C/S架构控制台聊天室,支持局域网内多客户端同时聊天。用户需注册并登录,用户名唯一,密码格式为字母开头加纯数字。登录后可实时聊天,服务端负责验证用户信息并转发消息。 **项目亮点**: - **C/S架构**:客户端与服务端通过TCP连接通信。 - **多线程**:采用多线程处理多个客户端的并发请求,确保实时交互。 - **IO流**:使用BufferedReader和BufferedWriter进行数据传输,确保高效稳定的通信。 - **线程安全**:通过同步代码块和锁机制保证共享数据的安全性。
719 23
|
存储 传感器 物联网
树莓派
树莓派(Raspberry Pi)是一款信用卡大小的单板计算机,由英国树莓派基金会开发,旨在促进计算机科学教育。它具有多种接口和强大的功能,广泛应用于教育、DIY项目和嵌入式系统开发。
2405 6

热门文章

最新文章