I recently moderated the December 8th live Q&A with HR Expert author and HCM consultant Danielle Larocca of spinifexIT. Danielle took questions on Insider Learning Network’s HR Forum on managing and reporting on new, open, and temporary positions; vacancies; and rehires, including best practices for applying reporting periods, dealing with changing job titles in open positions, avoiding problems with audits, vacant vs. unused positions, and comparing standard and global areas for query creation.
Lauren: Hi Danielle
I am on version SAP ECC 6.0. I am having trouble determining how SAP applies the Reporting Period in PQAH/Ad Hoc Queries. If you have any documentation on this, that would be great, but here are 2 scenarios that show my question:
1. If you run a query and set the Reporting Period to 'Other Period' and define this as a full year; ie. 1/1/20xx - 12/1/20xx with a filter on Employment Status = Active, any employees that have terminated during that particular year will not be displayed in the query data. Why? Is SAP only looking at data on the last day of the date range I have defined? Or does the latest Employment Status supercede an earlier status of 'Active' even if this employee had an Active status within the defined time period?
2. With the same reporting period as above, with a filter on Action = hiring (and no filter on employment status), if an employee was hired and also termed during the reporting period, their hiring action will not be displayed in the resulting query. Do you know why?
I have also been hunting for documentation that shows the mapping of SAP R/3 HCM fields to BW field as the friendly field names are not the same in both products. Would you be able to point me in the right direction?
Thank you very much!
Lauren
Danielle Larocca: Hi Lauren,
What a way to start out the questions! You have some real tough ones and it seems like you are an advanced user.
Let’s start with Questions 1 and 2. For starters you mention using the Ad Hoc Query. The limitations you face with selection options may be because you are using the Ad Hoc Query. I prefer the use of SAP Query (SQ01) to the ad hoc queries for many reasons including concerns of how it works. To learn more about that check out the 455 SAP OSS Notes for Ad Hoc Query that can be found at websmp210.sap-ag.de/support.
With that said, you have limited options for date selections with Ad Hoc Query however if you use SAP query you have several options which I describe below.
The Today selection will be used 90% of the time. In almost all cases you need to select Today as the day you want your report data current as of. By default the system is always set as Other period.
Selecting Other period and leaving the dates next to it blank will pull every record in the database (not a good thing!). If you do wish to select other period you will need to enter a date range on the screen. The data selection period enables you to specify the period in which employee data records are read. Only records which overlap with the specified period by at least one day are selected. To define an interval, enter the start date in the left column and the end date in the right column.
Selecting Other period and entering dates in the Person selection period the system selects only those employees who are members of the enterprise on at least one day in the specified period. These are persons with a valid Organizational Assignment (0001) record. You can specify an interval by entering the start and end dates in the left and right columns respectively.
Question 3 is about BW and about identifying the field mappings to BW. I do not have a list, although I would recommend sending the question through the general HR Expert or BI Expert mailboxes or the HR Forum. I hope that helps.
CrisannTellez: Hi Danielle,
I would like to understand what would be considered "best practice" for managing positions within SAP HR given some specific scenarios. Given the below types of organizational changes, when is it appropriate to change the attributes on an open position vs creating a new one? Some scenarios that we face include:
- An instance where a minor change to job title may be required but the overall responsibilities of the role are not changed. Can an existing vacant position be updated?
- An instance when responsibilities may be transferred from one part of an organization to another (change in manager/cost center responsible). Can a vacant, open position be transferred to the new cost center and modified or should a new one be created?
- Replacement of an employee who is leaving but for a short period of time there is an overlap where the position cannot be vacated and the new replacement hire joins prior to their departure.
The current processes implemented within our organization require new positions to be created in each of these instances. As a result the positions within our organization are very dynamic and difficult to manage/track. We feel that allowing us to make changes to the position would help to minimize the effort required to keep the open positions clean. Is there a best practice for handling these types of scenarios?
Danielle Larocca: Hi Crisann.
Like all things in SAP you may get different answers on this one. My golden rule for position management is to maintain accuracy and history indefinitely. With that in mind corrections or typos are usually the only scenario where you CHANGE a position (go in and alter it).
Yes, I agree it is frustrating to create new positions, but if you didn’t you would not be following the rules. For example I’ve seen SAP implementations were positions were re-used and changed as needed. DOL /OFCCP and other fun audits have torn them to shreds over this. Every position in the organization is a standalone item (and you should also be using a 1 to 1 relationship between people and positions) you should maintain the history and integrity of each and do not change them.
Even for scenarios where an employee starts as an Admin and gets promoted to a Supervisor you cannot just change the position you need to have the history of them being an Admin and vacating that position and moving to a newly created Supervisor position.
Use of the Position creation action helps (more info available in the IMG) to expedite the process. I once worked for one of the largest employers in the world with hundreds of thousands of employees, so we actually used ABAP to automate the creation of positions via a simple single-screen program. It’s a necessary evil but one that will save your butt in an audit in the future.
BHAYES: What is the best way to report unused live positions using ad hoc query?
If you are using Vacancy Processing (infotype 107) then you would create a report using an InfoSet (SQ02) that uses SAP logical database PcH as its engine and simply output any fields where the Infotype 107 has a value of OPEN.
Danielle Larocca: If you are not using vacancy processing, then you would create a report using an InfoSet (SQ02) that uses SAP logical database PcH as its engine and you would need to identify and position objects with an end date of 12/31/9999 that do not have an A002 relationship to a person.
BHAYES: Thanks.
julienlegret: Hi Danielle, I have a question related to users’ accesses to Ad Hoc queries -- specifically on the saving option.
For now we are not providing the option for end users (HR) to save their own queries. They have to ask the HRIS department to create the query for them. This is done it this way to avoid having 10 users doing the same query but naming it differently. On the other hand, that generates work for the HRIS department and frustration for the HR users... What would you recommend in term of strategy?
Other question: SAP offers 2 different areas for query creation - Standard Area and Global Area. The interest I see in the global area is queries can be built from the development system and then transported to the production one, so there is always a way to recover the query. What could be then the interest of using the standard area?
Thanks for your help.
Danielle Larocca: Hi there. The Ad Hoc Query is not designed for queries to be created and used over again. It is supposed to be used as one-time look-up tool as opposed to the SAP Query, which is designed for report writing and reuse.
Best practice is to use a naming convention for all reports created that use three letter initials (first, middle, last), followed by an underscore, and then the report description like DAL_Head Count Report. This way you can keep track of everyone’s reports. When you want to make one that is the official version for the company, then name it ABC_Head Count where ABC is the company name.
Using the SAP Query on screen 1 you can Lock the query against changes to prevent any users besides yourself from changing it.
To your second question: You can create your queries in the Standard (client specific) or Global (all clients on app server) area depending on which works best for your organization. In my examples, I use the Standard application area. SAP delivers their reports through the Global area and I consider that sacred. I build all reports in the standard application area. They can be easily moved between clients without transports that way, too.
See the 2004 HR Expert article titled “How to Copy and Move Queries Without Transports,” for more information.
M.S. Hein: If you already are an HR Expert subscriber, you can access the article Danielle referenced "Ask The Expert: Copy and Move Queries without Transports," HERE.
Praveen G: Could you please comment on Best Practices for replacement of an employee who is leaving, but for a short period of time there is an overlap where the position cannot be vacated and the new replacement hire joins prior to their departure.
Thanks, Praveen G
Danielle Larocca: Hi Praveen. Your question is similar to one I answered earlier. I will share that answer here:
Like all things in SAP you may get different answers on this one. My golden rule for position management is to maintain accuracy and history indefinitely. With that in mind corrections or typos are usually the only scenario where you CHANGE a position (go in and alter it).
Even for the scenario you described I would recommend this option unless of course you are using SAP's "Multiple" or Concurrent employment".
You inquired about clean-up for things like positions and organizational units.
I like to keep a clean system myself. I never delete anything though; however you can routinely clean them up. A popular solution is to create an ABAP program that locates, identifies and delimits (not deletes!) any position that does not have a holder attached to it (A 008 relationship between an S and a P objects) and that also does not have the vacancy flag set as vacant on infotype 1007. Same is true for org units. Delimit and not delete will keep you ok for historical reporting.
Scott Wallask: Hi Danielle, Good info on the Ad Hoc Queries that Julien asked about.
I have a question, too, that one of our readers mentioned: Why would positions remain after running a termination action, and what does it mean when an infotype 1 shows a 99999999 for terminated employees? Thanks...Scott
Danielle Larocca: When you terminate an employee in R/3, the only thing the system does is delimit (put an end date on) the A 008 (holder) relationship between the person (P) and the position (S). That is why the position object still exists after the employee has been terminated.
A popular practice is to use vacancy processing in PD (infotype 1007) so that during the termination event a dialog box appears asking you if you wish to create a vacancy for the position. If you select YES, the position is deemed “vacant” and appears on the standard SAP-delivered vacancy report. If you select NO, then the position does not have a vacancy attached to it. This distinguishes a vacant position that will be filled from one that will not.
BHAYES: What are the highlights of
Danielle Larocca: Hi there. There is a great document that ASUG published that can be found at this URL that covers all new things in EHP 5 :)
Laura Casasanto: Hi Danielle, Is it necessary to distinguish between vacant/empty and unoccupied positions? And do you have any best practices for leaving positions open indefinitely? Thanks!
Danielle Larocca: A popular practice is to use vacancy processing in PD (infotype 1007) so that during the termination event a dialog box appears asking you if you wish to create a vacancy for the position. If you select YES, the position is deemed “vacant” and appears on the standard SAP-delivered vacancy report. If you select NO, then the position does not have a vacancy attached to it. This distinguishes a vacant position that will be filled from one that will not.
You inquired about leaving positions out there as open forever. You can do that, but if you are like me and want a clean system, you can routinely clean them up. A popular solution is to create an ABAP program that locates, identifies and delimits (not deletes!) any position that does not have a holder attached to it (A 008 relationship between an S and a P objects) and that also does not have the vacancy flag set as vacant on infotype 1007.
If your company does not distinguish between vacant and unoccupied positions – that is, you consider all unoccupied positions to be vacant – you can set an indicator rather than maintain the vacancy infotype. It is not mandatory that you utilize vacancy processing in SAP.
You should, however, use vacancy processing if you install the following HR components: Personnel Cost Planning, Career and Succession Planning, or Applicant Administration. For these sub modules, reuse of positions when they become vacant makes your processing easier.
In the case of Succession Planning, if you create successor relationships from a person to a position and the position becomes vacant, you can easily identify who the successor to that position is and fill it accordingly.
M.S. Hein: If you don’t turn on vacancy processing, can you find the positions that are empty?
Danielle Larocca: Yes. You would just run a report to identify positions with an end date of 12/31/9999 that do not have a holder or an infotype 107 marked as open.
M.S. Hein: Thanks to all of you who posted questions and followed the discussion!
A full summary of all the questions will be available here in the HR Forum. I also encourage you to review Danielle’s regular blog on Insider Learning Network, and join the HR Group for ongoing information and additional resources. You can also meet Danielle in person at this spring’s HR 2012, in
Be sure to continue to post your comments about articles, blogs, or podcasts on Insider Learning Network, or post your questions in the HR Forum. Simply log in to Insider Learning Network, go to the HR Forum, and select the “New Thread” button on the left at the top of the page.
For technical advice on OM and reporting, you can find many helpful articles on HR Expert, such as Share Organizational Management Data Between SAP Systems Using Transport, by Debanjan Chattopadhyay, Two Methods to Access OM Data Quickly and Easily, by Rehan Zaidi, and Use These Two Reports to Correct Wrong Start and End Dates for OM Objects, by Vamsi Mohan.
And thank you again to Danielle Larocca of spinifexIT for joining us today!
Danielle Larocca: Thanks all – have a great holiday!
