You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置Dataverse自动编号SEQNUM实现每日重置?

Dataverse每日重置序号的自动编号实现方案

原生Autonumber列的限制

直接通过Dataverse Autonumber列的格式设置无法实现每日重置序号。内置的{SEQNUM:3}是全局连续递增的序列,没有按日期自动重置的参数支持,因此会出现跨日期后序号持续累加的情况。

可行替代方案

方案一:Power Apps前端生成(轻量场景)

  1. 在目标Dataverse表中新增文本类型列(例如命名为DailySerialNo),放弃Autonumber类型。
  2. 在Power Apps的表单提交逻辑中添加以下步骤:
    • 生成当日日期前缀:Text(Today(), "MMddyy")
    • 统计当日已创建的记录数:CountRows(Filter(你的表名, StartsWith(DailySerialNo, Text(Today(), "MMddyy"))))
    • 计算当日序号:Text(CountRows结果 + 1, "000")
    • 拼接最终编号:Text(Today(), "MMddyy") & Text(CountRows结果 + 1, "000")
    • 将拼接后的编号赋值给表单的DailySerialNo字段,再提交记录。

注意:需处理并发提交导致的重复编号问题,可添加提交后验证逻辑,若发现重复则重新生成编号。

方案二:Power Automate云流生成(后端处理,低并发风险)

  1. 同样新增文本类型列DailySerialNo。
  2. 创建Power Automate云流,触发条件选择当Dataverse记录创建时。
  3. 云流内执行以下操作:
    • 格式化当前日期为MMddyy格式(注意时区适配,可根据需求用UTC或本地时间)。
    • 查询当日该表中所有以该日期前缀开头的DailySerialNo记录,统计数量。
    • 计算当日序号:统计数量 + 1,格式化为3位数字(formatNumber(统计数量+1, '000'))。
    • 拼接编号,更新到当前创建的记录的DailySerialNo字段。

方案三:Dataverse插件生成(高并发场景)

针对企业级高并发需求,可编写C#插件在记录创建前(PreCreate事件)执行:

  1. 获取当前记录的创建日期,格式化为MMddyy。
  2. 通过FetchXML查询当日已生成的最大编号,提取后三位数字并加1。
  3. 拼接完整编号赋值给目标字段。
  4. 利用插件的事务特性保证编号生成的原子性,彻底避免重复问题。

内容的提问来源于stack exchange,提问作者Robby

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:01:06