/
Timetabler Automatic Import

Timetabler Automatic Import

Revision History

Revision

Author

Date

Comment

v1.0

David Armstrong

25/07/16

First Version

v1.1David Armstrong15/05/18Move to Confluence
v1.2David Armstrong22/05/18

Meeting / Unavailable Support.

New Action Message Types

v1.3David Armstrong02/01/19Yard Duty Extras Support
v1.4Andrew Rose13/09/22Timetabler V10

Overview 

The timetable automatic import extracts information directly from the ‘Timetabler’ software. Currently it supports importing the timetable, yard duties and teacher / room replacements.
Instead of exporting files out of Timetabler and into Synergetic this method allows you to select Timetabler database files to import directly. There are 2 files that are used in this process.
Timetabler database file:

This contains the timetable itself along with the students in the class and the teachers against the class. This also contains yard duties. 

Timetabler VersionFile ExtensionFile Type
8tdfxAccess File
9tdf9XML File
10tfxJSON file


Daily organiser database file:

This contains the staff extras / room replacements. 

Timetabler VersionFile ExtensionFile Type
8dofxAccess File
9dof9XML File
10NOT YET IMPLEMENTED - use version 9 file

Setup Requirements:

  • The automatic import first needs to be installed on the SQL server. For Timetabler Version 8 this utilises the Microsoft office Access database engine to connect to the Timetabler databases. There are specific SQL jobs that also need to be created in order for the integration to function.
  • The SQL Server service account needs to have access to the folder where the database files are stored. You can view which account this is by opening SQL Configuration Manager. 
  • Synergetic needs to be configured to point to the Timetabler database location(s) with settings for when& how to import.

Synergetic Timetabler Configuration

Synergetic needs to be configured to import the files. This is done through Students -> Timetable Maintenance.

Timetable Config Tab 

FieldDescription
TimetableCodeThis is the code that is used when importing the timetable. This is used when creating the linked server to the database and is also populated into the staging tables to differentiate the different imports. 
DescriptionA description of the timetable being imported. This is an internal description which isn’t populated through the imports. 
TimetablePathThe location of the file either on the network or locally on the SQL server itself. This is the location that the SQL server service account needs access to. 
FileYearThe Year that we are importing into. 
FileSemesterThe Semester / Term that we are importing into. 
FileTypeThe FileType we are importing into. 
ClassCampusThe ClassCampus that is being imported 
TimetableGroupThe TimetableGroup that is being import 
TimetableType

What type of import are we doing:

Valid Values:

CodeDescription
TIMETABLERTimetable data
TIMETABLEREXTExtras / Room replacements
TIMETABLERYDYard duties
TIMETABLERYDEXTYard Duties Extras / Room replacements
YearLevelFrom

The starting year level that we are importing. The import will only import students who are in the year levels in this range. The year level needs to be set up in Timetabler against the class details.

This is imported from the following Timetabler locations:

Timetabler VersionField
8CDETAIL.Year Level 
9TimetableDevelopmentData/Students/Student/YearLevel
10Students.YearLevel
YearLevelTo

The end year level that we are importing. The import will only import students who are in the year levels in this range. The year level needs to be set up in Timetabler against the class details.

This is imported from the following Timetabler locations:

Timetabler VersionField
8CDETAIL.Year Level 
9TimetableDevelopmentData/Students/Student/YearLevel
10Students.YearLevel
StudentLinkField

Timetabler stores a student code in the database. This is what that code represents in Synergetic and what we will be matching it to.

Valid Values:

CodeDescription
AltCodeMatch based on Alternate Code
IDMatch based on Synergetic ID
PreviousSystemCodeMatch based on Previous System Code
TimetableCodeMatch based on Timetable Code.
StaffLinkField

Timetabler stores a staff code in the timetable. This is what that code represents in Synergetic.

Valid Values:

CodeDescription
IDMatch based on SynergeticID
SchoolStaffCode Match based on School Staff Code
ImportOrderSeqThe order that we importing the files in.
TimetableOperationMode

