избежать $ (расширение в Qliksense - PullRequest
1 голос
/ 04 ноября 2019

У меня есть api rest, который расшифровывает переданный ему токен и возвращает фактическое значение. Токен может иногда содержать значения $ (и, следовательно, это вызывает проблемы при вызове api


[dbtable]:
SELECT X
FROM "table" WHERE key='1234';

Let v_C= Peek('X',0,'dbtable');

//create the json request

Let vRequestBody='[';
Let vRequestBody = vRequestBody&'{"troup":"CB","tt":"CBA","tk":"$(v_C)"}';
Let vRequestBody = vRequestBody&']';

LIB CONNECT TO 'postapi';

RestConnectorMasterTable:
SQL SELECT 
    "data"
FROM JSON (wrap on) "root"
WITH CONNECTION (BODY "$(vRequestBody)" );

, который работает для остальных значений. Но для значений с "$ (" значением v_Cобнуляет NULL из-за $ extension. Есть ли способ избежать $ раскрытия и передать значение, как оно есть, в тело вызова API в смысле qlik

1 Ответ

1 голос
/ 04 ноября 2019

Да, это довольно часто встречается в API, где у них могут быть способы, которыми они хотят, чтобы вещи проходили, что «сбивает с толку» анализатор Qlik Sense. Обычно обходной путь заключается в том, чтобы вставить заполнитель, а затем заменить его реальным значением позже или использовать команду chr(), чтобы получить нужный символ. Я думаю, что последний должен работать в этой ситуации:

Let vRequestBody = vRequestBody&'{"troup":"CB","tt":"CBA","tk":"' & chr(36) & '(v_C)"}';

Надеюсь, что работает.

...