Вы находитесь на странице: 1из 46

Technical Overview

UniTime System to build and manage the university schedule of classes.

Banner University Student Information System.

Banner / UniTime System Integration for Academic Scheduling


(As of 7/13/2009 )

Room University Schedulers Community

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
Academic Room Scheduling

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 )
get lab schedules TLT computer lab schedules

Course Catalog Student Master Data Student Schedules Staff Info

Schedule of Classes

Banner UniTime Integration General Design


Repeat this process for Summer 10 and Fall10. These first 3 steps are one-time conversions. Spring11 schedule construction, same as Spring10

Spring09 Banner

Banner: Roll Spring09 to Spring10

Banner: Roll Spring10 to Spring11

UniTime Roll Spring10 to Spring11

Convert to UniTime

Construct Spring10 schedule in UniTime

Spring10 registration opens

Update schedule in UniTime

Spring10 ends

Real Time Interface: add/delete basic section data in Banner

INB: update Banneronly section data

Overview Page 1

Banner UniTime Integration General Design


Repeat this process for Summer 10 and Fall10. These first 3 steps are one-time conversions. Spring11 schedule construction, same as Spring10

Spring09 Banner

Banner: Roll Spring09 to Spring10

Banner: Roll Spring10 to Spring11

UniTime Roll Spring10 to Spring11

Convert to UniTime

Construct Spring10 schedule in UniTime

Spring10 registration opens

Update schedule in UniTime

Spring10 ends

Real Time Interface: add/delete basic section data in Banner

INB: update Banneronly section data

Banner: Spring 10 Sections

Batch Synchronization Process

Copied to sections when section created (szpcats ) Banner Catalog

UniTime Banner Integration Queue Processor Overview

UniTime Timetabling Application

Poll QueueOut for unprocessed items

Notices a Schedule Packet has appeared in QueueOut Batch process to generate schedule XML for all sections Banner: SZ_UNITIME Processes schedule packet based directives in XML

User reviews Banner Messages

User actions cause changes to sections

Timetabling app creates QueueOUT with SchedulePacketXML for sections and crosslists

Queue Processor sends Schedule packet to Banner

Queue Schedule XML Response XML

Queue Processor creates Banner Message Responses from schedule_response packet

Schedule_ response packet Schedule_ sync packet

Sync packet requested via XML?

sync packet is returned from Banner yes

no

Banner Response Messages Put sync packet in QueueOut

Overview Page 2

Basic Flow
Monday, July 13, 2009 4:34 PM

UniTime is the system of record for classes scheduled for the West Lafayette campus
When classes change in UniTime, SchedulePackets are sent to Banner. Banner processes the SchedulePacket: Create, updates, cancels or deletes sections Creates, updates or deletes crosslists Banner sends a ScheduleResponsePacket to UniTime UniTime records the Responses Responses are available to the end use via the Banner Messages page.

CRNs CRNs for UniTime-managed sections are generated in UniTime. A high range of CRNs are reserved for Banner-only use. Defined in table SZBUTMT
Crosslists Crosslists IDs are generated for classes that are crosslisted in UniTime 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. Defined in table SZBUTMT

Overview Page 3

SZ_UNITIME
Wednesday, August 05, 2009 9:07 PM

Banner Schedule Packet Processing: Banner Package: SZ_UNITIME 2 Basic procedures:


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.

Supporting Tables: SZBPTRM


SZBPTRM_PTRM_CODE SZBPTRM_CAMP_CODE SZBPTRM_DEFAULT_FOR_CAMP US SZBPTRM_SUBJ_CODE SZBPTRM_CRSE_NUMB Part of term code Campus code this PTRM is used with Y indicates this PTRM is the default for the campus Subject code; may contain wildcard % Course number; may contain wildcard %

SZBPTRM_SCHD_CODE

Schedule type; may contain wildcard %

SZ_UNITIME.f_default_ptrm Special rule can be defined via campus, subject, course and schedule code If these match, that's the part of term Otherwise, the table maps PTRM to campus and indicates the default. This is useful for the TSW campuses. -- 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

Overview Page 4

Schedule Packet
Monday, July 13, 2009 4:42 PM

Schedule packet consists of Packet Header contains packet-handling instructions Sections Update contains all the information that UniTime has about a section. Delete Audit Crosslists Update Delete Audit DTD: ScheduleDTD
Unitime-Banner Schedule XML Interface Data Structure Schedule Packet SCHEDULE PACKET_ID TERM_CODE ORIGIN 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

