Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Qlik Unveils New Agentic Capabilities Across Analytics, Data Engineering, and Trust: Learn More!
cancel
Showing results for 
Search instead for 
Did you mean: 
NelsonOng
Partner - Contributor II
Partner - Contributor II

Qlik Sense load script trigger NPrinting task through API, intermittently getting 0 rows task_name from NPrinting

We have an app that runs in Qlik Sense to trigger NPrinting task, which is chained to a main app, meaning once the main app runs finish, this NPrinting trigger API task will then run to trigger the NPrinting tasks. We have been experiencing frequent failures of the NPrinting Trigger Tasks recently. This works well most of the time but once it fails, the NPrinting task has to be recreated.  

-Retrieved 0 rows when retrieving task_name from NPrinting tasks

Recreating the task in NPrinting resolved the problem. However, the same issue has continued to occur intermittently on other tasks, and this workaround is not a sustainable solution for us.

 

QS Script as below:

vURL is being maintained in excel.

 

LIB CONNECT TO 'NPrinting Rest Login (GET)';

RestConnectorMasterTable:
SQL SELECT
"Set-Cookie",
"__KEY__response_header"
FROM JSON "_response_header" PK "__KEY__response_header";

Let vCookieRaw = Peek('Set-Cookie',0,'cookie_items');
Let vCookie = TextBetween(
vCookieRaw,
'SameSite=None,',
' Path=/',
SubStringCount(vCookieRaw,'SameSite=None')-1
);


LIB CONNECT TO 'NPrinting Rest Login (GET)';

RestNPTasksMasterTable:
SQL SELECT
"__KEY_data",
(SELECT
"id",
"name",
"enabled",
"__FK_items"
FROM "items" FK "__FK_items")
FROM JSON (wrap off) "data" PK "__KEY_data"
WITH CONNECTION(
URL "$(vURL_1)",
HTTPHEADER "cookie" "$(vCookie)"
);
TRACE **$(vURL_1) **;



[task_items]:
LOAD
[id] AS [tasks_taskId],
[name] AS [tasks_taskName]
RESIDENT RestNPTasksMasterTable
WHERE NOT IsNull([__FK_items])
//AND [enabled] = 'True'
AND [name] = 'Sales Report - 01';

LET vTaskCount = NoOfRows('task_items');

IF $(vTaskCount) = 0 THEN
TRACE *** ERROR: NPrinting task not found! ***;
EXIT SCRIPT 1;
ENDIF;

DROP TABLE RestNPTasksMasterTable;



LET vNumberTasks = NoOfRows('task_items');

FOR i = 0 TO vNumberTasks - 1

LET vTaskId = Peek('tasks_taskId', i, 'task_items');
LET vTaskName = Peek('tasks_taskName', i, 'task_items');

TRACE Triggering NPrinting Task: $(vTaskName);

LET vPublishURL =
'$(vURL_1)' &
'$(vTaskId)' &
'/executions';

// REST Connection (POST)
LIB CONNECT TO 'NPrinting Rest Connection (POST)';

RestNPTaskTriggerTable:
SQL SELECT "__KEY_data"
FROM JSON (wrap off) "data" PK "__KEY_data"
WITH CONNECTION(
URL "$(vPublishURL)",
HTTPHEADER "cookie" "$(vCookie)"
);

DROP TABLE RestNPTaskTriggerTable;

NEXT

Drop Table [task_items];



Sleep(180000);

LIB CONNECT TO 'NPrinting Rest Login (GET)';

RestConnectorMasterTable:
SQL SELECT
"Set-Cookie",
"__KEY__response_header"
FROM JSON "_response_header" PK "__KEY__response_header";

Let vCookieRaw = Peek('Set-Cookie',0,'cookie_items');
Let vCookie = TextBetween(
vCookieRaw,
'SameSite=None,',
' Path=/',
SubStringCount(vCookieRaw,'SameSite=None')-1
);


LIB CONNECT TO 'NPrinting Rest Login (GET)';

RestNPTasksMasterTable:
SQL SELECT
"__KEY_data",
(SELECT
"id",
"name",
"enabled",
"__FK_items"
FROM "items" FK "__FK_items")
FROM JSON (wrap off) "data" PK "__KEY_data"
WITH CONNECTION(
URL "$(vURL_1)",
HTTPHEADER "cookie" "$(vCookie)"
);
TRACE **$(vURL_1) **;



[task_items]:
LOAD
[id] AS [tasks_taskId],
[name] AS [tasks_taskName]
RESIDENT RestNPTasksMasterTable
WHERE NOT IsNull([__FK_items])
//AND [enabled] = 'True'
AND [name] = 'Sales Report - 02';

LET vTaskCount = NoOfRows('task_items');

IF $(vTaskCount) = 0 THEN
TRACE *** ERROR: NPrinting task not found! ***;
EXIT SCRIPT 1;
ENDIF;

DROP TABLE RestNPTasksMasterTable;



LET vNumberTasks = NoOfRows('task_items');

FOR i = 0 TO vNumberTasks - 1

LET vTaskId = Peek('tasks_taskId', i, 'task_items');
LET vTaskName = Peek('tasks_taskName', i, 'task_items');

TRACE Triggering NPrinting Task: $(vTaskName);

LET vPublishURL =
'$(vURL_1)' &
'$(vTaskId)' &
'/executions';

// REST Connection (POST)
LIB CONNECT TO 'NPrinting Rest Connection (POST)';

RestNPTaskTriggerTable:
SQL SELECT "__KEY_data"
FROM JSON (wrap off) "data" PK "__KEY_data"
WITH CONNECTION(
URL "$(vPublishURL)",
HTTPHEADER "cookie" "$(vCookie)"
);

DROP TABLE RestNPTaskTriggerTable;

NEXT

 

Seeking advise from API experts. 

 

Best Regards,

Nelson

Labels (3)
2 Replies
shienya
Partner - Contributor III
Partner - Contributor III

Please let  me know if you have the solution too

NelsonOng
Partner - Contributor II
Partner - Contributor II
Author