This links to luTimetableOperationMode which has various settings for the import. See below for all of the options. 

Examples might be as follows:

CodeDescriptionMeaning
TERMTerm ModeClear Staff & Set any Student Class changes to be Non-Assessable during term
ASSESSAssessment ModeClear Staff but don't Set any Student Class changes to be Non-Assessable during Report writing
ImportStartDateTimeThe date that the import will start from. If the date the import is running doesn’t fall inside this range then nothing will be imported. 
ImportEndDateTimeThe date that the import will end. If the date the import is running doesn’t fall inside this range then nothing will be imported. 
EnabledFlagWhether the import is enabled. If this is set to 0 then nothing will be imported for the schedule selected. 
PeriodOffsetThis field allows you to set an offset on the periods that are being imported. This adjusts the timetable period that is being imported by the periodoffset. 
ImportMeetingsFlag

This Flag controls whether to import meetings from Timetabler. This defaults to 0 (False).

ValueMeaning
0Meetings are Not Imported
1Meetings are Imported
ImportUnavailableFlag

This Flag controls whether to import Teacher Unavailable records from Timetabler. This defaults to 0 (False).

ValueMeaning
0Teacher Unavailable records are Not Imported
1Teacher Unavailable records Meetings are Imported


luTimetableOperationMode

This looking table controls various options around the Automatic Import of the Timetable

FieldDescription
SetExistingNonAssessableFlagIf class not imported for students with matching campus and year level this class is set to non-assessable. 
SetNewNonAssessableFlagIf there are new classes in Timetabler that are not in Synergetic this controls the Assessable flag for these classes. If there are new classes being imported from the import they are set to non-assessable. 
SetStoppedFlag

When Ticked:

If the student is in the class currently in Synergetic but no longer in the class in Timetabler then the stop date will be set with the date the timetable import was processed minus 1 day.

ie if the import was processed on the 06/02/2021 then the stop date would be 05/02/2021.

When Unticked:

Students will remain in classes regardless of if they are no longer in the Timetabler import file. New classes will be added in and no stop dates will be updated.

AllowCoreClassClearFlagIf Set this will also clear Synergetic Classes that are marked as Core Classes. If not set Synergetic Classes that are marked as Core classes are not cleared.
ClearStaffFlag

Clear the staff against the classes in Synergetic based on the campus that is being imported.

Note: this will only clear classes where the Never Clear on Timetable import and Keep Assessable Flags are unticked.

CreateLuRoomFlagCreates entries in luRoom in Synergetic based on data from Timetabler if the Room Code exists in Timeabler but not in Synergetic.
RemoveAsterixFlag

Removes asterixes from the end of the Staff Code from Timetabler before importing.
Ie CDA* is imported as CDA

UpdateFormFlag

Updates the Synergetic Student Form from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8CLESSON.Roll Class Code
9TimetableDevelopmentData/Students/Student/RollClass
10Students.RollClass
ExplodeObjectsFlagImports the timetable into Object bookings 
UpdateClassDescriptionFlagUpdates the class description based on the timetable.
UpdateTutorFlag

Updates the Synergetic Student Tutor from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8CDETAIL.Home Group
9TimetableDevelopmentData/Students/Student/HomeGroup


Transfer Term Configuration

When you create the new term you will need to copy across the timetable configuration for the previous term.

This is done through Students → Timetable Maintenance in the Timetable Config tab. You will need to select the term you want to copy from first.

  1. Select Students > Timetable Maintenance tab > Timetable Config sub-tab.
  2. Select an existing timetable in the grid area.
  3. Click .
    The Apply Schedule window is displayed.
  4. Enter the Timetable code for the new timetable.
  5. Click .
    The existing timetable schedule settings are copied to the new timetable in the grid area. 

Once the term has been copied you will need to ensure update the ImportStartDateTime & ImportEndDateTime for the new term are set correctly so that they are ready to import for the new term.

You'll also need to check that the configuration options are still valid.