MEETING MEETING_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

MESSAGE

Overview Page 5

Unitime-Banner Schedule XML Interface Data Structure Schedule Packet SCHEDULE PACKET_ID TERM_CODE ORIGIN 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

MEETING MEETING_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

MESSAGE ACTIVITY_DATE SEQNO TERM_CODE CRN SUBJ_CODE CRSE_NUMB SEQ_NUMB XLST_GROUP EXTERNAL_ID ACTION (UPDATE|DELETE|AUDIT) TYPE (SUCCESS|ERROR|WARNING) MESSAGE PACKET_ID

Overview Page 6

Functional Documentation
Wednesday, August 05, 2009 7:51 PM

See these documents:


UniTime to Banner Interface User Documentation.docx UniTime Impact on Banner Schedule.docx

Overview Page 7

HOWTO
Monday, June 14, 2010 8:24 PM

How to Implement UniTime-Banner Integration


Banner 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 UniTime (See also tasklist_golive.xls for more details) Assumption: core UniTime has been installed an is functioning Core UniTime setup: session, buildings, rooms, departments, features, etc. Create Timetabling.war: Setup Eclipse, Build and Deploy Change edu.purdue.smas.custom.util.PurdueCatalogLink to link to your university Set up properties files for web server and solver server Configure security/login Add Banner integration tables to UniTime database Apply SQL changes: PurdueUniTimeCustomizations/Documentation/Database/Oracle/Changes/ 01 Initial Banner Tables.sql 01 Initial Banner Functions.sql 01 Initial Banner Views.sql If using different user for webapp: webuser permissions (PurdueUniTimeCustomizations \Documentation\Database\Oracle\SQL\webuser_privs.sql) 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

HOWTO Page 8

Conversion from Banner to UniTime


Option, set up these external table files: /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.)

Connect to Banner with developer account Run banner_to_unitime_setup.sql 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. and sz_banner_to_unitime_jul30.pck The package that creates the Banner offering and course demand XML load files for the term: /load/ENV/interfaces/esass_timetabling/banner_offering_201020_PWL.xml /load/ENV/interfaces/esass_timetabling/course_demand_201020_PWL.xml 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 Most up-to-date record of Spring10 conversion: tasklist_golive.xls Task list for Fall 10 conversion: tasklist_conversion4.xls>

Conversion Page 9

Tomcat Setup
New Instance copy everything under /shared subdirectories classes/log4j.properties conf subdirectory cacerts as binary create /shared/lib links
Setup for production: TOMCAT/shared/classes/log4j.properties TOMCAT/shared/lib/bcprov-jdk14-133.jar TOMCAT/shared/lib/naming-resources.jar TOMCAT/shared/lib/naming-factory.jar TOMCAT/shared/lib/naming-factory-dbcp.jar TOMCAT/shared/lib/smas-utils.tld TOMCAT/shared/lib/smas-utils-1.6.jar TOMCAT/shared/lib/smas-ldap-1.1.jar TOMCAT/shared/lib/conf/dbcp.properties TOMCAT/shared/lib/conf/dbcp_log4j.properties TOMCAT/shared/lib/conf/cacerts Create links for libraries: cd ln ln ln ln ln ln TOMCAT/shared/lib -s /usr/share/java/ant-launcher.jar . -s /usr/share/java/ant.jar . -s /usr/share/java/log4j.jar . -s /usr/share/java/jakarta-oro.jar . -s /usr/share/java/commons-validator.jar . -s /usr/share/java/commons-logging-api.jar .

UniTime user setup: Copy unitime.properties to the properties directory (home/users/unitime) ( for appropriate environment e.g. \UniTimeAdmin\properties\web\dev\unitime.properties) /home/users/unitime/cacerts /home/users/unitime/login.conf
Create subdirectories: TOMCAT/data/unitime/blob TOMCAT/data/unitime/passivate TOMCAT/data/unitime/restore

# Expand the max amount of memory for the JVM JAVA_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"/>

Tomcat Setup # Purdue Overrides

Web Page 10

# Purdue Overrides INSTANCE="yourTomcatInstanceName"


