简介
将系统查询出的报表数据转化为 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 参数传递正确即可


完整步骤

样例步骤仅为实现功能,实际使用时请根据自身需要进行封装和异常捕获。
收件箱样例截图

以上便是本文的全部内容,感谢您的阅读。