The ODATA Application Programming Interfaces (APIs) that allows other software to integrate with SAP SuccessFactors is extremely robust and well documented. I love it and can advise clients on how to formulate the API calls, despite not being super technical.
As with the other modules, Recruiting breaks ODATA APIs into logical entities such as Requisition, Application and from there other related entities can be navigated to such as Posting, Application Status Audit Trail, etc. This is similar to how you will see it when creating a report.
Though the ODATA APIs are powerful, there are fields available in reporting that are not available in ODATA. The key ones that I can think of are listed below non the Application Status Audit Trail.
- Application Time in Status
- Skipped Status
The Time in Status tells us how long an applicant was in a status before moving to another status. The reasoning for it not being available via ODATA is that it’s not stored in the database and is calculated at the time the information is requested.
The Skipped Status tells us whether a status is skipped. All statuses that are bypassed in the process are stored in the audit, with the skipped status being set. This only shows statuses that have been passed. If I passed phone screen and went straight to interview, phone screen would be saved and set as skipped. If I got to interview but rejected the applicant before extending an offer, anything after interview wouldn’t be considered skipped.
External systems may need this information. Notably I have worked with a couple of clients where a status has been set such as “Request Drug Screen”. If the skipped field isn’t available then the external system can’t tell whether a drug test was really requested or this step was skipped. Application Time in Status is more likely to be needed by third party analytics applications.
The only current solution is to use reporting instead of an ODATA call. A report is run and exports the desired data to an FTP folder. The third party solution then picks up the file from the FTP server for processing.
We’ll use the example of the skipped statuses in the application status audit. I’m going to show how to do this using Ad-Hoc Reports (now labeled Report – Table in Report Center).
Ad-Hoc reports can only use absolute dates and can’t use relative date filters such as “Give me all statuses from today”. The answer is to either use a filter such as “All Application Status Audit entries where the status is Request Fingerprint AND Status is not skipped AND the application is still open”.
The above approach can lead to a high amount of data if you’re doing high volume hiring. An alternative is to still do an FTP export but do it from Online Report Designer (ORD). This allows for doing a delta extract as you can specify “All Drug Test Requests from Today”.
One of the advantages of using a real-time API is the up-to-date information. Though reports can be scheduled for daily, weekly, monthly yearly occurrences, multiple schedules can be created. They just need to have different names such as Application Status Audit Morning, Application Status Audit Afternoon. See below.
To schedule a report, click the Perform Action ‘…’ to the right of the report label and then select New Schedule, per the below screenshot.
Then follow the easy steps to setting the job name, filter. FTP destination and occurences.
If you execute your Online Report Designer (ORD) report in the Report Center Scheduler it won’t allow export as an Excel. You need an Excel for integration. Within “View Schedules” click “Legacy Report Distribution” in the top right.
Have you ran into other integrations where you have done this? Let me know in the comments.