# Define the instance base directory CATALINA_BASE="/opt/tomcat5-instance/$INSTANCE" # Define a few other instance specific items CATALINA_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 is JAVA_OPTS="$JAVA_OPTS -Dedu.purdue.itap.itso.webservices.Tier=dev"

# Expand the max amount of memory for the JVM JAVA_OPTS="$JAVA_OPTS -Xmx1024m -XX:MaxPermSize=256m" # Define ORACLE_HOME for Oracle support ORACLE_HOME=/usr/lib/oracle # Define LD_LIBRARY_PATH to include the Oracle dynamic libraries LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/oracle/10.2.0.3/client/lib # Define options for UniTime JAVA_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 Eclipse JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=[yourPortNumber],server=y,suspend=n $JAVA_OPTS"

Web Page 11

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

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

These values are set in the custom properties file (/home/users/unitime/prod/unitime.properties) (from UniTimeAdmin CVS Repository for appropriate environment e.g. \UniTimeAdmin\properties\web\dev\unitime.properties) Note: administrative users can get to all functions regardless of the menu configuration.

Timetabling server: timetable.mypurdue.purdue.edu # Sidebar Menu configuration tmtbl.menu.display_course_timetabling=true tmtbl.menu.display_student_sectioning=true tmtbl.menu.display_exam_timetabling=true tmtbl.menu.display_personal_schedule=false tmtbl.menu.display_event_management=false
Event Mgmt server: roomschedule.mypurdue.purdue.edu # Sidebar Menu configuration tmtbl.menu.display_course_timetabling=false tmtbl.menu.display_student_sectioning=false tmtbl.menu.display_exam_timetabling=false tmtbl.menu.display_personal_schedule=true tmtbl.menu.display_event_management=true

Configuration Page 12

Stylesheets
This site is useful for coming up with color schemes: http://www.2createawebsite.com/build/hexcolors.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.

Configuration Page 13

Header and Footer


Custom properties: tmtbl.header.external and tmtbl.footer.external can 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. Solution: all referenced images and stylesheets were copied to PurdueUniTimeCustomizations/WebContent/styles/puHeader PurdueUniTimeCustomizations/WebContent/images/puHeader directories and referenced locally. This also shields us from any changes external sites might make.

Configuration Page 14

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

Web Servers /home/users/unitime/env/unitime.properties


Come from UniTimeAdmin repository: UniTimeAdmin/properties/web/env/unitime.properties Solver Servers /home/users/utadmin/env/config/custom.properties

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

Configuration Page 15

Help Pages
Thursday, January 14, 2010 2:07 PM

tmtbl.help.manual.input_data http://www.purdue.edu/registrar/pdf/Unitime_Data_Entry_Manual.pdf Data input manual URL

Configuration Page 16

Overview

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.
PL/SQL Procedures are defined to implement rules to generate and validate Banner-specific data: generate CRN generate link id generate crosslist id generate section identifier validate section identifier See Properties.
Banner UniTime Integration Data model add -ons to support managing Banner information in UniTime
Sessions Academic Initiative Year Term Status Core UniTime

Purdue Customization

Banner_Session Term Code Campus store_data_for_banner send_data_to_banner loading_offerings_file

Instructional Offering Consent_type Ccredit

Course Offering Subject Course Number Title (short) Credit

Configuration Unlimited Enrollment

Subpart Instructional Type Hours per week Banner_Course (no data; available for future use) Banner_Config BannerCourseId Gradable itype parent Class Expected Capacity Class times Locations Instructors

parent

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

Class Join Section UniqueId Banner Section Id ClassId

PurdueUniTimeCustomizations Page 17

Link Identifiers
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 Run shell script update_links.shl <initiative> <year> <term> # initiative Academic Initiative (e.g. PWL) # year Year (e.g. 2010) # term Term (e.g. Spring) 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.

PurdueUniTimeCustomizations Page 18

Queue Processor

UniTime Banner Integration


UniTime Timetabling Application UniTime/Banner QueueProcessor unexpected errors QueueERROR uniqueId error type error date error text

Poll QueueOut for unprocessed items Notices unprocessed queueOut item

User actions cause changes to sections

Timetabling app creates QueueOUT with SchedulePacketXML and sets PostDate

Sets QueueOut PickupDate Status=PickedUp

Send Schedule Packet XML to Banner and wait for response

QueueOUT uniqueId XML Status Postdate PickupDate ProcessDate

connect to Banner as UNITIME user

