在 Azure 逻辑应用中使用工作流交换 RosettaNet 消息以实现 B2B 集成

适用于:Azure 逻辑应用(消耗)

若要在使用 Azure 逻辑应用创建的工作流中发送和接收 RosettaNet 消息,可以使用 RosettaNet 连接器,该连接器提供管理和支持遵循 RosettaNet 标准的通信的操作。 RosettaNet 是个非盈利性联盟,它为分享业务信息建立了标准过程。 这些标准通常用于供应链过程,并在半导体、电子和物流行业中广泛运用。 RosettaNet 联盟建立并维护合作伙伴接口过程 (PIP),为所有 RosettaNet 消息交换提供通用业务过程定义。 RosettaNet 基于 XML,它定义了消息准则、业务过程的接口,以及公司间的通信实施框架。 有关详细信息,请访问 RosettaNet 站点

该连接器基于 RosettaNet 实现框架 (RNIF) 版本 2.0.01,并支持此版本定义的所有 PIP。 RNIF 是开放的网络应用程序框架,可让业务合作伙伴以协作方式运行 RosettaNet PIP。 此框架定义了消息结构、确认需求、多用途 Internet 邮件扩展 (MIME) 编码和数字签名。 与合作伙伴的通信可以是同步的,也可以是异步的。 该连接器提供以下功能:

  • 接收或解码 RosettaNet 消息。
  • 发送或编码 RosettaNet 消息。
  • 等待响应和“失败通知”的生成。

本操作指南演示如何通过完成以下任务,使用 Azure 逻辑应用和 RosettaNet 连接器在工作流中发送和接收 RosettaNet 消息:

  • 添加 PIP 过程配置(如果还没有)。
  • 创建 RosettaNet 协议。
  • 添加接收或解码 RosettaNet 消息的操作。
  • 添加发送或编码 RosettaNet 消息的操作。

RosettaNet 概念

以下概念和术语对于 RosettaNet 规范是唯一的,在构建基于 RosettaNet 的集成工作流时务必要了解它们:

  • PIP

    RosettaNet 组织建立并维护 PIP,为所有 RosettaNet 消息交换提供通用业务过程定义。 每个 PIP 规范提供文档类型定义 (DTD) 文件和消息准则文档。 DTD 文件定义服务内容消息结构。 消息准则文档是用户可读的 HTML 文件,指定元素级约束。 这些文件共同提供了业务过程的完整定义。

    PIP 按高级业务功能(也称为聚类)和子功能(也称为段)进行分类。 例如,“3A4”是表示“采购订单”的 PIP,“3”表示“订单管理”功能,而“3A”是“报价和订单输入”子功能。 有关详细信息,请访问 RosettaNet 站点

  • 操作

    作为 PIP 的一部分,操作消息是在合作伙伴之间交换的业务消息。

  • 信号

    作为 PIP 的一部分,信号消息是为了响应操作消息而发送的确认。

  • 单操作和双操作

    对于单操作 PIP,唯一的响应是确认信号消息。 对于双操作 PIP,发起方将接收响应消息,并使用确认以及单操作消息流做出回复。

连接器技术参考

RosettaNet 连接器仅适用于消耗型逻辑应用工作流。

逻辑应用 环境 连接器版本
消耗 多租户 Azure 逻辑应用 托管连接器,显示在设计器中的“标准”标签下。 RosettaNet 连接器仅提供操作,但你可以使用适合你的方案的任何触发器。 有关详细信息,请查看以下文档:

- RosettaNet 连接器操作
- B2B 协议的消息大小限制
- Azure 逻辑应用中的托管连接器

RosettaNet 操作

RosettaNet 连接器没有触发器。 下表描述了 RosettaNet 连接器提供的用于在传输消息时建立安全性和可靠性的操作:

操作 描述
“RosettaNet 编码”操作 使用遵循 RosettaNet 标准的编码发送 RosettaNet 消息。
“RosettaNet 解码”操作 使用遵循 RosettaNet 标准的解码接收 RosettaNet 消息。
“RosettaNet 等待响应”操作 让主方等待来自接收方的 RosettaNet 响应或信号消息。

先决条件

  • Azure 帐户和订阅。 如果没有订阅,请创建试用帐户

  • 要在其中使用 RosettaNet 操作的消耗型逻辑应用资源和工作流。

  • 用于存储协议和其他企业对企业 (B2B) 项目的集成帐户

    重要

    若要协同工作,集成帐户和逻辑应用资源必须存在于同一 Azure 订阅和 Azure 区域中。 若要在工作流中使用集成帐户项目,请确保将逻辑应用资源链接到集成帐户

  • 集成帐户中至少定义了两个合作伙伴,在 Azure 门户中的“业务标识”下为这些合作伙伴配置了“DUNS”限定符。

  • 用于对上传到集成帐户的消息进行加密、解密或签名的可选证书。 仅当使用签名或加密时,证书才是必需的。

