Posted on December 14, 2017
Posted on September 16, 2017
Google Calendar is an excellent tool for keeping track of your schedule as well get timely reminders. What if we can populate students’ schedule in their Google Calendars so they have an electronic record with notifications about the classes?
PowerSchool does not have a tool to enable this directly. However, we do know that we can extract data using SQL and export them as CSV files which can then be imported in Google Calendars by students.
Broadly, the process therefore involves two key steps:
- Export the data from PS as CSV
- Import into Google Calendars using CSV
Exporting the data from PS
SELECT 'Period: '||p.Abbreviation as "Subject", cd.date_value as "Start Date", to_char(to_date(bsi.start_time,'SSSSS'),tf.timeformat) as "Start Time", cd.date_value as "End Date", to_char(to_date(bsi.end_time,'SSSSS'),tf.timeformat) as "End Time", null as "All Day Event", null as "Description", null as "Location", null as "Private" FROM Calendar_Day cd INNER JOIN bell_schedule_items bsi ON cd.Bell_Schedule_ID = bsi.Bell_Schedule_ID INNER JOIN Period p ON p.id = bsi.period_id, /* Assign a time format based on user locale. The replace function changes PS time format to Oracle and the fm modifier is to toggle off and on leading zeroes*/ ( SELECT 'fm' || replace(replace(replace( ( SELECT ltf.timeformat FROM locale loc JOIN localetimeformat ltf ON loc.localetimeformatid = ltf.localetimeformatid WHERE upper(loc.languageisocode || '_' || loc.countryisocode) = upper('en_US') ),'HH','HH24'),'a','AM'),'mm' || chr(58) || 'ss','fmmi') as timeformat FROM dual ) tf WHERE cd.date_value between to_date('08/08/2017', 'MM/DD/YYYY') and to_date('01/06/2018', 'MM/DD/YYYY') AND cd.SchoolID = 200 ORDER BY cd.date_value, bsi.start_time, bsi.Period_ID
The SQL is coded for specific school-id and start/end dates, so if you will need to specify those based on which school/dates you need to process for.
Posted on September 14, 2017
Our PowerSchool Production instance is locally hosted and is protected by a firewall. Our school website runs on WordPress (is hosted on AWS) and authenticates users of different types (Parents, Students, Teachers and Staff) directly using a custom plugin I designed.
The issue reported was that some Parents were not able to log in. The issue was not consistent across all parents but just some of them, that too with specific usernames.
A closer look at the SQL being executed for authenticating the users revealed an Oracle connection error:
ORA-03135: connection lost contact Process ID: 12888 Session ID: 192 Serial number: 44200
A quick Google search revealed the possible causes as below:
When PowerSchool engineers investigated this, they pointed out that the SQLNET.EXPIRE_TIME variables are not set on our instance and they advised against changing those variables.
A further investigation of this issue at our end revealed an observation that when our PowerSchool instance and school website were on same network, that is, either locally hosted or on Amazon Web Services, the issue doesn’t occurs. Only as long either of the server is on different network that we face this issue. Firewall seems to be the culprit, however, our network administrator confirmed the connections were not being blocked by firewall at all.
We chose to restart the PowerSchool Services. It did not immediately resolve the problem, however, the problem did go away eventually on its own the next day or so. It appears that this might have been a combination of the restart of PowerSchool services and some nightly executed processes in PowerSchool (and of course some magic).
We hope that if you encounter such issue, restarting of services in your server would help.