integrations sql & more - niug presentations...– php – wordpress, joomla – .net –...

Post on 26-Jun-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

INTEGRATIONS SQL & MORENEWLIN JOLME, INTEGR8TIV ASHLEY HUNT, PGA CAUSEIS

@njolme@integr8tiv

AGENDA

PANELISTSNewlin Jolme, Integr8tivAshley Hunt, PGA Australia Causeis

OVERVIEWIn a perfect world, iMIS would do everything we need. The fact is, sometimes we need help from the outside world. Learning Management Systems, Electronic Membership Cards, and Abstract Submissions are examples of outside systems that need to integrate with iMIS. Come learn from this panel of users who have taken iMIS integrations to the next level.

IMIS USER PANEL - INTEGRATIONS, SQL & MORE TECHIE TALK

• Newlin Jolme, Integr8tiv– Introduction– Version considerations– Overview of iMIS 20 eco system– Methods & Approaches– Integr8tiv Examples– Considerations

• Ashely Hunt, PGA Australia• Causeis• Open discussion / Questions

AGENDAIMIS USER PANEL – INTEGRATIONS, SQL AND MORE TECHIE TALK

INTEGR8TIVYOUR IMIS & BUSINESS SYSTEMS PARTNER

• Integr8tiv assists iMIS customers to get more from their business systems

• Authorized iMIS Solution Provider with unparalleled iMIS experience• iMIS Certified Professionals and Certified iMIS Extension Developers • Founded in 2012, now with 5 full time iMIS dedicated consultants• Located in Melbourne, servicing customers in Asia Pacific and world

wide

INTEGR8TIVYOUR IMIS & BUSINESS SYSTEMS PARTNER

Services include:• Award winning RiSE websites

iMIS Dashboards and reporting• invoice and receipt automation &

other process automation• iMIS upgrades• iMIS training and support• Staff site and customer portal

development• iQA, Crystal and SSRS reporting• Business Intelligence reporting

• Financial Integration, inc MYOB and Xero

• System Health and usage reviews• IT strategy and Roadmapping• Passbook member cards• Marketing automation and email

marketing• Systems integration• 3rd party CMS and iMIS integration• LMS integration• Everything iMIS

• Which version are people on?– iMIS 20 100/200/300?– iMIS 15.x or iMIS 20.x?

• 15.2.15 is considered the first solid RiSE based version with integration options

• We recommend version 20+ for integrations• iMIS 100 & 200

– Hosted SAAS versions– No dll’s, Task Centre or installed software – HTTP, SOA & REST web services are available– Restricted SQL access, online version of SQL Server Manager available

IMIS VERSION CONSIDERATIONS15/20 & 100, 200, 300

• AMS – Association Management System• EMS – Engagement Management System

• CMS – Content Management System

• LMS – Learning Management System

• SMS – Student Management System

IMIS 20 ECO SYSTEMTERMINOLOGY

IMIS 20 SYSTEM DIAGRAMSUBTITLE PAGE WITH TEXT

• SQL– Direct access via tables, views, triggers, functions & stored procedures

• iBO– Original API circa 10.6 – 15.x

• HTTP Web Services– Simple web services from 15.x onwards

• iMIS Task Centre– Third party automation & integration option

• iMIS SOA– Complex web services 15.x onwards

• REST– Alternative web services 20.x onwards

METHODS OF INTEGRATIONSQL, IBO, HTTP WEB SERVICES, SOA, REST

• CMS– PHP – WordPress, Joomla– .NET – Sitecore, Sitefinity, Dot

Net Nuke, Umbraco

• SMS– WiseNET– VETTrak

• LMS– Cahoot Learning

EXAMPLE INTEGR8TIV INTEGRATIONSSUBTITLE PAGE WITH TEXT

• Digital Member Cards– Passbook passes by PassSlot

• Digital Rights Management– BooXtream– Edition Guard

• Financial – XERO (GL Interface Module)

• Email– Campaign Monitor

• Maintenance & support

• Risks

• Recommend buying off the shelf where possible

CONSIDERATIONSSUBTITLE PAGE WITH TEXT

ASHLEY HUNTPROFESSIONAL GOLFERS ASSOCIATION OF AUSTRALIA

PGA of Australia is one of Australia’s oldest sporting bodies, forming in 1911

Consists of 2,700+ members made up of tournament players, golf trainees and vocational members working full time in the golfing industry.

PGA runs over 600 professional golfing events per year for professionals.

We offer accredited continuing education for members and have a nationally recognised Trainee Program. Recently we launched a formal training program called Community Instructor in conjunction with Golf Australia to allow teachers, Golf Club members or other people accreditation to assist in the delivery of golf programs.

We have approx. 70 staff, mostly based in the National Office in Melbourne with offices in NSW, QLD, SA and WA

Has been running imis since 2009 currently on 20.1 looking to upgrade to Q4 in December

