EasySQLMAIL使用教程-在任务中使用变量

无标题 1

1 什么是变量

2 创建变量

2.1 创建任务变量

2.2 创建模板变量

2.3 变量的设置

2.4 系统变量

2.5 变量使用案例

2.5.1 案例1-在正文模板中显示统计数字

2.5.2 案例2-动态设置邮件的标题

2.5.3 案例3-动态确定邮件的收件人

2.5.4 案例4-动态确定附件文件名

2.5.5 案例5-动态修改SQL语句参数

 

1 什么是变量

变量是指在运行过程中可以改变的量。通过引用变量,增强了任务配置的灵活性。

您可以在要引用变量的地方插入文字:#变量名#  来引用变量。EasySQLMAIL在执行任务时,会将这个位置上的文字替换为变量的值。
例如,在配置某任务的邮件主题时,要求邮件主题中能够显示出当天的日期,这时就可以将邮件主题的内容写为“您好,这是#date#的按日统计数据”,其中,#date#就表示这个位置引用了一个名为date的变量。EasySQLMAIL在执行这个任务时,会到任务的变量表中去查找这个变量,并用变量的值替换邮件主题中的#date#。替换后的邮件主题就变成了“您好,这是2015-03-01的按日统计数据”

另一种情况,是在SQL语句中使用变量。例如,有如下的取数SQL语句:

SELECT * FROM t_users WHERE user_id = 1;//在这个SQL中,user_id不是固定的值,需要根据情况改变。

对于这种情况,可以将SQL语句中的红字部份设置为一个变量,改写为

SELECT * FROM t_users WHERE user_id = #userId#;

然后再在任务中设置一个名为userId的变量,并指定好变量的取值方式,这样就可以实现动态SQL语句了。

EasySQLMAIL的变量有两个级别。一种是任务变量,在整个任务的范围内有效;第二种是模板变量,在单个附件模板的范围内起作用。

2 创建变量

2.1 创建任务变量

您可以通过在“任务属性”对话框中的“任务变量”Tab页中点击“新建变量”按钮来创建一个任务变量:

2.2 创建模板变量

您可以在设计附件模板时点击“模板属性”对话框中的“模板变量”Tab页里的“新建变量”按钮来创建一个模板变量:

2.3 变量的设置

在新建变量对话框中,您可以对变量进行详细的设置。

变量名称 输入变量的名称。变量名称中不能有”#”号。在同一个环境中(例如在同一个任务的任务级变量中,或在同一个附件模板中),变量名不能重复。
生成方式 指定变量值的生成方式。变量值的生成方式有两种:
1 固定值:变量的值是固定的,运行时不会改变。
2 使用SQL语句动态生成:变量的值由一个SQL语句动态生成。这种方式下,EasySQLMAIL将SQL语句查询结果的第一个字段作为变量的值。
需要说明的是,在使用变量值替换字符串时,如果SQL语句查询返回了多行记录,EasySQLMAIL只使用第一行第一个字段的值作为变量值;在使用变量值作为邮件收件人时,如果SQL语句查询返回了多行记录,EasySQLMAIL会将每一行记录的第一个字段作为一个邮件地址来对待。
变量值 当变量的生成方式是“固定值”时,在这里输入变量的固定值。
数据源 当变量的生成方式是“使用SQL语句动态生成”时,在这里选择执行SQL语句时要连接的数据源
SQL 输入一个或多个SQL语句。如果有多个语句要执行,各个语句之间用“;”(分号)分隔开。
您可以在SQL语句中嵌入变量。例如:
SELECT * FROM stat_org WHERE org_id = #orgId#;
注意:如果有多个SQL语句要执行,最后一个语句执行后返回的结果集的第一个字段将被作为变量的值对待。
在邮件正文中将变量值作为HTML代码对待 如果选择该选项,当使用变量值在HTML文档中替换变量名时,会将变量的值作为HTML代码对待。
例如,当变量userName的值是<font color=’red’>李一</font>时,HTML文档中的
<span>#userName</span>
将被替换为
<span><font color=’red’>李一</font></span>

