SAP Payroll vs SAP Time Management: Displaying Custom Schema Messages
The most popular classes for on premise SAP HCM are the Time Management and Payroll ones which go into configuring these modules. Even though Employee Central is making a lot of strides in Time Management and with the partnership we have with Workforce Software that does allow for complex rules and calculations, I still know and hear about many companies in 2016 implementing and expanding their on premise SAP Time Management systems. I have gotten requests from people asking me to write on this particular topic since it is something that isn’t talked about nearly as much although it is still frequently used. There are so many customers who use SAP Time Management especially with many of the complex union rules and business processes that are out there that it will be around for a while. For Payroll there is obviously still a ton of interest in the configuration of it since SuccessFactors Employee Central Payroll still requires most of the same setup as on-premise SAP Payroll.
In both Time Management and Payroll classes I always get requests to compare Time vs Payroll since they share the same framework in their setup (Schema’s, Rules, Functions, Operations) and it seems like there is always of a friendly competition between Time people and Payroll people as they try to compare the two. In most cases people know either one or the other, or are clearly stronger in one although they understand how the other works. Fortunately, I have spent a lot of time with both from a consulting perspective as well as teaching the classes on both so that gives me a good perspective to compare the two and write a few blog posts around it as requested by colleagues and customers.
In one of our Time Management classes WNA311 there is a section on displaying messages in the Time schema for Time Administrators. In this class if there is anyone who works with payroll they always tend to ask – what about messages in the Payroll schema? This is a topic that also always appears to come up in one of my favorite classes – the advanced Payroll Schema Rule Writing Workshop class WNA11 when people ask how they can accomplish this. I have configured custom messages when a scenario occurs in the Payroll schema as well as custom messages when a scenario occurred in Time Management so I decided to write this first article going into a comparison of custom message in Time vs custom message in Payroll.
Creating a custom message in the Time Schema
In Time Management SAP has a standard operation COLER that is used to display messages in the Time schema. We are going to utilize that in order to display our message.
- First I am going to create my message text on table V_T555E.
- Next, I am going to write the schema rule logic that determines if my message should be displayed. For the purpose of this I will make the message display for only a certain Time Management group (1) from Infotype 50 and I used COLERXXI to make it so the message is informational and not a hard error.
- Lastly, I will call my custom rule in my schema ZMIS
Now when I run Time Evaluation, my custom message will be displayed if the criteria (Screenshot of the schema log included) is hit and I can go to PTMW/PT_ERL00/PT40/ and see this message being displayed as well as from within the schema log.
That process was relatively painless and your average Time Management functional resource should certainly be able to write this logic pretty easily.
Next, I am going to show you what needs to be done in order to do the same thing in Payroll.
Creating a custom message in the Payroll Schema
In Payroll, SAP has an operation XMES that is used to display a custom payroll message. There used to be an operation MESSG in Payroll, but it was deleted when XMES was created. SAP created a note 504704 which explains creating a message in payroll. I have pasted a screenshot of this note here for informational purposes. I will point out that this Note mentions there is a sample implementation 99TST that you could theoretically use if you only needed to create a message one time without requiring an ABAP code change.
So what do you have to do in order to create a message in the Payroll schema? Here is what is required:
- Create a enhancement in standard SAP code within include RPCBU409_OPXMES or register the object with SAP to add our code. I use an enhancement implementation for this example.
- Write logic that is called from the custom exit functionality (ZZ). There is some sample code that you can easily re-use which is commented out in this INCLUDE under subroutine xmes_natio. I decided to change it a bit so that the parameter entered in the payroll PCR (p_param) is the one that is called from my message class, but your can certainly use the SAP code or create your own code. Here is the commented out example SAP code as well as the small amount of code that I wrote.
- Next, I need to create my message text in HRPAY99CALC (You would want to use a message class in the customer namespace and not the standard SAP one HRPAY99CALC so that your text is not overwritten by SAP during an upgrade)
- Now I can create my message using operation XMES in a Payroll Schema rule. For the purposes of a demonstration, I will have this message display anytime my rule is called with no restricting logic, but you would probably create schema logic that dictates when this message is to occur.
- Lastly, I can put this rule into my payroll schema ZUIS by calling function ACTIO (Since I want it to be called regardless of what is in the IT/RT table so I would not use PIT/PRT) and I would call my PCR ZIMR
Now when I run Payroll for the associate I am testing with I can see the message being displayed.
We can see the clear difference in the complexities of creating messages between Time and Payroll. In Payroll, your average functional resource will not be able to do this and would need to rely on a technical resource in order to make this change. In addition, many organizations are stricter with enhancement to SAP code.
Time Administrators can work with the custom messages via the Time Managers Worplace (PTMW) or the Time Management Pool (Transaction PT40) and it is also something that SAP delivers standard in Time Management in the standard schema’s (TM00/TM04) as well as standard messages on V_T555E. So the framework of Time Management supports the creation and clearing of messages and that is likely why it is much easier.
In Payroll, the framework for writing custom messages is more restrictive which is likely because there inst a framework for clearing and dealing with those these messages. So with that being said, it does not always make sense to create a payroll message for a scenario occurring such as if an employee meets a particular limit, because then the message (depending upon the logic calling it) could come up in all future periods and it could quickly get out of control if not implemented correctly. I have come across scenarios where people want to be notified of a particular scenario occurring (Typically an exception that should be fixed) in Payroll via a message. This makes it so that these messages will also come up when you run a simulation or live payroll and then the appropriate Admin can clear the message by fixing the master data and you wont have an issue with messages getting out of control because the message triggers a reaction to fix it.
With the new functionality SAP has delivered in the Payroll Control Center and validation checks that you can build, it will make it less likely that you will need to create messages in your schema because they could be created in the form of data validations with a framework to acknowledge and clear the messages via your Admin role.
Regardless of the complexity, the beauty and power of SAP is that it is still possible for you to create messages in your payroll schema if that is something you really wish to do.
Please feel free to leave your thoughts in the comments below. I would love to hear from others on the topic comparing Time and Payroll including potential future comparisons you may be interested in!
Good job with this Imran and spot on that with the Payroll Control center much of this (from the payroll side) will be handled via validation checks (that are very easy to set up). It will be interesting to see if the adoption starts to pick up from SAP Payroll OnPremise customers for the Control Center as there is a not a lot interest so far which is a shame given the offering. That said, I think the combination of the technology "stack" needed for it, lack of consulting expertise, difficulty in making a business case and lack of overall information are some of the factors that are holding it back.
The good news is that we will see more and more Employee Central Payroll customers go live with the Payroll Control center and my guess is that will raise awareness in the marketplace.
Thanks for the comment Jarret. Always appreciate your insight.
I genuinely hope that the adoption of the PCC starts to pick up. In my opinion it addresses all of the issues that I heard SAP Payroll customers complain about over the years and an area where our competitors had advantages. (User Interface, Transactional Processing rather than a Process, Lack of KPIs and Insight into your payroll process, Difficulty in Reporting).
I am doing a lot of things to try to make the adoption happen and to raise awareness. I really believe that if you get the buy in of Payroll Manager's at an organization then you can this type of project approved. Payroll is too important in an organization and if implemented correctly then the PCC with the pre-payroll validations significantly reduces likelihood of errors and allows you to fix errors before starting payroll and prevent user error (Selecting the wrong variant etc.). As you are live with the PCC you should continue to build new validations as issues arise. Eventually it gets to a point where a majority of your errors are monitored and handled before ever starting Payroll.
You are right about the technical pre-requisites holding up a decent amount of organizations but from what I have seen there are many companies getting to the correct level that just don’t know to implement it or how to implement it.
The lack of information and consulting experience on the topic is in my opinion the biggest thing holding back greater adoption. All of Q4 2015 I was back to consulting work as I was helping a customer with a Payroll go-live. Being back in consulting on a PY project I ran into many very experienced Payroll Consultants (All of them with significantly more years of experience than me) and a majority of them did not know at all about the PCC so it is safe to say that they would not try to get any organization they are consulting for to implement it or raise awareness.
Furthermore, on the topic of lack of information, the reality is many people have misguided information. When I was at the HR2016 conference a few weeks back this topic came up with at least a dozen different people in random conversation and of those that had heard of the PCC many had incorrect information on why they could not implement it. The common reasons were they needed to have HANA (Maybe recommended at one point, but not true anymore), The PCC takes up too much database size due to declustering (Not true - you can decluster the results that matter to you for your validations (RT table for example) and not necessarily the bigger CRT/TCRT that would take up more size). In addition SAP provides a standard program to delete declustered results when you don’t need them anymore. Perhaps you only need to keep 2 periods of declustered results or maybe only YTD results which would not take up a ton of size. Someone even told me that they have been live with Payroll for over 10 years and it would be gigantic undergoing to take that 10 years of data out of the clusters which is not the case. I had one consultant tell me that he didn’t think any of his clients would be interested in implementing because he was under the impression that the declustered results replace the clustered results when you activate the PCC business function (Not True). So there are just a lot of misconceptions that are holding people back.
There was a session I attended on the PCC at the HR2016 conference and the room was filled up so much that there were not enough seats so there were 15+ people in the back standing up and a lot of intrigue.
I apologize for the rant, but this is a topic that is relevant for me on some of the stuff that I am working on and I feel very strongly about it.
Great stuff and spot on.
Imran,
Your observations are very interesting and on the mark. The complaint you here about SAP is that they have always been very good at marketing their name on the hats of golfers or on the signs you see at the airport but very poor at marketing and sharing first hand this type of current information with their already existing client base. This always seemed to be especially true in the case of HCM but I will say that SAP has made some small strides with more outreach in the last few years.
Hi Paul,
Thanks for the comment and discussion point. I definitely see your point with on premise HCM. There are many companies behind with their upgrades which make it hard to take advantage of new functionality when it is released. SAP has relied on partners who implement and support the customers to propose and help their client implement new functionality and the reality is that if you don't have a consultant/partner who is giving you good information and proposals on functionality that can help then your organization with a tangible ROI then the company probably hasn't made a business case for an upgrade and many times it is just easier for people to go about their day to day job without too much change.
With the SuccessFactors model and the quarterly releases it makes it so that companies do not get left too far behind (I say too far because there are still opt-in features that the company may not be aware of that could really help them unless they have a good partner who attends the IRR calls and stays up to date etc.)
Regards,
Imran
There's a lot to learn from your blog posts! The thought and detail that you put into every one of them is commendable.
Thank you very much Tania! I appreciate the comment!
Hi Imran,
Very useful blog. Well articulated.
Thank You.
Thanks for sharing.
Just have one question, even though I changed the msgty to ‘E’, it’s still not displaying the hard error instead just showing it as a warning. Is this a limitation or am I missing something?
Thanks,
SB
Hi
I have also the same question : even though I changed the msgty to ‘E’, it’s still not displaying the hard error instead just showing it as a warning. Is this a limitation or am I missing something?
Thanks,
SM