员工请假系统开发指南

作者:Jace
发布于:2025/8/21
9
内容创作
开发
教育

用户输入

## 需求文档:简易员工请假系统 **1. 项目背景与目标** **1.1 项目背景** 一个企业内部常见的员工请假申请与审批场景,让学员能够运用 Dataverse 进行数据建模,使用 Canvas App 构建用户友好的请假申请界面,通过 Power Automate 实现自动化审批流程,并利用 Model-driven App 搭建后台管理与监控系统。 **1.2 项目目标** - 让学员实践 Dataverse 表、列、选择项、视图和表单的设计。 - 让学员掌握 Canvas App 的界面设计、数据连接(Dataverse)、数据提交与查询、以及基本的 Power Fx 公式应用。 - 让学员掌握 Power Automate 的触发器(基于 Dataverse)、审批流程的创建与管理、条件分支以及数据更新操作。 - 让学员了解 Model-driven App 的基本配置,包括站点地图、表单和视图的应用,用于后台管理。 - 实现各技术栈之间的有效集成,构建一个完整的小型请假管理解决方案。 - 巩固培训所学的核心概念,为学员后续更复杂的项目开发打下基础。 **2. 目标用户** - **普通员工:** 使用 Canvas App 提交请假申请、查看自己提交的请假记录及审批状态。 - 管理: 使用Canvas App查看或审批请假,通过邮件审批流程进行审批;使用 Model-driven App 查看所有请假记录、进行管理或处理特殊情况。 **3. 核心功能需求** **3.1 Dataverse 数据模型** 需要创建以下核心表: - 请假申请 (LeaveRequest) - 请假申请审批(Leave Request Approval) - 请假附件(Leave Attachment) 创建对应的表关系,创建合适的业务字段 要求: - 请假申请表需要和请假附件表关联,并且一个请假申请记录可以有多个请假附件 - 请假申请审批表需要能够看到各个人员对申请的批复 - 请假附件表用来存储上传的附件 **3.2 Canvas App (员工请假申请端)** - 功能一:新建/查看请假申请表单(员工 & 管理) - 功能:允许员工填写/提交/查看请假申请。 - 细节: - 有专门的页面进行表单填写和查看 - 有基本的校验,例如必填校验,日期前后校验。 - 可以提交相关的附件,例如文件,照片 - “开始日期”必须早于“结束日期”。 - “请假天数”根据选择的日期动态计算并显示。 - 点击“提交申请”按钮后,将表单数据(申请人、提交日期、请假类型、起止日期、计算出的天数、事由,状态默认为“待审批”)保存到 Dataverse 的“请假申请”表中。 - 提交成功后,显示成功提示,并清空/重置表单。 - 如果校验失败,要阻止当前提交行为,并提示用户。 - 所有必填字段需进行校验。 - 可以将填写的表单以草稿形式存储,之后任何时间再提交 - **功能二:请假记录看板(员工 & 管理)** - 功能:显示当前所有请假申请及其状态。 - 细节: - 显示所有请假申请 - 有快速筛选功能可以筛选出本人的申请 - 搜索功能:可以基于各种字段进行搜索 - 筛选功能: 可以基于状态和请假类型进行筛选 - 额外功能: 对每条记录,有对应的按钮跳转到审批记录,详情等页面,还可以直接提交和直接审批等功能按钮 - **功能三: 查看提交的请假列表(管理)** - 功能:Manager可以看到所有或部分员工提交过的所有请假申请及其状态。 - 细节: - Manager可以看到所有的待审批的提交请假 - Manager可以看到自己过往审批过的请假 - **功能四: 审批提交的请假(管理)** - 功能:Manager可以审批到所有或部分员工提交过的所有申请,并查看相关审批记录和附件 - 细节: - Manager可以审批提交上来的申请 - Manager可以填写相关评论并审批 - 当请假已经被审批后,要隐藏相关审批功能,变成只读页面 - 功能五:请假审批界面(员工 & 管理) - 功能:请假审批界面可以看到具体的审批的时间线和评论 - 细节: - 按照时间线顺序排列审批流程和评论 - 可以看到当前请假的基本信息 - 功能六: 权限控制功能(员工 & 管理) - 功能:对于不同的登录用户,可以判断并分配不同的角色,同时不同的UI会有选择的开放给不同的角色 - 细节: - 对应的功能只会显示或开放给对应角色,例如对应的按钮,控件显示等 - 通过代码判断登录的用户属于什么权限,并以此控制 - 功能七: 链接参数获取并跳转具体页面 (员工 & 管理) - 功能:对于不同的登录用户,在邮件/审批中点击链接时,可以基于url判断将他们导航到不同的页面直接显示 - 细节: - 设计url参数并通过代码跳转到对应的页面 **3.3 Power Automate (自动化审批流程)** 流程: 请假状态监控 & 邮件发送流程 - 功能: - 监控请假状态变化,变化时发送邮件给到申请人通知 - 当请假被提交,发送审批邮件给到所有管理,邮件要带上一个可以跳转Canvas App 的链接,可以让用户进入系统中进行审批和查阅 - 组织邮件格式,邮件内包含相关的请假申请的基本信息,例如请假开始结束时间,持续时间,申请人等 - 邮件中带上附件 ------ 流程:请假Email审批流程 - 功能: - 用户收到邮件后可以点击邮件内连接跳转canvas app进行审批 - 监控邮件,邮件操作后可以触发流程 - 批准流程:请假批准后,将邮件中的评论同步到数据库中保存,更改请假数据的状态并添加审批记录, - 拒绝流程: 同上 --- 流程:防止反复提交 此功能用于进行服务端校验,防止用户因为误操作或网络延迟,对同一时间段提交重复的请假申请。 - **功能描述:** 当用户选择完日期并准备提交时,系统会先通过 Flow 检查该用户是否已存在时间重叠的、且未被拒绝的申请。如果有,则在 App 端进行提示并阻止提交。 - **实现路径:** 1. **Canvas App (用户操作与参数传递):** - 用户在表单中填好“开始日期”和“结束日期”。 - 点击“提交”按钮时,首先触发一个 Power Automate Flow。 - App 将三个参数传递给 Flow:`用户邮箱`、`所选开始日期`、`所选结束日期`。 2. **Power Automate Flow (数据处理与返回):** - Flow 接收到参数。 - Flow 查询“请假申请列表”,筛选条件为:创建者是该用户,且状态**不等于**“已拒绝”或“已撤销”。 - Flow 检查查询结果中,是否有任何记录的日期范围与本次申请的日期范围重叠。 - Flow 返回一个简单的布尔值(Boolean)结果来标示验证是否通过 3. **Canvas App (数据渲染):** - Canvas App 接收到 Flow 返回的是否重复的判断结果。 - 在提交的 `OnSelect` 逻辑中,使用一个 If 函数判断:如果flow验证失败,则提醒用户并且不执行真正的提交操作。 - 如果验证成功,则继续执行数据提交的后续步骤。 **3.4 整体解决方案组织** - 细节: - 将所有的组件放在同一个Solution中,并保持命名规范 - 需要新建需要的相关环境变量 - 需要将整体方案进行打包部署到另一个环境 - 需要在新环境中进行配置并测试 **3.5 集成点总结** - **Canvas App 与 Dataverse:** Canvas App 写入新的请假数据到 Dataverse,并读取当前用户的请假记录。 - **Power Automate 与 Dataverse:** 流程由 Dataverse 新记录触发,并根据审批结果更新 Dataverse 记录。 - **Power Automate 与 Outlook:** 流程使用并通过 Outlook通知用户。 - **解决方案:** 所有组件(Dataverse 表、Canvas App、Power Automate 流)都应包含在一个非托管解决方案中。 **4. 技术栈** - **数据平台:** Microsoft Dataverse - **前端应用:** Microsoft Power Apps (Canvas App) - **流程自动化:** Microsoft Power Automate (Cloud Flow) - **后台管理:** Microsoft Power Apps (Model-driven App) - **开发环境:** Power Apps Maker Portal, Power Automate Portal 通过使用PowerApps来实现上述需求分析的所有功能,请给我实现这些具体功能的细节步骤,如何操控Power apps 来完成,给到我的操作步骤必须确保真实有效,是Power Apps 相关的最新知识和理论