Import Tables

The automatic import processed the Timetabler files into work tables prior to loading them into the live tables. When the SQL jobs are run first the data is populated into the below worktables. It is then transferred to the Following Synergetic Areas:

  • Timetable 
  • Student Classes
  • Class teachers 
  • Timetable Substitutes

These are loaded based on these tables and the configuration options set in the timetable config. When importing the Timetable is cleared based on the following fields:

  • FileType
  • FileYear
  • FileSemester
  • ClassCampus
  • TimetableGroup.

Only Classes where the Never Clear on Timetable Import & Timetable Keep Assessable are NOT set. 

wkxiStudentClasses

Staging table for Student Class data before importing them into the main Synergetic tables

FieldDescription
StudentCode

Student code from from Timetabler. This is matched to Synergetic based on the StudentLinkField

This is imported from the following Timetabler locations:

Timetabler VersionField
8CLESSON.Student Code
9

TimetableDevelopmentData/StudentLessons/StudentLesson/StudentID

TimetableDevelopmentData/Students/Student/Code

10Students.Code
ClassCampusClassCampus from the Synergetic Timetable Configuration
ClassCode

ClassCode from the timetable.

This is imported from the following Timetabler locations:

Timetabler VersionField
8CLESSON.Class Code 
9TimetableDevelopmentData/Classes/Class/Code
10ClassNames.Code
ClassDescription

Class Description from Timetabler

This is imported from the following Timetabler locations:

Timetabler VersionField
8

TCLASSES.Subject Name
TCLASSES.Class Name

9

TimetableDevelopmentData/Classes/Class/SubjectName
TimetableDevelopmentData/Classes/Class/Name

10

ClassNames.SubjectName
ClassNames.Name

The Following Configuration key affects which Name to use. If this is True then the SubjectName is used. If this is false then the ClassName is used.

FieldValue
Key1Timetabler
Key2AutoImport
Key3ClassDescription
Key4UseSubjectName
Key5
ValueTrue / False
StudentIDMapped Synergetic ID Based on the StudentLinkField in the Timetable config and the StudentCode from Timetabler. This is mapped as part of the process. Any that are not mapped will remain as 0.
ImportFlag

Whether the record can be imported. If the StudentCode from Timetabler doesn’t match with the relevant Student Code in Synergetic or the class code from Timetabler is too long then the record is not imported. 

Valid Values:

ValueMeaning
0Not Imported
1Imported
TimetableCodeTimetable Code from the Synergetic Timetable Configuration

wkxiTimetable

Staging table for Timetable data before importing them into the main Synergetic tables

FieldDescription
TimetableGroup

Timetable Group from the Synergetic Timetable Configuration

DayNumber

Day Number from Timetabler

This is imported from the following Timetabler locations:

Timetabler VersionField
8TTABLE.Day No
9TimetableDevelopmentData/Days/Day (index of the array element - eg element 1 = day 1, element 2 = day 2 etc)
10Days  (index of the array element - eg element 1 = day 1, element 2 = day 2 etc)
PeriodNumber

Period Number from Timetabler

Timetabler VersionField
8TTABLE.Period No
9TimetableDevelopmentData/Periods/Period/Number
10Periods.PeriodNo
ClassCampus

ClassCampus from the Synergetic Timetable Configuration 

ClassCode 

Class Code from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8TTABLE.Class Code
9TimetableDevelopmentData/Classes/Class/Code
10ClassNames.Code
StaffCode

Staff Code from Timetabler. This is matched to synergetic based on the StaffLinkField

This is imported from the following Timetabler locations:

Timetabler VersionField
8TTABLE.Teacher Code
9

TimetableDevelopmentData/Timetables/Timetable/TeacherID
TimetableDevelopmentData/Teachers/Teacher/Code

10Teachers.Code
RoomCode

Room Code from Timetabler

This is imported from the following Timetabler locations:

Timetabler VersionField
8TTABLE.Room Code
9

