与 Qlik Sense 中的 Service Now 的动态 REST 连接
Dynamic REST connection to Service Now in Qlik Sense
我正在尝试将 QlikSense 中创建的所有 REST 连接统一到 ServiceNow,因为每次从新 table 中提取数据时我都必须创建一个新连接。这将使将来管理我的所有连接变得困难,因此我试图只有一个连接将根据所需的 table 通过使用“WITH CONNECTION”功能覆盖特定参数。
我尝试像下面的代码一样传递参数,但在加载数据后 table:
中没有任何内容
LET vURL = "http://example.org/.../.../.../nameofthetable?";
RestConnectorMasterTable:
SQL SELECT
...my fields to query from Service NOW...
FROM JSON (wrap off) "result" PK "__KEY_result"
WITH CONNECTION (
URL "$(vURL)",
QUERY "timeout" "900",
QUERY "method" "GET",
QUERY "httpProtocol" "1.1",
QUERY "isKeepAlive" "true",
QUERY "bodyEncoding" "UTF-8",
QUERY "sendExpect100Continue" "true",
QUERY "autoDetectResponseType" "true",
QUERY "queryParameters" "sysparm_query%2u_stateINin_progress,Closed,New%1sysparm_fields%2sys_created_by,%1sysparm_display_value%2true",
QUERY "addMissingQueryParametersToFinalRequest" "false",
QUERY "PaginationType" "Offset",
QUERY "OffsetStartField" "sysparm_offset",
QUERY "IsOffsetStartFieldHeader" "false",
QUERY "OffsetStartFieldValue" "0",
QUERY "OffsetCountFieldName" "sysparm_limit",
QUERY "IsOffsetCountFieldHeader" "false",
QUERY "OffsetCountValue" "10000",
QUERY "OffsetTotalPath" "X-Total-Count",
QUERY "IsOffsetTotalPathHeader" "true",
QUERY "allowResponseHeaders" "false",
QUERY "allowHttpsOnly" "true",
QUERY "useProxy" "false",
QUERY "proxyBypassOnLocal" "false",
QUERY "proxyUseDefaultCredentials" "true"
);
我没有收到任何错误,但我不知道这是否是加载数据的正确语法,或者这是否是我应该使用的正确方法。
我看到其他一些人发布了与此类似的问题,但其中 none 详细解释了他们是如何解决的。
任何人都可以帮助我解决这个问题,因为我已经在 QlikSense 社区中问过但没有运气所以也许这里有人。
参考文献:
1.- Dynamically-load-and-fill-variables-from-a-table-through-a-loop
2.- REST Connector - WITH CONNECTION Syntax
WITH CONNECTION
部分可以改变连接的一些参数,但不是全部。可以在那里更改 http 参数,例如:url、headers、查询参数和 body。您不能更改其余部分,如:方法(get 或 post)、超时、http 协议等。这些属性是连接特定的,它们必须在连接级别更新(手动编辑连接或通过存储库更新时) API)
查看有关 WITH CONNECTION 关键字的文档
顺便说一下,QUERY
命令只会在发送请求之前在 url 中添加一个查询参数。这就是为什么您没有获得任何数据的原因。例如
let vURL = 'http://example.com'
RestConnectorMasterTable:
SQL SELECT
...my fields to query from Service NOW...
FROM JSON (wrap off) "result" PK "__KEY_result"
WITH CONNECTION (
URL "$(vURL)",
QUERY "type" "XML",
QUERY "subtype" "text"
);
将在发送之前更改 url,实际的 url 将是 http://example.com?type=XML&subtype=text
我正在尝试将 QlikSense 中创建的所有 REST 连接统一到 ServiceNow,因为每次从新 table 中提取数据时我都必须创建一个新连接。这将使将来管理我的所有连接变得困难,因此我试图只有一个连接将根据所需的 table 通过使用“WITH CONNECTION”功能覆盖特定参数。
我尝试像下面的代码一样传递参数,但在加载数据后 table:
中没有任何内容LET vURL = "http://example.org/.../.../.../nameofthetable?";
RestConnectorMasterTable:
SQL SELECT
...my fields to query from Service NOW...
FROM JSON (wrap off) "result" PK "__KEY_result"
WITH CONNECTION (
URL "$(vURL)",
QUERY "timeout" "900",
QUERY "method" "GET",
QUERY "httpProtocol" "1.1",
QUERY "isKeepAlive" "true",
QUERY "bodyEncoding" "UTF-8",
QUERY "sendExpect100Continue" "true",
QUERY "autoDetectResponseType" "true",
QUERY "queryParameters" "sysparm_query%2u_stateINin_progress,Closed,New%1sysparm_fields%2sys_created_by,%1sysparm_display_value%2true",
QUERY "addMissingQueryParametersToFinalRequest" "false",
QUERY "PaginationType" "Offset",
QUERY "OffsetStartField" "sysparm_offset",
QUERY "IsOffsetStartFieldHeader" "false",
QUERY "OffsetStartFieldValue" "0",
QUERY "OffsetCountFieldName" "sysparm_limit",
QUERY "IsOffsetCountFieldHeader" "false",
QUERY "OffsetCountValue" "10000",
QUERY "OffsetTotalPath" "X-Total-Count",
QUERY "IsOffsetTotalPathHeader" "true",
QUERY "allowResponseHeaders" "false",
QUERY "allowHttpsOnly" "true",
QUERY "useProxy" "false",
QUERY "proxyBypassOnLocal" "false",
QUERY "proxyUseDefaultCredentials" "true"
);
我没有收到任何错误,但我不知道这是否是加载数据的正确语法,或者这是否是我应该使用的正确方法。
我看到其他一些人发布了与此类似的问题,但其中 none 详细解释了他们是如何解决的。
任何人都可以帮助我解决这个问题,因为我已经在 QlikSense 社区中问过但没有运气所以也许这里有人。
参考文献:
1.- Dynamically-load-and-fill-variables-from-a-table-through-a-loop
2.- REST Connector - WITH CONNECTION Syntax
WITH CONNECTION
部分可以改变连接的一些参数,但不是全部。可以在那里更改 http 参数,例如:url、headers、查询参数和 body。您不能更改其余部分,如:方法(get 或 post)、超时、http 协议等。这些属性是连接特定的,它们必须在连接级别更新(手动编辑连接或通过存储库更新时) API)
查看有关 WITH CONNECTION 关键字的文档
顺便说一下,QUERY
命令只会在发送请求之前在 url 中添加一个查询参数。这就是为什么您没有获得任何数据的原因。例如
let vURL = 'http://example.com'
RestConnectorMasterTable:
SQL SELECT
...my fields to query from Service NOW...
FROM JSON (wrap off) "result" PK "__KEY_result"
WITH CONNECTION (
URL "$(vURL)",
QUERY "type" "XML",
QUERY "subtype" "text"
);
将在发送之前更改 url,实际的 url 将是 http://example.com?type=XML&subtype=text