I have a question. We are using Data Pages to call SOAP services. When we get a service failure response, we need to hit the service again automatically for a certain number of times. Rehit should happen automatically. How can we do this?
I'm more familiar with seeing this kind of thing done from activities. In those scenarios ... if your connector is asynchronous, the Service Request Processor will handle x # of retries.
If not, you'll need to introduce an error handling flow that calls the connector and handles errors (which could include a retry branch). A possible solution is to actually switch from synchronous to asynch on the first failure (throw it on the queue) - and let the Service Request Processor handle any subsequent retries.
Hopefully someone will respond with DP specific solution.
Thank you Paul. Yes you are correct we can call error handling flow. But we are receiving some error codes when the SOAP service fails like Record Not Found, Service Down, Validations failed etc... and based on these codes we are pausing the flow with a Wait shape and re hitting the service. It is working as expected as per our requirement.
1. If the returned error is temporary, you may give the user the option to retry the connector. To retry the connector, configure the data page refresh strategy:
Create a when condition that returns true when there are no error messages.
Set the Do not reload when setting so the data page does not reload if there are no error messages.
2. When the response to be returned by the connector is not immediate needed for further processing, consider using an error handler flow. Configure the error handler flow in the service tab for the connector. The error handler flow feature is always enabled. The error handler flow is not executed if the error is detected in the response data transform or in a transition in an activity.
By default, connectors use the standard ConnectionProblem flow. The flow can be copied and
customized. You may also choose to create an alternative error handler flow.
When an error occurs, the original flow execution is paused. Control is handed over to the error handler
flow. If the resource is unavailable, a transient error may be preventing processing. If there is no
transient error, the connector is retried, and processing continues in a flow called FlowProblems.
Thank you Vikas for your suggestion. I tried this with some other approach. On failure of the service we will receive some error codes in the response. I am checking those error codes and sending the flow to pause at a Wait shape and re hitting the service. It is working fine as of now.
I achieved this using recursive flow calls. Calling service in Flow A and checking for failed response in Flow B. If the service failed then passing flow to Wait shape to wait for sometime and calling Flow A to re-hit the service again.By checking a counter I am looping the flows 3 times and finally after the 3rd try if still issue persists then sending the flow to Alternate Exception stage otherwise next stage.
I have callcenter screen and it has flow, When User click to button, fulfilment activity begins. I used wait method in activity and recalla the same utility shape, but system is frozen. I wan to retry service call but at the same time user should not realize speed of the screen is changed.