Posted on 10-29-2017 12:18 PM
I have a FileMaker Pro Server 16 setup (which is suppose to support REST API).
I have a cloud version of JAMF Pro.
I would like to use REST to GET mobileapplications data from the JSS to FileMaker.
Has anyone done this? I am hoping to learn, but it is going slow. I can see how to get the JSON data from the JSS https://myserver.com/api but I cannot figure out how to do this within FileMaker.
Anyone want to assist?
Posted on 10-30-2017 02:02 AM
This depends heavily on exactly what you are trying to accomplish. Haven't really used FMP since version 12, but data in a database should still be structured the same way, and FMP is able to do a lot with its scripting engine.
Import JSS "mobileapplications" data into an FMP table? Get XML from JSS and use FMP's XML import with XSLT. You will need to transform JSS' XML result into a FMPXMLRESULT. Not very difficult, but you'll need some XSLT knowledge. I used trial and error with FileMaker Pro 7, and it worked well in the end. This will also work with FMP both on Mac and Windows.
Import JSS data for a given mobile device into a given record in FMP? Get FMP to fetch JSON data into a field, and process the field using FMPs built-in JSON commands. Don't know if FMP 16 has gained the ability to fetch an authenticated URL into a field, but it should be possible, at least as an external script. External scripting will be bound to the platform you run FMP on.
Don't remember if you can make FMP store the needed login info to do the REST calls, but in theory it should work. I would look into XML import and XSL transformation.
Posted on 10-30-2017 01:47 PM
Please look into the JSON. FileMaker 16 is suppose to support both JSON and XML content both ways. It is suppose to support tokens for authentication as well. Just need to get the cURL information correct for headers for FMP to GET data from the JSS (and eventually PUT).
I am just looking to GET /mobileapplication data right now. Once I see that working, I should be able to get the rest.
thank you
Posted on 10-31-2017 05:11 AM
I finally figured out how to send the authentication credentials and get a response for mobile applications. Now need to figure out how to parse through the response and put the individual pieces into fields and create new records for each entry.
I will post my Filemaker database when I have succeeded so others can experiment as well.
Posted on 10-31-2017 06:17 AM
I stand corrected. You can absolutely use JSON calls directly in FMP scripts, and it seems nice. Just read https://fmhelp.filemaker.com/help/16/fmp/en/index.html#page/FMP_Help/json-functions.html and it seems you'll get there in the end.
Good luck!
Posted on 10-31-2017 01:42 PM
I got it! I now have a FileMaker Database where I have imported data via JSON API from my JSS to FileMaker.
MobileDevices took quite a long time to import (about 1 hour to import 2701 devices (iPads, iPhones).
MobileDeviceApplications went much quicker. Took about 2 minutes to import 1165 apps.
That was with the simple GET commands for each.
Now going to work on the IDs of each
/mobiledeviceapplications/id/
which should give me more information on each app (including scope for each app!).
and
/mobiledevices/id/
which should give me more information on each device
Then the next step is to experiment with the PUT and update information.
I can then use this Filemaker database which is already connected to our SIS (Infinite Campus) to update our JSS when new students arrive (or leave). I am getting excited with the possibilities :-)
Posted on 11-02-2017 06:46 AM
I hope you share your database when done, or close to done. Id' like to take a look at that.
Posted on 11-03-2017 12:56 PM
Well, I have the GET JSON working. Just cannot get the PUT XML to work.
Attached is the FileMaker 16 database for anyone to try.
I only have scripts to GET Mobile Devices and Mobile Device Applications (and only those fields I am interested in).
If anyone can get the PUT to work, I would love to know how you did it. Only way I can see to attach is to share the link to the database from my Google Drive folder. So hopefully it works.
Posted on 11-03-2017 01:01 PM
I should mention that database uses 2 passes to get the information into each table.
Mobile Devices
First imports Mobile Devices ID, Display_Name, and Serial_Number
Second imports the rest of the data.
Mobile Device Applications
First imports Mobile Device Application ID, Bundle_ID, Display_Name, Version
Second imports the rest of the data
Of course, you need to fill in your data at the main menu (JSS, Username, Password)
Posted on 11-07-2017 08:42 AM
I have a FileMaker database successfully built which will GET data from the JSS and create records in FileMaker. You can then edit the data in FileMaker and PUT it back up to the JSS.
The great thing about using FileMaker is you don't have to export into CSV file. You can directly connect to the JSS via JSON or XML for GET and XML for PUT. FileMaker 16 has the capability.
The FileMaker database I built only deals with Mobile Devices and Mobile Device Applications (since that is all I needed), but looking at the scripts, tables could be expanded to include computers and all the data for computers as well.
Working in FileMaker is MUCH faster than working within the JSS. Example, I can take a classroom set of iPads and change the fields for Building, Room, Department, Site, and Device_Name and change them in FileMaker, press a button and a minute later the entire classroom set of iPads have been updated with the new data (similar to JSS MUT, but I don't need to create separate CSV files, and my data is re-usable and searchable and I can print reports, etc since it is in FileMaker Pro).
I will be posting my database later this week. Still need to clean up some things.
Posted on 11-11-2017 06:43 PM
I have a FileMaker Pro 16 database I am willing to share, that uses the jamf pro API.
Currently, I have the API create records in the FileMaker Pro 16 database using the GET API for Mobile Devices (inventory of iOS and tvOS devices) and Mobile Device Applications. Those are the only 2 tables I was concerned about.
In Mobile Devices, I collect the following fields (GET using JSON):
JSS ID
Display_Name
Serial_Number
iOS_Version
Asset_Number
Site_Name
UserName
Real_Name
Email_Address
Department
Building
Room
I am then able to modify records and send data back to the JSS from FMP using the API PUT (and POST for Display_Name). I can update multiple records with multiple fields at the same time (similar to JSS MUT, except multiple fields instead of one field at a time).
The following Fields can put updated back to the JSS from FMP (using PUT [or POST] using XML):
Display_Name (using POST)
Site
Username
Real_Name
Email_Address
Department
Building
Room
For Mobile Device Applications, I am creating records in FMP from JSS with the following fields using GET and JSON:
JSS_ID
Display_Name
iTunes_url
Description
Category
Deployment_Type
Total_VPP_Licenses
Used_VPP_Licenses
Remaing_VPP_Licenses
And I am able to update the JSS from FMP (PUT using XML) from the fields Category and/or Deployment_Type
If anyone would like this database to expand or look to see how it is done, send me an email (bvondeylen@neenah.k12.wi.us).
It wouldn't be difficult to expand upon what I have done with other tables (for computers) or collect more fields in the tables I have done.
Posted on 04-15-2024 06:39 AM
Would you still have the database?