QueueIN uniqueId XML MatchId Status Postdate ProcessDate

Banner Response uniqueId seqno activity date CRN subj_code crse_numb xlst_group external_id action type message packet id queue id Transaction log, errors and warnings sent from Banner

Banner SZ_UNITIME .( in: schedule packet out: schedule response)

Set QueueOut ProcessDate Status=Processed

Create QueueIn XML=ScheduleResponse MatchId ProcessDate Status=Processed

Parses schedule response XML to create BANNER_RESPONSE messages Sets QueueIn process date and status=processed

PurdueUniTimeCustomizations Page 19

Properties

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 action tmtbl.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 deleted tmtbl.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 action tmtbl.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 action tmtbl.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 action tmtbl.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 action tmtbl.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 uncommited tmtbl.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 uncommited tmtbl.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 identifier banner.section_id.generator={?= call timetable.section_processor.get_section(?,?,?)} # Property to define stored procedure that is called to get new banner croslist identifier banner.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 course banner.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 crn banner.crn.generator={?= call timetable.crn_processor.get_crn(?)}

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

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

PurdueUniTimeCustomizations Page 20

Banner to UniTime
There is a nightly batch process that sends information from Banner to UniTime. Banner Package: SZ_PEXAM prepares XML files. e.g. sz_pexam.p_get_departments(201010) prepares esass_timetabling/banner_dept_201010.xml sz_pexam.p_get_staff(201010) esass_timetabling/banner_staff_201010.xml sz_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.xml banner_data_load.shl banner_staff_201010.xml banner_data_load.shl banner_student_201010.xml UC4 Job: \REGISTRAR\UNITIME\JOBPLANS PRD_REG_UNITIME_TIMETABLING_FALL_WL_JOBP PRD_REG_UNITIME_TIMETABLING_SPRING_WL_JOBP PRD_REG_UNITIME_TIMETABLING_SUMMER_WL_JOBP

Departments basic department info: name, code updates UniTime table: DEPARTMENT
Staff basic staff data: Id, name, department populates UniTime table: STAFF (not pos_code, email)

does not update departmental_instructor, which is the source of instructor's name there is SQL I developed that will update departmental_instructor's names: PurdueUniTimeCustomizations\Documentation\Database\Oracle\SQL \update_dept_instr_from_staff.sql Students basic student enrollment information student id, name, sections enrolled in Populates UniTime tables: STUDENT, STUDENT_CLASS_ENRL

Banner To UniTime Page 21

Code Deployment

Delete: webapps/Timetabling Timetabling.war Give Tomcat a few seconds to delete work files
Drop in new Timetabling.war May need to re-start tomcat

Operations Page 22

Solver Servers

All non-web operations take place on the solver server machines. User: UTADMIN Directory Structure /home/users/utadmin

Files in root: .unitime_profile Instance subdirectory structure There is a subdirectory for each instance hosted on the server: /dev /qa /qaexam /trn /prd /prdexam

/bin Shell scripts /config Configuration; properties files /data Data exchange; used for batch processes by UC4 /toBanner /fromBanner /logs Log files from batch processes and queue processor /Solver 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. /bin Shell scripts used by solver /env All JAR files used for solver and UniTime operations. /solvern These directories are created as needed when a solver is started. /backup /log tail -f debug.log to watch solver activity Rolled daily /passivate Passivated solutions

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

Operations Page 23

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

Scripts

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.
Load conversion XML file. Only used for the one-time per term conversions. Essentially the same as

banner_conv_load.shl

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.
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. Remove old log and temp files and old queueprocessor records Dagmar's filelist script. Lists files in a directory in reverse time order and pipes to more.

banner_data_load.shl

cleanup.shl fl

get_property.shl
kill_queue_processor.awk

Get property from custom.properties


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

list_queue_processor.awk
list_queue_processor.shl

awk script used by 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
mailtest.shl queue_processor_check.shl send_banner_audit.shl

List files by size - useful for finding large files.


Script to test sending mail Script to check if queue processor is working. Run by UC4 every 10 minutes. Sends email to designated support staff. 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.shl env commands env dev|qa|qaexam|prd|prdexam commands are sent as arguments to Solver/bin/solver. Start a solver: solver.shl qa start Start 3 solvers: export SOLVER_CNT=3 solver.shl qaexamstart Stop all solvers: solver.shl prd stop

solver.shl