TimetableDevelopmentData/Timetables/Timetable/RoomID
TimetableDevelopmentData/Rooms/Room/Code

10Rooms.Code
StaffIDSynergeticID based on the StaffLinkField and the Staff Code. 
ImportFlagWhether the record can be imported. If the class code Is too long then the record is not imported. 
ClassDescription

Class Description from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8

TCLASSES.Subject Name

TCLASSES.Class Name

9

TimetableDevelopmentData/Classes/Class/SubjectName
TimetableDevelopmentData/Classes/Class/Name

10ClassNames.SubjectName
ClassNames.Name
TimetableCodeTimetable code from the Synergetic Timetable Configuration.
PeriodOffsetPeriod offset from the Synergetic Timetable Configuration.
MeetingFlagThis records has come from the meetings area in Timetabler. This is handled separately to the Academic Timetable and any staff entered against the meeting will be added.
UnavailableFlag

This records has come from the meetings area in Timetabler. This is handled separately to the Academic Timetable and any staff entered against as unavailable will be added. These are imported using the following Class Codes:

ClassCodeDescription
NOTATSCHOOLStaff marked not at school
UNAVAILABLEStaff marked as anything other than not at school


wkxiTimetableSubstitutes

Staging table for student Substitute Classes before importing them into the main Synergetic tables

FieldDescription
TimetableGroupTimetable Group from the Synergetic Timetable Configuration
TimetableDate

Day of the substitute from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8DREPLESS.DateOf
9DailyOrganiserData/Dates/Date/DateString
10Not implemented - use timetabler 9 import
DayNumber

Day Number from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8DREPLESS.Day No
9DailyOrganiserData/Dates/Date/Day
PeriodNumber

Period Number from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8DREPLESS.Period No
9DailyOrganiserData/Dates/Date/PeriodReplacements/PeriodReplacement/PeriodCode
ClassCampusClassCampus from the Synergetic Timetable Configuration
ClassCode

Class Code from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8DREPLESS.Class Code
9DailyOrganiserData/Dates/Date/PeriodReplacements/PeriodReplacement/ClassCode
StaffCode

Staff Code from Timetabler. This is matched to Synergetic based on the StaffLinkField from the Synergetic Timetable Configuration.

This is imported from the following Timetabler locations:

Timetabler VersionField
8DREPLESS.Replacement Teacher Code
9DailyOrganiserData/Dates/Date/PeriodReplacements/PeriodReplacement/ReferenceTeacherCode
OriginalStaffCode

Staff Code from Timetabler. This is matched to Synergetic based on the StaffLinkField.

This is imported from the following Timetabler locations:

Timetabler VersionField
8DREPLESS.Absent Teacher Code 
9DailyOrganiserData/Dates/Date/PeriodReplacements/ReferenceTeacherCode
RoomCode

Room Code from Timetabler.

This is imported from the following Timetabler locations:

Timetabler VersionField
8DREPLESS.Room Code
9

DailyOrganiserData/Dates/Date/RoomEdits/RoomEdit/ReplacementRoomCode

DailyOrganiserData/Dates/Date/RoomReplacements/RoomReplacements/ReplacementRoomCode

OriginalRoomCode

Original Room Code. Not supplied in Timetabler. Taken from the Synergetic Timetable.

StaffIDSynergeticID mapped based on the StaffLinkField and the Staff Code.  
OriginalStaffIDSynergeticID mapped based on the StaffLinkField and the Original Staff Code. 
ImportFlagWhether the record can be imported. If the StaffCodes doe not match or the class code Is too long then the record is not imported.
TimetableCodeTimetable code from the Synergetic Timetable Configuration
PeriodOffsetPeriod offset from the Synergetic Timetable Configuration


Configuration Keys

The following are any Configuration Keys that affect the Automatic Timetabler Import

Key1Key2Key3Key4Key5Value
TimetablerAutoImportClassDescriptionUseSubjectName
True/False

If True this will Use the Subject Name from Timetabler for the Class Description in Synergetic.