添加 PIP 过程配置

若要发送或接收 RosettaNet 消息,集成帐户需要 PIP 过程配置(如果还没有)。 该过程配置存储所有 PIP 配置特征。 这样,你可以在与合作伙伴创建协议时引用此配置。

  1. Azure 门户中,转到集成帐户。

  2. 在集成帐户的导航菜单的“设置”下,选择“RosettaNet PIP”。

    Azure 门户和集成帐户页的屏幕截图。在导航菜单上,已选中“RosettaNet PIP”。

  3. 在“RosettaNet PIP”页上,选择“添加”。 在“添加合作伙伴接口进程”窗格中,输入 PIP 详细信息。

    RosettaNet PIP 页的屏幕截图,其中已选择“添加”。“添加合作伙伴接口进程”窗格包含名称、代码和版本的框。

    属性 必须 说明
    名称 PIP 名称。
    PIP 代码 由三位数字构成的 PIP 代码。 有关详细信息,请参阅 RosettaNet PIP
    PIP 版本 PIP 版本号,取决于所选的 PIP 代码。

    有关这些 PIP 属性的详细信息,请访问 RosettaNet 网站

  4. 完成后,选择“确定”以创建 PIP 配置。

  5. 若要查看或编辑过程配置,请选择该 PIP,然后选择“作为 JSON 进行编辑”。

    所有过程配置设置都来自 PIP 规范。 Azure 逻辑应用将使用默认值(这些属性最常用的值)填充大部分设置。

    RosettaNet PIP 页的屏幕截图,其中已选择“作为 JSON 进行编辑”和一个 PIP。在“作为 JSON 进行编辑”下,可以看到编码的 PIP 属性。

  6. 确认设置是否对应于相应 PIP 规范中的值并符合业务需求。 如果需要,请更新 JSON 中的值并保存更改。

创建 RosettaNet 协议

  1. Azure 门户中,转到集成帐户。

  2. 在集成帐户的导航菜单的“设置”下,选择“协议”。

    Azure 门户的屏幕截图,其中集成帐户页已打开。在导航菜单上,已选中“协议”。

  3. 在“协议”页上,选择“添加”。 在“添加”下,输入协议详细信息。

    “协议”页的屏幕截图,其中已选择“添加”。“添加”窗格中显示了协议名称和类型以及合作伙伴信息的框。

    属性 必须 说明
    名称 协议的名称。
    协议类型 协议的类型。 选择“RosettaNet”。
    主方合作伙伴 配置协议的组织。 协议需要有主机和来宾合作伙伴。
    主机标识 管理方的标识符。
    来宾合作伙伴 与主方合作伙伴进行交易的组织。 协议需要有主机和来宾合作伙伴。
    来宾标识 托管方的标识符。
    接收设置 多种多样 适用于主方合作伙伴接收的所有消息的属性。
    发送设置 多种多样 适用于主方合作伙伴发送的所有消息的属性。
    RosettaNet PIP 引用 协议的 PIP 引用。 所有 RosettaNet 消息都需要 PIP 配置。
  4. 若要设置有关从客方合作伙伴接收传入消息的协议,请选择“接收设置”。

    1. 若要为传入消息启用签名或加密,请在“消息”下,分别选择“应将消息签名”或“应将消息加密”。

      属性 必须 说明
      应对消息进行签名 使用所选证书为传入的消息签名的选项
      证书 是(如果已启用签名) 用于签名的证书
      启用消息加密 使用所选证书将传入的消息加密的选项
      证书 是(如果已启用加密) 用于加密的证书
    2. 在每个选项下,选择集成帐户中要用于进行签名或加密的证书

    “接收设置”页的屏幕截图,其中包含用于对消息进行签名和加密以及输入证书的选项。

  5. 若要设置有关将消息发送到客方合作伙伴的协议,请选择“发送设置”。

    1. 若要为传出的消息启用签名或加密,请在“消息”下,分别选择“启用消息签名”或“启用消息加密”。 在每个选项下,选择集成帐户中要用于进行签名或加密的算法和证书

      属性 必须 说明
      启用消息签名 使用所选签名算法和证书为传出的消息签名的选项
      签名算法 是(如果已启用签名) 要使用的签名算法,基于所选的证书
      证书 是(如果已启用签名) 用于签名的证书
      启用消息加密 使用所选加密算法和证书将传出的消息加密的选项
      加密算法 是(如果已启用加密) 要使用的加密算法,基于所选的证书
      证书 是(如果已启用加密) 用于加密的证书
    2. 在“终结点”下,指定用于发送操作消息和确认的所需 URL。

      属性 必须 说明
      操作 URL 用于发送操作消息的 URL。 该 URL 是同步和异步消息的必填字段。
      确认 URL 用于发送确认消息的 URL。 该 URL 是异步消息的必填字段。

    “发送设置”页的屏幕截图,其中包含用于对消息进行签名和加密以及用于输入算法、证书和终结点的选项。

  6. 若要使用合作伙伴的 RosettaNet PIP 引用设置协议,请选择“RosettaNet PIP 引用”。 在“PIP 名称”下,选择之前创建的 PIP 的名称。

    显示只有一行的 PIP 信息表的屏幕截图。该行包含除已选中的名称 MyPIPConfig 以外的默认值。

    所做的选择会填充剩余的属性,这些属性基于集成帐户中设置的 PIP。 如果需要,可以更改“PIP 角色”。

    显示 PIP 信息表的屏幕截图。名为 MyPIPConfig 的 PIP 行包含准确的信息。

