简介
将系统查询出的报表数据转化为 Excel 附件通过邮件发送给指定人员。
样例需求
- 系统查出样例数据。
- 生成 Excel 表格作为邮件附件。
- 发送给指定人员。
详细步骤
样例信息
数据结构样例
Excel 模板样例
功能实现
仅为了演示样例,所有的代码均写到了一个 Activity 中,实际情况下需拆分为不同的功能模块进行功能复用。
参数定义
初始化参数
生成 Excel 并返回 Excel 数据样例 Java 代码,可使用 Function 代替此代码,所有的参数均可从外部传递,Step Page 是需要生成Excel的 Clipboard Page,其中的 .pxResults 数据将会用于生成 Excel。
ExcelFileName = tools.findPage("pxProcess").getString("pxServiceExportPath") + ExcelFileName;
try {
com.pega.platform.pub.excel.GenerateExcel generator = new com.pega.platform.pub.excel.GenerateExcel(tools,myStepPage, null, ExcelFileName, false);
generator.generateExcelFromClipboardPage(TemplateRFB, true);
PRFile excelFile = new PRFile(ExcelFileName);
PRInputStream in = new PRInputStream(excelFile);
int FileLength = (int)excelFile.length();
int ReadCount = 0;
byte[] buffer = new byte[FileLength];
while(ReadCount < FileLength){
ReadCount += in.read(buffer,ReadCount,FileLength - ReadCount);
}
in.close();
FileData = new String(Base64Util.encode(buffer));
excelFile.delete();
} catch (Exception e) {
oLog.error("Failed to generate excel..." + e.getMessage());
tools.getPrimaryPage().addMessage("pzUnrecognizedFileTemplate");
}
准备邮件附件内容
发送邮件
自定义的发邮件Activity可根据各自的需求进行定制,主要的是步骤是 调用 OOTB 的 SendEmailNotification Activity, 然后把 AttachmentPage 参数传递正确即可
完整步骤
样例步骤仅为实现功能,实际使用时请根据自身需要进行封装和异常捕获。
收件箱样例截图
以上便是本文的全部内容,感谢您的阅读。