跳到主要内容
← 返回博客

本文涉及的模块: iFlow Inspector

SAP CPI 命名规范:一套团队可以强制执行的规则包

SAP CPI 中步骤、通道、属性和 ProcessDirect 地址的命名规范,写成团队共享的规则包,以及如何用它检查每个 iFlow。

SAP CPI 命名规范:一套团队可以强制执行的规则包

大多数 SAP Cloud Integration(SAP CPI)团队都有命名规范。但真正让每个 iFlow 都遵守的团队要少得多,因为规则写在 wiki 页面里,而在传输之前没有人会去检查某个 Content Modifier 的名称。

本文提出一套针对步骤、通道、属性和地址的入门规范,介绍如何把它写成工具可以检查的规则,以及团队如何共享并强制执行它。

为什么名称在 SAP CPI 中很重要

出问题时,您看到的就是步骤的名称。监控按名称报告失败的步骤;只有名称本身说明了用途,搜索「设置订单 ID 的步骤」才能找到它;设计文档或交接资料读起来也和图表上的标签一样。「Content Modifier 3」什么也没说明;CM_SetOrderHeaders 则说明了它做什么。

一致的名称也让两个 iFlow 可以相互比较:熟悉规范的审查者一眼就能读懂团队中的任何 iFlow。

一套入门规范

对大多数团队来说,用一个表示步骤类型的前缀,再加上用 PascalCase 写出的用途就足够了。这是 Kitegra 自带的规则包;它是一个可以按需调整的起点,而不是 SAP 标准:

元素模式示例
Content ModifierCM_<Action>CM_SetOrderHeaders
Groovy 或 JavaScript 脚本GS_<Action>GS_BuildPayload
RouterRT_<Decision>RT_ByOrderType
Request ReplyRR_<System>RR_S4HanaOData
Content EnricherCE_<Lookup>CE_CustomerMaster
Process CallPC_<Process>PC_CallValidateOrder
Local Integration ProcessLIP_<Purpose>LIP_ValidateOrder
Exception SubprocessESP_<Purpose>ESP_LogAndAlert
Message MappingMM_<Source>_to_<Target>MM_Order_to_SalesOrder
Sender 和 Receiver<PascalCase>S4Hana、Salesforce
Exchange property<camelCase>orderId
ProcessDirect 地址/<Path>/orders/validate

把规范写成规则

工具可以检查的规范是一组规则,每种元素一条。字面文本必须完全匹配;<Placeholder> 代表任意文本;<PascalCase>、<camelCase>、<UPPER>、<lower> 和 <Number> 代表具有相应形式的文本。每种元素采用第一条适用的规则,每条规则都有一个严重程度:「错误」、「警告」或「信息」。

在 Kitegra 中,这些规则是一个 JSON 规则包。摘录如下:

{
  "rules": [
    {
      "id": "content-modifier",
      "target": "content-modifier",
      "pattern": "CM_<Action>",
      "example": "CM_SetOrderHeaders",
      "notes": "Content Modifier: CM_ and what it sets.",
      "severity": "warning",
      "enabled": true
    },
    {
      "id": "mapping",
      "target": "mapping",
      "pattern": "MM_<Source>_to_<Target>",
      "example": "MM_Order_to_SalesOrder",
      "notes": "Message Mapping: source and target message.",
      "severity": "info",
      "enabled": true
    },
    {
      "id": "property",
      "target": "property",
      "pattern": "<camelCase>",
      "example": "orderId",
      "notes": "Exchange property names in camelCase.",
      "severity": "info",
      "enabled": true
    }
  ]
}

作为团队达成一致

  1. 打开扩展的选项页面,找到「命名规则」。它一开始使用默认规则包。
  2. 修改规则的「模式」、「严重程度」或「备注」,用「规则开启」关闭某条规则,或选择「添加规则」并选择它的「检查对象」。
  3. 选择「导出 JSON」,把文件放在团队存放标准的地方,与传输规范放在一起。
  4. 每位同事用该文件选择「导入 JSON」。只要他们使用 Kitegra 登录,规则包就会跟随他们到每台电脑。

同步让一个人的规则包在他所有的电脑上保持一致;而共享的 JSON 文件才是让整个团队使用同一套规则的关键。

用规则检查 iFlow

打开 iFlow,点击「Kitegra 工具」按钮并选择「检查器」(或按 Alt+Shift+K)。「命名」选项卡会列出所有不符合规则的名称,按钮上显示数量:实际名称、「应为」、「示例」,以及在步骤内容允许时根据步骤用途生成的「建议」名称。点击某条结果,就会在图表上选中对应的步骤。

在编辑模式下,「重命名」会把建议名称输入步骤的 Name 字段。它从不保存:面板会提示「已重命名。请保存 iFlow 以保留。」,由您决定。

同样的结果也会出现在 iFlow 报告中,与设计检查并列,正如 iFlow 审查清单所示;好的名称也能让生成的设计文档读起来更清楚。

Kitegra 如何帮您

命名是 Kitegra 中 iFlow Inspector 的一部分。检查在您的浏览器中读取 iFlow 的模型;登录后,您的规则包会与 Kitegra 账户同步,而 iFlow 的内容从不发送。

Helper、Message Monitor、iFlow Inspector 和 iFlow Docs 各自统计您使用它们的 iFlow 数:没有 Kitegra 账户时每个模块 5 个,Free 套餐 50 个,Starter 100 个,Pro 300 个;Business 不限。Toolbox 和工作区附加功能免费。比较各套餐。

在下一个 iFlow 中试试

了解 Kitegra 为 SAP Integration Suite 设计器增加了哪些功能,或在 Kitegra 的其他 Chrome 扩展旁查看它。

常见问题

SAP 有官方的 CPI 命名规范吗?

SAP 发布了一些指南,但每个团队都会制定自己的规则。本文中的规则包是一个可以按需调整的起点。

步骤名称应该包含什么?

步骤的类型和它的用途,例如设置订单 header 的 Content Modifier 可以命名为 CM_SetOrderHeaders。

如何与团队共享命名规则?

在选项页面把规则包导出为 JSON,把文件与团队的标准放在一起,并让每位同事导入它。

扩展会自动重命名步骤吗?

不会。在编辑模式下,「重命名」会把建议名称输入步骤的 Name 字段,由您自己保存 iFlow。

可以把规则设为错误而不是警告吗?

可以。每条规则都有一个严重程度:「错误」、「警告」或「信息」。

也会检查 exchange property 的名称吗?

会。默认规则包要求 exchange property 使用 camelCase,您可以修改这条规则。

无需离开设计器即可处理 iFlow

将 Kitegra 添加到 Chrome 或 Microsoft Edge。免费开始,无需账户。