0

我正在尝试将 QlikSense 中创建的所有 REST 连接统一到 ServiceNow,因为每次我从新表中提取数据时都必须创建一个新连接。这将使将来难以管理我的所有连接,因此我试图仅使用一个连接,该连接将通过使用“WITH CONNECTION”功能根据所需表覆盖特定参数。

我尝试像下面的代码一样传递参数,但是在加载数据后,表中没有任何内容:

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"
);

我没有收到任何错误,但我不知道这是否是加载数据的正确语法,或者即使这是我应该使用的正确方法。

我看到其他一些人对此发布了类似的问题,但没有人详细解释他们是如何解决的。

任何人都可以帮我解决这个问题,因为我已经在 QlikSense 社区中询问过,但没有运气,所以这里可能有人。

参考:

1.-从表格通过循环动态加载和填充变量

2.- REST 连接器 - WITH CONNECTION 语法

3.- WITH CONNECTION 关键字

4.-将参数传递给 REST 连接器 URL

5.- REST API 连接器 - 多表

4

1 回答 1

1

WITH CONNECTION部件可以改变连接的一些参数,但不是全部。http 参数可以在那里更改,例如:url、标头、查询参数和正文。您无法更改其他内容,例如:方法(get 或 post)、超时、http 协议等。这些属性是特定于连接的,必须在连接级别更新(手动编辑连接或通过 Repository 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

于 2020-07-31T11:04:30.143 回答