There are two ways to assign some amount or number to a wage type in SAP in infotypes 8, 14, 15. This is either direct valuation, when you key in figures manually, or indirect valuation, when the system decides what value to take based on some conditions.
If a direct valuation is straightforward, let’s have a look at indirect wage type evaluation background. The first thing we need to see is where it’s defined. Some value from the dropdown list in this field V_T511-MODNA says to SAP to run a specific program to get the value – indirect valuation module.
Dear subscribers! I’ve recorded a new video for you about SAP User Parameters. What is this, how to use them and where to find, if you don’t know the exact name or parameter format. Let me know what you think of it.
Well, pretty easy. Google it, search for SAP notes, dive into already dead SAP SCN/SDN forum, take a gallon of coffee, sprinkle it with a debugger, learn ABAP and turn off social networks. Then it would take you only 5 minutes to read the system dump and fix the issue. Sounds easy, huh? Sometimes it’s quicker to read the dump then to open a ticket with a developer and wait until it’s resolved.
In real life, we have we could have two situations: recent dumps and old ones. The difference is in timing. If we ran into something and a short dump occurred, we can dive into a debugger right away and see the issue. If it’s old, it could be taught to understand what was the real cause of it. Usually, a dump occurs when user inputs something not expected by the system, like his name instead of a salary amount. In the first scenario just click on the debugger icon and the system opens a new window, where we can do some investigation. Otherwise open transaction ST22 and find your short dump which is usually under your name, but not necessarily.
Here is the dump from my SAP system from HR module.
Many strange letters here, but here is the trick. The system dump could happen in the customer program (read your developer did a bad job) or SAP namespace. The easy way to distinguish is to look into the object names like if they start with Y or Z. these could be field names, class names, program names, routines, etc. If it falls into the customer namespace, then it’s much easier to fix cause we have a developer on board and can fix this. Otherwise, we need to search for SAP notes or support packages or even file a ticket with SAP Global Support and let them investigate our system.
If you’re a consultant, not a developer, stay with me and I’ll show how to read system dumps. Developers won’t find anything new here.
The first and most obvious is to read what’s written on the first page of the system short dump (who called it short when it’s a huge long read?). IN 90% the issue is right here and self-explanatory, like a value, doesn’t fit the field, wrong field or there is no active version of a program. Don’t close the window, read it! It could be a memory shortage and all you need is to restart the transaction (let’s say you ran a huge report). That’s easy! Or there is a broken network connection to other servers which will be back shortly.
The next case is when it happened to our in-house development. We need to understand what code caused the dump. To figure this out let’s scroll down a little to see the exact ABAP statement and row line in ‘Information on where terminated’ and ‘Source Code Extract’ sections. Have a look.
For example, here the system shows something broken on line 7. In plain English it says some value in P_NAME variable is missed, so the system doesn’t know how to proceed. If we have no clue why is that, let’s open the code, throw a breakpoint at the beginning of this routine and rerun the transaction. The system will stop there and step-by-step we’ll go over the code watching where this variable is filled. Why is it empty? Maybe the system reads some customing tables with some key and there is no value inside? A good point to open that table in SM30 and review configuration.
If you scroll down to the ‘Chosen Variables’ section, there are variable values shown at the moment. Maybe something is, issued or has a wrong value there and it’s telling us the cause? A developer was expecting a user to input date on 10/10/2020 format, not 101020, let’s say.
In ‘Active Calls/Events’ section we see the stack – what routines, classes had been called before we reached the outage point. If it’s a background program where the dump occurred, we can see the root cause.
Rarely we can see system dumps caused by kernel or system packages. If we installed something new in the system and it’s not compatible with the current configuration. Therefore we go straight to SAP Notes and search for it. It’s a high chance the issue was already resolved and all you need is to install a new SAP note with SNOTE transaction. This is a good reason why it’s not recommended to install the most recent patches, but the most recent minus one – somebody has already met that issue before you.
If it’s completely unusual and you’ve tried everything and it didn’t work, try to look into ‘How to correct the error’ section. They either say how to fix the issue or provide you with a set of keywords you should use to google or search in SAP Support Portal. It really helps.
The last resort. If nothing works, call the developer. They know how to dive very deeply and find the very root cause. Or open a ticket with SAP global Support. It’s free of charge.
8 hours in debugger and I became pretty familiar with SAP concurrent employment and absence quotas in this functionality. While it was introduced really a long time ago, there are a few sources of documentation. Let’s dive into it right away.
We have global employee who temporary assigned to another country or company. We want for any reason to maintain his overall vacation time and track absences taking into account absence quotas from both assignments.
Idea is to have absence quotas for two (or more) concurrent employments (or assignments) and use one absence on any assignment to deduct time from these shared quotas.
We setup absence quotas like normal single assignment. But there are some differencies:
When setup absence code, which would consume quotas from different assignments, we tick checkbox to say system – use absence quotas from multiple assignments, not just the current one. V_T554S-ABSTYP_SHARED_CE
When setup absence quota tick the same checkbox, but do it on both (or all) assignments you want absence to withdraw days or hours. V_T556A-QUOTA_SHARED_CE
When setup absence quota deduction rule there is a new checkbox, which allows to prioretize current assignment or use quotas from other assignments first. ?556R-QTTPR_CE.
This all is obvious and has good explanation in help to these IMG settings or checkboxes themselves. Now, some undocumented magic.
If you assign employee within one country, the standard would work just fine. But in case of different countries you need to change concurrent assignment grouping. You change SAQD vaiable in V_T7CCE_GPASGM view to XNON. This key says the system to track all assignments from all countries like one.
The worst news are there should be the same absence quota code for all assignments. You can’t use 01 in India and 10 in the USA. Codes should be identical, otherwise system will not see quotas at other locations.
Saying all this would allow to use one absence code on any assignment to deduct multiple quotas over different assignments.
There is an easy but hidden way to filter data in SAP LSMW projects when you deal with large data sets. Besides ABAP technics there is a standard SAP feature to enable additional selection screen fields with filters like we get used to seeing in any SAP report.
When we set up the source structure in our LSMW project, there is a small field we usually don’t pay attention to. It’s called the ‘Selection parameter for Import/Convert Data’.
This parameter automatically creates a selection screen parameter with filter capability in loading and converting steps in LSMW project.
Who does this job? Normally SAP Functional consultant builds the LSMW project but somebody like SAP HRIS Analyst loads data periodically. So if you’re from HRIS, let your colleagues know this feature because it could save you a lot of time!
I’ve heard a lot of times people complaining SAP HR is difficult to learn and nobody could explain why. Let me share with you my thoughts why SAP HR is complicated module and why you should not afraid to step into it. There are number of reasons HR consultants paid a little bit higher on the market. Read further to find out why.
First of all I need to say there is a clear and straightforward solution how to become proficient. I’ve written a post about this and you can read it here How to become a SAP consultant. It doesn’t mater what SAP Module you choose but stay there and learn it hard. There is no cheat sheet to jump on the running train and get promoted in months. I’ve mentioned some personal advises if you would like to see my approach. Here is the link 5 Efficient steps to build SAP HCM Consultant Career. Back to HR and SAP. SAP HR is a huge module and a lot of people think of it like a personnel records management or time and attendance, or just payroll. It is not truth. SAP HCM is all about personnel but not as a chunks of separate data. It’s a whole integrated solution which includes personnel records, time management, payroll, performance, talents, learning, recruiting and much more. It’s all named SAP HR module or SAP HR Suite. Architect level guys need to know all these “chunks” and how to marry them in a cake, tasty cake. Other SAP modules have no such variety of functionality or components in SAP terms, this wide spread of data management, reporting and different technologies like old-school assembler coding, infotype-approach and portal solutions – all in one module.
In real life nobody knows all functions of all SAP HR components. This is too much to know for one person. That’s why we have PA/OM consultant, Time Management Consultants, SAP Payroll Consultants and a lot of other talent-pool consultants (one per component). Saying this companies and recruiters don’t make any distinguish within HR module and name all of us the same way – SAP HR consultant – while every component has its own specific.
Let’s answer the question, why HR is so difficult to learn.
Basically, position exists in the organizational chart while it’s approved in Headcount Budget. Max number of positions limits number of full time employees we could hire. One position can hold no more than 100% occupancy, so two part-time employees could hold the same position like 30% + 70% or 50% + 50%.
Vacant position initiates the search for Recruitment.
Obsolete position locks any changes to the position.
Scenario
Position Status
Recruitment
Reporting
Headcount Budget was approved
Position to be vacant (IT1007)
Search to be initiated
Shown as vacant
Employee was moved/terminated and we need immediate substitution
Position to be vacant (IT1007)
Search to be initiated
Shown as vacant
Employee was moved/terminate and we have not decided on the position
Position to be on hold (IT1007)
No employee search performed
Shown as occupied
Employee was moved/terminate and we don’t need substitution in some future
Position to be obsolete (IT1014)
No employee search performed
Shown as obsolete
Employee will be terminated and we need to initiate search in advance
Position to be vacant (IT1007) even if occupied
Search to be initiated
Shown as vacant
Position was created by an error
Position to be deleted (IT1000)
No employee search performed
Is not shown
Job at specific location/position is eliminated
Position to be delimited (IT1000)
No employee search performed
Is not shown
Division is obsolete
Position to be delimited (IT1000)
No employee search performed
Is not shown
Division/Position is obsolete and it’s occupied with employee on leave
Position to be obsolete (IT1014) and delimited (IT1000) once employee is back and moved/terminated
LSMW is a standard SAP tool to do any kind of mass data changes.
In 99% cases, we use Batch Recording which works like macros in MS Excel/Word. The system follows user’s steps, recording screen by screen. Once done we map data file to these screens and data fields. Than system repeats the same steps like the user would be doing manually.
Organizing LSMW projects
In LSMW transaction we have projects, subprojects, and objects.
SAP LSMW
Ideally, there should be one global project for routine updates, one for data migration.
The subproject is something meaningful, like OM, PA, PT, and PY for different HR areas. Or it could be one subproject for all infotypes, no matter.
An object usually represents what’s being changed: infotype, table or something else.
To start we need to choose from all three entities: project, subproject, object.
Here is the main LSMW window. Steps “Define Object Attributes” to “Assign Files” are settings, other for execution for the end-user.
LSMW is a standard SAP tool to do any kind of mass data changes. It has a number of ways how to update the data in the system:
BAPI
IDOC
Batch Recording
Direct Input
BAPI is the fastest way, but there is a limited number of BAPIs available to the customer.
In 99% cases, we use Batch Recording which works like macros in MS Excel/Word. The system follows user’s steps, recording screen by screen. Once done we map data file to these screens and data fields. Than system repeats the same steps like the user would be doing manually.
Organizing LSMW projects
In LSMW transaction we have projects, subprojects, and objects.
Ideally, there should be one global project for routine updates, one for data migration.
The subproject is something meaningful, like OM, PA, PT, and PY for different HR areas. Or it could be one subproject for all infotypes, no matter.
An object usually represents what’s being changed: infotype, table or something else.
To start we need to create all three entities: project, subproject, object or choose them if they are already created.
Here is the main LSMW window. Steps “Define Object Attributes” to “Assign Files” are settings, other for execution for the end-user.
Let me split this question into two parts. On the one side there are students or business users who want to start or change their career into SAP. On the other side consultants who want to grow and become better for themselves and market. Except first several steps the remaining approach is the same and there let’s be honest to each other, there is no easy way how to become a SAP consultant. Don’t get me wrong, it doesn’t mean it’s impossible, but like any other profession it takes time (from my experience it’s about 5 years). Let’s dive into it.
First of all you need to understand consulting is a tough profession. You must deal with people everyday. You must travel to different cities or countries. And the most important you must learn something new everyday. If you are up to this, than follow me and see what applies to you. Sometimes you need to not only to learn but to keep your sap certification up to date.
So, what does SAP consultants do? They consult other people, companies in either way: how to change business processes or how to implement a new IT system like SAP. Ideally you should do both – these people are SAP functional architects, cause they know how to change business to make it better and support these changes with IT system.
There are functional and technical consultants. Functional are these boys and girls who know business, not IT. They understand legal reporting, business requirements, best practices in specific areas. Technical people are these nerds, who install, support, update IT part of SAP implementation. In 99% cases you can’t be both. And the worst news are you can’t switch modules (areas) because just one module would take you 5 years to learn to be a good SAP consultant.
Step 1. Find a business area
It’s really important. Some people are good in communications, others in math, third in coding, etc. It’s about what you like to do most, because once you in, be ready to stay there at least 5 years. Yes, it takes minimum 5 years to learn just one modules, one functional area in SAP.
Idea is to stick with something general and then become more specific over the years. General I mean finances, sales and distributions, controlling, human resources, material management, logistics, etc. It’s a good idea to do some preliminary research what this business area is, what do people do there, how it looks like.