start_queue_processor.shl stop_queue_processor.shl unitime_audits.shl unitime_audits.sql update_bin.shl update_links.shl update_properties.shl

Start queue processor. First stops any running queue processor using

stop_queue_processor.shl
Stop all running queue processors for an instance (dev,qa,trn or prd) Run UniTime audits and sanity checks. Notify administrators via e-mail if there is a problem. UniTime audits and sanity checks SQL used by unitime_audits.sql. This checks for conditions that should never occur. Update utadmin/bin from the CVS repository: UniTimeAdmin/bin Use to update shells scripts. Set or correct all link identifiers and crosslists for a term. See Link Identifiers 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/bin Use to update shells scripts.

Operations Page 25

Operations Page 26

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 &YEARTERM# needs to be updated _WL_JOBP PRD_REG_UNITIME_TIMETABLING_SPRI annually NG_WL_JOBP PRD_REG_UNITIME_TIMETABLING_SUM MER_WL_JOBP PRD_REG_UNITIME_DAILY_AUDIT Session information needs to be updated annually

Nightly

Banner: sz_pexam
UniTime: banner_data_loa d.sh

Banner UniTimeSol ver1

Audit UniTime and Banner for differences. Banner Responses populated for end users Monitor that the integration queue processes are working properly Remove old log and temp files and old queueprocessor table records.

Nightly

send_banner_au UniTimeSol dit.shl ver1 unitime_audits.sh l UniTimeSol ver1 cleanup.shl All UniTimeSol vers

PRD_REG_UNITIME_QUEUE_MONITOR PRD_REG_UNITIME_CLEANUP

Every 10 minutes Weekly 4am Sundays

Operations Page 27

Monitoring / Troubleshooting
Web Servers

All web activity log messages appear in TOMCAT/webapps/catalina.out Log in TOMCAT cd TOMCAT/webapps tail -f catalina.out

Solver Servers Log in solver server as utadmin cd /home/users/utadmin/prd/Solver/prd/solver1/log tail -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 utadmin tail -f logs/queueprocessor.log These are daily rolling log files

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

Operations Page 28

Logging
Real-Time Integration Logs 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 UniTime tables: Integration queue tables. Available for review by system administrator as needed. Integrationqueueerror stores integration system errors integrationqueuein stores incoming response packets from Banner integrationqueueout stores outgoing packets exchanged with Banner banner_response Reviewed regularly by end user via application user interface Banner tables: SZBUTML activity and error log; Available for review by system administrator as needed Batch interface logs Banner to UniTime load: Logs on file system in /home/users/utadmin/prd/logs subdirectory show progress of load into UniTime and any errors that occurred. Available for review by UniTime system administrators as needed Daily UniTime/Banner audit: Logs on file system in /home/users/utadmin/prd/logs subdirectory show progress of load into UniTime and any errors that occurred. Available for review by UniTime system administrators as needed

Operations Page 29

Audit & Sync


UniTime Banner Audit and Sync

send_banner_audit.shl SYNC=FALSE (lpveautm01)

send_banner_audit.shl SYNC=TRUE (lpveautm01)

Generate Schedule Packet with XML for every section and crosslist for term

Put in Queue Processor

Generate Schedule Packet with XML for every section and crosslist for term; Include request for SYNC packet Banner: SZ_UNITIME Audits for differences between UniTime and Banner. Prepares SCHEDULE_RESPO NSE_PACKET with messages indicating differences

Put in Queue Processor Banner: SZ_UNITIME Audits for differences between UniTime and Banner. Prepares SCHEDULE_RESPONSE_P ACKET with messages indicating differences Queue Processor sends Full audit to Banner XML for sections and crosslists with differences are put in SYNC PACKET

Queue Processor sends Full audit to Banner

Queue Processor receives SCHEDULE_RESPONSE _PACKET from Banner

Queue Processor receives SCHEDULE_RESPONSE _PACKET and SYNC_PACKET from Banner

Queue Processor creates Banner Message Responses

Queue Processor put SYNC_PACKET in QueueOut

Queue Processor creates Banner Message Responses

Operations Page 30

Cloning
Wednesday, September 09, 2009 1:59 PM

To clone production to non-production: export timetable@productionDatabase schema, recreate timetable user and import into target non-production database Before clone occurs, stop services: shutdown_qa or shutdown_dev or shutdown_trn When clone is complete, start services: start_qa or start_dev or start_trn Re-start web server Turn off automatic sending if confirmation emails

