Import NAT files

Saturday, Jul 23, 2016

** This documentation is old and no longer relevant - please search for other documentation**

CourseSales.com can import your data from your AVETMISS NAT files. Yes, that is right - your student management system must export AVETMISS right? Well assuming it does the following will help you convert those files to CSV to then allow CourseSales.com to import them with ease.

Even better than the ease with which you can import your current data we also have the ability to validate that data - we basically just do an AVETMISS export and compare the results!

  1. Export and validate with the AVS software, as you would normally: http//avs.ncver.edu.au/avs/

  2. Send us the validated files and we will import them for you!

  3. You can do an AVETMISS export to confirm that the data imported is still valid and matches the original data we imported.

How do we do this?

We use the Selenium scripting language that interacts with CourseSales.com and copies the AVETMISS data directly into the website. Our scripts do the following:

Step 1

Add the organisation data (NAT00010), create locations and venues (NAT00020) and course categories and qualifications - programs - (NAT00030)

Step 2

Add modules (NAT0060) then add course categories for subjects without program identifiers (NAT00120) Add these to formats, so there is one format per course master.

Step 3

Create course masters and one course date for each

Step 4

Create an importable enrolment file to create the registration and contact (NAT00080, NAT00085, NAT00090, NAT00100 NAT00120) for each qualification or UoC with no qualification - program

Step 5

To each contact add the qualifications (NAT00130)

Note

  • Before commencing ensure that Moodle synchronization is turned off.

  • When importing modules vs UoC this will need to be set up manually - modules need a different form.

  • To identify contacts it is necessary to uniquely identify using the contact id - usually the client id as this is common between NAT files.

  • Then after finishing the NAT file import swap all student’s Contact Ids from Client Ids to Email - if you need to use this for the login of the student portal and Moodle.

Validating the data

It is necessary not just to confirm that the list of units match those training.gov.au (a separate, manual activity) but also to confirm that the AVETMISS NAT file data matches that which we have imported, ie actual data not the data we might assume. This ensures that the data submitted for funding arrangements etc will be consistent. Importing the NAT files means that we will also import any data errors that were in the original data.

We do an automated validation of the NAT files, we will supply it in a excel ready spreadsheet in the following format:

This is a list of errors, when you identify these you can then correct the data to help it match your original data

Some errors across units will be solved by one adjustment to the course module, document or contact, as some information is used in multiple records within a given NAT file.

Remember that the validation is case-sensitive this means that “DEVELOP COST-EFFECTIVE MENUS” is NOT the same as “Develop cost-effective menus” - if capitalisation does not worry you (AVETMISS validation does not seem to worry about it).

Standard location of fields

The location of fields can vary depending on your set-up however the following outlines the most common configuration

NAT090 Field Location
DisabilityTypeIdentifier Document

NAT100 Field Location
PriorEducationalAchievementIdentifier Course Module

NAT080 Fields Location
ClientIdentifier Document, Contact, or automatically allocated when contact is created
NameForEncryption Automatically created from First Name and Last Name
HighestSchoolLevelCompleted Course Date or Document Topic
YearHighestSchoolLevelCompleted Document, Contact
Sex Document, Contact
DateOfBirth Document, Contact
Postcode Document, Contact
IndigenousStatusIdentifier Document, Contact
LanguageIdentifier Document, Contact
LabourForceStatusIdentifier Document, Contact
CountryIdentifier Document, Contact
DisabilityFlag Document, Contact
PriorEducationalAchievementFlag Document, Contact
AtSchoolFlag Document, Contact
ProficiencyInSpokenEnglishIdentifier Document, Contact
AddressLocationSuburbLocalityOrTown Document, Contact
UniqueStudentIdentifier Document, Contact
StateIdentifier Document, Contact
AddressBuildingPropertyName Document, Contact
AddressFlatUnitDetails Document, Contact
AddressStreetNumber Document, Contact
AddressStreetName Document, Contact
StatisticalAreaLevel1Identifier Document
StatisticalAreaLevel2Identifier Document

NAT120 Fields Location
ProgramIdentifier Course Module
ActivityStartDate Course Date or Document Topic
ActivityEndDate Course Date or Document Topic
DeliveryModeIdentifier Course Module
OutcomeIdentifierNational Document Topic
ScheduledHours Course Date
FundingSourceNational Document
CommencingProgramIdentifier Document
TrainingContractIdentifier Document
ClientIdentifierApprenticeships Document
StudyReasonIdentifier Document
VetInSchoolsFlag Course Module
SpecificFundingIdentifier Document
OutcomeIdentifierTrainingOrganisation Document Topic
FundingSourceStateTrainingAuthority Document
ClientTuitionFee Document
FeeExemptionConcessionTypeIdentifier Document
PurchasingContractIdentifier Document Topic
PurchasingContractScheduleIdentifier Document
HoursAttended Document Topic
AssociatedCourseIdentifier Course Date
QldFullTimeLearningOption Document

