sap-hrnovell-idm

SAP HR Relationship models


SAP HR apparently has several models for describing the relationship between Position (S), Job (C), Organization (O) and Person (P) objects that the Organizational Management (OM) module is used to maintain.

P (Person) objects are usually Holders of Positions (S).

There is the S-S relationship model, which I am told is called Supervisory model. That is each Position reports to another position, and one of the positions is considered a manager.

There is another model whose name I am trying to locate, where the structure of Organizational reporting is between O objects first, in a tree structure. At each node, the S objects belong to the O object, with one of them flagged as the Manager.

No doubt there are other models, and if you know what they are called, and how they work, that would be very useful!

My perspective on this question is while trying to implement a Novell Identity Manager driver from SAP HR into an eDirectory identity vault, from there to provision users into Active Directory and Lotus Notes.

One of the key drivers for the project is the manager and directReports structure, so that Managers can all be identified, and the reporting structure visualized. Thus the importance of the SAP HR relationship modelling.


Solution

  • There is no fixed model of organisation, as you can create your own objects and/or relations between objects. OM is a module by itself, so informations given here will be just a really short introduction.

    The most simple org model is a O-O-S-P :

    These relations are the standard ones, and have been used by all clients I've worked for/with. However, depending on the needs, other objects (F : function, T : task) can be used, with other relations. As already said, it is event possible to create new object type or new relations. The only way i know to get a quick look at the relations used for an organisation is to check the tables :

    Objects are present in the HRP1000 table (basic informations on objects). The objects Id linked to a given person can easily be found in the infotype 0001 (transaction pa20) : id of object O is PA0001-ORGEH, S is PA0001-PLANS, F is PA0001-STELL. Of course P is PA0001-PERNR (employee Id).

    Relations between objects are in the HRP1001 table. To search for a given relations you need to give the (relation) source Id and type, as well as the destination type and id. for example, to get all position managing a unit (ie all manager position) you may do

    SELECT * from HRP1001 where OTYPE = 'S' 
                            AND RELAT = '012' 
                            and RSIGN = 'A' 
                            and begda <= sy-datum 
                            and endda >= sy-datum 
                            and sclass = 'O'.
    ...
    

    fields OBJID and SOBID will then contains ther id of positions and units.

    transaction ooaw allows the management of evaluation-path, that is a set of relations to be followed recursively to get a set of objects. you can use them with the function 'RH_STRUC_GET'(field wegid is the evaluation-path). This may be easier than using a set of select. Thus if you want to get all the units and person under a given unit, you could use the "O_S_P" evaluation-path with a depth of 0 (ie, all the way down), or "ORGCHART" if you also wants the functionw (description) of the positions.

    Hope this help you. Regards