在企业的经营过程中,经常会出现一些具有一定风险的情况。很多时候,这些风险会隐藏在企业的各个IT系统中。如果不能及时发现这些风险,将有可能对企业利益造成损害。
在本文中,将向您介绍如何利用EasySQLMAIL快速地实现IT系统风险监控功能。
公司最近发现一些客户经理为客户办理了一些不合适的业务,与公司的业务办理规定相冲突。如果不能在业务生效前发现这些有问题的客户资料,将会给公司带来损失。因此,公司希望IT部门每天下班后检查客户资料,如果发现有此类情况,就将这些客户的资料发送给业务管理部门进行修正并通报违规的客户经理。
要求发送的具体内容必须包含:
1、有问题的客户清单:
附件:客户清单表
2、为客户违规办理这些业务的客户经理统计表:
附件:按客户经理统计表
3、按部门生成的违规受理统计表:
在正文中要显示按部门统计表
首先,我们需要编写好提取数据的SQL语句。这是数据发布的基础工作。
EasySQLMAIL中可以执行复合语句,也就是一个SQL可以配置多条语句,语句之间用";"(分号)分隔开。
如果是使用的Oracle数据库,还可以在语句中直接写匿名块。本案例中使用的是Oracle数据库。
/*
从业务受理系统取当天的违规受理数据到本地数据库的临时表T_ORDERS中
*/
--如果临时表已经存在,先删除临时表
DECLARE
n NUMBER;
BEGIN
SELECT COUNT(1) INTO n FROM user_tables WHERE table_name = 'T_ORDERS';
IF n = 1 THEN
EXECUTE IMMEDIATE 'DROP TABLE T_ORDERS';
END IF;
END;
--从业务受理系统取当天的违规受理清单到本地数据库
CREATE TABLE T_ORDERS AS
SELECT cust_id,cust_name,cust_type_name,order_type_name,eff_date,order_date,
staff_name,org_name,comments,SYSDATE create_date
FROM crm.orders a
WHERE a.order_date BETWEEN trunc(SYSDATE) AND trunc(SYSDATE + 1)
AND comments IS NOT NULL;
--提取清单的SQL
SELECT cust_id AS "客户ID",cust_name AS "客户名称",cust_type_name AS "客户类型",order_type_name AS "受理业务类型",
eff_date AS "业务生效时间",order_date AS "受理时间",staff_name AS "受理人",org_name "受理部门",comments AS "违规情况描述",create_date AS "发现时间"
FROM T_ORDERS ORDER BY cust_id;
点击“创建高级任务”新建一个数据发布任务。在任务SQL命令中增加一个SQL命令,将当天的违规受理清单从业务受理系统取到临时表中。
在任务的SQL命令中设置取数的SQL语句
SQL语句中的最后一条语句 SELECT 1 FROM t_orders WHERE rownum = 1 的作用是,当这个SELECT语句返回空结果集时,任务将不执行。这样可以实现当天有违规受理客户时才执行任务并发布数据,没有数据时就不发送,以避免产生无用的垃圾邮件。
邮件模板中,需要设置正文模板和附件模板。正文模板用于生成邮件的正文内容,附件模板用于生成清单表格附件和按客户经理统计的表格附件。
1、设置邮件正文模板
设置正文模板
设置好正文模板中统计数据的SQL和字段与数据单元格的对应关系
2、设置清单表附件
设置清单附件模板
3、设置按客户经理统计表格附件
设置SQL语句和数据字段与单元格的对应关系
在此案例中,清单表附件和按客户经理统计表格附件都是“简单行列式表格”,仅有SQL语句不同。
设置邮件标题和收件人
设置执行计划
执行计划设置好后,任务将在每天晚上20:00启动,提取数据并发送邮件。
在执行计划状态查询中查询新任务的执行计划
任务执行后生成的邮件正文
任务生成的清单表附件
任务执行后生成的按客户经理统计表