Small update using some dummy data
Small update using some dummy data
So I'm just about to give up on this.... :(
I've been speaking to some really helpful people at Capita but they appear to not be able to offer any API's or methods without a significant payment to them. how much you ask??
£12,500!!!! (5 year minimum term contract) for becoming a "Sims SQL associate partner for schools" :ballchain:
This kind of ridiculous price really does make me question their business practices even more. Its supposed to be an open source project ffs.
All I want to do is access the reports we create in a batch fashion. The guy couldn't explain how SLG does it either.
So for now this is dead in the water unless I can find a better way of scripting commandreporter.exe
I dont work in that area of the Capita business, but I think the situation is different dependent on whether you represent a School or are an independent software developer. Also the situation varies depending on whether you require read-only or read-write access to the system, and whether you use Command Reporter or the .net API library. I think your post might not be an accurate representation of the API licensing scheme, so its possible you might not have got through to the correct Capita dept. Again I must stress I dont work in that area of the Capita business, but recommend (if you have not already) contacting Jon Wood (firstname.lastname@example.org) or David Grashof (email@example.com) who will be able to give you the most accurate current information on access to SIMS .net.
firstname.lastname@example.org. However please note I am out of the office until April 10th but will repsond earlier if at all possible.
I contacted David Grashoff earlier in the week, he was very helpful. From the information he sent me it appears if you are a representative of an educational establishment with support from your local authority you go via them, if you are supported directly by Capita you go to Capita to obtain access to the "Business Objects". There are hoops to go through, I've still to work out what is actually required but if you do not require support and are going to take a very dangerous risk and plan to use your live SIMS database as the guinea pig, then there is no charge as long as you do not plan to pass on your implementation. The alternative is to buy support for £2500 in which you are provided with a test database to experiment on as part of the package. Again you cannot pass on your implementation. There is a non-disclosure agreement to sign also. However, if you are planning to sell your implementation then the costs are much higher as you become a "Partner", there are various levels. This is the business model rather than the proficient .net programmer in a school who wants to integrate their systems.
I think I got this right from what I read ........
Don't be put off @zag - contact David as i suggested earlier.
As Bill says, for your own use within school, there shouldn't be a charge, especially not for read only access. You can set up your own test server with live data, it works better that way, and have a play.
Even without the APIs, there are other threads covering how commandreporter has been scripted, and you might find manually scripting a few calls to that is easier to do what you want, without the headache of understanding the business objects.
If you use the commandreporter.exe program, no problem. If you use the "Business Objects" then you have a problem regarding non-disclosure.
Every SIMS installation has within the SIMS .net directory the commandreporter.exe program so it is there to use. If you run it with /HELP or /? as a parameter or on its own it will return some details of the parameters required to be able to run SIMS reports from the command line. By running this from another program, with the correct parameters for access to a report you can trap the output and use the data returned. The only problem is you have to parse the XML. I do this but the calling program (client) written in Java calls a RMI routine sitting on the server which in turn runs the commandreporter.exe software with the correct parameters. The returned XML is then parsed and the data marshaled into a Java array as an object and is then sent back to the client. I have clients running from cron jobs on Linux.
If you go to: http://sourceforge.net/projects/simscommandrepo/ you can download the server software and library for Java. Don't know why there is one not recommended???? They did not leave any feedback hence my comments in the project summary.
From what I understand of what Zag trying to do is, it is possible via the SIMS reporting engine, so he can use the commandreporter as previously stated. I'm happy to help but I need a few bits of information. (PS: It might be possible to use the VLE tool - but I'm not sure as I've never really used it).
Firstly, I assume this parents portal won't be using AD authentication? I assume the school will be using a externally hosted. It isn't a problem if they aren't - I'm just assuming we're having to generate user\pass for this system - I assume the nature choice would be using email addresses. The way I would do this, is a FULL export hourly\daily\weekly\monthly\termly\yearly\whatever you set then use file compare (ideally on the webserver) to pick up changes - this way you avoid students who got deleted off SIMS and the whole unsync'd issue if the link breaks for a while.
Assuming I am correct you would want to pull out parents email addresses - ideally you want the parent to be able change there email address online, however without the business objects and a butt load of work this won't be possible, so if you do add a "change email address" it'll have to ping off an email to the School Office so they can manually change it in SIMS (which the site will pick up when they next reload).
The next bit would be an opt-in\out option, not all parents might want this, or even be allowed it. So we'll want to filter on parental consent at least, having said that, this might not be as simple, still with SIMS reports the end-user can edit them as need, for example, we could add in a UDF field for parent gateway access then only parents who have the option ticked, or unticked depending if it's a opt-in or a opt-out thing.
Next we need to match up parents-pupils and also each document to a pupil. Just remember we don't want to expose UPNs to parents so it might be worth using the internal SIMS person id. We also want to give the documents friendly names and in a format that most people are going to be able to open - PDF would be a good choice.
The final piece would be getting the data securely to web server. It MUST be over HTTPS. Maybe zipping and encrypting the files too, or is that too much? So the parent gateway website would need a backend transfer api (thingy).
Hope that all makes sense
What I did for proof of concept was to use the email address of the primary contact(s), ie parent/carer would login using their email address as the username/password. Once this was verified in the SIMS database (by running a report, not "Business Objects"), an email would be sent to that address with links containing a time dependent token which was stored temporarily in a MySQL database. If there was more than one child then multiple links would be sent in the email. Each time the parent/carer set up the initial communication the tokens would be different, the connection between token and the identity of the student was stored with a copy of the token in the MySQL database. The link could go back to a server using https so the content returned would be encrypted. The server software I used was Glassfish running Java servlets. The data returned appeared on various pages reporting on attendance, behaviour, class details, timetable, basic information and assessment, the last part I did not get to finish the formatting. I had all this in place except the https stage and never let it go live out of school to parents/carers on the Internet. I've used the code elsewhere in other projects so the time was not wasted. By the way Keep Kids Safe uses the primary contact email addresses for their communications between schools and parents/carers so this is not new. Prohibiting data being made visible is easily managed by removing the parent/carer as a the primary contact, which would be the case in court orders etc. This obviously would require stringent management of email change requests.
Not sure that would e the best way. Wouldn't this cause issues when generating the data collection sheets?
Ok, bad example, was trying to think of a report that would be filtered based on primary contact that would be affected. Just thinking of photos - it used to be one tick box but now I've see about 5 or 6 different sub-options.
There is probably some sort of caveat and someone might find something to make this type of authentication problematic.
By the way, I had also in place that the IP address of the originator of the communication was stored in the MySQL database attached to the token so if the token was intercepted on route back to client and used with a different IP address the communication would fail to that new address. The only problem I had was that traffic was going via a Apache redirector so the Glassfish server saw the originator as the Apache server all the time, probably I haven' t got the settings correct there!
Finally got through to the correct person at Capita, it was a guy called Andy McGowen.
He explained that the commandreporter.exe tool is not capable of exporting already made reports in batch so thats a dead end.
Apparently no other school has done this yet but it would be possible to write a tool with a small amount of consulting time:
Something like this in pseudo code:
a. User will choose Profiles / IR
b. User will choose the session
c. User will choose the set of students to publish.
d. User will choose the folder to extract decrypted documents to.
e. System will queue the task to run at 21:00 that evening.
f. System will create the documents in the named folder
I assume it would be a command line tool that would be scheduled.
So now I can get on with the PHP side of things in the knowledge that it is possible (with a little money spent).
My ideas for the php web front-end are still the same.
- Parent name/pupil email CSV import
- "Single Sign on" logins with the student account
- Secure simple access to reports and profiles in PDF/Word format
Thanks everyone who gave advice.