External Registration Setup

External registration in SPMS means that SPMS is capable of redirecting the user to an external registration system (usually registration systems normally used by a lab or by the PCO). This redirect will also pass some basic information out to that system, e.g., the unique ID of the delegate, her/his name and affiliation, etc. This makes it possible to maintain consistency in the data stored in SPMS and in the external system.

Also, some information can also be sent back from the external registration system to SPMS. Doing so, it is possible to know directly from the SPMS, whether a person is registered or not (this information is fundamental during the conference to contact authors of contributions, for example).

Operation flow from the user (delegate) point of view

  1. The user logs in SPMS
  2. After having identified the correct registration page, he clicks on it
  3. The SPMS redirects the user's browser to the external registration page, together with some delegate information (hidden)
  4. The user registers in that system
  5. The external registration system pushes back some information to the SPMS.

Operation flow from the registration administrator point of view

  1. Create an (empty) registration page in the SPMS
  2. Create a payment vendor for the external registration system
  3. Map name/values pairs of data from SPMS to the external registration URL - this step instructs the SPMS on which data to push out (unique ID, first name, last name, email address, etc.) and how to get a response back

Actual setup (step by step, "forward" direction)

  • Create a registration "page" within SPMS. (Registration / Setup & Maintenance / Page Layout)
    • Click the green plus symbol to create a new page
  • Enter a name for the page (this is the text the users will see as a link instructing them to register).
  • Click "Submit"
  • Return to the page layout view and click the edit icon to the left of the page name you just created.
  • Enter the full URL of the external registration system in the field labeled "External URL."
  • Click "Submit"
  • Map name/values pairs of data from SPMS to the external registration URL (Registration -> Setup & Maintenance -> Bypass Name/Value Pairs)
  • Map all the names/values you require for the external registration system
    • Enter one unique variable ID in the "Bypass" textbox (numeric) - it's used internally by the SPMS to track these fields
    • Select the correct page name as created before
    • Enter the name of the variable expected by the external registration system in the "Var Name" field
    • Enter a value for the "Value" field OR for the "Bypas Var Code" field. The former is to be used to pass "fixed" values (like the conference name, a passphrase, etc.) to the external registration system. The latter is actually to send out dynamic user data
    • Repeat for all the desired fields/values
    • You must send the "Unique ID (username)" variable. The external system may not require it but it must be returned when control reverts back to SPMS, and it is the ID needed to match data between SPMS and the external registration system.
    • Remember to save.

That's it. Now the system is ready to connect to the external registration.

Let's test it.

External registration process test

Now go to the registration page URL (you can get it from the "properties" page above, or from your profile/contribution pages if the system was instructed to do so from the "Page Layout" screen).

Now you'll get a page like this:

Instead of getting the registration page, in fact, you get a notice that you'll be redirected outside the SPMS. If you go looking to the HTML code, you can note something like this:

  <FORM ACTION="http://externa.registration.org/external_form.php" METHOD="POST">

   <INPUT TYPE="hidden" NAME="affiliation" VALUE="User's affiliation">
   <INPUT TYPE="hidden" NAME="conference_name" VALUE="ThisConference">
   <INPUT TYPE="hidden" NAME="email_address" VALUE="email@address.dom">
   <INPUT TYPE="hidden" NAME="first_name" VALUE="FirstName">
   <INPUT TYPE="hidden" NAME="last_name" VALUE="LastName">
   <INPUT TYPE="hidden" NAME="userid" VALUE="12345">

   <INPUT TYPE="submit" VALUE="Proceed With Registration">
  </FORM>

You can notice the variable names we selected before, with actual (fake) user's data ready to be sent to the external registration system.

How to get data back (backward direction)

Here we are using a system to notify the SPMS that one (or more) persons registered (externally) to a given registration page. Technically, it is based on an HTTP GET call to one particular page on the SPMS, like this:

     https://RSC_ADDR/PLSNAME/quick_regist.sync?this_page=PAGE_NUMBER&pass_phrase=PASSPHRASE&id=PERSON_ID

Where:

  • RSC_ADDR: the URL of the Regional Support Center server that's hosting the SPMS, like oraweb.cern.ch
  • 'PLSNAME: the path for the Conference SPMS PLS access (like pls/IPAC2099)
  • PAGE_NUMBER: the registraton page ID (you can get this ID by going to the registration page properties screen, it's the number after the PID= parameter in the URL)
  • PASSPHRASE: the passphrase set in the SPMS to protect this access (more on this later)
  • PERSON_ID: the person id, as used above (userid) when going from the SPMS to the external registration system

It is also possible to do multiple operations in one single call, like this:

     https://RSC_ADDR/PLSNAME/quick_regist.sync?this_page=PAGE_NUMBER&pass_phrase=PASSPHRASE&id=ID1&id=ID2&id=ID3 ...

Doing so, the persons identified by user IDs ID1, ID2, ID3 will be registered in the SPMS.

SPMS Result codes

When using the above procedure, the SPMS is giving back result codes for each registration, so that the external registration system can know whether the operation was successful or not.

Its syntax is explained with the following example:

   ID1,OKUPD
   ID2,OKNEW
   ID3,ERR ORA-XXX....

Following the call above, here we know that:

  1. The user with ID ID1 has been registered, updating previous registration (meaning he was already registered, and now it has been "updated")
  2. The user with ID ID2 has been registered (for the first time)
  3. The user with ID ID3 had NOT been registered, since an error happend. The Oracle error is usually returned as well (if you get, for example, "integrity constrain violated" you know that there is no user with that ID)

Use of the passphrase to protect the system

To avoid modifications to the SPMS by people with no permission, a protection system has been implemented, based on a pre-shared passphrase between the SPMS and the external registration system.

The passphrase can be set in the SPMS system paramters (Registration / Setup & Maintenance / Registration Parameters) first, under the "Pass Phrase for Quick Registration" row.

Be sure to set this parameter first.

Manual registration of person IDs

There is a backup system in the SPMS with which it is possible to "register" people in a given (external) registration page, at the URL:

   https://RSC_ADDR/PLSNAME/quick_regist.html

Obviously, one need to be logged in with registration admin rights to use this page.