ESAP达摩院 思想有多远,我们就能走多远

ESAP4系列教程|发送表格提醒


此案例提取自本华建筑有限公司,感谢翁总分享。

应用场景

定时使用微信发送表格明细数据给相关人。

1.扫描测试

包括两个扫描,一个是表头,一个是表数据,示例瑞如下:

select
	'工序'
	,'产品'
	,'计划数'
	,'实际数'

select 
	工序1
	,产品名称1
	, 计划数量1
	,实际数量1 
from 工序表

脚本执行结果示例:

2.完善SQL模板

完整的模板如下,上面的表头表数据嵌入其中。

select
  0 as id,
  'esap' as app, --发给哪个应用
  '@all' as touser, -- 发给那些人,@all是全部
  '' as toparty,
  '' as totag,
  'mpnews' as msgtype,
  '' as msgid,
  '<style type="text/css">
  table { border-collapse: collapse; margin: 0 auto; text-align: center; }
  table td, table th { border: 1px solid #cad9ea; color: #666; height: 30px; }
  table thead th { background-color: #CCE8EB; width: 100px; }
  table tr:nth-child(odd) { background: #fff; }
  table tr:nth-child(even) { background: #F5FAFA; }
  </style>
  详情如下:<br>
  <table border="1" bgcolor="#669">' + replace((
  ----表头开始----th别名后的下划线依次加长
  select
    '工序' as th
    ,'产品' as th_
    ,'计划数' as th__
    ,'实际数' as th___
  ----表头结束----
  for xml path('tr')) + ( 
  ----表体开始----td别名后的下划线依次加长
  select 
    工序1 as td
    ,产品名称1 as td_
    , 计划数量1 as td__
    ,实际数量1 as td___
  from 工序表
  ----表头结束----
  for xml path('tr')),'_','') + '</table>' as content, --内容,拼接了一大坨代码html
  '工序进度提醒' as title, --这个是标题
  '点击查看' as description, --这个是标题下面的描述
  '' as url,
  '433' as pic, --这个是封面图片,事先上传个图片,拿到图片id
  '' as fh,
  0 as safe

3.建立SQL模板

在esap/sql/sys/下建一个.get文件,里面定义wxtx.diy模板

4.开启自定义提醒任务

登陆admin,在计划任务中新增esap xxxx任务,类型微信提醒,周期随意,配置.diy后缀,启用,保存重启ESAP

效果

小结

  • 使用for xml path构建table标签

  • 利用微信的mpnews可以用html标签

  • 采用ESAP自定义提醒

本文示例应用ESAP4.0.1+支持致。

2019-07-16


近似文章