已用SharePoint Designer实现休假审批,如何自动更新日历锁定休假日期?
先给你吃个定心丸:你要的自动更新日历+经理视角的统一休假日期查看功能,完全可以通过SharePoint Designer工作流+SharePoint日历的原生功能实现,下面给你一步步拆解怎么做:
一、用SharePoint Designer搭建自动更新日历的工作流
你的核心需求是休假获批/取消时自动同步日历,我们可以基于现有的休假规划器列表创建工作流,触发条件和分支逻辑如下:
1. 准备工作:给日历列表加个关联字段
先给你的目标SharePoint日历新增一个自定义字段,比如叫休假申请ID(类型选“数字”),用来绑定休假规划器里的项目ID,这样工作流能精准找到对应要操作的日历条目,避免重复创建或误删。
2. 创建工作流并设置触发条件
打开SharePoint Designer,连接到你的站点,新建一个列表工作流,关联到你的休假规划器列表:
- 触发条件选**“当项目被创建或更改时”**,这样审批状态变化时会自动启动工作流。
3. 分支逻辑处理不同审批状态
在工作流里添加条件分支,分别处理“已批准”和“已取消”的情况:
分支1:当休假状态变为「已批准」时
- 第一步:用**“查找列表项”**动作,在目标日历列表中查找
休假申请ID等于当前休假项目ID的条目。 - 第二步:根据查找结果分情况处理:
- 如果没有找到匹配条目:用**“创建列表项”**动作,在日历里生成新事件,填写这些关键信息:
- 标题:比如
[员工姓名] 休假(直接引用休假列表里的员工字段) - 开始/结束日期:引用休假列表的休假起止日期
- 类别:可以设为「休假」(方便后续区分和设置颜色)
休假申请ID:填入当前休假项目的ID- 可选:把员工信息填入日历的“参与者”字段,或者自定义“员工”字段
- 标题:比如
- 如果找到匹配条目:用**“更新列表项”**动作,同步更新日历条目的日期或状态(比如员工修改了休假日期后重新获批的情况)
- 如果没有找到匹配条目:用**“创建列表项”**动作,在日历里生成新事件,填写这些关键信息:
分支2:当休假状态变为「已取消」时
- 第一步:同样用**“查找列表项”**动作,通过
休假申请ID找到对应的日历条目。 - 第二步:如果找到条目,用**“删除列表项”**动作直接移除,或者也可以选择更新条目状态为「已取消」(保留记录但标记为无效,看你的需求)
二、设置经理视角的统一休假查看功能
要让经理在单个视图里看到所有员工的锁定休假日期,有两种简单的实现方式:
方式1:基于共享日历的颜色区分
如果所有员工的休假条目都存在同一个共享日历里:
- 给日历的「类别」字段设置不同的颜色(比如每个员工对应一种颜色,或者按休假类型区分),经理打开日历后,就能直观看到不同员工的休假日期,无需叠加多个日历。
- 还可以给日历创建一个过滤视图,只显示「已批准」的休假条目,自动隐藏取消或待审批的申请,确保经理看到的都是锁定的日期。
方式2:原生日历叠加功能(适合多日历场景)
如果每个员工有自己的个人日历,或者你把休假按部门拆分到不同日历:
- 经理打开主日历,点击顶部的「日历」选项卡,选择「日历叠加」。
- 点击「新建日历」,依次添加需要查看的员工/部门日历,给每个日历设置不同的颜色,就能在单个视图里叠加显示所有休假日期了。
注意事项
- 确保工作流有足够的权限:工作流运行的账户需要有目标日历的创建、更新、删除权限,不然会执行失败。
- 测试流程:先提交一个测试休假申请,走完审批流程,检查日历是否同步更新;再取消申请,验证日历条目是否被删除/标记,确保逻辑没问题。
内容的提问来源于stack exchange,提问作者Ambika Bhatnagar
相关产品推荐
相关产品推荐