Using Rise, Informz, Webformz, IEmail, Meeting Closer, Task Centre, AutoLogin

PGA OF AUSTRALIA

• We use an eLearning system called “The Fairway” – by Workstar (http://www.workstar.com.au/)

• Originally this eLearning System was designed to deliver learning modules purely to the trainee program however has evolved to offer learning for PGA members CDP Program (called ACE), Community Instructors and learning to the PGA IGI

• The number of users went from around 200 per year to upwards of 3000 this year.

• Administration of the Ace Program, Trainee Program & Community Instructor is done via Imis, however there is no direct integration into the Fairway system.

• We needed to have a “Live” Enrolment system developed to allow instant access to the Fairway System for our ACE and Community Instructor programs. Previously access was sent as a CSV file daily.

PGA OF AUSTRALIA – ELEARNING SYSTEM REQUIREMENT

• All eLearning Registrations are done via Imis Events in both Rise and Desktop

• Trainee Program enrolment is done via Imis Desktop – usually in bulk

• Ace Modules & Community Instructor can be enrolled via a Rise Website

PGA OF AUSTRALIA – ELEARNING LIVE ENROLMENT

• Using Task Centre, Stored Procedures and an FTP we are able to send the enrolment file to Workstar. They poll the FTP every minute and process the file to allow access to the eLearning system.

• The task would also send an email confirming the enrolment to the user and provide the username and password and Url to access the eLearning System

• The user would then log on to the eLearning system and complete the module.

• Workstar then sends a daily file with results for us to process with results.

PGA OF AUSTRALIA – THE PROCESS / CONSIDERATIONS

Considerations:-

• Access for each program is separate (Trainee, ACE, IGI). A set of UD fields is required to control access to the different parts of the eLearning system.

• A username and password needs to be generated if none exist for the user. There is no SSO in place

• Access for ACE & Community Instructors expire after a year – when enrolled an expiration date needs to be calculated.

PGA OF AUSTRALIA

PGA OF AUSTRALIA – THE TASK CENTRE TASK

Post Task:-

• On a daily schedule we send another file to the eLearning platform to ensure anyone who has expired does not get access. This acts as a control file.

PGA OF AUSTRALIA – POST TASK

Post Task:-

• In a separate task we send emails advising of any expirations of access to the eLearning System (and other alerts as needed)

PGA OF AUSTRALIA – POST TASK

Risks / Issues:-

• FTP sits on our servers – potential for no connection

• Configuration of the Event / Function codes needs to match the eLearning codes and sometimes there has been user error

Future Maintenance / Support:

• If more programs are added there is quite a bit of work setting up new access fields, changes of stored procedures etc

PGA OF AUSTRALIA – POST TASK

• Golf Administration System (OCS) administers all our professional golfing events from player entries, scoring and prizemoney payments etc.

• We need to transfer player information into the OCS system from Imis. Similar to the eLearning solution we send to the OCS system via Task Centre triggered tasks

• We also need to re import financial data back into Imis so players can print a statement / entry fee invoice for tax purposes via Rise and SSRS

PGA OF AUSTRALIA – GOLF ADMINISTRATION SYSTEM

• Data is obtained via an XML feed from the OCS system. Using SSIS we import from the XML file into User Defined tables in Imis

PGA OF AUSTRALIA – GOLF ADMINISTRATION SYSTEM

With over 20 years of experience in business application development, database administration and financial systems integration, He brings considerable business and technical consulting expertise to the causeis team.

He has specialist skills in enterprise-level business systems including accounting integration, data analysis and migration, business requirements gathering and business process modelling. He is a Microsoft Certified Professional (MCPI) and a certified ITIL V3 practitioner in IT Service Management.

Before working with causeis, He gained over ten years of experience as a contractor and consultant supporting iMIS in the fundraising, not-for-profit, training and healthcare sectors. Prior to this, He was employed by professional services firm PricewaterhouseCoopers and contracted to utilities distributor AGL, entertainment provider Foxtel and not-for-profit Mission Australia.

He has consulted widely from small not-for-profit organisations through to large Federal Government agencies on IT Service Management, asset management, capacity management and six-sigma process design.

SOLUTIONS CONSULTANT, CAUSEIS

IMIS INTEGRATIONEXAMPLE: MOODLE LMS INTEGRATION

• Problem:– Moodle uses built-in user logins out of the box– Without integration, customer has two sets of user credentials to

remember:• iMIS web site user credentials• Moodle LMS user credentials.

• Objectives:– Use iMIS credentials to access Moodle– Reset request in Moodle redirects to iMIS handler.

EXAMPLE: MOODLE LMS INTEGRATION

• Solution:– Custom authentication plugin for Moodle– Authenticates username and password against iMIS web service– Moodle processes the iMIS response– Password reset link in Moodle points to web site instead of Moodle

EXAMPLE: MOODLE LMS INTEGRATION

Moodle

IMISWeb

Services

Send username

and password

Response “successful

User Login

• Plugin consists of:– Version file– Language file– Admin form layout– Authentication Function.

EXAMPLE: MOODLE LMS INTEGRATION

• Version file – notifies Moodle of the last modify date of the plugin

<?php

$plugin->version = 2016012001;

MOODLE LMS INTEGRATION

• Language file – labels for the plugin configuration page in Moodle

$string['auth_imisdescription'] = 'This Moodle authentication plugin uses IMIS web services to check whether a username and password is valid.';

$string['auth_imishost'] = 'The IMIS web service address.';

$string['auth_imishost_key'] = 'Host';

$string['auth_imischangepasswordurl_key'] = 'Password-change URL';

...

EXAMPLE: MOODLE LMS INTEGRATION

• Admin form layout file – screen for configuration settings in Moodle

<table cellspacing="0" cellpadding="5" border="0"><tr valign="top" class="required"><td align="right"><?php print_string('auth_imishost_key', 'auth_imis') ?>:

</td><td><input name="host" type="text" size="30" value="<?php echo $config->host ?>" /></td>...

EXAMPLE: MOODLE LMS INTEGRATION

• Plugin file – register the plugin

class auth_plugin_imis extends auth_plugin_base {

function auth_plugin_imis() {$this->authtype = 'imis';$this->config = get_config('auth/imis');

}

function user_login($username, $password) {...}

}

EXAMPLE: MOODLE LMS INTEGRATION

• Plugin file - create a SOAP request to iMIS Web Service$host.= "?op=LoginUser";$strEnvelope = <<<EOS<?xml version='1.0' encoding='utf-8'?><soap:Envelope xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:soap='http://schemas.xmlsoap.org/soap/envelope/'><soap:Body><LoginUser xmlns='http://imis.com/webservices/membership'><username>$username</username><password>$password</password>

<staffUser>false</staffUser></LoginUser>

</soap:Body></soap:Envelope>EOS;

EXAMPLE: MOODLE LMS INTEGRATION

• Plugin file - send the SOAP request using CURL (a http request service)

$curl = curl_init();

curl_setopt($curl, CURLOPT_URL, $host); curl_setopt($curl, CURLOPT_HEADER, 0);

curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_FOLLOWLOCATION, false); curl_setopt($curl, CURLOPT_POSTFIELDS, $strEnvelope); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: text/xml; charset=utf-8','SOAPAction: "http://imis.com/webservices/membership/LoginUser"', "Content-length: ".strlen($strEnvelope)));