提示词

### 🎯 员工请假系统开发指南

```
你是一个Power Platform解决方案架构师,具备Dataverse数据建模、Canvas App界面设计、Power Automate流程自动化以及Model-driven App配置的专业知识。

你的任务是根据需求文档创建一个完整的员工请假系统解决方案,提供详细的技术实现步骤和最佳实践指导,确保学员能够按照步骤完成系统开发。

输出约束:
- 内容范围:仅限Power Platform技术栈实现,包括Dataverse、Canvas App、Power Automate、Model-driven App
- 输出格式:分步骤技术实现指南,包含具体操作路径和配置细节
- 语言风格:专业技术文档风格,清晰简洁,步骤明确
- 长度限制:详细但不冗余,覆盖所有核心功能实现

质量标准:
- 每个步骤必须包含具体的Power Platform界面操作路径
- 提供Dataverse表字段设计的详细配置说明
- 包含Power Fx公式示例和最佳实践
- 确保流程触发器和条件分支配置准确
- 包含权限控制和集成点的具体实现方法

示例引导:
示例输入:创建请假申请Dataverse表,
期望输出:1. 登录Power Apps Maker Portal → 2. 选择目标环境 → 3. 进入"表"区域 → 4. 点击"新建表" → 5. 设置表名称为"LeaveRequest" → 6. 添加字段:创建者(自动)、开始日期(日期时间)、结束日期(日期时间)...
```