46
UniTime System to build and manage the university schedule of classes. Banner University Student Information System. Banner Processes Student class registration Publish class schedule Provide students’ class schedules Source of : Course Catalog Registration requirements Student Master Data Student schedules Imports: Class schedule UniTime Processes: Builds master class schedule using timetabling techniques Manages master class schedule Schedules exams using optimization techniques Schedules other events to rooms Provides room schedules , room availability and room scheduling services to university community; Provides exam schedules to university community Source of : Class schedule Timetabling requirements Evening & Final Exams Events scheduled in academic rooms Buildings/Room info Room availability Imports: Student Master Data Student Schedules Staff Info Course Catalog (manually ) Schedule of Classes Course Catalog Student Master Data Student Schedules Staff Info Banner / UniTime System Integration for Academic Scheduling (As of 7/13/2009 ) Academic Room Scheduling get lab schedules TLT computer lab schedules University Community Room Schedulers Spring09 Banner Convert to UniTime Construct Spring10 schedule in UniTime Update schedule in UniTime Spring10 ends Real Time Interface: add/delete basic section data in Banner INB: update Banner- only section data Banner UniTime Integration General Design Banner: Roll Spring09 to Spring10 Banner: Roll Spring10 to Spring11 UniTime Roll Spring10 to Spring11 Spring11 schedule construction, same as Spring10 Repeat this process for Summer 10 and Fall10. These first 3 steps are one-time conversions. Spring10 registration opens Technical Overview Overview Page 1

UniTime Banner Implementation Technical Documentation

Embed Size (px)

Citation preview

Page 1: UniTime Banner Implementation Technical Documentation

UniTime

System to build and manage the university schedule of classes.

Banner

University Student Information System.

Banner

Processes

Student class registration

Publish class schedule

Provide students’ class schedules

Source of :

Course Catalog

Registration requirements

Student Master Data

Student schedules

Imports :

Class schedule

UniTime

Processes:

Builds master class schedule using timetabling

techniques

Manages master class schedule

Schedules exams using optimization techniques

Schedules other events to rooms

Provides room schedules , room availability and

room scheduling services to university

community ;

Provides exam schedules to university

community

Source of :

Class schedule

Timetabling requirements

Evening & Final Exams

Events scheduled in academic rooms

Buildings /Room info

Room availability

Imports :

Student Master Data

Student Schedules

Staff Info

Course Catalog (manually )

Schedule of

Classes

Course Catalog

Student Master Data

Student Schedules

Staff Info

Banner / UniTime System Integration for Academic Scheduling(As of 7/13/2009 )

Academic

Room Scheduling

get lab

schedules

TLT

computer lab

schedules

University

Community

Room

Schedulers

Spring09Banner

Convert to UniTime

Banner:

Spring 10 Sections

Construct Spring10

schedule in

UniTime

BatchSynchronization

Process

Update schedule in

UniTime

Spring10

ends

Real Time Interface:

add/delete basic section data in Banner

INB: update Banner-

only section data

Banner – UniTime Integration General Design

Banner

Catalog

Copied to sections

when section created

(szpcats )

Banner:

Roll Spring09 to

Spring10

Banner:Roll Spring10 to

Spring11

UniTime

Roll Spring10 to

Spring11

Spring11 schedule

construction, same as

Spring10

Repeat this process for

Summer 10 and Fall10.

These first 3 steps are one-time conversions.

Spring10

registration

opens

Technical Overview

Overview Page 1

Page 2: UniTime Banner Implementation Technical Documentation

UniTime – Banner Integration Queue Processor Overview

Notices a Schedule

Packet has appeared in

QueueOut

Queue Processor sends

Schedule packet to Banner

Banner: SZ_UNITIMEProcesses schedule packet

based directives in XML

Queue Processor creates

Banner Message

Responses from

schedule_response

packet

Schedule_

response

packet

Poll QueueOut for unprocessed items

sync packet is

returned from

Banner

yes

no

Sync packet

requested via

XML?

Schedule_

sync

packet

Put sync packet in

QueueOut

User actions cause

changes to sections

Timetabling app creates

QueueOUT

with SchedulePacketXML

for sections and crosslists

UniTimeTimetabling

Application

Batch process to

generate schedule

XML for all sections

Queue

Schedule XML

Response XML

Banner Response

Messages

User reviews Banner

Messages

Spring09Banner

Convert to UniTime

Banner:

Spring 10 Sections

Construct Spring10

schedule in

UniTime

BatchSynchronization

Process

Update schedule in

UniTime

Spring10

ends

Real Time Interface:

add/delete basic section data in Banner

INB: update Banner-

only section data

Banner – UniTime Integration General Design

Banner

Catalog

Copied to sections

when section created

(szpcats )

Banner:

Roll Spring09 to

Spring10

Banner:Roll Spring10 to

Spring11

UniTime

Roll Spring10 to

Spring11

Spring11 schedule

construction, same as

Spring10

Repeat this process for

Summer 10 and Fall10.

These first 3 steps are one-time conversions.

Spring10

registration

opens

Overview Page 2

Page 3: UniTime Banner Implementation Technical Documentation

UniTime is the system of record for classes scheduled for the West Lafayette campus

When classes change in UniTime, SchedulePackets are sent to Banner.•

Create, updates, cancels or deletes sections○

Creates, updates or deletes crosslists○

Banner processes the SchedulePacket:•

Banner sends a ScheduleResponsePacket to UniTime•UniTime records the Responses•Responses are available to the end use via the Banner Messages page.•

CRNsCRNs for UniTime-managed sections are generated in UniTime.•

Defined in table SZBUTMT○

A high range of CRNs are reserved for Banner-only use.•

CrosslistsCrosslists IDs are generated for classes that are crosslisted in UniTime•

Defined in table SZBUTMT○

A high range of crosslists are reserved for Banner-only use to handle situations where are crosslistis required in Banner only, usually to support crosslisting in Blackboard.

Basic FlowMonday, July 13, 2009

4:34 PM

Overview Page 3

Page 4: UniTime Banner Implementation Technical Documentation

Banner Schedule Packet Processing:

Banner Package: SZ_UNITIME

PROCEDURE p_process_packet(in_packet IN CLOB, out_response OUT CLOB)

Processes a schedule packet

Returns a schedule response packet

PROCEDURE p_process_packet(in_packet IN CLOB, out_response OUT CLOB, out_sync OUT CLOB)

Processes a schedule packet

Returns a schedule response packet

Returns a schedule packet that will attempt to bring Banner and UniTime in sync based on errors detected during a full audit.

2 Basic procedures:

Supporting Tables:

SZBPTRM_PTRM_CODE Part of term code

SZBPTRM_CAMP_CODE Campus code this PTRM is used with

SZBPTRM_DEFAULT_FOR_CAMPUS Y indicates this PTRM is the default for the campus

SZBPTRM_SUBJ_CODE Subject code; may contain wildcard %

SZBPTRM_CRSE_NUMB Course number; may contain wildcard %

SZBPTRM_SCHD_CODE Schedule type; may contain wildcard %

Special rule can be defined via campus, subject, course and schedule code

If these match, that's the part of term

This is useful for the TSW campuses.□

Otherwise, the table maps PTRM to campus and indicates the default.

SZ_UNITIME.f_default_ptrm○

SZBPTRM•

-- find a PTRM that encompasses section -- if multiple, use the one with the closest fit; then the one with the max ptrm -- if none found, choose best-fitting ptrm that encompasses end date -- if none found, choose best-fitting ptrm that encompasses start date -- Choose default term for campus -- choose 1

