SAP CPI iFlow 审查清单,以及如何自动执行
一份实用的 SAP CPI iFlow 审查清单:错误处理、日志级别、密钥、协议、脚本和结构,以及如何自动运行它并得到分数和报告。

iFlow 审查通常在时间压力下进行,就在传输之前,检查的内容取决于审查者还记得什么。于是同样的问题一次又一次进入生产环境:没有错误处理、Content Modifier 中写着密码、Router 没有默认路由。
本文为 SAP Cloud Integration(SAP CPI)iFlow 提供一份包含十二项检查的清单,解释每一项为什么重要,并介绍如何自动运行这些检查,得到可以附在传输上的分数和报告。
什么时候审查 iFlow
- 在第一次传输到测试或生产 tenant 之前。
- 当 iFlow 移交给另一位开发人员或运维团队时。
- 在较大的变更之后,例如新增接收方或新增脚本。
- 对于多年来不断扩展的 iFlow,不时进行审查。
审查清单
| 检查 | 为什么重要 | 类别 |
|---|---|---|
| 没有 Exception Subprocess | 出错时消息会按 SAP 的默认处理结束:没有告警,也没有给发送方一个清晰的答复。 | 可靠性 |
| 日志级别过详细 | 记录每个步骤会拖慢每条消息,并占满 tenant 的日志存储。 | 性能 |
| 没有描述 | 别人不打开 iFlow,就无法知道它做什么、归谁负责。 | 可维护性 |
| 明文密钥 | 任何能打开或下载该 iFlow 的人,都能读到写在其中的密码或令牌。 | 安全性 |
| 没有脚本的脚本步骤 | 没有脚本文件的脚本步骤会在运行时失败。 | 正确性 |
| 过大的流程 | 步骤很多的流程难以阅读、测试和修改。 | 可维护性 |
| 不安全的协议 | 纯 HTTP 或 FTP 会以未加密的方式发送数据以及 Basic 凭据。 | 安全性 |
| 没有 Receiver 的调用 | 没有通道的 Request Reply 或 Send 步骤无处发送消息。 | 正确性 |
| 脚本风险 | println、把大型消息体作为一个 String 读取、过长的脚本、易受 XXE 攻击的 XML 解析器。 | 性能 |
| 未使用的 Local Integration Process | 没有任何 Process Call 调用它,因此它永远不会运行。 | 可维护性 |
| 未连接的步骤 | 从任何开始事件都没有路径能到达它,因此它永远不会运行。 | 正确性 |
| 没有默认路由的 Router | 当没有条件匹配时,消息会失败,而不是走一条已知的路径。 | 可靠性 |
这些是 Kitegra 使用的类别。在人工审查中,重要的是每项检查都有团队认可的理由和修复方法。
审查清单看不到的内容
检查读取的是 iFlow 的设计。它们不知道映射在业务上是否正确、接收方能否承受负载,也不知道错误处理是否把告警发给了真正会看的人。这些问题仍然需要人来判断,还需要用接近真实的数据进行测试。
名称是审查中单独的一部分:命名规则包也能让它们变得可检查。
自动运行这些检查
在 Kitegra 中,打开 iFlow,点击「Kitegra 工具」按钮并选择「检查器」。它的「设计」选项卡会在已打开的 iFlow 及其脚本上运行上述十二项检查:
- 每条结果都会说明为什么重要,并附有一行「修复:」。
- 「分数(0–100)与等级」对 iFlow 进行总结,等级从 A 到 E。
- 「检查设置」可以关闭某项检查,或调整它在分数中所占的权重;这些设置会与您的 Kitegra 账户同步。
- 「设为基线」会把今天的结果标记为已知,这样下一次审查只显示新出现的问题。
- 「屏蔽」会隐藏一条结果,并询问原因;「显示已知和已屏蔽项」会把它们重新显示出来。
其中一项检查涉及日志级别;为什么不应让 TRACE 一直开启对此做了说明。
以报告形式分享结果
「报告」会在新标签页中打开 iFlow 报告:iFlow 的基本情况(步骤、脚本、适配器、流程)、分数、可按类别或严重程度筛选的设计结果,以及命名结果。可以导出为 HTML、PDF 或 Excel,也可以「打印」。在「报告页眉」中,您可以添加公司名称和不超过 20 KB 的徽标。
报告读取自 iFlow 的模型,不包含任何消息内容。PDF 中的标签为英文。
Kitegra 如何帮您
设计检查是 Kitegra 中 iFlow Inspector 的一部分。它们在您的浏览器中针对已打开的 iFlow 运行;登录后,检查设置和基线会与您的 Kitegra 账户同步,而脚本和映射从不发送。
Helper、Message Monitor、iFlow Inspector 和 iFlow Docs 各自统计您使用它们的 iFlow 数:没有 Kitegra 账户时每个模块 5 个,Free 套餐 50 个,Starter 100 个,Pro 300 个;Startup Team 每位成员 300 个,Growth Team 和 Scale Team 不限。Toolbox 和工作区附加功能不计入 iFlow。Kitegra 上线期间,所有工具向所有已登录用户开放,Free 套餐也不例外。比较各套餐。
在下一个 iFlow 中试试
了解 Kitegra 为 SAP Integration Suite 设计器增加了哪些功能,或在 Kitegra 的其他 Chrome 扩展旁查看它。
常见问题
SAP CPI iFlow 审查应该检查什么?
错误处理、日志级别、描述、明文密钥、脚本、协议安全、未连接或未使用的部分、Router 的默认路由,以及命名和业务逻辑。
为什么没有默认路由的 Router 是个问题?
当没有条件匹配时,消息会失败,而不是走一条已知的路径。
分数是如何计算的?
每条结果都会从 100 分中扣除一定分值,扣分多少取决于它的严重程度,分数再对应到 A 到 E 的等级。您可以调整每项检查所占的权重。
「设为基线」有什么作用?
它会把今天的结果标记为已知,这样之后的审查只显示新的结果。
可以导出审查结果吗?
可以。iFlow 报告可以导出为 HTML、PDF 或 Excel,并带有您的公司名称和徽标。
报告包含消息内容吗?
不包含。它读取自 iFlow 的模型,不包含任何消息内容。