How can I expose employee master data from SAP HR/HCM
I'm shortly to start on an integration project that will require organisational data (line reporting etc) and starter/leaver events etc. We utilise SAP HCM, but I have no experience of SAP (BizTalk/.NET developer), and I'm still attempting to find the right people to talk to in our organisation about how to interface with SAP.
Sadly (for our organisation anyway!), Stack Overflow is normally quic开发者_C百科ker :)
So, really I'm looking for an answer to the following;
- Does SAP HCM expose master employee data "out of the box" via web services. If not, does it require much to expose this on the SAP side?
- If data is exposed, is it via a pull only model? ie, can SAP be configured to push events?
- This may be naive, but does a trial version of the SAP stack exist to allow me to explore the options?
Any suggestions would be gratefully received. I know in the past the organisation has had to engage SAP consultants for integration work like this, but (in my naive world I guess) this seems a reasonably simple integration problem?
Regards, Jason
I'm not familiar with the HCM module specifically, but I can provide some general answers:
Generally, standard display functionality of the major business objects (like a User or a Job in the HR world) are exposeed via BAPIs. Assuming your Basis team has ICF (Internet Communication Framework) configured, it is pretty simple to expose a BAPI as a web service.
SAP can push data based on events happening in SAP. For example, you could have SAP call a web service in your legacy application whenever a new employee record is created in SAP.
According to this post there is no trial version of HCM. However, here's a few things that might be useful. I haven't used them personally but they look to be worth trying out:
- SAP Enterprise Services Explorer for Microsoft .NET
- SAP NetWeaver 7.01 SR1 SP3 Developer Edition
Does SAP HCM expose master employee data "out of the box" via web services. If not, does it require much to expose this on the SAP side?
There are very few web service for HR. However, an ABAP function or BAPI can be transformed into a web service using a menu option... if such a function does not exist then it should be simple to create on (a pull solution)
can SAP be configured to push events?
Yes, by several mean. HR operations modifictaion of master data, or administrative operation can generate event that can do anything (update a table, or call a web service)
This may be naive, but does a trial > version of the SAP stack exist to allow me to explore the options?
There a a trial stack version available on sdn.sap.com, but this contains only the core, and no specific module like HCM.
Regards
Guillaume
Additionnal Infos :
you can easily get informations on an existing user using standards RFC function, such as BAPI_EMPLOYEE_GETDATA (to get a list of employee from several criteria), or BAPI_BANKDETAIL_GETDETAIL for bank detail. You "just" have to create a wrapper call in your dev. langage
However, this will not give you "events" such as a modification of those bank details, the hiring of a new employee or the firing of a (previous) employee... For this you have to do non-trivial developpement (the simplest : any modification of a master data put the employee id in a table... each day you check the table and import the data currently valid)
Regards
The challenge with connecting directly to SAP from another system creates a non scalable architecture - point-to-point interfaces that are affected by changes or issues with both systems. Let's say you try and push out changes to employee data and the target system is not available, well SAP will most likely short dump (throw and error). Now you have to think about a continuous batch job in SAP to try and manage these outages.
SAP have the Netweaver Gateway 2.0, which essentially supercedes a lot of these older style interfaces. The gateway provides an abstraction layer and some form of persistance and recovery mechanism. A golden rule is never hardware systems together directly, rather look at some form of middleware layer in between which provides semanitic and physical abstraction of the systems.
精彩评论