SZBUTML - UniTime Log•SZBUTMT - UniTime integration term-specific information•

SZ_UNITIMEWednesday, August 05, 2009

9:07 PM

Overview Page 4

Page 5: UniTime Banner Implementation Technical Documentation

contains packet-handling instructions

Packet Header○

contains all the information that UniTime has about a section.□

Update

Delete

Audit

Sections○

Update

Delete

Audit

Crosslists○

Schedule packet consists of

DTD: ScheduleDTD

Schedule Packet

SCHEDULE

PACKET_ID

TERM_CODEORIGIN

ACTION (FULLAUDIT|<null>)

MODE (UPDATE|AUDIT)

DATA_FORMAT

CLASS_END_DATE

SECTION

ACTION (UPDATE|DELETE|AUDIT)

EXTERNAL_ID SUBJ_CODE

CRSE_NUMB

ID

CRN

TITLE CAMP_CODE

PTRM_CODE

START_DATE

END_DATE

SCHD_CODE MAX_ENRL

GRADABLE

CREDIT_HRS

BILL_HRS

SESSION APPROVAL

WEB_AVAIL

PRINT_IND

USERID

LONG_TITLE TEXT_NARRATIVE

LINK_IDENT

LINK_CONN

FUNDING_SOURCE

MEETINGMEETING_ID

MONDAY

TUESDAY

WEDNESDAY

THURSDAY FRIDAY

SATURDAY

SUNDAY

BEGIN_TIME

END_TIME START_DATE

END_DATE

BLDG_CODE

ROOM_CODE

ARRANGE_HOURS_WEEK SESSION

OVERRIDE

INSTRUCTOR

ID

PERCENT

PERCENT_SESS PERCENT_RESPONSE

PRIMARY

OVERRIDE

SESSION

FIRST_NAME MIDDLE_NAME

LAST_NAME

CROSSLIST

EXTERNAL_ID

ACTION (UPDATE|DELETE|AUDIT)GROUP

MAX_ENRL

MEMBER

CRN

Schedule Response Packet

SCHEDULE_RESPONSE

PACKET_ID

STATUS (SUCCESS | FAILED)START_TIMESTAMP

END_TIMESTAMP

Unitime-Banner Schedule XML Interface Data Structure

MESSAGE

ACTIVITY_DATE

SEQNOTERM_CODE

CRN

SUBJ_CODE

CRSE_NUMB

SEQ_NUMBXLST_GROUP

EXTERNAL_ID

ACTION (UPDATE|DELETE|AUDIT)

TYPE (SUCCESS|ERROR|WARNING)

MESSAGEPACKET_ID

Schedule PacketMonday, July 13, 2009

4:42 PM

Overview Page 5

Page 6: UniTime Banner Implementation Technical Documentation

Schedule Packet

SCHEDULE

PACKET_ID

TERM_CODEORIGIN

ACTION (FULLAUDIT|<null>)

MODE (UPDATE|AUDIT)

DATA_FORMAT

CLASS_END_DATE

SECTION

ACTION (UPDATE|DELETE|AUDIT)

EXTERNAL_ID SUBJ_CODE

CRSE_NUMB

ID

CRN

TITLE CAMP_CODE

PTRM_CODE

START_DATE

END_DATE

SCHD_CODE MAX_ENRL

GRADABLE

CREDIT_HRS

BILL_HRS

SESSION APPROVAL

WEB_AVAIL

PRINT_IND

USERID

LONG_TITLE TEXT_NARRATIVE

LINK_IDENT

LINK_CONN

FUNDING_SOURCE

MEETINGMEETING_ID

MONDAY

TUESDAY

WEDNESDAY

THURSDAY FRIDAY

SATURDAY

SUNDAY

BEGIN_TIME

END_TIME START_DATE

END_DATE

BLDG_CODE

ROOM_CODE

ARRANGE_HOURS_WEEK SESSION

OVERRIDE

INSTRUCTOR

ID

PERCENT

PERCENT_SESS PERCENT_RESPONSE

PRIMARY

OVERRIDE

SESSION

FIRST_NAME MIDDLE_NAME

LAST_NAME

CROSSLIST

EXTERNAL_ID

ACTION (UPDATE|DELETE|AUDIT)GROUP

MAX_ENRL

MEMBER

CRN

Schedule Response Packet

SCHEDULE_RESPONSE

PACKET_ID

STATUS (SUCCESS | FAILED)START_TIMESTAMP

END_TIMESTAMP

Unitime-Banner Schedule XML Interface Data Structure

MESSAGE

ACTIVITY_DATE

SEQNOTERM_CODE

CRN

SUBJ_CODE

CRSE_NUMB

SEQ_NUMBXLST_GROUP

EXTERNAL_ID

ACTION (UPDATE|DELETE|AUDIT)

TYPE (SUCCESS|ERROR|WARNING)

MESSAGEPACKET_ID

Overview Page 6

Page 7: UniTime Banner Implementation Technical Documentation

See these documents:

UniTime to Banner Interface User Documentation.docx

UniTime Impact on Banner Schedule.docx

Functional DocumentationWednesday, August 05, 2009

7:51 PM

Overview Page 7

Page 8: UniTime Banner Implementation Technical Documentation

How to Implement UniTime-Banner Integration

create a UNITIME user○

install_szaptrm.shl and szaptrm.fmb on app server and configure Banner security○

install_unitime.shl○

install_szpexam.shl○

upgrade_unitime01.shl (probably not needed)○

install_szautmt.shl and szautmt.fmb on app server and configure Banner security○

create GTVSDAX entries○

create SZAUTMT entries○

SOATERM - set starting CRN to 70000○

Banner

(See also tasklist_golive.xls for more details)

core UniTime has been installed an is functioning

Core UniTime setup: session, buildings, rooms, departments, features, etc.

Assumption: ○

Change edu.purdue.smas.custom.util.PurdueCatalogLink to link to your university

Create Timetabling.war: Setup Eclipse, Build and Deploy○

Set up properties files for web server and solver server○

Configure security/login○

01 Initial Banner Tables.sql01 Initial Banner Functions.sql 01 Initial Banner Views.sql

Apply SQL changes: PurdueUniTimeCustomizations/Documentation/Database/Oracle/Changes/

If using different user for webapp: webuser permissions (PurdueUniTimeCustomizations\Documentation\Database\Oracle\SQL\webuser_privs.sql)

Add Banner integration tables to UniTime database○

Banner_Session table has no user interface - create and update manually.○

Optionally: perform conversion to import a term○

Set banner_session.send_data_to_banner = 1 (true) ○

start_queue_processor.shl, and observe UniTime changes going to Banner○

If converted, run a synchronization to Banner○

Set up batch jobs to import dept, staff and student registration data from Banner into UniTime○

UniTime

HOWTOMonday, June 14, 2010

8:24 PM

HOWTO Page 8

Page 9: UniTime Banner Implementation Technical Documentation

/load/ENV/interfaces/esass_timetabling/CrosslistsToDelete.csv/load/ENV/interfaces/esass_timetabling/RoomsWithManagingDept.csv

(CrosslistsToDelete.csv is no longer used; all crosslists are deleted; it was just too difficult to convert crosslists to UniTime structure. Users will rebuild.)

Option, set up these external table files:

Connect to Banner with developer account

Run

This create a bunch of temp tables that are used during the conversion process. Since the conversion is a one-time program, it often uses temp tables for convenience.

banner_to_unitime_setup.sql

and

/load/ENV/interfaces/esass_timetabling/banner_offering_201020_PWL.xml/load/ENV/interfaces/esass_timetabling/course_demand_201020_PWL.xml

