[ Show as SlideShow ]

Connecting External Registration Systems with the SPMS

Speaker: Ivan Andrian (ELETTRA)



  • SPMS is capable of redirecting the user to an external registration system
  • Pass out some basic information (unique ID of the delegate, her/his name and affiliation, etc.)
  • Maintain consistency between SPMS and the external system
  • Feedback to the SPMS ("John Doe registered")



Operation flow from the user (delegate) point of view

  1. The user logs in SPMS
  2. After having identified the correct registration page, they click 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. 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

  • Create a registration "page" within SPMS. (Registration / Setup & Maintenance / Page Layout)
  • 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 edit the page
  • 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 to send

  • Enter one unique variable ID in the "Bypass" textbox (numeric)
  • Select the correct page name
  • 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
  • You must send the "Unique ID (username)" variable
  • Remember to save

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

External registration test

Go to the registration page URL (from the "properties" page above, or from your profile/contribution pages )



You'll get a page like this:

Instead of getting the registration page you'll be redirected outside the SPMS.

Have a look at the HTML code:

  <FORM ACTION="http://external.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>

See the variable names with actual (fake) user's data to be sent to the external registration system.

How to get data back (backward direction)

The external system will notify the SPMS about one registration
HTTP GET call to one particular SPMS URL:

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



  • 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....



   ID1,OKUPD
   ID2,OKNEW
   ID3,ERR ORA-XXX....
  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.