If False this will Use the Class Name from Timetabler for the Class Description in Synergetic.

TimetablerAutoImportCreateMissingTimetable

True/False

If True this will create the timetable for any classes without students.

If False only classes with students will be created.

TimetablerAutoImportYardDutiesAutomapPeriodsTrue/False

If True this will automap distinct Yard duty periods

If False this will take the timetable period for the yard duties directly from Timetabler. There can be duplicate period numbers in timetabler as they can be marked before / after a period.

True is recommended for Yard duty imports.

TimetablerAutoImportTimetableAllowDuplicates
True/False

If False only one staff member is assigned to the timetable record. This is to avoid duplicates in the Staff Timetable.

If True any staff members that are listed against the timetable record as assigned.

TimetablerAutoImportExtrasDaysAhead
INT

When Importing Extras this controls the number of days ahead you want to process the extras.
1 - Only import any Extras for today
2 - Import any extras for today and tomorrows

Action Centre Messages

There are several Action Message Types that have been created to assist with the import process:

MessageTypeDescription
TIM_ImportExceptions_ITimetable Import Report
TIM_ImportFailure_ATimetable Import Failed

TIM_ImportExceptions_I

A report of Imported / Excluded records from the import. This will display the following:

  • Number of records imported
  • Any staff who could not be mapped using the settings provided
  • Any Students who could not be mapped using the settings provided
  • Any Timetable records that could not be imported
  • Any Student Class records that could not be imported
  • Any Substitute records that could not be imported
  • The Import Settings used for the import


Imported Records:
TypeCount
Timetable36
StudentClasses18
Substitutes0



2 Staff who couldn't be mapped by SchoolStaffCode :
StaffCode
Test
TEST2

3 Student's who couldn't be mapped by ID:
StudentCode
12345
12345
12346
12346
223456
223456

38 Timetable Records that couldn't be imported:
DayNumberPeriodNumberStaffCodeClassCode


TEST


TEST2
11Test
12Test
13Test
14Test
21Test
22Test
23Test
24Test
31Test
32Test
33Test
34Test
41Test
42Test
43Test
44Test
51Test
52Test
53Test
54Test
61Test
62Test
63Test
64Test
71Test
72Test
73Test
74Test
81Test
82Test
83Test
84Test
91Test
92Test
93Test
94Test

2 Student Class Records that couldn't be imported:
StudentCodeClassCode
12345
223456

Import Settings
Parameter NameValue
TimetableCode2018T1
TimetablePath
FileYearA
FileYear2018
FileSemester1
StudentLinkFieldID
StaffLinkFieldSchoolStaffCode
SetStoppedFlagTrue
AllowCoreClassClearFlagFalse
ClearStaffFlagTrue
ProcessDate13/04/2018
YearLevelFrom0
YearLevelTo12
SetExistingNonAssessableFlagFalse
SetNewNonAssessableFlagFalse
RemoveAsterixFlagFalse
UpdateClassDescriptionFlagFalse

TIM_ImportFailure_A

If there is an error message when importing the Timetable this action message will be created. This will display the error message along with the Settings used to import the Timetable. See below for example":

Error Message
Test Error Message this is an error message.

Import Settings
Parameter NameValue
TimetableCode2018T1
TimetablePath
FileYearA
FileYear2018
FileSemester1
StudentLinkFieldID
StaffLinkFieldSchoolStaffCode
SetStoppedFlagTrue
AllowCoreClassClearFlagFalse
ClearStaffFlagTrue
ProcessDate13/04/2018
YearLevelFrom0
YearLevelTo12
SetExistingNonAssessableFlagFalse
SetNewNonAssessableFlagFalse
RemoveAsterixFlagFalse
UpdateClassDescriptionFlagFalse

SQL Server Service Account 


The Timetabler Automatic Import can import database files from directories either on the SQL server directly or from a network share. If you are wanting to configure the import for use with a network share the SQL Server service account must be setup with a domain account user.

