synchronize changes with affiliations session 5315 17 november 2015

51
SYNCHRONIZE CHANGES WITH AFFILIATIONS SESSION 5315 17 November 2015

Upload: damon-parsons

Post on 21-Jan-2016

218 views

Category:

Documents


0 download

TRANSCRIPT

SYNCHRONIZE CHANGES

WITH AFFILIATIONSSESSION 531517 November 2015

SYNCHRONIZE CHANGES WITH AFFILIATIONS 2

PRESENTER

Hans Janssen

Product Manager SaNS Expertise Centre [email protected]

Hans has a background in study advising, functional maintenance and information management and works since 2008 for the SaNS Expertise Centre as Product Manager and Solutions Architect

SYNCHRONIZE CHANGES WITH AFFILIATIONS 3

OVERVIEW1

AFFILIATIONS & CONSTITUENTS:

Concepts and use in Campus Solutions

3

4

TECHNICAL:How the affiliation

functionality technically

works

5

ENHANCEMENTS&

CONCLUSIONS

2

BUSINESS NEED:

Why we started to use

affiliations

AIF & CWSWhat the affiliation

functionality does

SYNCHRONIZE CHANGES WITH AFFILIATIONS 4

SaNSSaNS

EXPERTISECENTRUM

Universiteit LeidenUniversiteit van AmsterdamHogeschool van AmsterdamTilburg University

SYNCHRONIZE CHANGES WITH AFFILIATIONS 5

WHAT IS SaNS?

SaNS: ‘Collaboration for a New SIS’

4 Universities in the Netherlands: University of Amsterdam (Research University) Hogeschool van Amsterdam (Univ. of Applied Research) University of Leiden (Research University) University of Tilburg (Research University)

120.000 students

10.000 faculty users

1000 administrative users

‘Vanilla CampusHO’

Joint maintenance and development (Expertise Center)

SYNCHRONIZE CHANGES WITH AFFILIATIONS 6

EXPERTISE CENTER

Joint effort of the 4 SaNS-Universities

Responsible for Hosting of the Infrastructure & Technical Maintenance Application Maintenance Application Development and Customization Servicedesk, support, testing, set up

Delivers ‘Campus HO’ as a SaaS-Solution

12 FTE employees Support (3), development (2), technical (2) and functional (3)

Hosting and technical maintenance outsourced to MCX

SYNCHRONIZE CHANGES WITH AFFILIATIONS 7

SaNS SITUATION ON ORACLE PeopleSoft Campus Solutions 9 Bundle #37 Modules in use:

Campus Community Student Records Academic Advisement (Recruitment and) Admission (Student Finance) Student Self Service

Heavily customized application (NL Higher Ed): ‘CampusHO’

PeopleTools 8.54.13

Infrastructure and Database: Oracle 11g 35 CS-environments (5 per SaNS-institution, 10 for EC, 5 POC) 50 Physical servers, no VM

AFFILIATIONS & CONSTITUENTS

Conceptsand Use in Campus Solutions

SYNCHRONIZE CHANGES WITH AFFILIATIONS 9

University

Constituents

Inst. 1

Inst. 2

Inst. 3

CONSTITUENTS & AFFILIATIONS Constituent person (or organization) with

a relation to your institution

SYNCHRONIZE CHANGES WITH AFFILIATIONS 10

University

Constituents

Inst. 1

Inst. 2

Inst. 3

University

Constituents Affiliations

Prospect

Student

Applicant

Alumnus

Faculty

Bachelor Student

Student Progr. A

Student Progr. B

Inst. 1

Inst. 2

Inst. 3

CONSTITUENTS & AFFILIATIONS Constituent person (or organization) with

a relation to your institution

Affiliation: Kind of relation the constituent

has with your institution With a startdate And eventually an enddate Affiliations change in time Key fields in CS:

EMPLID Institution Affiliationtype Startdate

SYNCHRONIZE CHANGES WITH AFFILIATIONS 11

AFFILIATIONS IN CAMPUS SOLUTIONS Affiliation to Institution Framework (AIF) - History Delivered in Feature Pack 1 (Bundle #13) in June 2009 Part of the Constituent WebServices (CWS) in Campus Community Based on the PERSON_BASIC_SYNC service operation (SOA

framework from PT 8.9)

Functionality Changes in person-data trigger messages with person-data to an

external system Changes in relations trigger messages with affiliation-data to an

external system You define what the

relevant relations are Different relations can

be sent to different external systems

Campus Solutions

Add/change person

Add/change relation

Constituent message

Constituent message

Add/change affiliation record

External system

SYNCHRONIZE CHANGES WITH AFFILIATIONS 12

