Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xml 如何(以及使用哪个工具)在Azure中发送Soap请求(数据工厂、逻辑应用程序、Api管理等)_Xml_Azure_Soap_Azure Data Factory_Azure Logic Apps - Fatal编程技术网

Xml 如何(以及使用哪个工具)在Azure中发送Soap请求(数据工厂、逻辑应用程序、Api管理等)

Xml 如何(以及使用哪个工具)在Azure中发送Soap请求(数据工厂、逻辑应用程序、Api管理等),xml,azure,soap,azure-data-factory,azure-logic-apps,Xml,Azure,Soap,Azure Data Factory,Azure Logic Apps,问题很简单,但要在Azure中执行而不受限制并非易事。 如何将数据从数据库传送到soap请求端点 流程如下:我们使用数据工厂管道从数据库获取每周数据。 我们想要实现的是将其发送到azure域之外的端点(即公共ip)。 我们想到的第一个流程是在data factory中提供数据,将其发送到逻辑应用程序,该逻辑应用程序使用自定义连接器(SOAP)。所有活动都输出json(这似乎是标准的),通过自定义连接器,您可以执行Soap到rest操作,将其自动转换为Soap请求 在我们收到“主机名”未找到错误之

问题很简单,但要在Azure中执行而不受限制并非易事。 如何将数据从数据库传送到soap请求端点

流程如下:我们使用数据工厂管道从数据库获取每周数据。 我们想要实现的是将其发送到azure域之外的端点(即公共ip)。 我们想到的第一个流程是在data factory中提供数据,将其发送到逻辑应用程序,该逻辑应用程序使用自定义连接器(SOAP)。所有活动都输出json(这似乎是标准的),通过自定义连接器,您可以执行Soap到rest操作,将其自动转换为Soap请求

在我们收到“主机名”未找到错误之前,这是正常的。我们联系了一位Azure专家,他说我们需要一个集成帐户,它需要一个集成服务环境。这将花费我们4000欧元的生产成本。您可以想象,没有一个客户愿意每月支付4000欧元,只是为了在一个月内将数据从一个地方运送到另一个地方4次

我们收到的错误如下

{ "error": {
"code": "InternalServerError",
"message": "The remote name could not be resolved: 'molstg-backend.emea.group.atlascopco.com'"}}}
通过SOAP和Postman,我们可以联系到这个主机。因此,问题似乎是从Azure环境中访问公共端点。但当我们为soap请求将主机名输入自定义连接器时,它没有抱怨

因此,我们试图通过仅使用Data factory来获得解决方案,因为我们已经在那里运行了一个ISE,而且它更便宜(我想是无服务器的)。但数据工厂似乎有其局限性。 有两条管道:一条是数据库输出soap文档(让我们称之为流XML),另一条是它只输出记录(让我们称之为流JSON)

Flow XML似乎不起作用,因为它将XML自动作为JSON标准输出,如果我对查找活动的输出使用XML()函数,它会给出一个奇怪的结果:

"body": {
    "$content-type": "application/xml;charset=utf-8",
    "$content": "PHNvYXBlbnY6RW52ZWxvcGUgeG1sbnM6bnM9Imh0dHA6Ly93d3cuYXRsYXNjb3Bjby5jb20vbW9sLzIwMTMvMTIiIHhtbG5zOnNvYXBlbnY9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIj48SGVhZGVyIHhtbG5zOm5zPSJodHRwOi8vd3d3LmF0bGFzY29wY28uY29tL21vbC8yMDEzLzEyIiB4bWxuczpzb2FwZW52PSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlLyIgLz48Qm9keT48c29hcGVudjpCb2R5IHhtbG5zOm5zPSJodHRwOi8vd3d3LmF0bGFzY29wY28uY29tL21vbC8yMDEzLzEyIiB4bWxuczpzb2FwZW52PSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlLyI+PG5zOkJ1bGtVcGRhdGVNYWNoaW5lUnVubmluZ0hvdXJzIHhtbG5zOm5zPSJodHRwOi8vd3d3LmF0bGFzY29wY28uY29tL21vbC8yMDEzLzEyIiB4bWxuczpzb2FwZW52PSJodHRwOi8vc2NoZW1hcy54bWxzb2FwLm9yZy9zb2FwL2VudmVsb3BlLyI+PG5zOlJ1bm5pbmdIb3Vyc0RhdGEgeG1sbnM6bnM9Imh0dHA6Ly93d3cuYXRsYXNjb3Bjby5jb20vbW9sLzIwMTMvMTIiIHhtbG5zOnNvYXBlbnY9Imh0dHA6Ly9zY2hlbWFzLnhtbHNvYXAub3JnL3NvYXAvZW52ZWxvcGUvIj48bnM6VXBkYXRlTWFjaGluZVJ1bm5pbmdIb3VyQ29tbWFuZCB4bWxuczpucz0iaHR0cDovL3d3dy5hdGxhc2NvcGNvLmNvbS9tb2wvMjAxMy8xMiIgeG1sbnM6c29hcGVudj0iaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvc29hcC9lbnZlbG9wZS8iPjxuczpTZXJpYWxOdW1iZXI+QVBQODMzMzgxPC9uczpTZXJpYWxOdW1iZXI+PG5zOk5hbWU+RW5naW5lIEhvdXJzPC9uczpOYW1lPjxuczpWYWx1ZT(... and a bunch more)"
}
Flow JSON似乎做得不错,直到我再次使用xml()函数,它抱怨无法处理数组。我已经阅读了文档,其中说明data factory只能处理单例值,因此如果您有一个数组,则需要使用foreach。但是,如果我们获得超过20000条记录,我不打算分别为每一条记录发送soap请求

我听到你们有些人来了:为什么不使用Azure功能?我们的工作是这样的:我们想要一个代码为0的流,所以我们不需要在每次更改时都使用开发人员。这对于一些简单的事情来说似乎是合理的,比如将数据从一个地方传送到另一个地方,而不管格式如何。有了logic应用程序,我们几乎达到了目标,直到4K成本出现

所以,有没有任何建议,如何以一种每月不那么昂贵的方式解决这个问题。如果数据工厂xml问题能够得到解决,那么我认为我们可以将其用作http请求程序。否则,我愿意接受建议


感谢阅读,我想这是我在这里写的很多东西,但那是因为我尝试了太多的可能性,我几乎筋疲力尽了。

你能显示一个错误,你正在向公共IP发送SOAP请求吗?添加了错误消息,但它是一个非常模糊的消息,找不到更多详细信息。您能显示向公共IP发送SOAP请求时出现的错误吗?已添加错误消息,但它非常模糊,找不到更多详细信息。