In either case and in order to function the SQL server service account need read/write permission to the folder where the Timetabler database files are located. 

In the example above the service account is CDA_MAIN\SQL_WS. This account would need to be configured with the following permissions to the folders where the Timetabler files are located. 

Timetabler VersionPermissionExplanation
8R+WVersion 8 uses an Access Database file. The process needs to be able to create a lock file when accessing the file.
9RVersion 9 uses an XML file so read access is sufficient and it doesn't need to create a log file when reading the XML file.
10RVersion 10 uses a JSON file so read access is sufficient and it doesn't need to create a log file when reading the JSON file.


SQL Jobs

There are 4 jobs that can be scheduled in your SQL server management studio. (This can be configured by our professional support team- please raise a case for a quote should this be required)
These are scheduled as per your requested times in the initial setup. They can be changed to a different schedule if required.

JobDescription
Synergetic - Timetabler ImportThis imports the Timetable, Students in Classes, teachers taking classes. Depending on your setting it will update the Stop Date / Assessable flags for students not being imported in the import. It can also update the form / tutor group depending on your settings. 
Synergetic - Timetabler Yard Duties Import This imports the Timetable data for Yard Duties.
Synergetic - Timetabler Extras Import

This imports the Teacher & Room Replacement data.

There are 2 steps in the job. The first step imports any academic Teacher & Room Replacement Data.

The 2nd step imports any Yard duty Teacher & room replacement data.

Synergetic - Timetabler Yard Duty Extras ImportThis imports the Teacher & Room Replacement data for Yard Duties

These can also be run manually through SQL Server management studio. You can right click on any of these jobs and select Start Job at Step. 

