kettle 表输入 显示重复_kettle自动批量循环发送邮件

1、批量循环发送邮件应用场景:

比如:外贸公司希望监控客户的收款到账情况。单证登记每次报关合同,财务根据合同和客户登记收款明细。

客户少的时候,可以认为来盯。一旦,这些工作变成流水化作业,那人为监控变为不可能。现在系统需要监控每票合同的出货金额和财务登记的到账汇总数据。同一票合同号,如果出现[出货金额]>sum[收款金额],表明客户未正常收款。为了达到提前预警的效果,我们需要根据账期判断客户的最后付款时间,并且根据客户的最后付款时间,往前推15天,提醒业务员催款。这个时候就需要根据合同的不同归属,通知不同的业务员和具体付款时间。

2、解决几个要点

  • 2.1、定时处理

kettle自带的定时处理,其开发公司也认为自己的定时调度作业较弱,建议用户使用其他定时处理方法。因为之前文章里讲解jenkins构建企业内部的定时调度作业平台,参考《企业内部构架ETL操作2-Jenkins篇》,搭建环境,在此不累赘。

其作用在于,设置调度kettle构造时间,完成定时处理作业功能

  • 2.2、循环处理,并且发送邮件

此部分为文章核心内容:

2.2.1、扫描特定表单数据,提取所有的记录,并把查询的结果输出。

首先在kettle,新建一个转换,我们大致命名为【测试即将到期的客户清单】,选择【表输入】,拖到空白处,并且设置查询语句, 把合同号,业务员email,业务员提取出来;最后把【复制到记录结果】拖到空白处。把所有查询的结果,输出记录集。如下图1所示

select wxhtno,ywwemail,ywyname,balanceday,payday from cw_riskcontrol
e6e11d44eab74090f28d3a3303d9efbe.png

图1

2.2.2、配置邮件

新建作业,暂时命名为【测试客户分控付款即将到期预警邮件发送】,参考下图,一次拖入【STAT】、【发送邮件】、【SQL脚本】、【完成】,组合成作业

d88849c587d2ccbfe1ecc26e86f0a8ab.png

这里主要是【发送邮件】配置。如图2

收件人地址:因为循环提取,在这里设置参数${YWYEMAIL}

回复名称和发件人地址,因为相对固定,可以直接设置好。

e41658145d7ef00a530432cf4e4b2e86.png

图2

e2e253b3be4e510f760e5c80d7daa945.png

图3

如图3:用户配置好邮件服务器smtp配置,一般企业都有自己的邮箱,可以根据实际情况设置。

最后配置邮件消息,主题和注释中,采用了一些参数${WXHTNO},${BALANCEDAY},${PAYDAY}

这些参数分表代表是合同号,剩余时间,实际付款时间,因为每个合同号都存在不同的时间点,需要从系统中直接提取,需要设置成变量。

84bf49eac951c455bbd9e757bd8ff877.png

图4

做完这些,保存作业后,还要配置作业的配置信息。右键点击空白处,点击属性,出现如图5,并且在命名参数中设置,设置大写作为参数变量,与sql查询字段保持一致

9d15f0b88d0fae27c5391d2c355fd14d.png

图5

  • 2.4、拼接并设计完整的批量循环发送邮件的作业

图6

1a3dc9774338f49eb67cc732d25e6fd7.png

图6

图中的交换选择【测试即将到期的客户清单】, 邮件发送通知,选择的作业是【测试客户分控付款即将到期预警邮件发送】,并且把当前作业进行保存,命名为【客户风控逾期合同跟踪】。

截止到当前步骤,刚完成的步骤基本完成。如果现在执行,依然还是无法实现,我们批量循环发送邮件,还需要一个步骤配置。双击【邮件发送通知】,出现属性对话框,图7

6d694fac956740bd08d47ecd35dfe0a4.png

图7

其中核心就是要把【执行每一个输入行】打勾,意味着查询多少个记录,就循环执行多少次。

3、在jenkins构建作业

进入自己搭建的jenkins平台,新建任务,如图8

输入名称,选择【构建一个自由风格的软件项目】,点击【确定】

3edf75d65057a1467b96d8dede1c4c55.png

图8

进入到配置页面,其中重要的是一个构建触发器,如图9

这个信息是早上的5点26日执行,而且是在工作日1-5执行。

jenkins有很多时间规则,网上也有很多,下次可以单独开篇幅讲解。

58c6ea624a36d2cdb0b95d182a82a43e.png

后续,在选择【增加构建步骤】,选择【执行windows批处理命令】

D: cd D:Program Fileskettle kitchen.bat -rep:kettle -dir:/ -job:"客户风控逾期合同跟踪" -user:admin1 -pass:abcd1234 -level:Basic -log:D:kettlebatlog每日执行%date:~0,4%%date:~5,2%%date:~8,2%%time:~0,2%%time:~3,2%%time:~6,2%.txt

上面是一个批处理脚本,可以根据自己实际情况进行调整,因为公司内部,kettle所有配置信息都放在数据库中,需要从内部读取路径,设置账户和密码。另外输出执行脚本。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值