完成这些步骤后,便可以发送或接收 RosettaNet 消息了。

接收或解码 RosettaNet 消息

  1. Azure 门户中,打开设计器中的消耗逻辑应用工作流。

    在添加 RosettaNet 操作之前,工作流应已具有触发器和要运行的任何其他操作。 此示例继续使用“请求”触发器。

  2. 在该触发器或操作下,选择“新建步骤”。

    设计器的屏幕截图。在“请求”触发器下,已选中“新建步骤”。

  3. 在“选择操作”搜索框中,选择“所有” 。 在搜索框中输入“rosettanet”。 在操作列表中,选择名为“RosettaNet 解码”的操作。

    设计器的屏幕截图。“选择操作”搜索框中包含 rosettanet,并且“RosettaNet 解码”操作处于选中状态。

  4. 输入操作属性的信息:

    “RosettaNet 解码”操作的屏幕截图,其中包含消息、标头和角色的框。

    属性 必须 说明
    消息 要解码的 RosettaNet 消息
    标头 提供版本(RNIF 版本)值和响应类型(指示合作伙伴之间的通信类型,可以是同步或异步)的 HTTP 标头
    角色 主方合作伙伴在 PIP 中的角色

    “RosettaNet 解码”操作的输出包括“出站信号”。 可以对此输出进行编码并将其返回给合作伙伴,也可以对此输出执行任何其他操作。

发送或编码 RosettaNet 消息

  1. Azure 门户中,打开设计器中的消耗逻辑应用工作流。

    在添加 RosettaNet 操作之前,工作流应已具有触发器和要运行的任何其他操作。 此示例继续使用“请求”触发器。

  2. 在该触发器或操作下,选择“新建步骤”。

    设计器的屏幕截图。在“请求”触发器下,已选中“新建步骤”。

  3. 在“选择操作”搜索框中,选择“所有” 。 在搜索框中输入“rosettanet”。 在操作列表中,选择名为“RosettaNet 编码”的操作。

    设计器的屏幕截图。“选择操作”搜索框中包含 rosettanet,并且“RosettaNet 编码”操作处于选中状态。

  4. 输入操作属性的信息:

    “RosettaNet 编码”操作的屏幕截图,其中显示了消息、合作伙伴、PIP 信息、消息类型和角色的框。

    属性 必须 说明
    消息 要编码的 RosettaNet 消息
    主方合作伙伴 主方合作伙伴名称
    客方合作伙伴 客方合作伙伴名称
    PIP 代码 PIP 代码
    PIP 版本 PIP 版本
    PIP 实例标识 此 PIP 消息的唯一标识符
    消息类型 要编码的消息的类型
    角色 主方合作伙伴的角色

    现在,可将已编码的消息发送到合作伙伴。

  5. 以下示例使用已重命名为“HTTP - 向伙伴发送已编码的消息”的“HTTP”操作发送已编码的消息。

    设计器的屏幕截图,其中包含已重命名为“HTTP - 向伙伴发送已编码的消息”的 HTTP 操作,并且已输入 URI、标头和正文值。

    根据 RosettaNet 标准,仅当 PIP 定义的所有步骤都已完成时,才将业务交易视为已完成。

  6. 主方将已编码的消息发送到合作伙伴后,主方将等待信号和确认。 若要完成此任务,请添加名为“RosettaNet 等待响应”的操作。

    “RosettaNet 等待响应”操作的屏幕截图,其中包含正文、PIP 实例标识、重试计数和角色的框。

    等待所需的持续时间和重试次数取决于集成帐户中的 PIP 配置。 如果未收到响应,则会生成失败通知。 若要处理重试,请始终将“编码”和“等待响应”操作放在 Until 循环中。

    设计器的屏幕截图。Until 循环包含用于编码和发送消息以及等待响应的操作。

RosettaNet 模板

若要加速开发和推荐集成模式,可以使用消耗型逻辑应用模板来解码和编码 RosettaNet 消息。 创建消耗型逻辑应用工作流时,可以从设计器中的模板库中进行选择。 也可以在 Azure 逻辑应用的 GitHub 存储库中找到这些模板。

设计器的屏幕截图。已选中“企业集成”类别和用于解码和编码 RosettaNet 消息的模板。

后续步骤