1 / 26

Using Resource25 WebServices to Augment Event Management

Using Resource25 WebServices to Augment Event Management. Matthew Robinson CollegeNet Conference – July 2008. The institution at a glance…. Live with Schedule25 for academic scheduling since Spring 2007 CollegeNet PeopleSoft interface with some custom mods

dyllis
Download Presentation

Using Resource25 WebServices to Augment Event Management

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Using Resource25 WebServices to Augment Event Management Matthew Robinson CollegeNet Conference – July 2008

  2. The institution at a glance…. • Live with Schedule25 for academic scheduling since Spring 2007 • CollegeNet PeopleSoft interface with some custom mods • Approximately 3,500 courses scheduled each semester • WebViewer went live at this time for space availability checking • Live with Resource25 for events scheduling/management since January 2008 • 3,600 special events scheduled since that time • Decentralized Scheduling • Approximately 110 R25 users • ~30 Security Groups (seems to change every week, so I can’t keep track…) • Extensive use of Assignment Policies & Object-Level Security • 710 Acre Main Campus in a suburban setting • 8,800 Students • 4,2000 Residents • 64 Undergraduate Programs • 25 Master’s or Doctoral Programs

  3. What we wanted to get out of R25 • Ability to make more efficient use of space. • Collect utilization statistics • Make our campus’ decentralized scheduling & highly territorial attitude on space more transparent. • Everyone on one system • Make one request at one place • Eliminate need to call 12 different offices to find a meeting place. • Accountability for service providers • Ability for Self-Service

  4. Moving Towards Self-Service Requests • WebViewer • Strengths • Easily share space availability & basic event details with the campus population • Shortcomings as Delivered • How do we enforce space takedown & setup times? • How do we enforce event lead-time requirements? • How can we be sure users only request spaces & resources that are actually available for their events? • Have to list all available options for Organizations, Spaces & Resources in one huge drop-down list • Can’t find tune the space you’re looking for by space features, categories, etc. • Can’t get detailed information on spaces & resources before choosing them • e.g.: Pricing, Comments • All valid organizations are easily displayed for anyone to choose • No options for space layout

  5. More Shortcomings of the WebViewer • Events created as Drafts • A centralized event office must route events to appropriate folders, and turn space & resource preferences into requests • Event Status • Who notifies the user that an event is good to go? • Who turns a Tentative event into a Confirmed one? • How can a user track the status of assignment policy requests? • How does a user know whom to contact in regards to a certain space or resource? • Changes • How can a user modify an existing request? • Billing • How can a user track what their costs for an event will be • Can they get historic data?

  6. Solution…. WebServices! ReservIt is an AJAX-based WebViewer request form replacement built on top of R25 WebServices Development started in October 2007 • WebServices 1.7.1 • Only database connection • PHP 5 • CollegeNet’s PHP<->WS Wrapper (available on Faqiki) • An implementation of PHP’s XML classes • JavaScript

  7. What’s It Do? • Guides the user through 4 stages of event creation modeled in a way similar to SpeedBook • Stage 1: Event Details • Event Name, Headcount, Type & Category • Event occurrence information • Organization information • Various other information (Custom Attributes)

  8. Stage 1: Event Details • Headcount • Used to suggest possible spaces for stage 2 • Event Type • Only 5 options as the event type cannot be changed • Event Category • Defines event lead-time & setup & takedown requirements • Requirements defined in JavaScript, can be bypassed if JavaScript is turned off, but then, the rest of the application doesn’t work… • Dates cannot before the lead-time requirement cannot be selected • Ability to Override these requirements

  9. How Overriding Works • A new code is generated daily And is placed in the MOTD on the myR25 page by: • GETting the current MOTD • Preference.xml?name=Motd&type=S • Changing the current value to the new value and PUTting the data back • PHP Code:

  10. …Overriding • AJAX-ness checks the MOTD to see if the code entered is a match. • If they do, JavaScript removes date constraints from the calendar and session variables that control more than just UI elements are modified.

  11. Organization Info & Custom Attributes • We didn’t want every single organization to be listed in a drop-down. • The user’s organizations that they have a contact role with are listed as bubbles • GET organizations.xml?contact_id=[contact id of user] • Option to open a new window that allows a user to look up additional organizations by SpeedType (account number) • Can then be added to the organization’s contacts to appear as an option the next time they use ReservIt • A few custom attributes are listed for entry. • Contact name & Phone filled in from current user’s contact record.

  12. Stage 2: Spaces • Shows spaces that are available for the dates/times needed and have the capacity to hold the event’s headcount • Allows a user to filter spaces by certain criteria • Allows a user to enter instructions for the space as well as choose valid space layouts and see photos of each layout (magic of JavaScript)

  13. More on Stage 2

  14. How Stage 2 Works • GETs: spaces.xml?category_id=[SpacesWeUse] &scope=extended &include=layouts+features+categories+text+attributes • Generates XML to POST to space_avail.xml with the space_id for the spaces we got before • From the result set, the spaces that are available are output into the HTML with some hidden data embedded. • These are flags for the JavaScript space filtering options to go by. • JavaScript hides spaces that do not match the filtering options

  15. Stage 3: Resources • Breaks resources down into categories for searching & selection • Provides detailed information on the resource through mouseovers • Images • Pricing Information (Stored as a custom attribute) • Descriptions • Tabulates a running total of estimated charges • Differentiates between resources that are “Yes/No” and those that expect a quantity.

  16. How Stage 3 Works • Grab all resource categories • GET rscat.xml • For each resource category, grab the associated resources • GET resources.xml ?scope=extended&include=attributes+text&category_id=[Category ID] • Slap this all together in HTML. • Organize the data by category and allow users to search for text matching the resource’s name or description • Hidden data elements for pricing information • JavaScript calculates pricing on the fly

  17. Stage 3 Example

  18. Stage 4: Confirmation • Display everything the user has done thus far and ask them to confirm. • Allow them to go back to previous stages to make corrections. • At this stage, ReservIt calculates where to route the event. • Our cabinets are set up to run through Fiscal Years (Jul 1 to Jun 30) • JavaScript already enforces events to exist inside one Fiscal Year, but PHP will do some similar checking at this stage. • All ReservIt events are routed into a “ReservIt Events” folder

  19. Stage 5: Create the Event • Create the event in R25 through WebServices • POST to events.xml • WebServices behaves the same for event creation as it does for R25: Assignment & Notification Policies run their courses the same way, so workflow is automatically generated. • The user is sent an email informing them that their event is awaiting approval and also giving them a link to check their event’s status.

  20. Event Status Checking • The event status page also allows modifications to be made by the requestor • Mouse-overs on workflow items tell us whom to contact regarding approval status.

  21. Event Confirmation • ReservIt creates events with a tentative state • Who marks events as Confirmed (or Cancelled)? • The user!

  22. How? • Script is scheduled to run every few hours • Checks events.xml for events last modified since the last time the script was run • GET Events.xml?scope=extended&cabinet_id={$cabinet} &modified_since={$checkSince} • Looks through each workflow item for each event. • If no workflow for the event is marked as “In Progress” and the event’s custom attribute of “SentReadyToConfirmMessage” is not set to True, then this attribute is flagged as true and an email is generated and sent to the event’s Requestor.

  23. Confirmation • A link in the email directs the user to the status page, which now has an option to Confirm the event by giving a final headcount and clicking “Confirm” • The event state is changed to Confirmed • Once Confirmed, the event is ‘locked’ and may no longer be edited through ReservIt.

  24. All Done! Thanks for listening to me ramble! Time for Demo? Questions? • Contact information: Matthew Robinson Applications Integration Specialist Computing & Information Technology Services University of Massachusetts Dartmouth Matthew.Robinson@umassd.edu AIM: mrobinson@umassd.edu 508-999-8119

More Related