$strresponse = curl_exec($curl);

EXAMPLE: MOODLE LMS INTEGRATION

• Plugin file - process the response

$auth = false;if(curl_errno($curl)==0){ // CURL request was successful

if(strpos($strresponse,"Succeeded")>0){ // Read the iMIS response$auth = true;

}}if($auth){

complete_user_login($user); // Moodle function to prepare session}

$auth = true;}

curl_close($curl);return $auth;}

EXAMPLE: MOODLE LMS INTEGRATION

• Plugin file – redirect request for password reset to iMIS web site

$config->changepasswordurl = 'http://www.mywebsite.com/resetpassword';set_config('changepasswordurl', $config->changepasswordurl, 'auth/imis');

function auth_plugin_imis() {

$this->authtype = 'imis';$this->config = get_config('auth/imis');

}

function can_change_password() {return !empty($this->config->changepasswordurl);

}

function change_password_url() {return new moodle_url($this->config->changepasswordurl);

}

EXAMPLE: MOODLE LMS INTEGRATION

• Plugin file – processing course enrolments– Use Moodle External Database Enrolment method.– The External Database can query any external database table for Student

ID and Course ID.– Both add and remove are applied when reading database.– Create view in iMIS over Certification or Event enrolments.– The External Database is read during the internal function

complete_user_login() within the authentication plugin.

if($auth){complete_user_login($user);

}$auth = true;}

EXAMPLE: MOODLE LMS INTEGRATION

• Other integration opportunities:– Extend the authentication plugin to include automatic user account

creation and update– Extend the authentication plugin to perform a single-sign-on without user

signing in twice– Maintenance script to remove deleted users– Automation to print assessments to PDF files for Registered Training

Organisation (RTO) records– Extraction of Grade Book and Quiz data to create Professional

Development records in iMIS.

EXAMPLE: MOODLE LMS INTEGRATION

• Questions?

EXAMPLE: MOODLE LMS INTEGRATION

Newlin Jolme Ashley HuntIntegr8tiv PGA Australianjolme@integr8tiv.com ahunt@pga.org.au

Causeisinfo@causeis.com.au

+61 468 344 574

QUESTIONS& CONTACT DETAILS

WITH THANKS TO OUR SPONSORSNIUG DISCOVERY CONFERENCE

top related