SAP Query Reporting Switches


I believe you’ve had some experience with SAP Query Reporting. It’s a powerful tool when you know how to use it and utilize its all features and functionality. It’s not just about SAP InfoSets and Ad-Hoc reports, but more about powerful tool to create flexible reports in MS Excel format.

Frequently we meet issues with Queries when there are empty cells, missed rows, double rows and etc. There is a good explanation why this happens. If you look into the code SAP generates for every InfoSet and then for every Query, there are some provide loops and unions. To manage the logic SAP uses to generate code for report there are some useful switches.

Here is an old document from SAP explaining when and how to use these switches.


SAP LSMW Translation Rules

In our previous posts, we’ve learned basic rules with LSMW. Today we need to clarify one the most important technique in data migration in SAP projects. We know how to use different migration tools like BAPI, IDOC, flat files, complex files, batch input. But all these are useless if we can’t convert data on the fly. This is a great advantage of Legacy Workbench in SAP is to able to convert data with integrated translation rules.

So, the translation rules are used when we need to map one value in the incoming file to any other value which is to store in SAP. It could be just simple text concatenation, substitutions or even complex ABAP logic with a lot of functional module calls retrieving some data out of the system.

SAP LSMW transformation rules

Read More

How to run any functional module with input data from text file

We all know SAP Legacy System Migration Workbench (LSMW) pretty well. We use it in 99% data migration projects, or when we need to do some mass changes in the live system and standard PA70 doesn’t work well because of its limits. Some geek guys like myself dig deeper and use function modules instead of writing ABAP code to make any mass changes. There is a great advantage – you don’t need a Developer license to run the functional module. Open SE37 transaction, select module and run it with some parameters. Today I want to share with you my research how to run any functional module with a dataset from a text file. Just couple clicks and you have a VERY powerful tool to do almost everything in SAP. And, one more advantage, running functional modules directly is much faster, than using batch inputs.

Yes, here comes eCATT to the scene. It’s that flexible that we can use not only for testing purpose but to run mass operations. It has its own script language which could help us to analyze FM output and build a chain of FM calls to accomplish something complex.

Read More

It took me 15 years to learn how to create Enterprise Structure in SAP ERP

It’s really sad to realize that it took me 15 years to learn this very simple technic to create Enterprise Structure in SAP. I used to work in international companies with huge business units, personnel areas, and personnel subareas lists. It was a nightmare to create a bunch of new enterprise structure objects like personnel areas or subareas. Hit that check button, wait a whole life, hit copy, die and recover and go through a dozen of silly SAP questions with useless confirmations. It is sad. Until now.

There is an undocumented feature to make our life much easier. It saves hours, literally. Basically, we need is to copy personnel areas with the same attributes, tax settings, work schedules, and etc. In my old life, I was doing this one by one what sounds crazy today in 21 century.  There are two things I’ve found recently and I want to share one of these with you today.

So. We need to copy enterprise structure objects which are a different story from PPOME transaction where we cope organizational units. We’re about personnel areas and subareas which is a customizing and performed in SAP IMG.

I believe you remember this screen where we start to establish a company in SAP, like SAP architects define the global rules, i.e. business units, plants, purchasing companies and much more. In one bank we wrote a tricky LSMW project to do copy-paste human-like activity to copy couple hundred personnel areas because bank expanded its presence. It was a really bad solution but it worked in 2006th.

Create enterprise structure in SAP

Create personnel area in SAP

Read More

How to send custom infotype over SAP ALE

There is a number of infotypes in SAP which are local to some country. SAP doesn’t provide any standard solution to send these country-specific or custom infotypes over ALE, cause standard IDOC contains only international infotypes. If you develop your infotype and want to send it over ALE there are some tips and tricks to handle. Today I want to tell you how to send custom infotype or country-specific infotype over SAP ALE. It’s going to be a long tutorial with a lot of images. More than I’d like to show you what is a short and long infotype record in terms of SAP integration and IDOC structure. And, of course, ABAP source codes will be provided for your convenience. Take a cup of coffee and join me with this unique tutorial never been shared before.

Sending short infotypes over SAP ALE

A short infotype is an infotype, the size of which fits into one IDOC segment. How to check? Open SE11 transaction, find an infotype structure which is PXXXX (XXXX – infotype code), sum all length fields. One IDOC segment can store 1000 symbols. If the infotype structure is longer than 1000 symbols it’s a long infotype and we will need to split it to send over SAP ALE. Will show later how it works.