Operations Page 31

Startup and Shutdown


Sunday, December 20, 2009 8:16 AM

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.

Operations Page 32

Setup Eclipse, Build and Deploy

Create a new workspace


Check out these CVS Projects

:pserver:anonymous@unitime.cvs.sourceforge.net:/cvsroot/unitime Checkout: UniTime as UniTime-SourceForge Set up as Projects: SMAS_Common_Classes-smasdevqa01 PurdueUniTimeCustomizations-smasdevqa01 Using JDK1.6. Need more memory:

Build and deploy

Run PurdueUniTimeCustomizations/build.xml as Ant Build

Development Page 33

Creates the following files: PurdueUniTimeCustomizations\Distributions\Timetabling.war PurdueUniTimeCustomizations\Distributions\timetable.jar PurdueUniTimeCustomizations\Distributions\solver.jar

Web Copy Timetabling.war to TOMCAT/webapps If JSP's have changed, its best to first delete: /webapps/Timetabling /webapps/Timetabling.war 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
Stop solver services: ~utadmin/shutdown_env Copy timetable.jar and solver.jar to env/Solver/env Start services: ~utadmin/startup_env Above scripts do the following: Restart queue processor : start_queue_processor.shl Restart solvers solver.shl env stop export SOLVER_CNT=2 solver.shl env start

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

Development Page 34

Development Page 35

HQL Testing
Thursday, August 06, 2009 7:17 AM

Testing HQL
Useful utility for building HQL. Administration.UtilitiesTest HQL Enter a query View errors View number of results returned View first N results (dont know how many) View generated SQL

Example
Query: select rp from SubjectArea as sa inner join sa.department as dept inner join dept.timetableManagers as mgr, BannerResponse rp where sa.session = 74759814 and mgr.externalUniqueId = '10010487' and rp.subjectCode = sa.subjectAreaAbbreviation (fetches all BannerResponses for Peter Cook for PWL Spring 2010)

Development Page 36

System Messages
Monday, August 10, 2009 6:16 PM

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.

Development Page 37

Database Changes
Friday, August 28, 2009 1:35 PM

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

Development Page 38

New Menu Items


Wednesday, March 10, 2010 10:48 AM

To create new menu items. Properties: add to custom properties, e.g. web: unitime.properties 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'); struts-config.xml add entries for myapp similar to other examples tiles-def.xml add entries for myapp similar to other examples Action.java create a myappAction.java similar to other Action classes Form.java create a myappForm.java similar to other Form classes .jsp create a myapp.jsp simlar to other .jsp's

Development Page 39

Banner Response Messages

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 messages Success Messages Error Messages Audit Messages

Messages Page 40

Success Messages
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 Section Message Text Room created: BLDG ROOMNUMBER Explanation A room with the room number ROOMNUMBE R 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 Section Section Section Section Section

Meeting inserted: Days: Begin time: End time: Building: A new meeting was created in Banner using the values shown. Room: Start date: End date: Arrange: Meeting deleted: Days: Begin time: End time: Building: Room: Start date: End date: Arrange: A meeting with the values shown was deleted in Banner.

Meeting updated: Days: Begin time: End time: Building: A meeting was updated in Banner using the values shown. Room: Start date: End date: Arrange: Instructor inserted: Instructor deleted: ID: Primary: % Responsible: %Session: Instructor deleted: Instructor deleted: ID: Primary: % Responsible: %Session: Instructor updated: Instructor deleted: ID: Primary: % Responsible: %Session: A new instructor assignment was created in Banner using the values shown. An instructor assignment with the values shown was deleted in Banner. 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 Section Section Section Section Section Section Section Section Section Section Section Section

ID name SIBINST exists, but not Instructor; updated sibinst for term ID name SIBINST exists, but not Instructor;created sibinst for term Text narrative inserted: [first 20 characters...] Text narrative deleted: [first 20 characters...] Text narrative updated: [first 20 characters...] Long title inserted: LongTitle Link connector inserted: XX Link connector deleted: XX Link connector updated: XX Section created CRN Starting Sequence Number set to nnnnn Catalog values copied to section N Link connectors deleted

