6

我将从我们希望拥有的行为开始:

  1. 接收一个文件(无论是 JSON 还是 XML,但现在我们更喜欢 XML,尽管我们可以控制它),
  2. 解析它以找到文件的“类型”
  3. 转换文件以匹配几种不同的 XML 格式之一
  4. 将其发送到预定端点并返回给调用者

我们最初的研究使它看起来像带有 Azure 逻辑应用程序的 BizTalk 非常适合这个,但现在我正在研究概念证明,我遇到了障碍,即:

  • 最新版本的 Azure 似乎不支持 BizTalk (2015-08-01-preview)
    • 我在我读过的一篇文章的评论部分读到了这个,但现在找不到参考,这是真的吗?
  • 不支持解析 XML(我在我读过的100篇文章中的一篇中读到,非 JSON 请求被视为无法在逻辑应用程序中解析的二进制文件),这意味着我们必须将现有的 XML 转换为JSON 调用 Azure,只是将其转换回 XML

我已经能够创建一个逻辑应用程序,公开一个端点,使用 JSON 主体调用它,并让逻辑应用程序解析该 JSON 并有条件地执行操作,一旦我弄清楚如何完成所有这些,它就非常棒了感人的。

所以我的问题有两个:

  1. 我们的情况是否适合使用 Azure 逻辑应用程序(或者可能是不同类型的 Azure 应用程序)?
  2. 如果是这样,BizTalk 是否是将我们的文件转换为所需的输出 XML 格式的正确方法?
    1. 根据我在网上看到的情况,没有办法在 VS 2015 中创建 BizTalk 转换文件?

      BizTalk 服务器项目与 Visual Studio 2015 或 Visual Studio 2013 不兼容。

4

3 回答 3

3

我们最近发布了适用于逻辑应用程序的 [企业集成包] (EIP) 预览版。作为此版本的一部分,逻辑应用中添加了一系列 xml 处理功能。

  1. [JSON 到 XML] 反之亦然:您可以使用逻辑应用定义中本机可用的 json() 和 xml() 函数。
  2. XML 转换:您现在可以使用基于 XSLT 1.0的新XML 转换操作。

除此之外,逻辑应用还具有 HTTP 请求/响应功能,可用于调用 HTTP 端点。

希望这可以帮助。

谢谢, 维奈

于 2016-07-18T02:14:55.427 回答
2
  1. 接收 XML POST 请求。
  2. 转换 XML。- 使用内容作为 triggerBody() 并使用 XSLT 进行映射。您可以在此处设置 XML 格式。

    <?xml version='1.0'?>
    <xsl:stylesheet version="1.0">
    <xsl:template match="/">
    <Header>
    <Something>
    <xsl:value-of select="soap-env:Envelope/soap-env:Body/a:Something/@value"/>
    </Something>
    </Header>
    </xsl:template>
    </xsl:stylesheet>
    
  3. 将 XML 转换为 JSON - 使用内容主体('transform_XML')并使用 XML 映射到 Json。

    {"Something": "{{content.Something.Value}}"
    
  4. 解析 JSON - 使用内容主体('transform_XML_to_JSON')
  5. HTTP 响应 - 将您希望作为 body('Parse_JSON')['Value'] 返回的值设置到正文中。

    <Header>
    <Something>
    <value = "body('Parse_JSON')['Value']"/>
    </Something>
    </Header>
    
  6. 您还可以使用它创建一个 blob 并将其发送到数据工厂。

于 2019-02-21T12:13:25.983 回答
0

您还可以使用带有 NewtonSoft (JSON.net) 的函数应用程序。逻辑应用程序很棒,但它们不是三明治和芯片……至少现在还不是。

您应该能够在逻辑应用中嵌套函数应用。使用 NewtonSoft (In Function App) 支持解析 XML>JSON, JSON>XML

于 2018-08-01T01:40:30.813 回答