You can do the following to confirm the data has transferred across successfully:

NAT00120 Validation

Create a pivot table to establish:

  • Qualification total, confirm this is the number of qualification formats

  • Units totals per qualification, confirm this is the number of topics created under each respective qualification

  • Extra validation: take the unit identifiers and check that each appears in the respective qualification formats

  • Extra validation: Include a number 1 in the original data to get a figure for the number of enrolments for each unit per qualification

  • Extra validation: Do a logic test on the data eg if you know you have 6 students who have completed all 13 units but one unit has only 5 enrolments then consider if a student’s enrolment has not exported as expected.

Tips to create pivot tables: Place units as rows and qualifications as columns, filter by qualification, take a count of each of the qualification and which are listed, additionally you can take a record of the units listed.

Catering for special configurations

There are special configurations that may require students to have additional information stored, or links to accounts etc. We can cater for these by including a flag on the required record.

Example

When importing e-learning customers the CourseSales.com configuration allows for sequential access to units of competency (UoC), paid for on a per UoC basis, then given Moodle access. The AVETMISS data submitted does not tell us where each contact is in their progress through the learning. AVETMISS don’t know this - we can only import all the UoC into one format on the certification/program, therefore one course date. This means each UoC is a separate course date (giving access on a per course date basis) and must have its own course master. To cater for this scenario we can either:

  • manage access separately in Moodle / CourseSales.com after importing the existing units into a qualification, or

  • manually adjust the NAT files to include a ‘flag’ at the end of the NAT00120 file that during the automated import allows us to treat that enrolment differently, creating both the UoC course master and course date.

It was trivial and at minimal cost we were able to cater for this with a customised script as we use the Selenium scripting language. We make these scripts available to all customers should they wish to use them.

Importing using CSV files

In case the above flat file import does not work for you and you wish to import your data a different way you might want to try and do a manual import of the data.

At CourseSales.com we use several tools to assist us with migration and in particular data manipulation for migration of student and course information into new systems. Notepad++ is useful for this, used by many programmers around the world. In case you want to do your own migration please find below a technique to migrate into CourseSales.com using AVETMISS NAT files, converting them to CSV files and then using those files to import into CourseSales.com using Selenium scripts.

If you wish to use this technique, remember to use the Regular Expression find and replace function while making these adjustments.

To replace the space padding use the following in the find and replace dialog:

Find: \ +"
Replace: "

NAT00010 Training Organisation

Header: "Training organisation identifier","Training organisation name","Training organisation type identifier","Address first line","Address second line","Address location – suburb, locality or town","Postcode","State identifier","Contact name","Telephone number","Facsimile number","Email address"

Find: ^(.{10})(.{100})(.{2})(.{50})(.{50})(.{50})(.{4})(.{2})(.{60})(.{20})(.{20})(.{80})

Replace: "$1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12"

NAT00020 Training Organisation Delivery Location

Header: "Training organisation identifier","Training organisation delivery location identifier","Training organisation delivery location name","Postcode","State identifier","Address location – suburb, locality or town","Country identifier"

Find: ^(.{10})(.{10})(.{100})(.{4})(.{2})(.{50})(.{4})

Replace: "$1","$2","$3","$4","$5","$6","$7"

NAT00030 Program

Header: "Program identifier","Program name","Nominal hours","Program recognition identifier","Program level of education identifier","Program field of education identifier","ANZSCO identifier","VET flag"

Find: ^(.{10})(.{100})(.{4})(.{2})(.{3})(.{4})(.{6})(.{1})

Replace: "$1","$2","$3","$4","$5","$6","$7","$8"

NAT00060 Subject

Header: "Subject flag","Subject identifier","Subject name","Subject field of education identifier","VET flag","Nominal hours"

Find: ^(.{1})(.{12})(.{100})(.{6})(.{1})(.{4})

Replace: "$1","$2","$3","$4","$5","$6"

NAT00080 Client - AVETMISS 7.0

Header: "Client identifier","Name for encryption","Highest school level completed","Year highest school level completed","Sex","Date of birth","Postcode","Indigenous status identifier","Language identifier","Labour force status identifier","Country identifier","Disability flag","Prior educational achievement flag","At school flag","Proficiency in spoken English identifier","Address location – suburb, locality or town","Unique student identifier","State identifier","Address building/property name","Address flat/unit details","Address street number","Address street name","Statistical area level 1 identifier","Statistical area level 2 identifier"

Find: ^(.{10})(.{60})(.{2})(.{4})(.{1})(.{8})(.{4})(.{1})(.{4})(.{2})(.{4})(.{1})(.{1})(.{1})(.{1})(.{50})(.{10})(.{2})(.{50})(.{30})(.{15})(.{70})(.{11})(.{9})