Person is flagged as an instructor. Person is flagged as an instructor. Section note created. Section note deleted. Section note updated. Long titles not used in UniTime interface. Available for future use. Link connector record was created with value XX Link connector record with value XX was deleted Link connector record was updated to value XX New section created You should never see this. If you do, the Banner starting CRN was not set to the Banner-only CRN starting range (70000). Restrictions, requisites, attributes, fees were copied from catalog to section. 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. 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. 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. One of the following section fields was updated: - section number - title - campus - schedule type - status (active/canceled) - gradable indicator - max enrollment

Section

N Instructors deleted

Section

N Meetings deleted

Section

Section updated

Messages Page 41

- 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 Section Crosslist Crosslist Crosslist Crosslist Crosslist Crosslist Crosslist


Crosslist

Canceled Deleted Crosslist created CRN added, N sections deleted N sections inserted Max Enrollment updated Enrollment updated Seats available updated
Deleted

Section was canceled Section was deleted Crosslist group created. Section with CRN added to crosslist group N sections were deleted from crosslist group N sections were added to crosslist group Maximum enrollment of crosslist group was updated Enrollment of crosslist group was updated. This occurs when sections are added or removed from a crosslist group. Seats available in crosslist updated
Crosslist group deleted.

Messages Page 42

Error Messages
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 Section Section Section Message Text Meeting with days and no time Meeting with time, but no days Section not in Banner Explanation Incomplete meeting information sent from UniTime. This should not occur. Incomplete meeting information sent from UniTime. This should not occur. 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. Remediation Notify system administration for further investigation. Notify system administration for further investigation. 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 Course Number: UCRSE does not match Banner: BCRSE Unable to lock section for update Error on attribute / Unknown Attribute Error on attribute / Oracle error message Negative Max Enrollment Invalid 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. 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. Other system activity, such as registration, has locked the section record. Interface was unable to retrieve the section record for update in 10 tries. An unexpected attribute was sent from UniTime. 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. Notify system administration for further investigation. Resend offering from Banner at a later, less busy time. Notify system administration for further investigation. Notify system administration for further investigation.

Section

Section

Section Section

Section

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

Section
Section Section

No Course Record Found for Section

The course does not exist in the Banner catalog.

Add course to Banner catalog.


Notify system administration for further investigation. Investigate. All staff and students should exist in Banner. Correct person information in UniTime or add to Banner if appropriate. Notify system administration for further investigation. Notify system administration for further investigation.

CRN exceeds Banner starting UniTime sent a CRN that is outside the range of CRNs defined CRN: nnnnn for UniTime on the SZBUTMT table. Instructor ID not found: ID name Invalid section action N Primary instructors for section No person record was found in Banner with ID. Name from UniTime is provided for informational purposes. Unexpected transaction action received from UniTime 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. The part of term derived for a section has not been set up on SOATERM. 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.

Section Section

Section Crosslist

Part-of-term code not configured Crosslist group not found

Check SZBPTRM mapping table. 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 Crosslist ID exceeds Banner starting ID: Section with CRN nnnnn not found Invalid Crosslist Action Error on attribute / Unknown Attribute Error on attribute / Oracle error message Term code is required Origin is required Invalid term code

Other system activity, such as registration, has locked the crosslist record. Interface was unable to retrieve the crosslist record for update in 10 tries. UniTime sent a crosslist with an ID that is outside the range of crosslist IDs defined for UniTime on the SZBUTMT table. 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. Unexpected transaction action received from UniTime An unexpected attribute was sent from UniTime. See Oracle error message. Could be that data sent from UniTime is too long for the Banner field or of the wrong data type. Transaction from UniTime omitted term code Transaction from UniTime omitted origin. Term code sent from UniTime does not exist in STVTERM

Resend offering from Banner at a later, less busy time. Notify system administration for further investigation. Correct the circumstances that caused the member section to be rejected, and resend the offering to Banner. Notify system administration for further investigation. Notify system administration for further investigation. Notify system administration for further investigation. Notify system administration for further investigation. Notify system administration for further investigation. Review UniTime/Banner integration configuration: look at Banner Session table. Review UniTime/Banner integration

Crosslist Crosslist

Crosslist Crosslist Crosslist

Packet Header Packet Header Packet Header Packet

Term not set up

No SOATERM record exists in Banner for term.

