Is Data Available

This service is the mechanism that is used as part of the synchronization processes for a PASI Client to determine if the PASI Core contains data that is newer than what they have.

This service uses a number of architectural techniques including long polling, version tracking, and MD5 hashes. For more information about these techniques please review the Technical API documentation for Data Synchronization.

The Is Data Available service is used to request updates to each entity within PASI. Each of these entities has an associated Get service. The Is Data Available service is used to determine if there are any updates available to be retrieved, and the Get service is used to retrieve the updated information.

Is Data Available returns back to the PASI Client a list of record IDs and Versions Numbers identifying the records that have been updated. The PASI Client then passes those record IDs and Version numbers into the Get service to retrieve the updated details.

Note: As the PASI solution is running in a multi-node environment to support load balancing processes, there are rare race conditions where one node may know about information that another node does not know about (yet). In the event that this condition is realized, PASI will stop returning information in response to the Get service and the PASI Client will need to try again.

Request Information

The following information is provided when using this service (* denotes mandatory):

  • Wait Time In Minutes *
  • A list of one or more Registered Notification Types containing the following *:
    • Notification Type * (see the table below for the accepted values)
    • Max PASI Core Version *
    • PASI Core Version Hash

The request outlines what type of information the PASI Client is requesting updates for. These types are used to categorize the information within PASI, and directly correspond to a “Get” service. A PASI Client can request updates of the following information for the student with the identified associations to the organization:

Notification Type Rules to Synchronize Data Business Object Get Service1)
ClassroomAccommodation As per the Synchronization Classroom Accommodation Data Access Rules Classroom Accommodation Get Classroom Accommodation
ClassroomAccommodationStatus As per the Synchronization Classroom Accommodation Status Data Access Rules Classroom Accommodation Get Classroom Accommodation Status
Course Not based on an association to students Course Get Course
CourseEnrolment.YYYY Not based on an association to students Course Enrolment Get Course Enrolment
CourseEnrolmentStatus.YYYY Not based on an association to students Course Enrolment get_course_enrolment_status_2018
DiplomaExam.YYYY Not based on an association to students Diploma Exam Get Diploma Exam
DiplomaExamMark.YYYY One of: By Ministry, By Student Creation, By Current School Enrolment, By Last School Enrolment, By Recent School Enrolment

In addition to student associations, a diploma exam mark record can be returned when the client has Association to the Writing Centre, or an organization associated to the Writing Centre, that owns2) one or more diploma exam mark components for a diploma exam mark.
Diploma Exam Mark Get Diploma Exam Mark
DiplomaExamRescoreRequest Not based on an association to students Diploma Exam Rescore Request Get Diploma Exam Rescore Request
DiplomaExamSitting.YYYY Not based on an association to students Diploma Exam Sitting Get Diploma Exam Sitting
EducationAccountConnection Only returns data for O.1 myPass Connection Get Education Account Connection
EvaluatedMark.YYYY Not based on an association to students Evaluated Mark Get Evaluated Mark
EvaluatedMarkStatus.YYYY Not based on an association to students Evaluated Mark Get Evaluated Mark Status
ProvincialAchievementTest.YYYYNot based on an association to students Provincial Achievement Test Get Provincial Achievement Test
ProvincialAchievementTestResult.YYYYAs per the PAT Result Synchronization Data Access Rules.
Responsible School Responsible School Synchronization Data Access Rules Responsible School Get Responsible School
Responsible School Status Responsible School Data Access Rules Responsible School Get Responsible School Status
School Not based on an association to students School Get School Information
SchoolAuthority Not based on an association to students School Authority Get School Authority Information
SchoolCalendarYear.YYYY
(school year is optional)
Not based on an association to students Deprecated as of Release 8.8. Will no longer return any notifications
Section.YYYY Not based on an association to students Section Get Section
SectionStatus.YYYY Not based on an association to students Section Get Section Status
Student Student Data Access Rules Student Get Student (2019 Endpoint)
StudentRecordDocument See the “synchronization” section of the Student Document Data Access Rules Student Document Get Student Record Document
StudentSchoolEnrolment.YYYY Not based on an association to students Student School Enrolment Get Student School Enrolment
StudentSchoolEnrolmentStatus.YYYY Not based on an association to students Student School Enrolment Get Student School Enrolment Status
StudentStatus One of: By Ministry, By Student Creation, By Current School Enrolment, By Last School Enrolment Student Get Student Status
StudentTranscriptDetail One of: By Ministry, By Student Creation, By Current School Enrolment, By Last School Enrolment, By Recent School Enrolment Student Get Student Transcript Detail

