利用Kettle实现Excel文件拆分并发送邮件(上)

利用Kettle实现Excel文件拆分并发送邮件(上),第1张

我们财务有一个需求,希望将整理好的一份供应商付款明细Excel文件,按供应商拆分成多个Excel文件,并发送给对应供应商的联系人。

供应商付款明细表格式如下:

另外有一份供应商联系人表存放每个供应商对应的联系人邮箱:

用户希望将供应商A的两行记录,拆分成一个独立的Excle文件,作为附件发送给供应商A的两个联系人aa1、aa2。将供应商B的一行记录,拆分成一个独立的Excle文件,作为附件发送给供应商B的两个联系人bb1、bb2。

作业中关联两个转换,T1转换用来获取原始文件内容参数中,T2转换用来将参数一行行写入到一个个独立Excel文件中。

打开kettle,定义数据源

1

kettle中定义两个数据源,其中“DS_ERP”是来源数据库,“DS_ODS”是用于同步的数据库

END

新建转换,用于同步某一张表

1

新建一个转换(执行SQL脚本--->>表输入--->>表输出)

执行SQL脚本:删除DS_ODS库中已经存在的数据

表输入:查询DS_ERP库中的数据

表输出:将“表输入”中的结果输出到DS_ODS库中

2

执行SQL脚本:删除DS_ODS库中已经存在的数据

${qy_table_name}:这个是参数,指同步的表名

3

表输入:查询DS_ERP库中的数据

${qy_table_name}:这个是参数,指同步的表名

4

表输出:将“表输入”中的结果输出到DS_ODS库中

${qy_table_name}:这个是参数,指同步的表名

END

新建转换,用于获取需要同步的表名

1

新建一个转换(文本文件输入--->>复制结果到记录)

文本文件输入:通过读取指定txt文件,获取所有要同步的表。(这里也可以通过其他方式获取,例如通过sql查询数据库系统表)

2

指定txt文件路径

3

定义txt文件中的字段名,同上一步中定义的参数名

4

txt中定义需要同步的表,每行一张表名

END

新建任务,实现批量同步

新建任务,调用前面的转换

其中,同步表的转换需要设置循环执行,并将获取到的表名传递到转换内部


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12101773.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存