Replace: "$1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14","$15","$16","$17","$18","$19","$20","$21","$22","$23","$24"

NAT00080 Client - AVETMISS 8.0

Header: "Client identifier","Name for encryption","Highest school level completed identifier","Gender","Date of birth","Postcode","Indigenous status identifier","Language identifier","Labour force status identifier","Country identifier","Disability flag","Prior educational achievement flag","At school flag","Address – suburb, locality or town","Unique student identifier","State identifier","Address building/property name","Address flat/unit details","Address street number","Address street name","Survey contact status","Statistical area level 1 identifier","Statistical area level 2 identifier"

Find: ^(.{10})(.{60})(.{2})(.{1})(.{1})(.{8})(.{4})(.{1})(.{4})(.{2})(.{4})(.{1})(.{1})(.{1}).{50})(.{10})(.{2})(.{50})(.{30})(.{15})(.{70})(.{1})(.{11})(.{9})

Replace: "$1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14","$15","$16","$17","$18","$19","$20","$21","$22","$23"

NAT00085 Client Postal Details

Header: "Client identifier","Client title","Client first given name","Client last name","Address building/property name","Address flat/unit details","Address street number","Address street name","Address postal delivery box","Address postal – suburb, locality or town","Postcode","State identifier","Telephone number – home","Telephone number – work","Telephone number – mobile","Email address"

Find: ^(.{10})(.{4})(.{40})(.{40})(.{50})(.{30})(.{15})(.{70})(.{22})(.{50})(.{4})(.{2})(.{20})(.{20})(.{20})(.{80})

Replace: "$1","$2","$3","$4","$5","$6","$7","$8","$9","$10","$11","$12","$13","$14","$15","$16"

NAT00090 Disability

Header: "Client identifier","Disability type identifier"

Find: ^(.{10})(.{2})  

Replace: "$1","$2"  

NAT00100 Prior Educational Achievement

Header: "Client identifier","Prior educational achievement identifier"

Find: ^(.{10})(.{3})

Replace: "$1","$2"  

NAT00120 Enrolment AVETMISS 7.0

Header: "Training organisation delivery location identifier","Client identifier","Subject identifier","Program identifier","Activity start date","Activity end date","Delivery mode identifier","Outcome identifier – national","Scheduled hours","Funding source – national","Commencing program identifier","Training contract identifier","Client identifier – apprenticeships","Study reason identifier","VET in schools flag","Specific funding identifier","Outcome identifier – training organisation","Funding source – state training authority","Client tuition fee","Fee exemption/concession type identifier","Purchasing contract identifier","Purchasing contract schedule identifier","Hours attended","Associated course identifier"

Find: ^(.{10})(.{10})(.{12})(.{10})(.{2})(.{2})(.{4})(.{2})(.{2})(.{4})(.{2})(.{2})(.{4})(.{2})(.{1})(.{10})(.{10})(.{2})(.{1})(.{10})(.{3})(.{3})(.{4})(.{1})(.{12})(.{3})(.{4})(.{10})

Replace: "$1","$2","$3","$4","$5/$6/$7","$8/$9/$10","$11","$12","$13","$14","$15","$16","$17","$18","$19","$20","$21","$22","$23","$24","$25","$26","$27","$28"

NAT00120 Enrolment AVETMISS 8.0

Header: "Training organisation identifier","Training organisation delivery","Client identifier","Subject identifier","Program identifier","Activity start date","Activity end date","Delivery mode identifier","Outcome identifier – national","Funding source – national","Commencing program identifier","Training contract identifier","Client identifier – apprenticeships","Study reason identifier","VET in schools flag","Specific funding identifier","School type identifier","Outcome identifier – training organisation","Funding source – state training authority","Client tuition fee","Fee exemption/concession type identifier","Purchasing contract identifier","Purchasing contract schedule identifier","Hours attended","Associated course identifier","Scheduled hours","Predominant delivery mode"

Find: ^(.{10})(.{10})(.{10})(.{12})(.{12})(.{8})(.{8})(.{3})(.{2})(.{2})(.{1})(.{10})(.{10})(.{2})(.{1})(.{10})(.{2})(.{3})(.{3})(.{5})(.{2})(.{12})(.{3})(.{4})(.{10})(.{4})(.{1})

Replace: "$1","$2","$3","$4","$5,$6,$7","$8,$9,$10","$11","$12","$13","$14","$15","$16","$17","$18","$19","$20","$21","$22","$23","$24","$25","$26","$27"

NAT00130 Program Completed

Header: "Training organisation identifier","Program identifier","Client identifier","Year program completed","Issued flag"

Find: ^(.{10})(.{10})(.{10})(.{4})(.{1})

Replace: "$1","$2","$3","$4","$5"