SYNCHRONIZING PERSON DATA … Person data synchronization: Integration Broker messages with person information (name,

addresses) Part of the SOA framework to synchronize CS and HCM internally Service operation and message ‘PERSON_BASIC_SYNC’ Triggered from Person components/pagesCampus Solutions/HCM

HCMcomponents

SOA-framework: PERSON_BASIC_SYNC service

Personmessage

Component/page SCC_BIO_DEMO

Add/change Person

Generate Person

message

update Persondata

SYNCHRONIZE CHANGES WITH AFFILIATIONS 13

… TO EXTERNAL SYSTEMS Person data synchronization with external systems: Introduction of Constituent WebServices (CWS) Extended for synchronization to and from HCM, HECH and other

external systems Also used for external search/match and incoming messages

External system

Campus Solutions

Constituent webservice

SOA-framework: PERSON_BASIC_SYNC service

Personmessage

Constituent message

Component/page SCC_BIO_DEMO

Add/change Person

Generate Person

message

Generate Constituent Message

SYNCHRONIZE CHANGES WITH AFFILIATIONS 14

ADDING AFFILIATION DATA Affiliation framework ads functionality to the constituent framework: Webservices and application packages handle changes in relationship Trigger is on component/pages Affiliations for a person are (automatically) added to a record Messages with affiliation-data are sent by the constituent webservice Research Tracking uses affiliations to indicate research evaluators or supervisors

External system

Campus Solutions

Constituent webservice

SOA-framework: PERSON_BASIC_SYNC service

Personmessage

Constituent message

person-data

Component/page SCC_BIO_DEMO

Add/change Person

Generate Person

message

Generate Constituent Message

Affiliation-framework: SCC_APPLICANT_CHANGED service

Affiliationmessage

Component/page ADM_APPL_ENTRY1

addapplication

Generate Affiliation message

Constituent message

affiliation-data

Generate Constituent Message

BUSINESS NEEDChosen IdM-system (OIM)has a standard connector for CS-Affiliations

SYNCHRONIZE CHANGES WITH AFFILIATIONS 16

NEW IDM-SYSTEM (OIM) NEEDS NEW INTEGRATION UvA and HvA are replacing their identity management (IdM) system: New system based on Oracle Identity Manager (OIM) OIM has a standard adaptor for Campus Solutions, based on

Affiliation functionality IdM uses different roles (access-rights) for ‘applicants’ and

‘students’ OIMCS

Application

Program Enrollment

User/Role

HCM

LDAPAD

ELO

Provisioning

CS->OIM connector

SYNCHRONIZE CHANGES WITH AFFILIATIONS 17

CS TO OIM FUNCTIONALITY Functionality delivered by Oracle Assigning affiliations (relationships) to constituents (persons) in CS Adding context to every individual affiliation Sending messages about these affiliations Filtering based on affiliation type Export of all the affiliations as files for full reconciliation in OIM Connector for CS Constituent messages in OIM

Functionality added by SaNS Different business rules for assigning affiliations Much more affiliation types, but based on the same application class Extra context

History Support for OIM’s CS-connector delivered in Bundle #27 (October 2012) Based on constituents and affiliations (Bundle #13, June 2009)

HOW AFFILIATION WORKS

OverviewAffiliation Set UpManually assigning an affiliation to a person

SYNCHRONIZE CHANGES WITH AFFILIATIONS 19

HOW AFFILIATION WORKS - OVERVIEW

Affiliation process steps1. Relevant information about a person is added or changed in CS

(on a component)2. Affiliation webservice is triggered to publish a message with the

affiliation data3. The affiliation framework constructs a constituent object based

on the message4. The affiliation framework determines if an affiliation has te be

assigned or ended5. A constituent message with the affiliation data is published to

external systems

Triggeredprocess

Constituent information

changed in CS

Affiliationmessage published

Affiliation framework

processes the message

Constituent message published

Affiliation assigned or

ended

SYNCHRONIZE CHANGES WITH AFFILIATIONS 20

ASSIGNING AFFILIATIONS: 3 WAYS

Manualprocess

Constituent message published

Affiliation assigned or

ended

Triggeredprocess

Constituent information

changed in CS

Affiliationmessage published

Affiliation framework

processes the message

Constituent message published

Affiliation assigned or

ended

Batchprocess

Batch proces to identify

constituents

Constituent message published

Affiliation assigned or

ended

Affiliation framework

processes the 'messages'

SYNCHRONIZE CHANGES WITH AFFILIATIONS 21

ADDING A NEW AFFILIATION TYPE Define your own affiliation types Based on existing ones …

… or completely new Attach business logic to your