The package that creates the Banner offering and course demand XML load files for the term:sz_banner_to_unitime_jul30.pck

begin -- Call the procedure sz_banner_to_unitime.p_get_offerings(year_term => :year_term);end;

Optionally, run sanity checks:look for sections in there more than once (like PSY319 was) on Unitime side•utm_sql_sanity_checks.sql•unitime_xml_sanity_check_new.sql•

Transfer XML files to UniTime server: /home/user/utadmin/prd/data/fromBanner

Run: prd/bin/banner_conv_load.shl

tasklist_golive.xlsMost up-to-date record of Spring10 conversion:

tasklist_conversion4.xls>Task list for Fall 10 conversion:

Conversion from Banner to UniTime

Conversion Page 9

Page 10: UniTime Banner Implementation Technical Documentation

New Instance

classes/log4j.properties○

cacerts as binary

conf subdirectory○

copy everything under /shared subdirectories•

create /shared/lib links •

Setup for production:

TOMCAT/shared/classes/log4j.properties

TOMCAT/shared/lib/bcprov-jdk14-133.jarTOMCAT/shared/lib/naming-resources.jarTOMCAT/shared/lib/naming-factory.jarTOMCAT/shared/lib/naming-factory-dbcp.jarTOMCAT/shared/lib/smas-utils.tldTOMCAT/shared/lib/smas-utils-1.6.jarTOMCAT/shared/lib/smas-ldap-1.1.jar

TOMCAT/shared/lib/conf/dbcp.propertiesTOMCAT/shared/lib/conf/dbcp_log4j.propertiesTOMCAT/shared/lib/conf/cacerts

Create links for libraries:

cd TOMCAT/shared/libln -s /usr/share/java/ant-launcher.jar .ln -s /usr/share/java/ant.jar .ln -s /usr/share/java/log4j.jar .ln -s /usr/share/java/jakarta-oro.jar .ln -s /usr/share/java/commons-validator.jar .ln -s /usr/share/java/commons-logging-api.jar .

UniTime user setup:

e.g. \UniTimeAdmin\properties\web\dev\unitime.properties)( for appropriate environment

Copy unitime.properties to the properties directory (home/users/unitime)

/home/users/unitime/cacerts/home/users/unitime/login.conf

Create subdirectories:TOMCAT/data/unitime/blobTOMCAT/data/unitime/passivateTOMCAT/data/unitime/restore

# Expand the max amount of memory for the JVMJAVA_OPTS="$JAVA_OPTS -Xmx1024m -XX:MaxPermSize=256m"

JNDI setup: <GlobalNamingResources> <Resource name="jdbc/smas" type="javax.sql.DataSource" maxActive="4" maxIdle="2" username="webuser" maxWait="5000" validationQuery="select 1 from DUAL" driverClassName="oracle.jdbc.OracleDriver" password="******" url="jdbc:oracle:oci:@yourdatabase"/>

# Purdue Overrides

Tomcat Setup

Tomcat Setup

Web Page 10

Page 11: UniTime Banner Implementation Technical Documentation

# Purdue OverridesINSTANCE="yourTomcatInstanceName"

# Define the instance base directoryCATALINA_BASE="/opt/tomcat5-instance/$INSTANCE"

# Define a few other instance specific itemsCATALINA_TMPDIR="$CATALINA_BASE/temp"CATALINA_PID="/var/run/tomcat5-$INSTANCE.pid"TOMCAT_LOG="$CATALINA_BASE/logs/catalina.out"

# Define a property value so developers can tell which tier this isJAVA_OPTS="$JAVA_OPTS -Dedu.purdue.itap.itso.webservices.Tier=dev"

# Expand the max amount of memory for the JVMJAVA_OPTS="$JAVA_OPTS -Xmx1024m -XX:MaxPermSize=256m"

# Define ORACLE_HOME for Oracle supportORACLE_HOME=/usr/lib/oracle

# Define LD_LIBRARY_PATH to include the Oracle dynamic librariesLD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/10.2.0.3/client/lib

# Define options for UniTimeJAVA_OPTS="$JAVA_OPTS -Djava.security.auth.login.config=/home/users/unitime/dev/login.conf"JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true -Dtmtbl.custom.properties=/home/users/unitime/dev/unitime.properties"

# Enable developer debugging from EclipseJAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=[yourPortNumber],server=y,suspend=n $JAVA_OPTS"

Web Page 11

Page 12: UniTime Banner Implementation Technical Documentation

UniTime can be configured to control which top-level menu items are available from a given web server.

e.g. \UniTimeAdmin\properties\web\dev\unitime.properties)(from UniTimeAdmin CVS Repository for appropriate environment

These values are set in the custom properties file (/home/users/unitime/prod/unitime.properties)

Note: administrative users can get to all functions regardless of the menu configuration.

Timetabling server: timetable.mypurdue.purdue.edu# Sidebar Menu configurationtmtbl.menu.display_course_timetabling=truetmtbl.menu.display_student_sectioning=truetmtbl.menu.display_exam_timetabling=truetmtbl.menu.display_personal_schedule=falsetmtbl.menu.display_event_management=false

Event Mgmt server: roomschedule.mypurdue.purdue.edu# Sidebar Menu configurationtmtbl.menu.display_course_timetabling=falsetmtbl.menu.display_student_sectioning=falsetmtbl.menu.display_exam_timetabling=falsetmtbl.menu.display_personal_schedule=truetmtbl.menu.display_event_management=true

tmtbl.menu.display_course_timetabling=true/falsetmtbl.menu.display_student_sectioning=true/falsetmtbl.menu.display_exam_timetabling=true/falsetmtbl.menu.display_personal_schedule=true/falsetmtbl.menu.display_event_management=true/false

Menus

Configuration Page 12

Page 13: UniTime Banner Implementation Technical Documentation

This site is useful for coming up with color schemes: http://www.2createawebsite.com/build/hex-colors.html

Custom property: tmtbl.custom.css can be used to override UniTime styles.

UniTime provides styles/test.css. It makes the left sidebar and top global warning yellow.Based on comments in test.css, I changed colors based on the "was" comment to create a pink and a green version that can be used for the training environment.

Stylesheets

Configuration Page 13

Page 14: UniTime Banner Implementation Technical Documentation

Custom properties: tmtbl.header.externaland tmtbl.footer.externalcan be used to define header and footer HTML that is included on the login page.

PurdueUniTimeCustomizations/WebContent/custom contains the header and footer html used in each environment.

Purdue used templates from PMC http://www.purdue.edu/globals/blog/to create header and footer to give the production login page a Purdue look and feel.

The way UniTime calls the custom header and footer, along with the use of style sheets by both UniTime and the Purdue pages made it a bit tricky to get the desired look, especially one that works in all browsers.

Problem: IE gives the “This page contains both secure and nonsecure items. Do you want to display the nonsecure items?” message.

PurdueUniTimeCustomizations/WebContent/styles/puHeader PurdueUniTimeCustomizations/WebContent/images/puHeader

Solution: all referenced images and stylesheets were copied to

directories and referenced locally. This also shields us from any changes external sites might make.

Header and Footer

Configuration Page 14

Page 15: UniTime Banner Implementation Technical Documentation

http://wiki.unitime.org/Timetabling_Installation#Customization

Web Servers

/home/users/unitime/env/unitime.properties

UniTimeAdmin/properties/web/env/unitime.propertiesCome from UniTimeAdmin repository:

Solver Servers

/home/users/utadmin/env/config/custom.properties

UniTimeAdmin/properties/solver/env/custom.propertiesCome from UniTimeAdmin repository:

Properties

Configuration Page 15

Page 16: UniTime Banner Implementation Technical Documentation

tmtbl.help.manual.input_datahttp://www.purdue.edu/registrar/pdf/Unitime_Data_Entry_Manual.pdfData input manual URL

Help PagesThursday, January 14, 2010

2:07 PM

Configuration Page 16

Page 17: UniTime Banner Implementation Technical Documentation

Instructional

Offering

Consent_type

Ccredit

Course Offering

Subject

Course Number

Title (short)Credit

Subpart

Instructional Type

Hours per week

Class

Expected CapacityClass times

Locations

Instructors

Class Join Section

UniqueId

Banner Section IdClassId

Banner_Section

UniqueId*

CRN*

Section Index (3-char

Banner section id)Crosslist ID*

Consent

Link identifier *

Link Connector*

SessionId*ParentBannerSectionId*

BannerConfigId*

* not modifiable by user

Configuration

Unlimited Enrollment

Banner – UniTime Integration

parent

parent

Banner_Course

(no data; available for

future use)

Core UniTime

Purdue Customization

Banner_Config

BannerCourseId

Gradable itype

Sessions

Academic Initiative

YearTerm

Status

Banner_Session

Term CodeCampus

store_data_for_banner

send_data_to_banner

loading_offerings_file

Data model add -ons to support managing Banner information in UniTime

The diagram below shows additions made to the UniTime data model to support Banner integration.

UniTime can be configured to perform specified actions when instructional offering information changes. See Properties.

generate CRN○

generate link id○

generate crosslist id○

generate section identifier○

validate section identifier○

PL/SQL Procedures are defined to implement rules to generate and validate Banner-specific data:

See Properties.

Overview

PurdueUniTimeCustomizations Page 17

Page 18: UniTime Banner Implementation Technical Documentation

Link identifers and connectors are generated by the PL/SQL function SECTION_PROCESSOR.get_link_identifier.

Zero is not used as the 2nd character of the link identifier because it is too easily confused with the character O.

Link identifiers are assign sequentially for a course, across subparts. Before UniTime the convention was to use a new starting character for each schedule type and each new course and configuration. This was too difficult to implement in UniTime programmatically in the time available.

Re-assigning Link Identifiers

Link identifers can be re-assigned for a term.Null out all link identifiers for a term: /PurdueUniTimeCustomizations/Documentation/Database/Oracle/SQL/remove_links.sql

# initiative Academic Initiative (e.g. PWL)# year Year (e.g. 2010)# term Term (e.g. Spring)

Run shell script update_links.shl <initiative> <year> <term>

This:assigns missing link identifiers, link connectors and crosslist ids•corrects any incorrect link identifiers, link connectors and cross-list ids•

Note: I have not used it to re-assign crosslist ids. All crosslist were eliminated during conversion.

Link Identifiers

PurdueUniTimeCustomizations Page 18

Page 19: UniTime Banner Implementation Technical Documentation

User actions cause changes to sections

Timetabling app creates

QueueOUT

with SchedulePacketXML

and sets PostDate

Notices unprocessed

queueOut item

Banner

SZ_UNITIME.(

in: schedule packet

out: schedule

response)

UniTime – Banner Integration

Parses schedule response

XML to create BANNER_RESPONSE

messages

Sets QueueIn process date

and status=processed

Sets QueueOut

PickupDate

Status=PickedUp

QueueOUT

uniqueId

XML

StatusPostdate

PickupDate

ProcessDate

QueueIN

uniqueId

XMLMatchId

Status

Postdate

ProcessDate

Send Schedule Packet XML

to Banner and wait for

response

connect to Banner

as UNITIME user

Set QueueOut

ProcessDate

Status=Processed

Create QueueInXML=ScheduleResponse

MatchId

ProcessDate

Status=Processed

Poll QueueOut for

unprocessed items

UniTime/Banner

QueueProcessorUniTime

TimetablingApplication

Banner ResponseuniqueId

seqno

activity date

CRN

subj_codecrse_numb

xlst_group

external_id

action

typemessage

packet id

queue id

Transaction log, errors and warnings sent from Banner

QueueERRORuniqueId

error type

error date

error text

unexpected

errors

Queue Processor

PurdueUniTimeCustomizations Page 19

Page 20: UniTime Banner Implementation Technical Documentation

These properties define what actions are taken when an instructional offering modification occurs in Unitime, and define rules for generating and validating Banner-specific fields.

See PurdueUniTimeCustomizations\JavaSource\custom.properties

# Property to define the class that is called when a instructional offering config is added/changed.tmtbl.external.instr_offr_config.change_action.class=edu.purdue.smas.custom.util.BannerInstrOffrConfigChangeAction# Property to define the class that is called when an instructional offering is added.tmtbl.external.instr_offr.add_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called when an instructional offering is deleted.tmtbl.external.instr_offr.delete_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called when an instructional offering is made not offered.tmtbl.external.instr_offr.not_offered_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called when an instructional offering is made offered.tmtbl.external.instr_offr.offered_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called when an instructional offering crosslisting is changed.tmtbl.external.instr_offr.crosslist_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called at the end of the course offering edit actiontmtbl.external.course_offering.remove_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called when a course offering is deletedtmtbl.external.course_offering.edit_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called at the end of the assign instructors actiontmtbl.external.instr_offr_config.assign_instructors_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called at the end of the edit scheduling subpart actiontmtbl.external.sched_subpart.edit_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called at the end of the edit class actiontmtbl.external.class.edit_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called at the end of the edit reservation actiontmtbl.external.reservation.edit_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called when a solution is committed or uncommitedtmtbl.external.solution.commit_action.class=edu.purdue.smas.custom.util.BannerChangeAction# Property to define the class that is called when a solution is committed or uncommitedtmtbl.external.instr_offr_in_crosslist.add_action.class=edu.purdue.smas.custom.util.BannerChangeAction

# Property to define stored procedure that is called to get new banner section identifierbanner.section_id.generator={?= call timetable.section_processor.get_section(?,?,?)}

# Property to define stored procedure that is called to get new banner croslist identifierbanner.crosslist_id.generator={?= call timetable.cross_list_processor.get_cross_list_id(?)}

# Property to define stored procedure that is called to validate a section index is unique for a coursebanner.section_id.validator={?= call sys.diutil.bool_to_int(timetable.section_processor.section_exists(?,?,?,?))}

# Property to define stored procedure that is called to get new banner crnbanner.crn.generator={?= call timetable.crn_processor.get_crn(?)}

# Property to define stored procedure that is called to get new banner link identifierbanner.link_id.generator={?= call timetable.section_processor.get_link_identifier(?,?,?)}

Note: the schema referenced here must changed if a different timetabling schema is used.

Properties

PurdueUniTimeCustomizations Page 20

Page 21: UniTime Banner Implementation Technical Documentation

There is a nightly batch process that sends information from Banner to UniTime.

Banner Package: SZ_PEXAMprepares XML files.e.g.sz_pexam.p_get_departments(201010) prepares esass_timetabling/banner_dept_201010.xmlsz_pexam.p_get_staff(201010) esass_timetabling/banner_staff_201010.xmlsz_pexam.p_get_students(201010) esass_timetabling/banner_student_201010.xml

UniTime Process: banner_data_load.shl xmlfilename

e.g, for Fall09:banner_data_load.shl banner_dept_201010.xmlbanner_data_load.shl banner_staff_201010.xmlbanner_data_load.shl banner_student_201010.xml

UC4 Job:

PRD_REG_UNITIME_TIMETABLING_FALL_WL_JOBPPRD_REG_UNITIME_TIMETABLING_SPRING_WL_JOBPPRD_REG_UNITIME_TIMETABLING_SUMMER_WL_JOBP

\REGISTRAR\UNITIME\JOBPLANS

basic department info: name, code○

updates UniTime table: DEPARTMENT○

Departments

Id, name, department

basic staff data:○

populates UniTime table: STAFF (not pos_code, email)○

does not update departmental_instructor, which is the source of instructor's name○

PurdueUniTimeCustomizations\Documentation\Database\Oracle\SQL\update_dept_instr_from_staff.sql

there is SQL I developed that will update departmental_instructor's names:○

Staff

student id, name, sections enrolled in

basic student enrollment information○

Populates UniTime tables: STUDENT, STUDENT_CLASS_ENRL○

Students

Banner to UniTime

Banner To UniTime Page 21

Page 22: UniTime Banner Implementation Technical Documentation

webapps/TimetablingTimetabling.war

Delete:

Give Tomcat a few seconds to delete work files

Drop in new Timetabling.war

May need to re-start tomcat

Code Deployment

Operations Page 22

Page 23: UniTime Banner Implementation Technical Documentation

All non-web operations take place on the solver server machines.

User: UTADMIN

Directory Structure

/home/users/utadmin

Files in root:•.unitime_profile

/dev/qa/qaexam/trn/prd/prdexam

There is a subdirectory for each instance hosted on the server:Instance subdirectory structure•

Shell scripts/bin

Configuration; properties files/config

/toBanner/fromBanner

Data exchange; used for batch processes by UC4/data

Log files from batch processes and queue processor/logs

Everything solver-related. Because I'm still in the process of learning about the solver, I left most things as I was given them from SMAS.

Shell scripts used by solver/bin

All JAR files used for solver and UniTime operations.

These directories are created as needed when a solver is started./backup

tail -f debug.log to watch solver activityRolled daily

/log

Passivated solutions/passivate

/solvern

/env

/Solver

When the Fall09 exam schedule was published, we thought that the Personal Exam schedule application needed solvers to be running. So we set up qaexam and

Solver Servers

Operations Page 23

Page 24: UniTime Banner Implementation Technical Documentation

When the Fall09 exam schedule was published, we thought that the Personal Exam schedule application needed solvers to be running. So we set up qaexam and prdexam and pointed them to the Room Scheduling web servers.

For construction of the Spring10 schedule, we had 2 solvers running on 2 solver servers for timetabling, and 2 solvers running on a 3rd solver server for personal exam schedules.

Turned out the personal exam schedules do not use any solvers.

Operations Page 24

Page 25: UniTime Banner Implementation Technical Documentation

banner_audit_file.shl Generate a Schedule Audit XML file for a term.Placed in data/ToBanner directory

Not used much because send_banner_audit.shl is more useful.

Can be used if a manual file is needed.

banner_conv_load.shl Load conversion XML file.Only used for the one-time per term conversions. Essentially the same as

banner_data_load.shl

banner_data_load_from_db.shl Load Banner XML file that has been place in an Oracle directory attached to the database. This script is provided in case we decide to use this method of file transfer. Not planned at this time.

banner_data_load.shl Load Banner XML file. Used by UC4 process to load department, staff and student data from Banner.UniTime determines what to load based on the tags in the XML.

cleanup.shl Remove old log and temp files and old queueprocessor records

fl Dagmar's filelist script. Lists files in a directory in reverse time order and pipes to more.

get_property.shl Get property from custom.properties

kill_queue_processor.awk awk script used by stop_queue_processor.shl to find and kill queue processor

processes

list_queue_processor.awk awk script used by list_queue_processor.shl

list_queue_processor.shl Script to list queue processor processes. There should only be one and only one queue processor running at any time.

ls_size List files by size - useful for finding large files.

mailtest.shl Script to test sending mail

queue_processor_check.shl Script to check if queue processor is working. Run by UC4 every 10 minutes. Sends email to designated support staff.

send_banner_audit.shl Generate and send Schedule Full Audit XML for a term to Banner. If the last parameter is TRUE, the sync packet returned from Banner is sent to Banner for processing.

solver.shlenv dev|qa|qaexam|prd|prdexamcommands are sent as arguments to Solver/bin/solver.

solver.shl env commands

solver.shl qa startStart a solver:

export SOLVER_CNT=3solver.shl qaexamstart

Start 3 solvers:

solver.shl prd stopStop all solvers:

start_queue_processor.shl Start queue processor. First stops any running queue processor using

stop_queue_processor.shl

stop_queue_processor.shl Stop all running queue processors for an instance (dev,qa,trn or prd)

unitime_audits.shl Run UniTime audits and sanity checks.Notify administrators via e-mail if there is a problem.

unitime_audits.sql UniTime audits and sanity checks SQL used by unitime_audits.sql. This checks for conditions that should never occur.

update_bin.shl Update utadmin/bin from the CVS repository: UniTimeAdmin/binUse to update shells scripts.

update_links.shl Set or correct all link identifiers and crosslists for a term. See Link Identifiers

update_properties.shl Update the utadmin/config/custom.properties file from the CVS repository.

update_solver_bin.shl Update the utadmin/Solver/bin from the CVS repository: UniTimeAdmin/binUse to update shells scripts.

Scripts

Operations Page 25

Page 26: UniTime Banner Implementation Technical Documentation

Operations Page 26

Page 27: UniTime Banner Implementation Technical Documentation

UC4 Jobs

0010\REGISTRAR\UNITIME

Description UC4 Job Maintenance Frequency Scripts Executed Machines

Banner Department, Staff and Student data to UniTIme

PRD_REG_UNITIME_TIMETABLING_FALL_WL_JOBPPRD_REG_UNITIME_TIMETABLING_SPRING_WL_JOBPPRD_REG_UNITIME_TIMETABLING_SUMMER_WL_JOBP

&YEARTERM# needs to be updated annually

Nightly Banner: sz_pexam

UniTime: banner_data_load.sh

BannerUniTimeSolver1

Audit UniTime and Banner for differences. Banner Responses populated for end users

PRD_REG_UNITIME_DAILY_AUDIT Session information needs to be updated annually

Nightly send_banner_audit.shlunitime_audits.shl

UniTimeSolver1

Monitor that the integration queue processes are working properly

PRD_REG_UNITIME_QUEUE_MONITOR Every 10 minutes

UniTimeSolver1

Remove old log and temp files and old queueprocessor table records.

PRD_REG_UNITIME_CLEANUP Weekly 4am Sundays

cleanup.shl All UniTimeSolvers

Operations Page 27

Page 28: UniTime Banner Implementation Technical Documentation

Web Servers

All web activity log messages appear in TOMCAT/webapps/catalina.out

Log in TOMCATcd TOMCAT/webappstail -f catalina.out

Solver Servers

Log in solver server as utadmincd /home/users/utadmin/prd/Solver/prd/solver1/logtail -f debug.log

These are daily rolling log files.

Starting the solver appends /home/users/utadmin/prd/Solver/nohup.out.There might be useful trouble-shooting information here.

Queue Processor

Log in solver server as utadmintail -f logs/queueprocessor.log

These are daily rolling log files

Banner Loads

Log in solver server as utadminLook at /home/users/utadmin/prd/logs/banner_data_load*.log files.

Monitoring / Troubleshooting

Operations Page 28

Page 29: UniTime Banner Implementation Technical Documentation

Logs on file system in /home/users/utadmin/prd/logs subdirectory show that the queue processor is running and when packets are sent between the systems. Available for review by UniTime system administrator as needed

Integrationqueueerror –stores integration system errors□

integrationqueuein –stores incoming response packets from Banner□

integrationqueueout –stores outgoing packets exchanged with Banner□

Integration queue tables. Available for review by system administrator as needed.

banner_response –Reviewed regularly by end user via application user interface

UniTime tables:○

SZBUTML – activity and error log; Available for review by system administrator as needed

Banner tables:○

Real-Time Integration Logs

Available for review by UniTime system administrators as needed□

Logs on file system in /home/users/utadmin/prd/logs subdirectory show progress of load into UniTime and any errors that occurred.

Banner to UniTime load:○

Available for review by UniTime system administrators as needed□

Logs on file system in /home/users/utadmin/prd/logs subdirectory show progress of load into UniTime and any errors that occurred.

Daily UniTime/Banner audit:○

Batch interface logs

Logging

Operations Page 29

Page 30: UniTime Banner Implementation Technical Documentation

UniTime – Banner Audit and Sync

send_banner_audit.shl

SYNC=FALSE

(lpveautm01)

Generate Schedule

Packet with XML for

every section and crosslist for term

Put in Queue Processor

Queue Processor sends Full audit to Banner

Banner: SZ_UNITIME

Audits for differences

between UniTime and

Banner.

Prepares SCHEDULE_RESPO

NSE_PACKET with

messages indicating

differences

Queue Processor receives

SCHEDULE_RESPONSE

_PACKET from Banner

Queue Processor creates

Banner Message Responses

send_banner_audit.shl

SYNC=TRUE

(lpveautm01)

Generate Schedule

Packet with XML for

every section and

crosslist for term; Include request for SYNC

packet

Put in Queue Processor

Queue Processor sends Full audit to Banner

Banner: SZ_UNITIME

Audits for differences

between UniTime and

Banner.Prepares

SCHEDULE_RESPONSE_P

ACKET with messages

indicating differences

XML for sections and

crosslists with differences are

put in SYNC PACKET

Queue Processor

receives

SCHEDULE_RESPONSE

_PACKET and

SYNC_PACKET from Banner

Queue Processor creates

Banner Message Responses

Queue Processor put

SYNC_PACKET in QueueOut

Audit & Sync

Operations Page 30

Page 31: UniTime Banner Implementation Technical Documentation

export timetable@productionDatabase schema, recreate timetable user and import into target non-production database○

shutdown_qa or shutdown_dev or shutdown_trn

Before clone occurs, stop services:○

start_qa or start_dev or start_trn

When clone is complete, start services:○

Re-start web server○

Turn off automatic sending if confirmation emails○

To clone production to non-production:

CloningWednesday, September 09, 2009

1:59 PM

Operations Page 31

Page 32: UniTime Banner Implementation Technical Documentation

The solver services are set up to execute ~utadmin/startup and ~utadmin/shutdown when the machines are started up and shutdown, respectively.

These scripts start or shutdown the queue processor and solver servers.

On the dev/qa machine, there are separate startup and shutdown scripts for each environment: ~utadmin/startup_dev, ~utadmin/startup_qa, ~utadmin/startup_trn, ~utadmin/shutdown_dev, ~utadmin/shutdown_qa, ~utadmin/shutdown_trn.These are called by ~utadmin/startup and ~utadmin/shutdown, and can be used independently to start or shutdown each environment.

Startup and ShutdownSunday, December 20, 2009

8:16 AM

Operations Page 32

Page 33: UniTime Banner Implementation Technical Documentation

Create a new workspace

Check out these CVS Projects

:pserver:[email protected]:/cvsroot/unitime

UniTime as UniTime-SourceForgeCheckout:

SMAS_Common_Classes-smasdevqa01PurdueUniTimeCustomizations-smasdevqa01

Set up as Projects:

Using JDK1.6. Need more memory:

Build and deploy

Run PurdueUniTimeCustomizations/build.xml as Ant Build

Setup Eclipse, Build and Deploy

Development Page 33

Page 34: UniTime Banner Implementation Technical Documentation

PurdueUniTimeCustomizations\Distributions\Timetabling.warPurdueUniTimeCustomizations\Distributions\timetable.jarPurdueUniTimeCustomizations\Distributions\solver.jar

Creates the following files:

Web

Copy Timetabling.war to TOMCAT/webapps

/webapps/Timetabling/webapps/Timetabling.war

If JSP's have changed, its best to first delete:

so that Tomcat clears out work/Catalina/localhost/timetabling.Give Tomcat a few seconds to delete work files

May need to re-start tomcat.

Solver Servers

~utadmin/shutdown_envStop solver services:

env/Solver/envCopy timetable.jar and solver.jar to

~utadmin/startup_envStart services:

start_queue_processor.shlRestart queue processor :

solver.shl env stopexport SOLVER_CNT=2solver.shl env start

Restart solvers

Above scripts do the following:

This happens automatically when the machines are shutdown and started. See also: Startup and ShutdownThere are similarly-named scripts for env = dev, qa and trn and prd.

Development Page 34

Page 35: UniTime Banner Implementation Technical Documentation

Development Page 35

Page 36: UniTime Banner Implementation Technical Documentation

Testing HQL

Useful utility for building HQL.Administration….Utilities…Test HQL

Enter a query

View errors

View number of results returned

View first N results (don’t know how many)

View generated SQL

Example

select rp from SubjectArea as sa inner join sa.department as dept inner join dept.timetableManagers as mgr,BannerResponse rpwhere sa.session = 74759814and mgr.externalUniqueId = '10010487'and rp.subjectCode = sa.subjectAreaAbbreviation

Query:

(fetches all BannerResponses for Peter Cook for PWL Spring 2010)

HQL TestingThursday, August 06, 2009

7:17 AM

Development Page 36

Page 37: UniTime Banner Implementation Technical Documentation

Administration...Defaults...Configuration...tmtbl.system_message

System will be unavailable for a short period of time between 6am and 7am on Tuesday, February 23, 2010.

System MessagesMonday, August 10, 2009

6:16 PM

Development Page 37

Page 38: UniTime Banner Implementation Technical Documentation

UniTime is set up so that when the application starts it execute in UniTime\Documentation\Database\Oracle\Changes for new SQL files that automatically make database schema changes based on database version information it tracks in application property 'tmtbl.db.version'.

Purdue felt it would be more secure and best practice to have the application run as a different user than the timetabling schema owner. The application runs connected as WEBUSER, which only has explicit privileges granted via the webprivs.sql script on objects needed.

Therefore, when UniTime makes a schema change, the schema -changing SQL must be execute prior to deploying the .war file that contains that change.

Example:\UniTime\Documentation\Database\Oracle\Changes\47 Add receive emails to manager roles.sql

Database ChangesFriday, August 28, 2009

1:35 PM

Development Page 38

Page 39: UniTime Banner Implementation Technical Documentation

To create new menu items.

tmtbl.menu.admin.extra=leaf_item('Roll Forward Banner Session','Roll Forward Banner Session','rollForwardBannerSession.do'); leaf_item('Delete Projects Courses','Delete Projects Courses','deleteProjectCourses.do');

web: unitime.propertiesProperties: add to custom properties, e.g.•

add entries for myapp similar to other examples○

struts-config.xml•

add entries for myapp similar to other examples○

tiles-def.xml•

create a myappAction.java similar to other Action classes○

Action.java•

create a myappForm.java similar to other Form classes○

Form.java•

create a myapp.jsp simlar to other .jsp's○

.jsp•

New Menu ItemsWednesday, March 10, 2010

10:48 AM

Development Page 39

Page 40: UniTime Banner Implementation Technical Documentation

Banner Response Messages are sent from Banner to UniTime when a schedule packet is received from UniTime.

These messages are made available to the end user Banner Message page:

There are 3 types of messagesSuccess Messages•Error Messages•Audit Messages•

Banner Response Messages

Messages Page 40

Page 41: UniTime Banner Implementation Technical Documentation

Success log messages indicate what updates have been made in Banner as a result of a UniTime transaction. They appear on the UniTime Banner Message Responses page with TYPE=SUCCESS.

Transaction Type Message Text Explanation

Section Room created: BLDG ROOMNUMBER A room with the room number ROOMNUMBER did not exist in Banner for BLDG. A new room for an existing BLDG was created in Banner with ROOMNUMBER. First effective term is the term of the transaction.

Section Meeting inserted: Days: Begin time: End time: Building: Room: Start date: End date: Arrange:

A new meeting was created in Banner using the values shown.

Section Meeting deleted: Days: Begin time: End time: Building: Room: Start date: End date: Arrange:

A meeting with the values shown was deleted in Banner.

Section Meeting updated: Days: Begin time: End time: Building: Room: Start date: End date: Arrange:

A meeting was updated in Banner using the values shown.

Section Instructor inserted: Instructor deleted: ID: Primary: %Responsible: %Session:

A new instructor assignment was created in Banner using the values shown.

Section Instructor deleted: Instructor deleted: ID: Primary: %Responsible: %Session:

An instructor assignment with the values shown was deleted in Banner.

Section Instructor updated: Instructor deleted: ID: Primary: %Responsible: %Session:

A instructor assignment was updated in Banner to the values shown.

Note: SIBINST refers to the Banner 'Faculty/Instructor' record. Purdue creates one of these records for all employees. When they are assigned as instructor, the instructor indicator is check.

Section ID name SIBINST record created An instructor record was created for a person who did not previously have an instructor record, but does exist in Banner.

This means the person didn't come over from HR. You should check on the legitimacy of this instructor.

Section ID name SIBINST Inactive Status: i, set to active An instructor assignment was sent to Banner for an inactive instructor. The instructor was made active.

Follow up on the legitimacy of this instructor.

Section ID name SIBINST exists, but not Instructor; updated sibinst for term

Person is flagged as an instructor.

Section ID name SIBINST exists, but not Instructor;created sibinst for term

Person is flagged as an instructor.

Section Text narrative inserted: [first 20 characters...] Section note created.

Section Text narrative deleted: [first 20 characters...] Section note deleted.

Section Text narrative updated: [first 20 characters...] Section note updated.

Section Long title inserted: LongTitle Long titles not used in UniTime interface. Available for future use.

Section Link connector inserted: XX Link connector record was created with value XX

Section Link connector deleted: XX Link connector record with value XX was deleted

Section Link connector updated: XX Link connector record was updated to value XX

Section Section created New section created

Section CRN Starting Sequence Number set to nnnnn You should never see this. If you do, the Banner starting CRN was not set to the Banner-only CRN starting range (70000).

Section Catalog values copied to section Restrictions, requisites, attributes, fees were copied from catalog to section.

Section N Link connectors deleted A number, N, of link connectors were deleted. This would happen only if there were multiple link connectors for a section. This should not occur.

Section N Instructors deleted N instructor assignments deleted for section. This occurs when all meetings and instructor records must be deleted and re-added to a section when part-of-term data is changed. Part-of-term data includes section part-of-term, dates, schedule type, census dates and weeks.

Section N Meetings deleted N meetings deleted for section. This occurs when all meetings and instructor records must be deleted and re-added to a section when part-of-term data is changed. Part-of-term data includes section part-of-term, dates, schedule type, census dates and weeks.

Section Section updated One of the following section fields was updated:- section number- title- campus- schedule type- status (active/canceled)- gradable indicator- max enrollment

Success Messages

Messages Page 41

Page 42: UniTime Banner Implementation Technical Documentation

- credit- bill hours (only if matched credit before change)- session- approval- available for web registration- print indicator- link identifier- dates- part of term- census dates- weeks

Section Canceled Section was canceled

Section Deleted Section was deleted

Crosslist Crosslist created Crosslist group created.

Crosslist CRN added, Section with CRN added to crosslist group

Crosslist N sections deleted N sections were deleted from crosslist group

Crosslist N sections inserted N sections were added to crosslist group

Crosslist Max Enrollment updated Maximum enrollment of crosslist group was updated

Crosslist Enrollment updated Enrollment of crosslist group was updated. This occurs when sections are added or removed from a crosslist group.

Crosslist Seats available updated Seats available in crosslist updated

Crosslist Deleted Crosslist group deleted.

Messages Page 42

Page 43: UniTime Banner Implementation Technical Documentation

Error Messages occur when transactions fail and Banner is not updated. They appear on the UniTime Banner Message Responses p age with TYPE=ERROR.

Transaction Type

Message Text Explanation Remediation

Section Meeting with days and no time

Incomplete meeting information sent from UniTime. This should not occur.

Notify system administration for further investigation.

Section Meeting with time, but no days

Incomplete meeting information sent from UniTime. This should not occur.

Notify system administration for further investigation.

Section Section not in Banner A delete was sent to Banner for a section that does not exist. This can happen if a section was created in UniTime and rejected by Banner.

If section was previously rejected by Banner, no further action required. Section does not exist in either system.

If this error is received under different circumstances, notify system administration for further investigation.

Section Subject: USUBJ does not match Banner: BSUBJ

Banner received an update for a section. The subject on the record with the CRN sent from UniTime does not match what is in Banner.

Notify system administration for further investigation.

Section Course Number: UCRSEdoes not match Banner:BCRSE

Banner received an update for a section. The subject on the record with the CRN sent from UniTime does not match what is in Banner.

Notify system administration for further investigation.

Section Unable to lock section for update

Other system activity, such as registration, has locked the section record. Interface was unable to retrieve the section record for update in 10 tries.

Resend offering from Banner at a later, less busy time.

Section Error on attribute / Unknown Attribute

An unexpected attribute was sent from UniTime. Notify system administration for further investigation.

Section Error on attribute / Oracle error message

See Oracle error message. Could be that data sent from UniTime is too long for the Banner field or of the wrong data type.

Notify system administration for further investigation.

Section Negative Max Enrollment Invalid

UniTime sent a negative enrollment maximum. Should not occur. Notify system administration for further investigation.

Section No Course Record Found for Section

The course does not exist in the Banner catalog. Add course to Banner catalog.

Section CRN exceeds Banner starting CRN: nnnnn

UniTime sent a CRN that is outside the range of CRNs defined for UniTime on the SZBUTMT table.

Notify system administration for further investigation.

Section Instructor ID not found: ID name

No person record was found in Banner with ID. Name from UniTime is provided for informational purposes.

Investigate. All staff and students should exist in Banner. Correct person information in UniTime or add to Banner if appropriate.

Section Invalid section action Unexpected transaction action received from UniTime Notify system administration for further investigation.

Section N Primary instructors for section

Zero or more than one primary instructor indicated for section. This should not occur. The UniTime/Banner interface determines primary instructor based on greater percent share and alphabetical order.

Notify system administration for further investigation.

Section Part-of-term code not configured

The part of term derived for a section has not been set up on SOATERM.

Check SZBPTRM mapping table.

Crosslist Crosslist group not found A delete was sent to Banner for a crosslist that does not exist. This can happen if a crosslist was created in UniTime and rejected by Banner.

If crosslist was previously rejected by Banner, no further action required. Crosslist does not exist in either system.

If this error is received under different circumstances, notify system administration for further investigation.

Crosslist Unable to lock crosslist for update

Other system activity, such as registration, has locked the crosslist record. Interface was unable to retrieve the crosslist record for update in 10 tries.

Resend offering from Banner at a later, less busy time.

Crosslist Crosslist ID exceeds Banner starting ID:

UniTime sent a crosslist with an ID that is outside the range of crosslist IDs defined for UniTime on the SZBUTMT table.

Notify system administration for further investigation.

Crosslist Section with CRN nnnnn not found

A section with CRN nnnnn that UniTime is trying to add to a crosslist does not exist in Banner. This can happen if a section was created in UniTime and rejected by Banner.

Correct the circumstances that caused the member section to be rejected, and resend the offering to Banner.

Crosslist Invalid Crosslist Action Unexpected transaction action received from UniTime Notify system administration for further investigation.

Crosslist Error on attribute / Unknown Attribute

An unexpected attribute was sent from UniTime. Notify system administration for further investigation.

Crosslist Error on attribute / Oracle error message

See Oracle error message. Could be that data sent from UniTime is too long for the Banner field or of the wrong data type.

Notify system administration for further investigation.

Packet Header

Term code is required Transaction from UniTime omitted term code Notify system administration for further investigation.

Packet Header

Origin is required Transaction from UniTime omitted origin. Notify system administration for further investigation.

Packet Header

Invalid term code Term code sent from UniTime does not exist in STVTERM Review UniTime/Banner integration configuration: look at Banner Session table.

Packet Term not set up No SOATERM record exists in Banner for term. Review UniTime/Banner integration

Error Messages

Messages Page 43

Page 44: UniTime Banner Implementation Technical Documentation

Packet Header

Term not set up No SOATERM record exists in Banner for term. Review UniTime/Banner integration configuration: look at Banner Session table. Create SOATERM record if appropriate.

Packet Header

Term not active for UniTime integration

Term has not been configured for UniTime integration in Banner. See UniTime Banner Integration

Review UniTime/Banner integration configuration. Add configuration if appropriate.

Packet Header

Term not configured for UniTime integration (no SZBUTMT record)

Term has not been configured for UniTime integration in Banner. See UniTime Banner Integration

Review UniTime/Banner integration configuration. Add configuration if appropriate.

Packet Header

Invalid packet ACTION value Invalid action value in packet header. Valid values are AUDIT or null.

Notify system administration for further investigation.

Packet Header

Invalid IS_TRANSACTION value

Invalid is_transaction value in packet header. Valid values are Y and N.

Notify system administration for further investigation.

Packet Header

Invalid packet MODE value Invalid mode value in packet header. Valid values are AUDIT and UPDATE

Notify system administration for further investigation.

Packet Header

Invalid date format Invalid date format in packet header. Notify system administration for further investigation.

Packet Header

Class end date is not between term start/end dates

Sanity check: class end date from UniTime is not between term start and end dates.

Review dates in STVTERM in Banner, default date pattern for term in UniTime.

Common Errors from Banner API

There are many errors that could come from the Banner API's. Most won't occur.These are some of the most common:

Transaction Type

Message Text Explanation Remediation

Section Invalid Schedule Code for course in section

Course is not configured for this schedule type in the Banner catalog.

Add schedule type to catalog or re-configure course in UniTime.

Section Section credit hours/CEUs must equal course credit hours/CEUs

Credit hours sent from UniTime do not conform to the value defined in the Banner course catalog.

Adjust credit as appropriate in Banner or UniTime.

Section Section billing hours must equal course billing hours

Credit hours sent from UniTime do not conform to the value for billing hours defined in the Banner course catalog.

Adjust billing credit as appropriate in Banner or UniTime.

Section Section credit hours/CEUs must be in course credit hours/CEUs range

Credit hours sent from UniTime do not conform to the range defined in the Banner course catalog.

Adjust credit as appropriate in Banner or UniTime.

Section Section billing hours must be in course billing hours range

Credit hours sent from UniTime do not conform to the range for billing hours defined in the Banner course catalog.

Adjust billing credit as appropriate in Banner or UniTime.

Section Section exists with same subject, course, and section number

Duplicate section id. This should not be happening. Describe steps that led to this situation to system administration. Re-assign section identifiers.

Section Course has campus restriction, cannot create section

Course is not configured for this campus in the Banner catalog. Review course schedule restrictions.

Section Cannot change Part-of-Term fields when enrollments or meeting times exist, or when section is Open Learning

Probably attempted to change the start/end dates of the section. Create new section; move students to new section; cancel original section.

Messages Page 44

Page 45: UniTime Banner Implementation Technical Documentation

Transaction Type

Error Type Message Text Discrepancy

Section ERROR Section not in Banner Section exists in UniTime but not Banner.

Section ERROR Subject Subject is different

Section ERROR Course Number Course number is different

Section ERROR Section ID Section ID is different

Section ERROR Title Section titles are different

Section WARNING Title Course is not Variable title, but section has a title different from the course title that does not include '-HONORS'.

Section ERROR Campus Campus is different

Section ERROR Schedule Type Schedule Type is different

Section ERROR Gradable Gradable indicator is different

Section ERROR Max Enrollment Max Enrollment is different

Section ERROR Credit Hours Credit Hours is different

Section ERROR Session Session is different

Section ERROR Approval Approval is different

Section ERROR Web Available Web Available is different

Section ERROR Print Indicator Print Indicator is different

Section ERROR Link Identifier Link Identifier is different

Section ERROR Status Status is different

Section ERROR Section Start Date Section Start Date is different

Section ERROR Section End Date Section End Date is different

Section ERROR Section Weeks Section Weeks is different

Section ERROR Text Narrative Text Narrative is different

Section ERROR Part of Term Part of Term is different

Section ERROR Link Connector Link Connector is different

Section ERROR Meeting in ... Meetings don't match exactly between the systems.

Section ERROR Instructor in... Instructor assignments don't match exactly between the systems.

Section ERROR Instructor not in Banner Instructor does not exist in Banner.

Section WARNING Significant name difference

There is a significant difference in instructor name between the systems. Could be an identification issue.

Section ERROR Section in Banner, not UniTime

Section exists in Banner but not UniTime

Crosslist ERROR Cross-list in Banner, not UniTime

Crosslist exists in Banner but not UniTime

The UniTime/Banner interface provides the capability to compare all sections and crosslists in the two systems and report discrepancies. Results are available to the end user on the Banner Message Responses page.

When all is working as designed, discrepancies will occur only when Banner rejects UniTime transactions for some reason.

There is a synchronization process that will generate and run transactions to get the systems back in sync. The results of processing these transactions are also made available to the end user on the Banner Message Responses page.

The audit and sync process runs nightly on business days.•

Audit Messages

Messages Page 45

Page 46: UniTime Banner Implementation Technical Documentation

Crosslist ERRORUniTime

Crosslist exists in Banner but not UniTime

Crosslist ERROR Crosslist Max Enrollment

Max Enrollment is different

Crosslist ERROR UniTime not Banner or Banner not UniTime

Crosslist membership is out of sync between the systems. Crosslist member section with CRN shown is not a member of the crosslist in the other system.

Crosslist ERROR Crosslist group not found

Crosslist exists in UniTime but not Banner.

Messages Page 46