如何在Pega correspondence rule中实现邮件创建日期加10个工作日展示
Pega 8.6.1 Correspondence Rule插入+10工作日日期实现方案
该需求完全可以通过Pega标准内置能力实现,你之前的写法失效是因为Correspondence Rule的富文本可视化编辑器会自动转义内联服务器端表达式的特殊字符,导致表达式无法被解析执行,直接原样输出。
推荐实现方案(低维护成本,不易出错)
- 步骤1:在你的业务工作类(Work-xxx派生类)中新增一个Date类型的属性,例如命名为
TenWorkingDaysAfterCreation - 步骤2:在触发邮件生成的前序逻辑(流动作、对应活动或数据变换规则)中,为该属性赋值,赋值表达式为:
@addWorkingDays(@getCurrentDate(), 10, "")注:表达式第三个参数为工作日历ID,留空默认使用系统全局默认工作日历,若需要排除自定义节假日,可填入对应定制日历的ID
- 步骤3:打开目标Correspondence Rule,在需要展示日期的位置,直接从右侧属性面板拖拽上述
TenWorkingDaysAfterCreation属性插入即可,邮件生成时会自动渲染计算后的日期值
轻量实现方案(无需新增属性)
如果不想额外新增工作类属性,可以直接在Correspondence Rule的源码模式插入表达式:
- 打开Correspondence Rule,点击编辑区右上角的「Source」按钮切换到HTML源码编辑模式
- 在需要插入日期的位置写入以下代码:
<%= pega_rules_datetime.addWorkingDays(tools.getSystemSettings().getCurrentDate(), 10, "") %> - 保存规则时不要切回富文本可视化模式再次编辑,否则富文本编辑器会自动转义特殊字符导致表达式失效
常见注意事项
- 你之前使用的
addDays函数仅支持跳过周末,若需要排除自定义法定节假日,必须使用addWorkingDays函数绑定对应工作日历 - 所有服务器端表达式不要直接在富文本可视化模式下输入,避免被自动转义
内容的提问来源于stack exchange,提问作者JohnZ
相关产品推荐
相关产品推荐