如果不选择此选项,EasySQLMAIL会先将“<font color=’red’>李一</font>”进行HTML转码,然后再替换到HTML文档中,替换结果为:
<span>&lt;font color=’red’&gt;李一&lt;font&gt;</span>
当需要动态改变正文模板的HTML样式或内容时,可以选择此选项。
变量说明 可以在这里为变量输入一些说明信息,以便于以后的管理与维护。

 

2.4 系统变量

EasySQLMAIL中预定义了一些系统变量,在使用时可以直接引用。系统变量的变量名前两个字符为@@。

变量名称 变量功能
@@date 在指定位置上显示当前的日期,格式为yyyy-mm-dd例如2015-09-10
@@datetime 在指定位置上显示当前的日期时间,精确到分,格式为yyyy-mm-dd hh:mi例如2015-09-10 08:00

 

2.5 变量使用案例

2.5.1 案例1-在正文模板中显示统计数字

在实际使用中,经常需要将SQL语句查询出的一些统计数字直接显示到邮件的正文中。象下面这样:

(1)编写邮件正文模板:

(2)在任务中创建一个变量cnt,并设置其取值方式:

(3)变量设置好后,任务执行时,会用变量的值替换邮件正文中的#cnt#,最终执行的效果如下:

2.5.2 案例2-动态设置邮件的标题

(1)在“任务属性”>>“收件人”中设置邮件标题:

(2)按2.5.1中所述的方法设置好自定义变量cnt的取值方式。需要注意的是,这里的cnt必须创建为任务变量,不能创建成模板变量。

(3)执行时,EasySQLMAIL会用cnt的值替换邮件标题中的#cnt#变量,用当前的日期值替换邮件标题中的#@@date#变量,最终执行的效果如下:

2.5.3 案例3-动态确定邮件的收件人

在某些情况下,需要动态确定邮件的收件人。例如,根据数据统计的结果,决定将邮件发送给哪些人。这时,我们在设计任务的时候,可以用变量来动态确定收件人。

(1)在任务中创建一个名为“收件人”的任务变量。(变量名称可随意取)

(2)在“任务属性”>>“收件人”选择任务的收件人时,选择“从变量添加”:

(3)设置好后,在执行任务时,EasySQLMAIL将会使用变量“收件人”的SQL语句返回的第一列中的内容作为收件人的邮件地址。

注意:

1、变量返回的收件人地址必须是EasySQLMAIL的地址簿中已存在的邮件地址,否则,EasySQLMAIL不会向此地址发送邮件。

2、变量返回的结果集中,每一行只能有一个电子邮件地址。

2.5.4 案例4-动态确定附件文件名

在某些时候,我们需要对邮件的附件文件进行动态命名,例如,我们要将附件文件命名为:2015-09-15发展清单.xlsx,其中的红字部份为每天的日期,每一天都不一样。

(1)在“附件模板属性”中,填写“将附件文件命名为”文本框,在文本框中插入变量#@@date#:

(2)任务执行后的效果如下图:

(3)附件文件命名规则中也可以使用固定值变量和SQL语句动态生成的变量。当使用SQL语句动态生成变量时,SQL语句返回的第一行第一列的值将被替换到附件文件名中。

2.5.5 案例5-动态修改SQL语句参数

有时,我们要执行的SQL语句可能需要动态改变。例如有如下的SQL:

/*从t_user表中查询出用户ID,并查询此用户的对口服务经理,并将用户资料发送给对口服务经理*/

--从t_user中查询出用户ID

SELECT user_id FROM t_user WHERE state = 'X';--查询出的用户ID为10039

--查询对口服务经理的邮件地址,并用对口服务经理的邮件地址作为收件人地址。这里的查询参数user_id每次执行时都可能不一样。

SELECT mail_addr FROM t_service WHERE user_id = 10039;

为了实现这个功能,我们需要在第二个SQL语句中使用一个动态参数,将这个SQL语句修改为:

SELECT mail_addr FROM t_service WHERE user_id = #userId#;

我们在语句中加入了一个变量userId。接下来,我们要定义变量userId的取值方式:

通过以上设置,就可以在SQL语句中使用动态参数了。

注意:在上例中,userId参数的执行顺序必须在“收件人”参数之前,例如下面这样:

有关“变量”的其它信息,请参考《EasySQLMAIL系统操作手册》中的相关内容。

感谢您阅读本文档。

 

 

 

文档最后更新时间:2019-07-01