affiliation with an application class

The class logic defines whether or not an affiliation is set or ended

SYNCHRONIZE CHANGES WITH AFFILIATIONS 22

ADD TRIGGERS TO THE AFFILIATIONTYPE Trigger Connects the affiliation type to a specific service operation This information is used to route the internal messages Affiliation types can share the same trigger/service operation

SYNCHRONIZE CHANGES WITH AFFILIATIONS 23

ADD CONTEXT DATA

Add context records and field To add extra information about the person or the affiliation The information is added

when you assign an affiliation to a person

SYNCHRONIZE CHANGES WITH AFFILIATIONS 24

AFFILIATION HIERARCHY

Affiliations can be a child of another affiliation Only the lowest level is actually assigned

Student

Bachelor Master

Prog X Prog Y

SYNCHRONIZE CHANGES WITH AFFILIATIONS 25

VIEW AFFILIATONS AND HIERARCHY Campact view of affiliation codes is found under Campus Community

SYNCHRONIZE CHANGES WITH AFFILIATIONS 26

MANUALLY ASSIGN AN AFFILIATIONSteps to manually assign a affiliation:1. Choose a constituent with an affiliation or add an new

constituent/affiliation

2. Assign an existing affiliation type to the constituent

3. Add a start date for this affiliation

4. Save the affiliation for this constituent

Campus takes care of the rest Context field data are automatically added Hierarchy is build Constituent message is sent to external system

SYNCHRONIZE CHANGES WITH AFFILIATIONS 27

ASSIGN AFFILIATION TO CONSTITUENT

SYNCHRONIZE CHANGES WITH AFFILIATIONS 28

RESULTING AFFILIATION

SYNCHRONIZE CHANGES WITH AFFILIATIONS 29

AFFILIATION DETAILS

SYNCHRONIZE CHANGES WITH AFFILIATIONS 30

CONTEXT FIELDS AND VALUES

SYNCHRONIZE CHANGES WITH AFFILIATIONS 31

TRIGGER BASED AFFILIATION ASSIGNING Adding affiliation for an applicant1. Add an applicant in the Application Entry component

2. Save the application

3. (Person data are saved; PERSON_BASIC_SYNC message is published)

4. (Constituent message with person data is published)

5. Application data are saved; SCC_AFL_APPLICANT message is published

6. Constituent object is created; business logic checks applicant status

7. If a valid affiliation, a Person-Affiliation record is added

8. Constituent message with affiliation data is published

CS

Constituent webservicesAffiliations Framework

Affiliation message

Constituent message

CS-page application

Application

Constituent object

add affiliation record

create message

create constituent message

SYNCHRONIZE CHANGES WITH AFFILIATIONS 32

VISIBILITY

On component/pages with affiliation content, a ‘affiliation’ icon appears when an affiliation is assigned for this person

SYNCHRONIZE CHANGES WITH AFFILIATIONS 33

FILTERING THE CONSTITUENT MESSAGES A constituent message with affiliation data is first sent through a filter For every external system you can define which affiliation types are

able to pass

BATCH PROCESSES

Delete and create affiliations;Export all affiliations

SYNCHRONIZE CHANGES WITH AFFILIATIONS 35

BATCH PROCESSES

Assign affiliations in batch Delivered process, uses the available business rules for each

affiliationtype Based on Population Selection; define your own selections, using a

bind-record For one, some or all affiliation types

Delete affiliations in batch Delivered process Bases on Population Selection; define your own selections, using a

bind-record

Full Synchronization Delivered process and service operation Fetches all the affiliations and combines them in XML-files for full

reconciliation

SYNCHRONIZE CHANGES WITH AFFILIATIONS 36

AFFILIATION ASSIGNMENT IN BATCH

SYNCHRONIZE CHANGES WITH AFFILIATIONS 37

DELETE AFFILIATIONS IN BATCH

SYNCHRONIZE CHANGES WITH AFFILIATIONS 38

EXPORT ALL AFFILIATIONS: FULL SYNC

SYNCHRONIZE CHANGES WITH AFFILIATIONS 39

AFFILIATIONS TECHNICALLY

A closer look at the technical parts

SYNCHRONIZE CHANGES WITH AFFILIATIONS 40

SERVICE OPERATIONS

Affiliation functionality depends on 3 types of services: Constituent services SOA framework services Affiliation services

Constituent services Used for publishing messages to external systems Service operations: SCC_CONSTITUENT_SYNC and SCC_CONSTITUENT_FULLSYNC

SOA framework services Used for publishing person data internally, as trigger for the constituent service Service operation: PERSON_BASIC_SYNC

Affiliation service Used for publishing affiliation data internally, as trigger for the affiliation

