PowerSchool Resources

Resources for PowerSchool Developers and Administrators.

How to mass-print screens in PowerSchool

Step 1: click on printer icon in your Teacher portal corresponding to the class

Step 2: Mass Print a Student Screen

Step 3: Select the screen from the dropdown that you want to mass-print and hit the Submit button.
Please note that your PowerSchool instance must have Mass Printing plugin installed for those links to correctly show up.

Unable to disable or delete/remove a plugin

I was working on a plugin and accidentally deleted one of the files via CPM. Next thing I know is that the plugin would not update, disable or delete. PowerSchool returned a Java Runtime error message. I was stuck!

It turns out, there are two ways to resolve this:

  • Wait for nightly processes to happen
  • Restart the PowerSchool services

At this point, I am not sure why those two solutions work, but they do.

Here is the screenshot of the error:PS Java Runtime Error

Creating a Settings page in PowerSchool Admin panel

Adding block information from PowerSchool to Google calendars

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:

  1. Export the data from PS as CSV
  2. Import into Google Calendars using CSV

Exporting the data from PS

You can use Oracle SQL Developer to execute SQL below and export the file as CSV. Here is the SQL:

  '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
        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

  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

  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.

Importing the CSV into Google Calendar
Importing the CSV into Google Calendar is pretty straightforward as Google provides an interface for it. Please see these instructions from Google on how to import a CSV into your Google Calendar.

Oracle ORA-03135 connection issue with PowerSchool

The issue:

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.