избегайте расширения $ (в Qliksense

У меня есть rest api, который расшифровывает переданный ему токен и возвращает фактическое значение. Токен иногда может содержать значения $ (и, следовательно, это вызывает проблемы при вызове post к 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 из-за расширения $. Есть ли способ избежать расширения $ и передать значение, как оно есть, в тело вызова api в смысле qlik


person goten    schedule 04.11.2019    source источник


Ответы (1)


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

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

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

person x3ja    schedule 04.11.2019
comment
Неа. Это не сработало. WITH CONNECTION (BODY "$(vRequestBody)" ); вызывает расширение $, поскольку chr (36) - это только $ - person goten; 04.11.2019
comment
Ах да, извините, это еще не все. Я думаю, что будет способ избежать доллара, я просто не уверен, что это такое. Я знаю, что использование "" дает вам " кавычки, возможно, стоит попробовать $$ или _4 _... Я не думаю, что кодирование URL-адресов сработает, так как он попытается перекодировать его, я думаю, но вы можете попробовать с $. Трудно сказать, что будет работать, не имея API для тестирования. - person x3ja; 05.11.2019