© 2018 Capita Business Services Ltd. All rights reserved.

Capita Education Software Solutions is a trading name of Capita Business Services Ltd. Our Registered office is 30 Berners Street, London, W1T 3LR and our registered number is 02299747. Further information about Capita plc can be found in our legal statement.

SIMS 7 - New Attendance Codes to support COVID-19 Reporting

New Attendance Codes in SIMS 7(These codes have also been added to SIMS 8)

Version 3 - 16 Jun 2020

In response to government requirements for the recording of the impact of COVID-19 in schools we are adding 3 new attendance codes to support their needs. 

This is optional for schools and in some edge cases schools who already had codes 7,8 or 9 in use  are currently unable to take advantage of the change.

New Codes

Reg Code

Description

Statistical Meaning

Physical Meaning

Basic mark

Mapping for CTF, B2B

7

Illness due to Covid 19

Authorised      Absence

Out for whole session

Basic   

I

8

Self-isolating due to Covid 19

Attendance not required

Out for whole session

Basic

Y

9

Shielding due to Covid 19

Attendance not required

Out for whole session

Basic

Y

---- Change (16th June 2020) begins ----- 

Some schools have already used these codes for alternative purposes and so an alternative set may be offered...

Reg Code

Description

Statistical Meaning

Physical Meaning

Basic mark

Mapping for CTF, B2B

=

Illness due to Covid 19

Authorised      Absence

Out for whole session

Basic   

I

[

Self-isolating due to Covid 19

Attendance not required

Out for whole session

Basic

Y

]

Shielding due to Covid 19

Attendance not required

Out for whole session

Basic

Y

  See Here

<In the text that follows, the same principle applies which ever code set is chosen

-------- end of change -------

The existing SIMS 7 API calls will allow:

  1. The same call to be made to return attendance codes which may now include the additional 3.
  2. The same calls to be made to get attendance  marks which will return the new codes if selected.
  3. The same save calls to attendance record to be made to enable theses codes to update SIMS 7. However this does not work for codes 8, 9 and Y because their statistical meaning is that pupils are no required to attend.

There is some additional work which will help schools using the new codes with regard to CTF and B2B which use the code categories and map the new codes back to Y and I. 

There is work in progress for the Summer 2020 SIMS release to support Y codes via the partner APIs.  This now needs to be reviewed to ensure that it supports 8 and 9 codes in addition to Y.  We are also investigating whether this can be made available in advance of the Summer release.

Code Calls

        public static XmlDocument GetAttendanceCodes()
        {
            SIMS.Processes.TPAttendanceRead ATR = new SIMS.Processes.TPAttendanceRead();
            // XML Document needed to get the codes
            System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
            // This is the actual call to get the codes
            doc.InnerXml = ATR.GetXmlAttendanceCodes();
            return doc;
        }

New codes added:

<AttendanceCode>
    <AttendanceCodeID>31</AttendanceCodeID>
    <Code>7</Code>
    <ExternalDescription>Illness due to Covid 19</ExternalDescription>
    <InternalCode>7</InternalCode>
    <Description>Illness due to Covid 19</Description>
    <PhysicalMappingID>3</PhysicalMappingID>
    <PhysicalMappingDescription>Out for whole session</PhysicalMappingDescription>
    <StatisticalMappingID>3</StatisticalMappingID>
    <StatisticalMappingDescription>Authorised Absence</StatisticalMappingDescription>
    <PhysicalMappingEditable>F</PhysicalMappingEditable>
    <StatisticalMappingEditable>F</StatisticalMappingEditable>
    <DescriptionEditable>F</DescriptionEditable>
    <NonSimsUse>F</NonSimsUse>
    <IsRestricted>True</IsRestricted>
    <Active />
    <AttendanceCodeCategory />
    <RegionCode />
  </AttendanceCode>
  <AttendanceCode>
    <AttendanceCodeID>32</AttendanceCodeID>
    <Code>8</Code>
    <ExternalDescription>Self-isolating due to Covid 19</ExternalDescription>
    <InternalCode>8</InternalCode>
    <Description>Self-isolating due to Covid 19</Description>
    <PhysicalMappingID>3</PhysicalMappingID>
    <PhysicalMappingDescription>Out for whole session</PhysicalMappingDescription>
    <StatisticalMappingID>5</StatisticalMappingID>
    <StatisticalMappingDescription>Attendance not required</StatisticalMappingDescription>
    <PhysicalMappingEditable>F</PhysicalMappingEditable>
    <StatisticalMappingEditable>F</StatisticalMappingEditable>
    <DescriptionEditable>F</DescriptionEditable>
    <NonSimsUse>F</NonSimsUse>
    <IsRestricted>True</IsRestricted>
    <Active />
    <AttendanceCodeCategory />
    <RegionCode />
  </AttendanceCode>
  <AttendanceCode>
    <AttendanceCodeID>33</AttendanceCodeID>
    <Code>9</Code>
    <ExternalDescription>Shielding due to Covid 19</ExternalDescription>
    <InternalCode>9</InternalCode>
    <Description>Shielding due to Covid 19</Description>
    <PhysicalMappingID>3</PhysicalMappingID>
    <PhysicalMappingDescription>Out for whole session</PhysicalMappingDescription>
    <StatisticalMappingID>5</StatisticalMappingID>
    <StatisticalMappingDescription>Attendance not required</StatisticalMappingDescription>
    <PhysicalMappingEditable>F</PhysicalMappingEditable>
    <StatisticalMappingEditable>F</StatisticalMappingEditable>
    <DescriptionEditable>F</DescriptionEditable>
    <NonSimsUse>F</NonSimsUse>
    <IsRestricted>True</IsRestricted>
    <Active />
    <AttendanceCodeCategory />
    <RegionCode />
  </AttendanceCode>

Write back call


           SIMS.Processes.TPAttendanceWrite ATW = new SIMS.Processes.TPAttendanceWrite();
            try
            {
                ATW.WriteSessionAttendances(d.InnerXml);
                if (ATW.ValidationMessages.Count == 0)
                {
                    // It worked
                    return rc;
                }
                else
                {
                    rc = "Errors: ";
                    foreach (SIMS.Entities.ValidationError v in ATW.ValidationMessages)
                    {
                        rc += v.ToString();
                    }
                }
            }
            catch (Exception ex)
            {
                rc = "Errors: " + ex.ToString();
             }
 

But with the XML Save document constructed from the data below

public static void AddTest(int StudentID)
        {
            AddMark(StudentID, "AM", DateTime.Parse("2020-06-01"), @"/", 0, "Works");
            AddMark(StudentID, "PM", DateTime.Parse("2020-06-01"), "7", 0, "Works");
            AddMark(StudentID, "AM", DateTime.Parse("2020-06-01"), "9", 0, "Fails");
            AddMark(StudentID, "PM", DateTime.Parse("2020-06-01"), "I", 0, "Works");
            AddMark(StudentID, "AM", DateTime.Parse("2020-05-12"), "8", 0, "Fails");
            AddMark(StudentID, "PM", DateTime.Parse("2020-05-12"), "Y", 0, "Fails");
        }

8,9 and Y fail due to an invalid code.

Useful extensions

https://www.sims-partners.com/Product/SIMS7/Attendance/Session-Attendance-Code-Walkthrough shows how to manage statutory attendance within SIMS.