Henry
发布于 2025-01-29 / 20 阅读
0
0

PEGA - 发送带 Excel 附件的邮件

简介

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

完整步骤

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

收件箱样例截图


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



评论