How indirect wage type valuation does work

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.


New video how to setup SAP user parameters

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.


How to read SAP system short dumps

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. 


Absence quotas in concurrent employment in SAP HR

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:

  1. 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
  2. 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
  3. 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.

  1. 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. 
  2. 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.


Filter data in SAP LSMW

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!


Why SAP HR is difficult to learn?

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.

Read More


Position Management Business Scenarios

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.

ScenarioPosition StatusRecruitmentReporting
Headcount Budget was approvedPosition to be vacant (IT1007)Search to be initiatedShown as vacant
Employee was moved/terminated and we need immediate substitutionPosition to be vacant (IT1007)Search to be initiatedShown as vacant
Employee was moved/terminate and we have not decided on the positionPosition to be on hold (IT1007)No employee search performedShown as occupied
Employee was moved/terminate and we don’t need substitution in some futurePosition to be obsolete (IT1014)No employee search performedShown as obsolete
Employee will be terminated and we need to initiate search in advancePosition to be vacant (IT1007) even if occupiedSearch to be initiatedShown as vacant
Position was created by an errorPosition to be deleted (IT1000)No employee search performedIs not shown
Job at specific location/position is eliminatedPosition to be delimited (IT1000)No employee search performedIs not shown
Division is obsoletePosition to be delimited (IT1000)No employee search performedIs not shown
Division/Position is obsolete and it’s occupied with employee on leavePosition to be obsolete (IT1014) and delimited (IT1000) once employee is back and moved/terminatedNo employee search performedShown as obsolete and then not shown

Step-by-step SAP LSMW User Guide

Last time we discussed SAP Step-by-step LSMW Developer Guide, which you can find here Step-by-step SAP LSMW Developer Guide

Today let’s have a look at the User Guide.

Basics

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 Initial Screen

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.

Read More


Step-by-step SAP LSMW Developer Guide

Basics

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.

Read More


How to become a SAP consultant

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.

Read More