More actions
Nguyenduyan (talk | contribs) No edit summary |
No edit summary |
||
(12 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
[[Category: | [[Category:Resource_templates]] | ||
=OnError workflow for QAS= | =OnError workflow for QAS= | ||
If a qas has cgscript error or js error and onError handler is defined in the Resource template type Questionnaire, then that script is called with 8 parameters: | |||
0: The unique id of the qas | |||
1: The resourceid id of the questionnaire | |||
2: the resource name of the questionniare (or empty string) | |||
3: The label of the question it failed on (or "unknown") | |||
4: The service action that filed | |||
5: The stacktrace message | |||
6: The stacktrace itself | |||
7: The statis of the questionnaire: | |||
*NotSet = 0, | |||
*Closed = 1, | |||
*Paused = 2, | |||
*Open = 3, | |||
*OpenForTest = 4 | |||
Note: | |||
The current context is set to the failed qas | |||
Can get the browser info from getServerVariable | |||
== Setup == | |||
Define onError handler on Resource template type Questionnaire | |||
[[File:OnError3.png]] | |||
== Example == | |||
<span style="color:#DF8621">Example script on workflow:</span> | |||
<source lang="javascript"> | |||
array a = Workflow_getParameters(); | |||
number RPQId = a[0]; | |||
number qnaireRId = a[1]; | |||
string qnaireName = a[2]; | |||
string questionLabel = a[3]; | |||
string serviceAction = a[4]; | |||
string stacktraceMessage = a[5]; | |||
string stacktraceItself = a[6]; | |||
number qnaireStatus = a[7]; | |||
//1: NotSet 2: Closed 3: Paused 4: OpenForTest | |||
string qnaireStatusText; | |||
if(qnaireStatus == 0) | |||
qnaireStatusText = "NotSet"; | |||
else if(qnaireStatus == 1) | |||
qnaireStatusText = "Closed"; | |||
else if(qnaireStatus == 2) | |||
qnaireStatusText = "Paused"; | |||
else if(qnaireStatus == 3) | |||
qnaireStatusText = "Open"; | |||
else if(qnaireStatus == 4) | |||
qnaireStatusText = "OpenForTest"; | |||
//get the browser info from getServerVariable | |||
string httpReferer = getServerVariable(HTTP_REFERER); | |||
string httpUserAgent = getServerVariable(HTTP_USER_AGENT); | |||
string remoteAddr = getServerVariable(REMOTE_ADDR); | |||
string content = "<p> | |||
RPQId: "+ RPQId +" <br /> | |||
Qnaire RId: "+ qnaireRId +" <br /> | |||
Qnaire Name: "+ qnaireName +"<br /> | |||
Question Label: "+ questionLabel +"<br /> | |||
Service Action: "+ serviceAction +"<br /> | |||
Stacktrace Message: "+ stacktraceMessage +" <br /> | |||
Stacktrace Itself: "+ stacktraceItself +"<br /> | |||
Qnaire Status: "+ qnaireStatus +" "+ qnaireStatusText +"<br /> | |||
RPQ link: "+ httpReferer +"<br /> | |||
Browser info: "+ httpUserAgent +"<br /> | |||
Computer's IP: "+ remoteAddr +"</p>"; | |||
// the current rpq context is set to the failed qas | |||
sendEmail("[email protected]", "test", "demoOnError", content); | |||
</source> | |||
<span style="color:#DF8621">And here info can get when a QAS error::</span> | |||
'''Cgscript error''' | |||
[[File:OnError1.png]] | |||
'''Js error''' (question label can be found in the stacktrace) | |||
[[File:OnErrorJs.png]] |
Latest revision as of 06:39, 19 October 2021
OnError workflow for QAS
If a qas has cgscript error or js error and onError handler is defined in the Resource template type Questionnaire, then that script is called with 8 parameters:
0: The unique id of the qas
1: The resourceid id of the questionnaire
2: the resource name of the questionniare (or empty string)
3: The label of the question it failed on (or "unknown")
4: The service action that filed
5: The stacktrace message
6: The stacktrace itself
7: The statis of the questionnaire:
- NotSet = 0,
- Closed = 1,
- Paused = 2,
- Open = 3,
- OpenForTest = 4
Note:
The current context is set to the failed qas
Can get the browser info from getServerVariable
Setup
Define onError handler on Resource template type Questionnaire
Example
Example script on workflow:
array a = Workflow_getParameters();
number RPQId = a[0];
number qnaireRId = a[1];
string qnaireName = a[2];
string questionLabel = a[3];
string serviceAction = a[4];
string stacktraceMessage = a[5];
string stacktraceItself = a[6];
number qnaireStatus = a[7];
//1: NotSet 2: Closed 3: Paused 4: OpenForTest
string qnaireStatusText;
if(qnaireStatus == 0)
qnaireStatusText = "NotSet";
else if(qnaireStatus == 1)
qnaireStatusText = "Closed";
else if(qnaireStatus == 2)
qnaireStatusText = "Paused";
else if(qnaireStatus == 3)
qnaireStatusText = "Open";
else if(qnaireStatus == 4)
qnaireStatusText = "OpenForTest";
//get the browser info from getServerVariable
string httpReferer = getServerVariable(HTTP_REFERER);
string httpUserAgent = getServerVariable(HTTP_USER_AGENT);
string remoteAddr = getServerVariable(REMOTE_ADDR);
string content = "<p>
RPQId: "+ RPQId +" <br />
Qnaire RId: "+ qnaireRId +" <br />
Qnaire Name: "+ qnaireName +"<br />
Question Label: "+ questionLabel +"<br />
Service Action: "+ serviceAction +"<br />
Stacktrace Message: "+ stacktraceMessage +" <br />
Stacktrace Itself: "+ stacktraceItself +"<br />
Qnaire Status: "+ qnaireStatus +" "+ qnaireStatusText +"<br />
RPQ link: "+ httpReferer +"<br />
Browser info: "+ httpUserAgent +"<br />
Computer's IP: "+ remoteAddr +"</p>";
// the current rpq context is set to the failed qas
sendEmail("[email protected]", "test", "demoOnError", content);
And here info can get when a QAS error::
Cgscript error
Js error (question label can be found in the stacktrace)