Messages Page 43

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.
Review UniTime/Banner integration configuration. Add configuration if appropriate. Review UniTime/Banner integration configuration. Add configuration if appropriate. Notify system administration for further investigation. Notify system administration for further investigation. Notify system administration for further investigation. Notify system administration for further investigation. Review dates in STVTERM in Banner, default date pattern for term in UniTime.

Packet Header

Term not active for UniTime integration

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

Packet Header Packet Header Packet Header Packet Header Packet Header Packet Header

Term not configured for UniTime integration (no SZBUTMT record) Invalid packet ACTION value Invalid IS_TRANSACTION value Invalid packet MODE value Invalid date format

Term has not been configured for UniTime integration in Banner. See UniTime Banner Integration Invalid action value in packet header. Valid values are AUDIT or null. Invalid is_transaction value in packet header. Valid values are Y and N. Invalid mode value in packet header. Valid values are AUDIT and UPDATE Invalid date format in packet header.

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

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:
Transactio Message Text n Type Section Section Invalid Schedule Code for course in section Section credit hours/CEUs must equal course credit hours/CEUs Section billing hours must equal course billing hours Section credit hours/CEUs must be in course credit hours/CEUs range Explanation Course is not configured for this schedule type in the Banner catalog. Credit hours sent from UniTime do not conform to the value defined in the Banner course catalog. Credit hours sent from UniTime do not conform to the value for billing hours defined in the Banner course catalog. Credit hours sent from UniTime do not conform to the range defined in the Banner course catalog. Remediation Add schedule type to catalog or reconfigure course in UniTime. Adjust credit as appropriate in Banner or UniTime. Adjust billing credit as appropriate in Banner or UniTime. Adjust credit as appropriate in Banner or UniTime. Adjust billing credit as appropriate in Banner or UniTime. This should not be happening. Describe steps that led to this situation to system administration. Re-assign section identifiers. Review course schedule restrictions. Create new section; move students to new section; cancel original section.

Section Section

Section Section

Section billing hours must be in Credit hours sent from UniTime do not conform to the range for course billing hours range billing hours defined in the Banner course catalog. Section exists with same subject, course, and section number Course has campus restriction, cannot create section Cannot change Part-of-Term fields when enrollments or meeting times exist, or when section is Open Learning Duplicate section id.

Section

Course is not configured for this campus in the Banner catalog. Probably attempted to change the start/end dates of the section.

Section

Messages Page 44

Audit Messages
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.
Transaction Type
Section Section Section

Error Type
ERROR ERROR ERROR

Message Text
Section not in Banner Subject Course Number

Discrepancy
Section exists in UniTime but not Banner. Subject is different Course number is different

Section
Section

ERROR
ERROR

Section ID
Title

Section ID is different
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'.
Campus is different Schedule Type is different Gradable indicator is different Max Enrollment is different Credit Hours is different

Section Section Section Section Section

ERROR ERROR ERROR ERROR ERROR

Campus Schedule Type Gradable Max Enrollment Credit Hours

Section
Section

ERROR
ERROR

Session
Approval

Session is different
Approval is different

Section
Section Section Section Section Section Section Section Section

ERROR
ERROR ERROR ERROR ERROR ERROR ERROR ERROR ERROR

Web Available
Print Indicator Link Identifier Status Section Start Date Section End Date Section Weeks Text Narrative Part of Term

Web Available is different


Print Indicator is different Link Identifier is different Status is different Section Start Date is different Section End Date is different Section Weeks is different Text Narrative is different Part of Term is different

Section
Section

ERROR
ERROR

Link Connector
Meeting in ...

Link Connector is different


Meetings don't match exactly between the systems.

Section
Section

ERROR
ERROR

Instructor in...
Instructor not in Banner

Instructor assignments don't match exactly between the systems.


Instructor does not exist in Banner.

Section

WARNING

Significant name difference


Section in Banner, not UniTime Cross-list in Banner, not UniTime

There is a significant difference in instructor name between the systems. Could be an identification issue.
Section exists in Banner but not UniTime Crosslist exists in Banner but not UniTime

Section Crosslist

ERROR ERROR

Messages Page 45

Crosslist
Crosslist Crosslist

ERROR UniTime
ERROR ERROR Crosslist Max Enrollment UniTime not Banner or Banner not UniTime Crosslist group not found

Crosslist exists in Banner but not UniTime


Max Enrollment is different 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 exists in UniTime but not Banner.

Crosslist

ERROR

Messages Page 46

Вам также может понравиться