Troubleshooting

  • No teachers against the classes

    • Check the StaffLinkField against Timetable Configuration for the import. 

      Check Work table for any staff that have a StaffID of 0
      SELECT * FROM wkxiTimetable WHERE StaffCode <> '' AND StaffID = 0 AND TimetableCode = '2022T1'
  • No Students listed against classes

    • Check the StudentLinkField against Timetable Configuration for the import

      Check Work table for students with an ID of 0
      SELECT * FROM wkxiStudentClasses WHERE StudentCode <> '' AND StudentID = 0 AND TimetableCode = '2022T1'
  • Particular staff members do not have classes
    • Error rendering macro 'code': Invalid value specified for parameter 'firstline'
      SELECT * FROM wkxiTimetable WHERE StaffCode = 'ABC' AND TimetableCode = '2022T1'
    • Check Synergetic to make sure the StaffCode exists

      Check Synergetic to make sure the staff code exists
      --SchoolStaffCode
      SELECT * FROM Staff WHERE SchoolStaffCode = 'ABC'  AND TimetableCode = '2022T1' --ID
      SELECT * FROM Staff WHERE CONVERT(VARCHAR(30),ID) = 'ABC'  AND TimetableCode = '2022T1'
    • Check Synergetic to ensure the Staff Code matches the staff Code coming from Timetabler

      Check that the Staff Code is not duplicated with another staff member
      SELECT COUNT(*) FROM Staff WHERE SchoolStaffCode = 'ABC'  AND TimetableCode = '2022T1'
  • Particular Students do not have classes
    • Check Synergetic to make Sure that the Code exists for the student:

      Check Synergetic to make sure the staff code exists Student Code Exists
      --AlternateCode
      SELECT * FROM Students WHERE AlternateCode = '12345'
      --ID
      SELECT * FROM Students WHERE Convert(VARCHAR(30),ID) = '12345'
      --TimetableCode
      SELECT * FROM Students WHERE TimetableCode = '12345'
      --PreviousSystemCode
      SELECT * FROM Students WHERE N16StuCode = '12345'
    • Check Work Tables for the StudentCode
      SELECT * FROM wkxiStudentClasses WHERE StudentCode = '12345' 
  • Nothing is imported
    • Check that the date is within the start date and stop date. 

    • Check the enabled flag is set against each of the imports. 

    • Check that the SQL job is enabled and scheduled

    • Check which Schedules will run
            SELECT
              tc.TimetableCode,
              MAX(tcsc.TimetableType),
              tc.FileYear,
              tc.FileSemester,
              tc.FileType,
              lut.SetExistingNonAssessableFlag,
              lut.SetNewNonAssessableFlag,
              lut.SetStoppedFlag,
              lut.AllowCoreClassClearFlag,
              lut.ClearStaffFlag,
              MAX(tcsc.StudentLinkField),
              MAX(tcsc.StaffLinkField),
              MAX(CASE WHEN tcsc.TimetableType IN ('TIMETABLER','FIRSTCLASS','TIMETABLERYD','CUSTOM','FIRSTCLASSEXT') THEN 1 ELSE 0 END) AS ImportTimetableFlag,--SELECT *
              MAX(CASE WHEN tcsc.TimetableType IN ('TIMETABLEREXT','CUSTOM','FIRSTCLASSEXT') THEN 1 ELSE 0 END) AS ImportExtrasFlag,
              MIN(tcsc.YearLevelFrom),
              MAX(tcsc.YearLevelTo),
              MAX(tcsc.ImportStartDateTime),
              MAX(tcsc.ImportEndDateTime),
              MAX(tcsc.TimetableGroup),
              MAX(CONVERT(INT,lut.CreateLuRoomFlag)),
              MAX(CONVERT(INT,lut.ExplodeObjectsFlag)),
              MAX(CONVERT(INT,tcsc.ImportOrderSeq)),
              MAX(CONVERT(INT,lut.UpdateClassDescriptionFlag)),
              MAX(CONVERT(INT,lut.UpdateFormFlag)),
              MAX(CONVERT(INT,lut.RemoveAsterixFlag)),
              MAX(CONVERT(INT,lut.UpdateTutorFlag))
              --SELECT *
            
            FROM dbo.TimetableSchedule tcsc 
              INNER JOIN dbo.TimetableConfig tc ON (tc.TimetableConfigSeq = tcsc.TimetableConfigSeq)
              LEFT JOIN dbo.luTimetableOperationMode lut ON (lut.Code = tcsc.TimetableOperationModeCode)
            WHERE tcsc.TimetableType IN ('TIMETABLER','FIRSTCLASS','TIMETABLEREXT','TIMETABLERYD','CUSTOM','FIRSTCLASSEXT')
              AND dbo.fnDateOnly(GETDATE()) >= tcsc.ImportStartDateTime
              AND dbo.fnDateOnly(GETDATE()) <= tcsc.ImportEndDateTime
              AND tcsc.EnabledFlag = 1
            GROUP BY 
            tc.TimetableCode,
              tc.FileYear,
              tc.FileSemester,
              tc.FileType,
              lut.SetExistingNonAssessableFlag,
              lut.SetNewNonAssessableFlag,
              lut.SetStoppedFlag,
              lut.AllowCoreClassClearFlag,
              lut.ClearStaffFlag
            ORDER BY MAX(CASE WHEN tcsc.TimetableType IN ('TIMETABLER','FIRSTCLASS','CUSTOM','FIRSTCLASSEXT') THEN 1 ELSE 0 END)  DESC,
              MAX(CONVERT(INT,tcsc.ImportOrderSeq))
  • Particular Classes are not imported
    • Check the Never Clear on Timetable Import Flag against the class.
    • Check the Timetable Keep Assessable Flag against the class.
  • Period Numbers are out of Sync when importing Extras
    • In the Daily Organiser Period numbers are stored by a code instead of a Number. This can cause issues if the period numbers are different to the codes stored in Timetabler. Please contact Support for a fix.
      Apply the script - I:\SCRIPTS\DBA\Timetable\uspuwkTimetable - Update Period Numbers.sql (I: = \\zeus\Delphi\)
  • You can also refer to the Version 9 XML File using the following script to check the contents of the Timetabler XML:
    • I:\SCRIPTS\DBA\Timetable\99_testing.sql