Totara Learn Open Discussions

Using API's to send Totara info to external system

 
Carol Papish-Putnam
Using API's to send Totara info to external system
di Carol Papish-Putnam - Monday, 16 September 2019, 13:18
 

Hello all.  We are in the process of moving to Totara from another platform (that shall remain nameless).  Our old LMS produced a daily .CSV file containing User Completion/Transcript data that saved to an SFTP directory and then sent to our HR system.  We have discovered, however, that Totara doesn't do that but instead will only produce a .CSV file to be e-mailed and that even that process can't be scheduled.

We've been told that using Totara API's is the way to go.  As I understand it, if a particular API is turned on, our external HR system would be able to communicate directly with the Totara LMS and pull out the data it needs.  It seems that I need to find a developer who is familiar with Web Services to develop the code to access the Totara API and get that information into our HR system.  But that's about my limit of understanding.   Can someone please tell me:

1.  Is there an existing Totara/Moodle Plug-in that does this type of thing?

2.  Where can I find detailed Totara API specifications?   (I know about this page but I'm pretty sure it's not detailed enough for a developer to use:  https://help.totaralearning.com/display/DEV/API+for+external+systems#APIforexternalsystems-APIdocumentation)

3.  What sorts of communication specs would be needed to transfer data between Totara and an external HR system?  For example, our HR system is sending files to Totara and I know that the people responsible for setting that up traded info about "IP address, user account, and PGP Public key."  I'm assuming that a Web Service connection would need similar information.

4.  Skills that I should be looking for in an API developer?

5.  Which Totara API would be the one to use for this?

6.  Anything else you can think of that will help me get this setup?

Thanks in advance for any and all help.  Carol.

Olumuyiwa Taiwo
Re: Using API's to send Totara info to external system
di Olumuyiwa Taiwo - Monday, 16 September 2019, 18:25
Gruppo Partners

Hi Carol,

I've developed a plugin that I believe does exactly what you've described - I announced it in this forum post: https://totara.community/mod/forum/discuss.php?d=23585#p94453. The plugin itself is available to be downloaded from Github at https://github.com/logicexpertise/totara-local_rbws

Essentially, the plugin exposes a web service function that an external system can call in order to pull data from a Totara report.

In your scenario, you would create a report in Totara using the Report builder. Your external system would call the web service function exposed by the plugin, passing it the report ID as a parameter, to get the contents of the report.

Feel free to log an issue on the plugin's github issue queue if anything is unclear.

Cheers,
Muyi
L'intervento è stato rimosso
Monday, 16 September 2019, 22:28
Il contenuto di questo intervento è stato rimosso, non è più possibile visualizzarlo.
Carol Papish-Putnam
Re: Using API's to send Totara info to external system
di Carol Papish-Putnam - Tuesday, 17 September 2019, 07:14
 

Wow, Jonathan!  Our implementation consultant didn't tell us about the option to save the report to the file system.  Now if I can just find the option to schedule the report.  THANK YOU!

Thank you too, Muwi.  If I can't get this worked out, I will definitely take a look at your plug-in.

Carol.

Craig Eves
Re: Using API's to send Totara info to external system
di Craig Eves (Totara Support) - Tuesday, 17 September 2019, 18:17
Gruppo Totara

Hi Carol

When you select the option to Save to the file system then you select a Report> Add a scheduled report the option to save scheduled report to the file system should appear.


Regards


Carol Papish-Putnam
Re: Using API's to send Totara info to external system
di Carol Papish-Putnam - Wednesday, 18 September 2019, 05:56
 

Thank you, Craig.  I had created the report before thinking about it being scheduled and then I was having a hard time finding the option to schedule it.