学习目标
在本项目中,你将:
- 构建 Lightning 应用、添加选项卡并自定义页面布局。
- 为应用创建自定义对象和字段。
- 定义对象之间的关系。
- 导入数据并测试应用。
项目背景
你的组织决定实施一个自定义的差旅审批应用。此前,差旅审批流程一直依赖邮件发送电子表格,既没有中央存储库,也无法强制执行流程,导致无法对全组织的差旅审批活动进行报表分析。你需要创建一个满足以下需求的应用:
- 每位员工必须在系统中提交未来差旅的电子申请。
- 每份申请包含机票、酒店、租车等预估费用的清单。
- 每份申请必须由员工经理审批,所有州外出差必须由差旅协调员审批。
- 经理需要报表和仪表板来跟踪关键差旅申请趋势和 KPI。
- 员工和经理必须能通过移动设备访问差旅申请、审批和仪表板。
按照本项目的步骤,你将创建一个可用的差旅审批应用原型。首先创建一个差旅审批应用,它为你接下来创建的相关差旅对象提供视图。记住:Salesforce 应用是一组选项卡的集合,让你能够访问对应对象的数据。
准备实验文件
下载并解压 Workshop Lab Files(后续步骤会用到):2022-12-22-TravelAppWorkshopFiles.zip。
下载后解压文件,以便在后续步骤中访问其中的各个文件(如 travel.png、Departments.csv 等)。
创建 Trailhead Playground 与 Travel App
本项目需要一个全新的 Trailhead Playground。滚动到页面底部,点击 playground 名称,再点击 Create Playground,通常需要 3–4 分钟才能创建完成。
注意:必须是全新的 Trailhead Playground!使用现有 org 或 playground 可能会导致挑战无法完成。点击页面底部的 Launch 打开新 Playground(会在新标签页打开,请保持该窗口打开)。
接下来创建 Travel App 应用:
- 在 Trailhead Playground 中点击 Setup 图标,选择 Setup。
- 在 Quick Find 中搜索并选择 App Manager。
- 点击 New Lightning App。
在 App Details & Branding 窗口填写:App Name=Travel App;Image 点击 Upload 选择上面下载的 travel.png。点击 Next。
- App Options 屏幕选择 Standard navigation,Next。
- Utility Items 屏幕点击 Next。
- Navigation Items 屏幕从 Available Items 中选择 Chatter、Reports、Dashboards,用箭头移到 Selected Items,Next。
- User Profiles 屏幕选择 System Administrator 加到 Selected Profiles,点击 Save & Finish。
现在通过 App Launcher 打开新 Travel App,看看它的样子。
点击 App Launcher 图标,搜索并选择 Travel App。此时窗口应有三个选项卡:Chatter、Reports 和 Dashboards。应用建好后,接下来创建数据模型——Department、Travel Approval 和 Expense Items 对象。
创建 Department 对象
本单元创建第一个自定义对象 Department,用来存储部门名称和成本中心代码等信息,作为整个数据模型的基础。
创建 Department 对象(设置)
创建数据模型的第一步是创建 Department 对象,它存储部门名称和成本中心代码等信息:
- 从 Setup 点击 Object Manager。
- 点击 Create,选择 Custom Object。
- 填写详情:Label=Department、Plural Label=Departments、Object Name=Department(自动填充)、Record Name=Department Name、Data Type=Text。
向下滚动,勾选以下选项:Allow Reports、Allow Search、Launch New Custom Tab Wizard after saving this custom object。
务必勾选 Launch New Custom Tab Wizard,它会驱动接下来的屏幕。如果漏掉了,可到 Setup 搜索 Tabs 稍后再创建自定义选项卡。点击 Save。
创建 Department 对象(选项卡与字段)
保存后进入自定义选项卡向导,定义选项卡设置:
- 点击 Tab Style 旁的放大镜图标,选择 Books。
- 点击 Next,下一屏保持默认再点击 Next。
- 点击列顶部的 Include Tab 取消所有应用,仅勾选 Travel App,点击 Save。
接着创建 Department Code 字段:
- 点击 Fields & Relationships,再点 New。
- 数据类型选 Text,Next。
- Field Label=
Department Code、Length=10、勾选 Required、勾选 Unique(再勾选 case sensitive)。 - 点击 Next,字段级安全屏幕保持默认 Next,页面布局屏幕保持默认 Save。
Department 对象创建完成,接下来创建 Travel Approval 对象,它存储员工出行目的地和行程时长等基本信息。
创建 Travel Approval 对象
本单元创建差旅审批的核心对象 Travel Approval,存储出行目的地、日期、状态等信息,并与 Department 建立查找关系。
创建 Travel Approval 对象(设置)
前面已经用 Lightning App Builder 创建了 travel app 和 Department 对象,现在创建存储差旅审批申请的对象:
- 回到 Object Manager。
- 点击 Create,选择 Custom Object。
- 填写详情:Label=Travel Approval、Plural Label=Travel Approvals、Object Name=Travel_Approval(自动填充)、Record Name=Travel Approval #、Data Type=Auto Number、Display Format=
TA-{00000}、Starting Number=1。
先别点 Save,向下滚动继续勾选:Allow Reports、Allow Activities、Track Field History、Allow Search、Add notes and Attachments related list to default page layout、Launch New Custom Tab Wizard after saving this custom object。点击 Save。
- 点击 Tab Style 旁的图标,选择 Airplane,Next。
- Add to profiles 屏幕保持默认,Next。
- Add to Custom Apps 屏幕取消 Include Tab,仅选 Travel App,Save。
对象建好后,接着为它添加自定义字段。
创建 Travel Approval 自定义字段
在对象配置页点击 Fields & Relationships → New,逐个创建以下字段:
- Purpose of Trip — Data Type 选 Text Area,Next,Field Label 填
Purpose of Trip,Next、Next、Save & New。 - Status — Data Type 选 Picklist,选择「Enter values, with each value separated by a new line」,逐行输入
New、Submitted、Pending Approval、Approved、Rejected、Draft。 - Trip Start Date — Data Type 选 Date。
- Trip End Date — Data Type 选 Date。
- Out-of-State — Data Type 选 Checkbox。
- Destination State — Data Type 选 Text,Length 设为
2。 - Department — Data Type 选 Lookup Relationship,Related To 选 Department,点击 Next 4 次,Save。
至此,Travel Approval 对象创建完成,并与 Department 建立了查找关系。接下来创建 Expense Item 对象,用于存放每份差旅申请的费用明细。
创建 Expense Item 对象
本单元创建 Expense Item 对象,存储每次行程的费用明细(如机票、酒店、租车),并通过主从关系关联到 Travel Approval。
创建 Expense Item 对象(设置)
最后创建 Expense Item 对象,让应用能提供机票、酒店、租车等费用的预估:
- 回到 Object Manager。
- 点击 Create,选择 Custom Object。
- 填写详情:Label=Expense Item、Plural Label=Expense Items(勾选 Starts with vowel sound)、Object Name=
Expense_Item(自动填充)、Record Name=Expense Item Number、Data Type=Auto Number、Display Format=E-{00000}、Starting Number=1。 - 勾选 Allow Reports。
注意:不要勾选 Launch New Custom Tab Wizard。Expense Items 不需要单独的选项卡——用户会通过 Travel Approval 选项卡进入具体记录,再钻取到费用明细。点击 Save。
创建 Expense Item 自定义字段
保存后进入 Expense Item 对象配置页,开始创建字段:
- Amount — Data Type 选 Currency,Next,Field Label=
Amount、Length=16、Decimal places=2、勾选 Required,Next、Next、Save & New。 - Expense Type — Data Type 选 Picklist,选择「Enter values, with each value separated by a new line」,逐行输入
Airfare、Hotel、Rental car、Meals、Other,勾选 Required,Next、Next、Save & New。 - Travel Approval — Data Type 选 Master-Detail Relationship,Next,Related To 选 Travel Approval,点击 Next 4 次,Save。
现在看看差旅审批应用的样子。点击 App Launcher 图标,搜索并选择 Travel App,可以看到刚创建的两个新选项卡。
导入数据并测试应用
本单元导入部门样本数据,并端到端测试完整应用——创建差旅申请并关联费用明细。
导入 Departments 数据
你已完成数据模型,界面和 SOAP/REST API 层也自动生成。最后一步导入数据并测试应用。先向 Departments 对象加载样本数据:
- 从 Setup 点击 Home 选项卡。
- Quick Find 搜索并选择 Data Import Wizard。
- 点击 Launch Wizard!
- 点击 Custom objects 选项卡,选择 Departments 对象。
- 选择 Add new records。
- 把第一单元下载的
Departments.csv拖到上传区(或点 CSV 图标浏览选择),点击 Next。 - CSV 列名与对象字段名相同,字段会自动映射,点击 Next。
- 在导入摘要屏幕点击 Start Import。
- 弹窗点击 OK。
这会进入批量导入摘要窗口,显示 16 条记录已成功导入,同时你会收到确认导入的邮件通知。
测试应用
导入部门数据后,测试应用:
- 点击 App Launcher 图标,返回 Travel App。
- 点击 Departments 选项卡。
- 点击 Recently Viewed,选择 All。
点击任意部门钻取到详情,例如 Contract Management,查看部门详情,包括你创建的 Department Code 字段和一些默认字段。
接下来创建一份差旅申请并关联几个费用预估:
- 点击 Travel Approvals 选项卡,点击 New。
- 填写:Purpose of Trip、Status=Draft、Trip Start Date(任选)、Trip End Date(任选)、Out-of-State(勾选)、Destination State、Department=Technology。
- 点击 Save,得到一条差旅审批记录。
最后添加机票和酒店的费用预估:点击 Related 选项卡,点击 New,输入 Amount=450、Expense Type=Airfare,Save & New;再点击 New,输入 Amount=870、Expense Type=Hotel,Save。
恭喜!你为组织成功创建了差旅应用——创建了 Departments、Travel Approvals、Expense Items 三个自定义对象,导入了部门数据,并通过创建第一条差旅审批记录测试了应用。
文章来源:Trailhead - Build a Data Model for a Travel Approval App















