1
votes

We have created an Oracle Apex application that has been registering users for workshops for years. Up to now the user clicked a link to register for a workshop on a department home page and was then taken to our application page which did the registration.

Our client department now wants to use a new website for listing the workshops and allow users to just click 'Register' and get registered without having to 'see' the Oracle Apex application. They want them to get the confirmation that they are registered but not have to be in the Oracle Apex application - just have a message return that the registration has been completed.

Any suggestion on how to do this with Oracle Apex would be appreciated.

1
How are you authenticating users now? Will the new web site authenticate the same way, before invoking the "register" link?Mark Stewart
An Apex application basically consists of some UI stuff, some database stuff and some plumbing stuff. If your application was designed cleanly you could be able to call the database stuff - PL/SQL routine - without the UI, through Oracle Rest Data Services.APC
Like Mark, I'm curious about how authentication works and where the registration details will come from. And I agree with APC that the best solution for you will likely be to use ORDS, though you can create the REST API via the SQL Workshop depending on your version of APEX and whether you're using ORDS. What version of APEX are you using and what version of ORDS?Dan McGhan
HI, We are using Apex 19.1 (migrating from Apex 5.1) and plan on using ORDS so these suggestions make a lot of sense. Thanks for responding so quickly. We use cloud based authenticator (Okta) using SAML2 so we are not sure yet whether the users coming to the site will already be authenticated or not. If not, they will definitely need to authenticate through Okta first before getting to the registration process. We need their userid for registration. So it sounds like this is very feasible. We don't have a lot of ORDS experience so any suggestions on articles, documents would be helpful.patfm

1 Answers

0
votes

Security aside, I think the easiest way would be to have the department website 'Register' link point to an Apex page, passing in any parameters as page items through the URL (e.g. :P1_USER,P1_WORKSHOP:patfm,UNIV101:). The page could have a Before Header process which handles the registration and then calls owa_util.redirect_url to pass the user back to a success page on the department website. If there's an error, it would show up on the Apex page, but otherwise users would never interact.

Alternately, the department website coders could call the page as an API using AJAX, and instead of redirecting, you htp.p whatever success/fail code you want to return to them, and call APEX_APPLICATION.STOP_APEX_ENGINE when you're done. In this case, any errors would have to be handled and displayed by the department website.

You could also implement this in an On-Demand Process instead of a Before Header process. It's a little cleaner, but IMO there's a bit of a learning curve if you haven't done it before.