课程章节介绍
好,咱们来看这个酒店预订的例子。
在 Salesforce 里,我们用一个叫 `HotelReservation` 的类,通过 `@InvocableMethod` 注解,向外公开了一个叫“查找酒店”的操作。这个操作使用起来特别简单——你只需要告诉它三个信息:城市、入住日期和离开日期。
那它会返回什么呢?会返回一个 `HotelResponse` 对象,里面包含一个酒店列表。每个酒店都有自己的名称、地址、星级,以及一个“可用房间”的列表。而每个房间对象又详细描述了房间类型、还剩多少间可用、有没有折扣、具体价格,以及允不允许带宠物。
为了演示方便,代码里硬编码了两家酒店的数据,这样我们就能马上看到效果,不用真的去连外部系统。
这里要提醒大家注意一个和前面航班示例不同的关键点:在这个酒店的例子中,返回的结果是一个,酒店列表,,而不像之前航班示例那样只是单个结果。既然是一次返回多条酒店记录,如果我们想让每条酒店都按照自己想要的样式来显示——比如展示星级、把房间列表折叠展开——就需要用到 ,集合渲染器覆盖, 。
集合渲染器覆盖的作用,就是允许我们完全控制列表里每一项的渲染方式,不再使用 Salesforce 默认的列表外观。我们可以设计一个自定义的布局,让每个酒店项目都清晰地展示出名称、星级图标、可用房间的详情,甚至给折扣高的房间加上醒目标识。
这样一来,用户面对一个多酒店的搜索结果,就能一目了然地比较各个选项,做出更好的选择。
这就是酒店这个 Action 的设计思路,以及它与单结果场景最大的结构差异。大家理解了吗?