变量定义及应用
变量是仓鼠系统中一个很强大的功能,为用户数据操作提供极大的便利性。仓鼠变量可以分为如下几类:
- 系统定义变量
- 系统日期变量
- 用户定义变量
- 数据遍历变量
- 任务临时变量
- Excel专用变量
- 邮件专用变量
上述各类变量类型都可以在任务设计时引用,并起到占位符的作用。运行时,仓鼠系统将根据实际运行环境进行替换成预期的内容。
系统定义变量
该变量是由仓鼠系统在运行前或运行中,为特定任务包创建的。如记录当前任务名称、运行状态或数据采集数量等。
调用方式如: <sys:SysParamName/>
其中 SysParamName 为系统参数名称,其它部分为系统变量的标识格式。
系统参数名 - SysParamName | 含义 | 备注 |
---|---|---|
SYS_TSK_TaskID_Name | 用于记录TaskID关联任务的名称 | TaskID需要替换成实际任务ID,从而与具体任务绑定。例:SYS_TSK_32F31BD1C6D942D2963BAE5D7EE62744_NAME |
SYS_TSK_TaskID_QTY | 用于记录TaskID关联任务的数据量 | |
SYS_TSK_TaskID_STS | 用于记录TaskID关联任务的当前状态 | |
SYS_ExecCaseID | 当前执行任务包对应的执行实例ID | |
SYS_PackageID | 当前执行任务包ID | |
SYS_PackageName | 当前执行任务包名称 | |
SYS_PackageNo | 当前执行任务包编号 | |
SYS_PackageOwnerEmail | 当前执行任务包所有者邮箱 | |
SYS_ReportName | 当前执行任务包关联报表名称 | |
SYS_ScheduleOwnerEmail | 当前执行任务包调度所有者邮箱 | |
SYS_ScheduleOwnerID | 当前执行任务包调度所有者ID | |
SYS_ScheduleOwnerName | 当前执行任务包调度所有者名称 | |
SYS_TaskGroupName | 当前执行任务包分组名称 | |
SYS_FailedTaskCategory | 最近失败的任务类型 | 该组系统变量将在任务实施执行期间出错时,由系统自动创建并更新内容。可在系统预警的邮件或消息提醒中使用。 |
SYS_FailedTaskID | 最近失败的任务ID | |
SYS_FailedTaskNo | 最近失败的任务编号 | |
SYS_FailedTaskName | 最近失败的任务名称 | |
SYS_FailedMessage | 最近失败的错误提示信息 | |
SYS_FailedDateTime | 最近失败的时间点 |
系统日期变量
系统日期变量
主要内嵌与用户定义变量
中,起到依据任务运行前指定的业务时间进行相应的计算,并自动赋值于隶属的用户定义变量
中。
该变量由系统预定义名称,不可以修改。
基本格式如:<dt:ParamName(dataParam) ops delta,DateFormat/>
其中可以调整的内容有:
- ParamName: 必选,为日期变量名称,可以参考如下表。
- dataParam:可空,为了支持多个日期变量嵌套使用,如
<dt:Var_CurrMonday(<dt:Var_CurrMonth()+9d/>),YYYYMMDD/>
,其中Var_CurrMonth()
可以作为Var_CurrMonday()
变量的计算日期参数,如果没有,则将依据任务的业务运行时间为基准。 - ops: 可空,提供
+
或-
操作符号,用于增加或减少相应的天数、月份等 - delta:如果没有选择
ops
,则可空,和ops
元素配合使用,提供具体的偏移量,如5y(5年),3m(3个月),2d(2天),2w(2周),4h(4小时)。 - DateFormat:可空,用于特殊指定当前日期的格式,如:YYYY年,MM月,DD日,HH24小时,MI分钟,SS秒等。具体格式字符串依据系统数据库运行的数据库平台为标准。
变量名称ParamName | 输出格式案例 | 功能备注 |
---|---|---|
Var_CurrDate | 2024-05-14 | 获取当期日期,是任务运行时选择的业务日期为当前日期,如果没有特殊指定,则以当前日历日期为准 |
Var_CurrDateTime | 2024-05-14 17:46:12 | 带时分秒的当前日期 |
Var_CurrFullTime | 2024-05-14 17:46:12.234 | 带时分秒和毫秒的当前日期 |
Var_CurrSysDateTime | 2024-05-14 17:46:12.234 | 获取当前操作系统时间,不受任何变量参数影响,常用于记录时间戳 |
Var_CurrMonday | 2024-05-13 | 当前周的周一日期 |
Var_CurrMonth | 2024-05 | 当前年月份 |
Var_LastDayWithinCurrMonth | 2024-05-31 | 当前月最后一天 |
Var_FstDayOnNextMonth | 2024-06-01 | 下一个月的第一天 |
Var_FstMonWithinCurrMonth | 2024-05-06 | 本月内第一个周一 |
Var_LstMonWithinCurrMonth | 2024-05-27 | 本月内最后一个周一 |
Var_LastFirIfCurrIsMonOrYesterday | 2024-05-13 | 如果当前是周一,则返回上周五,否则返回昨天的日期 |
Var_Sub3dIfCurrIsMonOrSub2d | 2024-05-12 | 如果当前是周一,则返回上周五(-3天),否则返回大前天(-2天) |
Var_FstMonthWithinCurrQuarter | 2024-04-01 | 获取当前月份所在季度的第一个年月 |
案例:(当前日期为2024-05-14 20:15:20
)
表达式 | 输出结果 | 含义描述 |
---|---|---|
<dt:Var_CurrDate()-2d/> | 2024-05-12 | 获取当前日期前2天日期 |
<dt:Var_FstMonWithinCurrMonth(<dt:Var_CurrMonth()+1m/>)/> | 2024-06-03 | 获取下一个月的第一个周一日期 |
<dt:Var_CurrMonday()-2d,YYYYMMDD/> - <dt:Var_CurrMonday()-1d,MMDD/> | 20240511 - 0512 | 获取上个周日和周六的日期,并拼接成特定的格式 |
用户定义变量
由用户在界面中自定义的变量。调用方式如:<var:UserParamName|\{dataformat\}/>
, 其中 UserParamName 为用户自定义变量的名称,format 为当前变量值的显示格式,如果不需要考虑显示格式,则后半段可以忽略,简写成:<var:UserParamName/>
数据遍历变量
用户在可循环遍历的任务中,引用任务查询中涉及到的数据库字段时用到的数据库字段变量。通过该变量,用户可以引用当前数据集中特定的字段内容。 调用方式如: <db:DbFieldName|\{dataformat\}/>
, 其中 DbFieldName 为当前数据集中的字段名称,format 为当前变量值的显示格式,如果不需要考虑显示格式,则后半段可以忽略,简写成: <db:DbFieldName/>
任务临时变量
该变量只存在于特定任务的生命执行周期内,如钉钉消息,企业微信消息等任务。用于临时保存当前任务逐条数据记录执行时获取的运行(发送)结果。如在发送批量消息时,记录每个消息返回的消息ID或任务ID,该变量可以在当前 任务的遍历脚本 中被使用,可用于更新特定消息的发送状态,如回写消息ID: <tsk:returnId/>
,变量的内容形式由当前任务决定。该变量在下一条记录发送后会被重写,任务结束后,变量会被清空.
记录当前子记录任务的执行返回结果,如消息ID等。
Excel专用变量
[xls:currrow],[xls:nextrow], [FieldName]
邮件专用变量
变量 | 场景 | 备注 |
---|---|---|
<sys:rowindex/> | 数据行 | 自动实现行号 |
<db:FiledName|{0:D2}/> | 数据行 | 用于显示当前数据行中特定的字段值,字段名:FieldName |
<fun:sum(FieldName)|{0:C2}/> | 汇总行 | 针对当前数据集合中每行FieldName字段值进行累加计算 |
<fun:count(FieldName)/> | 汇总行 | 针对当前数据集合中,每行的FieldName字段值进行记数,非累加 |
<fun:max(FieldName)/> | 汇总行 | 获取当前数据集合中,FieldName字段值最大的值 |
<fun:min(FieldName)/> | 汇总行 | 获取当前数据集合中,FieldName字段值最小的值 |
<obj:SheetObject_SheetId/> | 内嵌图表图片 | 用于在邮件中迁入对应报表中特定图表保存的图片,其中SheetId 为对应报表页签Guid值 |