前言:
Teamcenter中流程签审时候有时候会有外发邮件的需求,可以通过在流程中配置EPM-notify或者EPM-notify-report等Handler来实现邮件外发,可是如果需要对特定的流程、目标对象类型或者属性等动态的发送不同主题和内容的定制化邮件应该怎么实现?
问题:
目前项目中遇到一个棘手的需求,需要在特定流程,且有特定目标对象及相关属性流程签审时候外发定制化主题和内容的邮件,其它情况正常外发ootb邮件。
分析:
目前流程使用的是EPM-notify这个Handler来外发邮件,配置如下图,

图1 :EPM-notify参数配置
虽然EPM-notify提供了好几个参数来定制邮件,但邮件主题及内容还是很难灵活的定制出想要的格式,比如主题只提供了$PROCESS,$TASK,$TARGET及固定字段的组合,邮件内容也是几个离散的参数内容拼接且有一定的逻辑在里面

图2 :EPM-notify提供的一些参数配置
正常外发ootb的邮件主题和内容如下

图3 :EPM-notify ootb外发的邮件格式
这种场景,用平时的写一个Handler来使用javamail等方案外发邮件方式不是很适用,或者工作量巨大(要将ootb外发邮件情景考虑进来,且抛开teamcenter本身的邮箱外发机制)
解决:
因为外发邮件是调用tc_mail_smtp.exe这个utility,所以只要对tc_mail_smtp.exe接收到的外发邮件信息根据实际场景和业务需求加入逻辑进行二次加工,就可以达到完美支持ootb外发邮件,又加入特定场景邮件样式定制的效果。
如下面这个定制化邮件,当是特定team roster流程,且是时间表任务,并且关联的项目集有一些项目名称和特定属性时候,就获取到这些信息,外发定制化邮件(主题和内容里动态使用任务相关信息),反之则发送ootb邮件

图4 :客制化邮件





