/** * 任务数据异常:推送邮件 * @author: hudun * @since 2022-09-05 */ importPackage(Packages.smartbi.freequery.querydata) importPackage(Packages.smartbi.sdk.service.datasource) logger.info(connector) // 告警接收人:收件人、抄送人、密送人(分号分隔多个) var mailList = "chenmengting@smartbi.com.cn" var ccMailList = "" var bccMailList = "" // 邮件标题 var title = "告警邮件" // 业务库数据源 var ds = "DS.northwind" // 监控sql var sql = "select column2 as type, sum(column10) as sale from car_selling_fact group by column2" // 告警规则 var rule = function(row) { var type = row.get(0).getDisplayValue() var sale = row.get(1).getDoubleValue() var target = 15000000 if (sale >= target) { return "车系【" + type + "】销售量已超过预警值" + target + ",以达到" + sale + "。" } return null } /* 执行代码部分,以下请勿修改 */ var message = "" var dsService = new DataSourceService(connector) var gridData = dsService.executeNoCacheable(ds, sql) var data = gridData.getData() for (var i = 0; i < data.size(); i++) { var row = data.get(i) var result = rule(row) if (result !== null) { message += result + "\r\n" } } if (message !== "") { var sendToMailOutput = execute('sendToMail', { connector: connector, taskName: taskName, paramValueMap: null, files: [], sendSetting: {"mailList":mailList,"ccMailList":ccMailList,"bccMailList":bccMailList,"doZip":true,"title":title,"text":message} }); }