如何在Dataverse表中实现实验室测试记录的关联与自动延期?
Dataverse实验室测试记录关联实现方案
一、表结构调整(放弃单独Connection表,用自引用更高效)
1. 主测试表(Lab Tests)字段优化
- 保留原有字段:
开始日期(DateTime类型)、持续天数(Number类型) - 新增计算字段
结束日期:用Dataverse自带的计算功能,公式设为AddDays(开始日期, 持续天数),自动随开始日期和持续天数更新 - 新增自引用查找字段
前置测试:关联到本表自身,允许为空——无关联的测试直接留空,不用额外处理 - 新增关联类型(Choice选项集):设置两个选项:
后置跟随、同时启动,默认值为空(代表无关联)
2. 为什么不用单独的Connection表
单独建关联表会增加数据冗余,查询和维护起来更麻烦。自引用字段直接把关联关系存在测试记录里,逻辑更直观,无关联的测试只需留空前置测试字段即可,完全不用额外处理无关联场景。
二、自动同步/延期的逻辑实现(用Power Automate或Dataverse插件)
1. 前置测试变更时自动更新后续测试
当某条测试的开始日期或持续天数被修改时,触发自动化流程:
- 先找到所有
前置测试指向这条记录的后续测试 - 根据后续测试的
关联类型做不同处理:- 若为
后置跟随:把后续测试的开始日期更新为当前测试的结束日期(计算字段自动生成的那个),持续天数不变,结束日期会自动重新计算 - 若为
同时启动:把后续测试的开始日期同步为当前测试的开始日期,结束日期随之自动更新
- 若为
2. 新增测试时的关联设置
新增测试记录时:
- 如果要关联已有测试,选择
前置测试并设置关联类型:- 选
后置跟随:自动把新测试的开始日期设为前置测试的结束日期 - 选
同时启动:自动把新测试的开始日期设为前置测试的开始日期
- 选
- 无关联的测试直接不选
前置测试,手动设置开始日期就行
三、计算字段配置步骤
在Lab Tests表中创建结束日期计算字段:
- 进入Dataverse表编辑器,新增字段,类型选“计算”
- 数据类型选“日期和时间”
- 编辑计算公式,输入:
AddDays(开始日期, 持续天数)
- 保存字段,系统会自动为所有记录计算结束日期,后续修改开始日期或持续天数时会自动更新
四、边界场景处理
- 循环关联校验:在自动化流程或插件里加个判断,禁止后续测试的前置测试链回自身(比如Test1的前置是Test2,Test2的前置是Test1),避免无限循环更新
- 多前置需求(如果后续需要):要是以后需要一个测试关联多个前置,再考虑用关联表,但关联表别把Test1、Test2、类型设为主键,改用单独的主键ID,无关联的测试不生成关联记录就行
内容的提问来源于stack exchange,提问作者Stephan Pörnbacher
相关产品推荐
相关产品推荐

