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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

[resolved] TESBProviderRequest OnSubjobOk not executing?

Hello,
tESBProviderRequest -> tXMLMap -> tESBProviderResponse
|
OnSubjobOk/OnSubjobError
|
tWarn
Why OnSubjobOk/OnSubjobError is not executed? How can I achieve such a behaviour?
Thank you,
Viktor
Labels (3)
1 Solution

Accepted Solutions
Anonymous
Not applicable
Author

Only runIf is feasible, all onComponentOk's are executed resulting in multiple executions of "finally" block.
Simplified Example:
tESBProviderRequest -> tXMLMap -> tESBConsumer -> fault -> tXMLMap -> tESBProviderFault -> runif -> logrow
tESBConsumer on success continues:
tXMLMap2 -> tESBConsumer2 -> fault -> tXMLMa2p -> tESBProviderFault2 -> runif -> logrow

With oncomponentOk all logrows executed.
Viktor

View solution in original post

10 Replies
Anonymous
Not applicable
Author

If the previous subjob works fine, tWarn followed by onsubjobok will be fired and works. For testing, you can use a tJava instead of tWarn and write some java code in it. 
For example:
System.out.println("tJava is working");

Best regards
Shong
Anonymous
Not applicable
Author

Hello,
I did a test again with tJava and nothing was written to the console. Even I don't see statistics over OnComponentOk or OnComponentError transitions. My service job works, got expected response.
Viktor
Anonymous
Not applicable
Author

This is the webservice provider job, you should open this job to see if the message are printed on the console after you call the webservice, rather than reading the message from webservice client. 

Best regards
Shong
Anonymous
Not applicable
Author

Yes, WS job started in TOS, checking for console output there. WS called from soapui, got correct response. Still not executed and no console output.
Anonymous
Not applicable
Author

Hi 
I have tried to use SOAPUI to call the WS, it works fine and I can see the message are printed on the console.
0683p000009MBs4.png
Best regards
Shong
Anonymous
Not applicable
Author

Hello Shong,
created a simple service from scratch, see schema below, project also attached.
oncomponent ok is executed, onsubjobok/error are not executed.
Console output:
Request OnComponentOk: 1418891316724
Response OnComponentOk: 1418891316724
Viktor
0683p000009MBzW.png echoservice.zip_20141218-0952.zip
Anonymous
Not applicable
Author

Hi 
This is because the keep listening box is checked, if this option is checked, tESBProviderRequest keep listening to the input request, that means this subjob is always working all the time, the next subjob linked by onSubjobOK/error will not be fired. 
Best regards
Shong
Anonymous
Not applicable
Author

Hello,
keep listening cannot be turned off for a webservice, otherwise it would finish after the first request.
Also onsubjob cannot be triggered from a component after tESBProviderRequest.
I can trigger an "if" from tESBProviderResponse, but if I have more responses/faults I do need to trigger an if from all of them instead of one "finally" block.
Thank you,
Viktor
Anonymous
Not applicable
Author

So, if you have other business logic need to be processed, link from  tESBProviderResponse with OncomponentOK or runIf connector.
Best regards
Shong