Welcome to WebmasterWorld Guest from 220.127.116.11
Forum Moderators: open
Procedure A calls procedure B which calls procedure C. Normally, when procedure C ends, processing returns to the next statement in procedure B; when B ends, you go to the next step in procedure A.
What I want to do eliminate the backtracking in a particular instance. That is, when the end of procedure C is reached, I don't want to go back through B and A.
This would sort of be the procedural equivalent of an EXIT statement for a LOOP.
A little more detail: A is a web login screen, which calls B which determines where the user will end up based on his/her role, which is determined by C. What I want do is have a condition in C for a particular role which will go to an entirely different web page. I don't want that user to see anything that A or B would display after C ends.
I've tried redirects (which in one case worked in Firefox but not Internet Explorer), creating exceptions, etc., but haven't had any luck.
It seems like it should be an easy thing to do, but the solution is doing a good job of eluding me so far.
Thanks in advance for any help offered.
A shouldnt call B as a procedure call but as a transfer or httppost, as it doesnt need to return to A unless it fails.
Define C to return only -1,1,2,3 etc..1 number for each role and -1 for invalid login.
B receives one of those values and runs a server redirect inside a switch/case, with -1 transfering back to A.
Use the "if this page doesnt tredirect..." line and write the link to handle meta-refresh being disabled.
The issue is that I'm not building this from the ground up. The code I'm working on is part of an existing system, and I need to keep the changes to a minimum (it already takes us a couple of days to reapply all of our local changes when a new upgrade come along).
It almost seems like that in the entire history of Oracle, no one has ever needed to break out of the normal propagation of control of "sub-procedures" back up through the calling procs. But so far my searches have been fruitless.