To add custom infotype to a standard HRMD_A IDOC in WE31 transaction create a new segment to include it into IDOC and send over ALE. Naming rule is Z1PXXXX, 7 symbols. It’s done for prior 4.6C compatibility, so if you work with modern systems you can use longer names. The first three letters ‘Z1P’ is a must. To save time and avoid human mistakes typing all SE11 fields into segment manually you can create a segment from a template. In menu Segment -> Create with template choose DDIC structure and type in PXXXX, where XXXX is your infotype code. When you save segment systems checks its length to comply with 1000 IDOC segment length.

In my scenario, I’ll use country-specific infotype 0293. Here is how it looks like in segment.

New IDOC segment

New IDOC segment


Don’t forget to release the segment in Edit menu.

Read More

Payroll period close organizer

In SAP ERP there is an interesting tool look similar to our PUST or Payroll Control Center, which allows to build period close workflow, organize people, duties, and timing. In SAP HR module we only have old-style PUST and modern Payroll Control Center. But both are local to HR only and has no connection with FI, CO, and overall period close process. What if use ERP approach to build our own payroll period close organizer? We have a bunch of activities to do like fill timesheets, move people, fire/hire, enter bonuses, do reporting – all of these require some time and need to be aligned in a sequence cause they are cross dependable on each other.

Ideally, HR activities are the part of overall period close workflow. Why can’t we be a leaf in a whole process tree and clearly understand what and when is going to happen? The system will remind, ping and kick us to process, managers will be notified of any delays and all dependencies are resolved. Sounds like a dream, isn’t it?

Read More

How to delete a personnel number completely?

There is a well-known program to delete a personnel number RPUDELPN (Delete Personnel Numbers Completely) and RPUDEL20 (Delete Payroll Results). They can delete payroll results and personnel number. Let me introduce you RPUDELPP  program which has some benefits when you need to delete a personnel number in SAP completely with one click.

Destruction of Personnel Numbers in Live Systems

Destruction of Personnel Numbers in Live Systems

Read More

10 Steps to reduce SAP TCO (Total Costs of Ownership)

Often I’ve heard questions like why we need SAP. Then, with the progress of the project, the question was transformed into “how would we live with this”. And after a year of torment, the question changed to “how to have it if cheaper.”

TCO – Total Cost of Ownership. It’s a financial term which answers the question “how much does this cost”, including all 15 pages agreement written in a small font.

If you do not go into details, then at first it seems that owning SAP system, it’s just the cost of licenses and consulting for implementation. And servers, support, annual maintenance, updates, testing, change management and much more. Will talk about this latter.

Today we’ll try to answer the question “how to own it cheaper”, how to reduce that SAP TCO.

Being honest, there are a lot of solutions, but there is not one single 100% true. I’ll share my thoughts on this, provide some links to curios data and you’ll decide what works for you.

Read More

3 ways to plan an organizational chart effectively

Don’t say you’ve never heard SAP HCM can do an organizational assignment or organizational chart planning. It definitely can with a bunch of tools. Let me show three effective ways how to plan organizational chart and one bonus!

First way without any settings

You can enter all changes with a future start date. It’s very easy! Open PPOME transaction, change the Key date and start entering new organizational chart, move organizational units, positions. The only thing you can’t do is to move people to avoid data inconsistency in the future. So, you change org structure to a planned one with the future date. Meantime all standard and custom reports work well, so you can print your orgchart and show to the boss or sign. If additional corrections needed you just make these and reprint org structure. In case it was not approved, you run standard programs to delete all future records and your current structure remains the same. Zero issue approach. One disadvantage – you can’t use Personnel Cost Planning module in SAP HCM to automate the budjet process.

Read More

How to add standard infotype to PPOME tab

So we have standard infotype which is not shown in PPOME transaction. We want to add standard infotype to PPOME tab to help users enter data. Let’s take infotype 1039 “Shift group” for our example. Usually, we use it for shift planning in time management (transaction PP61). It’s recorded for Organizational units (object type “O”). So it’s easier to enter this infotype in PPOME than in PP01 as SAP advise.

There are three steps to make it happen. We need to create a new screen, it’s logic and enter it in customizing tables.

Read More