framework Service operations: SCC_AFL_APPLICANT_CHANGED,

SCC_AFL_STUDENT_CHANGED etc.

SYNCHRONIZE CHANGES WITH AFFILIATIONS 41

CONSTITUENT WEBSERVICES (CWS)

Constituent Webservices

CWS for synchronizing

Entity registry based CWS (used for AAWS)

Outboundservices

Inboundservices

Synchronize Constituent Service operation: SCC_CONSTITUENT_SYNC

Message: SCC_CONSTITUENT_DS

Update Constituent

External Search/Match Get Constituent

Read Constituent

Full Sync Service operation: SCC_CONSTITUENT_FULLSYNC

Message: SCC_CONSTITUENT_FULLSYNC

Synchronizing person data with external systems

SYNCHRONIZE CHANGES WITH AFFILIATIONS 42

TRIGGERS ON COMPONENTS SavePostChange on components Call Eventpublish with module-name and service operation:&myApplicant = create SCC_EVENT_PUBLISH:PublishAffiliation(&RS0, "APPLICANT", "SCC_AFL_APPLICANT_CHANGED");&rsltmsg = &myApplicant.execute();

SYNCHRONIZE CHANGES WITH AFFILIATIONS 43

AFFILIATION IMPLEMENTATION CLASSES SCC_CONSTITUENT_MGR:HANDLER:ConstituentNotifyProcessor This class processes the internal affiliation message

SCC_CONSTITUENT_EVENTS.ApplicantSync This class marshals the internal trigger-message into a constituent

object

SCC_AFFILIATIONS:IMPLEMENTATION Contains the (sample) classes for the different affiliation types Classes contain te business logic that decides whether or not

an affiliation has to be assigned

SNS_AFFILIATIONS.AffiliationAbstract Affiliation record is added or end-dated

SYNCHRONIZE CHANGES WITH AFFILIATIONS 44

MESSAGE STRUCTURE

PERSON_BASIC_SYNC SCC_AFL_XXX_CHANGED SCC_CONSTITUENT_DS.V2

You can easily add or delete records and fields for the messages

SaNS ENHANCEMENTS

Customizationsto fulfill the functional need

SYNCHRONIZE CHANGES WITH AFFILIATIONS 46

CUSTOM MADE SaNS ENHANCEMENTS Every plan its own affiliation Roles in OIM are dependent on the department responsible for a AcadPlan Every AcadPlan (almost 500!) gets its own affiliationtype 1 Application Class handles all the different AcadPlan’s

‘Applicant’ and ‘Student’ are somewhat different in the Netherlands Customized triggers and business logic

More context fields, independent of EMPLID Remove code that limits the number of context fields to 10 Use views to add non-emplid based records/fields (descriptions,

organization)

Always a complete Person data message Change code from ‘delta’ to ‘complete’ Trigger person-messages with all affiliation additions

CONCLUDING THOUGHTS

ANY QUESTIONS?

SYNCHRONIZE CHANGES WITH AFFILIATIONS 48

WHAT YOU NEED TO DO AND KNOW If your affiliation functionality needs are limited: Use the Oracle-delivered affiliation types and business logic Read the peoplebooks chapters on affiliations Have/gain/use Integration Broker knowledge

IB Configuration, Services, Operations, Messages, Nodes, Routings, Handlers, Security…

If you want to extend or change the delivered functionality: Copy the delivered application classes as a start Change the application class logic or add your own classes Read the developer guides on constituents and affiliations Build/use knowledge on XML Schema

XML Tools, Schemas, XML Development APIs, W3C Industry Standards, Testing Approaches…

Build/use knowledge on Application Package PeopleCode Object Principles, Extension, Inheritance, Overriding, Abstraction, Programming Patterns…

SYNCHRONIZE CHANGES WITH AFFILIATIONS 49

SUMMARY

Affiliations are a great framework To define your own affiliation-types with their own business logic

Lifecycle types: Applicant, Bachelor Student, Master Student, Postgraduate, Alumnus Special relations: contributor, foreign student, internship, research supervisor

To synchronize person and relationship data with external systems

Basic functionality is available out of the box

For specific types or rules you need to build your own appl. classes

SYNCHRONIZE CHANGES WITH AFFILIATIONS 50

MORE INFORMATION

Hans Janssen

Product Manager SaNS Expertise Centre [email protected] www.sans-ec.nl

ALL ALLIANCE PRESENTATIONS WILL BE AVAILABLE FOR DOWNLOAD FROM THE CONFERENCE SITE

SYNCHRONIZE CHANGES WITH AFFILIATIONS 51

THANK YOU!