For each type of information being requested, the request also identifies the last PASI Core Version that has been synchronized. By using this, PASI Core can determine which records have been updated since the last time the PASI Client synchronized.

Note: In the cases where the Notification Type ends with a “YYYY”, that “YYYY” should be replaced with the school year that the client wishes to synchronize against.

Request Validations

Unless otherwise specified, all data accessible by the PASI Client is considered during synchronization. In most cases, the data requested must be filtered by school year where only future, current, or the last 2 school years can be synchronized. The school year filter does not apply to the synchronization of Student, School Information, School Authority Information and Course Information.

The following rules are used to validate the information provided in the request:

Service Functionality

Based on the information in the request, PASI identifies if there are any updates to provide to the PASI Client.

Consumers of the Is Data Available service can specify the Wait Time In Minutes parameter to determine when the service will check to see if there is any new data that the client has interest in and to determine how long the connection to PASI will be maintained.

Evaluated Mark Synchronization

When synchronizing Evaluated Mark records, records with an Evaluation Method of “School Awarded Adult Equivalency Credits” will be excluded from the results returned by this service across all endpoints.

Wait Time In Minutes

Setting the WaitTimeInMinutes parameter to zero will cause the service to see if there is new data that the PASI client is interested in and return a result indicating if new data is available immediately.

Setting the WaitTimeInMinutes parameter to something greater than zero will check to see if there is new data that the client is interested in and return immediately if there is new data available the PASI client is interested in. If there isn't new data available this method will wait for one of two events to occur:

  1. Data is updated in the PASI core. At this point another check is preformed to see if there is new data available the PASI client is interested in.
  2. The timeout period the PASI client specified in minutes expired.

Hash Validation

In order to handle the scenario where a client is potentially missing data that it should have (or have data the core isn't aware of) a second strategy is used to identify differences between the client and the core.

With this optional approach the client sends with its request a MD5 hash of the all object versions a client has of a specific data notification type (i.e. loop through all the students and create a hash of the object version).

When the Max PASI Core Version’s on the request matches the information in PASI, and the hash value has been provided on the request, PASI will also calculate the same MD5 hash. If the value provided on the request and the value calculated by PASI differ, then the client is out of sync with the core.

In this scenario the core will return a full list of Id and PASICoreVersions for the requested type. The client can then compare each Id and PASICoreVersion to the client's local list and determine what record(s) is out of sync.

Response Information

The following information is returned after a successful request has been processed:

  • A list of Data Notification Results that contain:
    • Update Type (will be either “UpdateAvailable” or “ResyncRequired”)
    • A list of Data Notification Ids that contain:
      • Id
      • PASI Core Version

A response to an Is Data Available request will first identify if there are any updates to be applied by the PASI Client. If there are, then the response will contain a list of updates that should be applied by the PASI Client.

For the Status objects (Student Status, Student School Enrolment Status, Section Status, etc…), they will be considered updated if the Core Alerts associated to the record have changed. This may be the result of changes to the record objects themselves, but may also be caused by other conditions including the passage of time.

This list does not contain the specific data that has been updated, but identifies the objects, their corresponding identifiers (e.g. for Student the identifier is the student’s Alberta Student Number), and the current PASI Core Version for each record.

Note: This list will contain a maximum of 150,000 records.

When a record has been physically deleted from PASI but is still loaded in the cache, Is Data Available will not return the physically deleted record(s) as part of a call to this service. This is true regardless of what version number is submitted as part of the Is Data Available call.

1)
for more information about changes