White Papers

Jimbo's picture

Use functions to create and link objects in HRP1000 and HRP1001 without PPOME

Hierarchical mountain goatsThe PPOCE and PPOME transaction are notoriously slow and, because of the design of the interface, impossible to automate with a recording. PPOC and PPOM aren't much better as there is no way to drill down into the organizational hierarchy in order to create objects at lower levels.

The HRP1000 and HRP1001 tables are straightforward enough and easily understood, but there is little documentation on how to manage the data in these tables available on the internet. Fortunately, there are solutions for managing HR data in these tables.

Jimbo's picture

Reduce Development Time By Validating Source Data Directly Into LSMW Fields

curios goatFailing to validate data and report issues has caused catastrophic results for many SAP implementations. Simply checking to see if source data matches internal SAP tables allows migration specialists to report issues prior to loading and provides a great way to affect necessary customizations and changes to source data.

Jimbo's picture

Use LSMW to Attach GOS Files to Documents

Pack goatGeneric Object Services or GOS is a commonly-used technology from SAP that creates a uniform way to add functionality across various business objects in SAP. One of the functions is a feature that allows attaching a file to a business object such as a document.

As one might expect, the GOS button vanishes when the program used to create a business object is run in batch mode making it useless for a recording. Additionally, the ABAP debugger is useless as the system stops debugging as soon as the GOS button is clicked, so chasing the code rabbit down the programming hole becomes much harder.

Jimbo's picture

Preparing Long Texts to be Loaded in a Batch

Longhorn goatLoading long texts to objects can be a daunting task because of the way that SAP breaks up the texts to be stored in blocks. When the object with the long texts is opened in SAP, the system knits the blocks back together into the long text to be displayed to the user.

For this example, long texts for Service Notifications will be loaded using the IW51 transaction in batch mode. The long text is passed in as a series of lines populating the individual fields of the long text editor screen.

Jimbo's picture

Avoiding Sharepoint for Extracts and Source Data

SharePointSharePoint has been experiencing a growing market share in the field of cloud-based data management and is a fine solution for many distributed applications. SharePoint allows content to be distributed to people outside the corporate network, but when it comes to handling source data, network shares on the corporate network are the optimal solution because there is no need for manual steps between extracting, transformation and loading.

Jimbo's picture

Loading data with Windows mouse and keyboard macro software

Goat typing on laptopTransactions with ALV grids and other Windows-based GUI plugins are out of reach for the traditional batch processing tools provided by SAP. If the transaction has been customized then there is a good chance that the data cannot be loaded with BAPIs or IDOCs provided by SAP.

Getting a developer to update or create tools to load legacy data into these transactions is often harder than getting developer access and permission to change or create the necessary tools. Here is where customized mouse and keyboard macros come into play as a solution of last resort.

Macro software for Windows simulates mouse movements, mouse clicks and keyboard strokes for the purpose of automating tasks and for testing automation. Creating custom macros as text files and launching them from SAP simulates an intern sitting at a computer entering data, but without the complains or errors.

Jimbo's picture

Working with MDG

http://nebula.wsimg.com/11256a8c25e9d70fc04f134b9a0283f1?AccessKeyId=28DA9B6067A9E3472B4C&disposition=0&alloworigin=1|http://goeddelphotography.com/uploads/photos/_large/8_Mountain-Goat-Family-in-Snow.jpg|http://bioexpedition.com/wp-content/uploads/2012/04/Mountain_Goat_With_Offspring_600.jpg|https://upload.wikimedia.org/wikipedia/commons/1/16/Mountain_Goat_Mount_Massive.JPG|https://s-media-cache-ak0.pinimg.com/originals/31/e0/4d/31e04d97098be685f1d3bd4deb40ae71.jpg|http://blog.showmenaturephotography.com/wp-content/uploads/JimBraswell-E7D-5230-MtnGoatKids2.jpg|http://cdn.c.photoshelter.com/img-get/I0000tjCYax8Rvok/s/750/750/06AK-7050-mountain-goat-Kenai-FNP.jpg|http://yourshot.nationalgeographic.com/u/ss/fQYSUbVfts-T7pS2VP2wnKyN8wxywmXtY0-Fwsgxpz3TdW0aHuvGNc4JvTIOj19-_tBsJCjEnPrddvOa_REN/|http://s485.photobucket.com/user/hawkesnest/media/Mountain Goats/DSCF0832.jpg|https://media1.britannica.com/eb-media/96/75396-004-F747A85E.jpg|http://jasperjournal.com/jaspergallery/d/448-5/mountain_goat_1_5609_travel_alberta.jpg|http://mtnhp.org/thumbnail/defaultGen.aspx?itemid=89973&names=Mountain%20Goat%20Oreamnos%20americanus&copyright=&photographer=&maxWidth=434&maxHeight=400SAP's Master Data Governance software is an incredibly complex system that contains countless new tables and new transactions. Remembering enough to make regular ECC work is hard enough, so now this website does a lot of remembering for our developers.

Jimbo's picture

Use Deltas to Recover From a Crash During a Long-running Report

Handling deltas during reports.Few things can be more annoying than leaving work with a coffee cup on the keyboard and returning to find that the report had crashed during the night. The prospect of starting the report over is one that nobody looks forward to.

Starting a report where it left off is still pretty bad, but not nearly as bad as starting over from scratch and losing all of the work that had already completed. Creating a delta report and appending it to the existing report is made easy with a few short snippets of code.

Jimbo's picture

Using a Variant to Populate Queries with Default Parameters

It might sound like a trivial task, but until the necessity arrives, one may not ever learn how to populate the fields in a query with default values. In one case, a client wanted a query to have the same 10 customers populated automatically when the query was run by any user.

Jimbo's picture

Load Characteristic Allowed Values with a BAPI

Load Characteristic Values with a BAPISAP's CT04 transaction has grid controls that cannot be accessed using a recording in LSMW. A CT04-based recording would make quick work of populating the allowed values--even hierarchical values--available to users of the Characteristic, but that isn't an option.

That doesn't mean that the allowed values cannot be populated using LSMW, but it does make it a little more cumbersome. Previously, the task of using LSMW as a wrapper for BAPIs was explained as a demonstration of creating Classifications in a system where a customization had rendered CL02 unusable and it will serve well here to call the BAPI_CHARACT_CHANGE function.

Jimbo's picture

How to Embed ABAP Code in a SQ00 Query

http://image.wareseeker.com/software/Graphic-Apps/Icon-Tools/details_database-icon-library-1.0.jpg|http://m.img.brothersoft.com/iphone/337/389976337_icon175x175.jpg|http://sqlbak.com/blog/wp-content/uploads/2015/02/identify_sqlitebrowser.png|http://www.iware.com.tw/upload/images/Database-Search.pngCoaxing SAP into presenting useful information using SQ00 can be a daunting task if the complexity of the data is spread over more than two tables. It is not uncommon for clients to request disparate data sources be knit together in order to make sense of it for a particular scenario.

Writing a report for the same requested information can be a snap because of the way that ABAP allows one to manipulate tables, call functions and filter data based on complex requirements. Basic SQ00 queries don't offer such enhanced manipulation capabilities.

Jimbo's picture

How to generate a list of PIRs active on a specific date

https://i.ytimg.com/vi/qyMpVtdtzO4/hqdefault.jpg|https://c2.staticflickr.com/4/3190/2401684674_3698f03911.jpg|http://s621.photobucket.com/user/billygoat_100/media/IMG_1197.jpg|https://i.ytimg.com/vi/cSi1zaN7x9I/hqdefault.jpg|http://i3.ytimg.com/vi/9ixckCSoN9M/mqdefault.jpg|http://www.jcolquhoun-cd.com/images/goat-fg.jpgFiscal year-end closing can be a very stressful time for any firm's accounting department. Having access to data in its most useful form can mean the difference between successfully performing procedures vital to the success and organization of a company and frustrating missed timelines.

Jimbo's picture

Update contracts in CRM using BDCs

Some firms have an army of dedicated data entry personnel. For those who don't, LSMW can provide a solution that is fast and accurate, albeit somewhat complicated.

SAP's Customer Relationship Management (CRM) software is written in the same language as ECC and, in addition to the web-based interface, uses the same GUI interface as ECC for most operations.

Jimbo's picture

How to generate a report with all material characteristic values using LSMW

http://www.animalspot.net/wp-content/uploads/2012/03/Nubian-Ibex.jpg|http://album.udn.com/community/img/PSN_PHOTO/debby927/f_3764285_1.jpg|https://upload.wikimedia.org/wikipedia/commons/thumb/e/ed/Capra_ibex_ibex_%E2%80%93_03.jpg/400px-Capra_ibex_ibex_%E2%80%93_03.jpg|https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Bouquetin_adulte_couch%C3%A9.jpg/800px-Bouquetin_adulte_couch%C3%A9.jpg|https://pixabay.com/static/uploads/photo/2015/12/11/16/12/animals-1088374_960_720.jpgBecause of the labyrinthine table relationships between materials and characteristics it may be very cumbersome to knit together this data in a meaningful report. Fortunately, like anything else, it isn't impossible.

Jimbo's picture

Generate a Report with Material Master Long Texts

http://www.apogeephoto.com/oct2013/Long_photos/rubbing-off-goat-mtn-goats_5392.jpg|http://www.wakeolda.com/Photos/mtevans99/goat_climbing_2.jpg|http://bloximages.chicago2.vip.townnews.com/missoulian.com/content/tncms/assets/v3/editorial/2/95/295319a2-dd10-11e2-aaa0-0019bb2963f4/51c8b1d9b08cf.image.jpg|http://ngm.nationalgeographic.com/u/TvyamNb-BivtNwcoxtkc5xGBuGkIMh_nj4UJHQKuorjj2yrzzTsBkwgD8q53LHYCkF7IMbQbjmJgWA/|http://www.maxingout.com/images/100%20update/big-horn-goat.jpg|http://cache2.allpostersimages.com/p/LRG/28/2806/OUCOD00Z/posters/edwards-walter-meayers-close-view-of-a-goat-with-long-horns.jpgBecause of the cumbersome way that SAP stores long texts it is not possible to access them with a custom query, with nested select statements or even with complex joins. The only way to access the long texts for the purpose of a report is through the READ_TEXT function.

Jimbo's picture

Create an RFC User in SAP

Many tools associated with SAP rely on Remote Function Calls or RFCs. A great example of a tool that utilizes RFCs is the automated obsolescence determination tool.

Jimbo's picture

Automate legacy SAP data obsolescence determination using Access

Determining what master data objects are no longer used is a great start to an SAP implementation. Obsolescence determination is a very important part of data cleansing. To reduce the amount of cleansing required, this should be performed before any other part of cleansing.

Jimbo's picture

Synthesize export files for FM_SETS_FIPEX1 using LSMW

Groups are a cumbersome object to load as there is no program to be called from LSMW for direct input or for creating BDCs. The program itself relies on objects that fall outside the normal access of BDCs and the hierarchical format of the data makes loading them with a batch all but impossible even if there were an easy way.

Jimbo's picture

Automate the backup of project files on a local hard drive.

Snapshots of the data stored in a central location for a project have proven invaluable in too many situations to count. It is an important part of a Data Conversion Team Lead's best practices and should be performed early each day when network traffic is low.

Jimbo's picture

How to use LSMW as a wrapper for BAPIs.

Load Characteristic Values with a BAPISome junior developers might be a little overwhelmed the first time they are tasked with using a Business Application Programming Interface or BAPI. It is important to understand that a BAPI is just a regular function and not some mystical tool the inner workings of which can only be comprehended by the man behind the curtain.

Some SAP objects don't come with a convenient way to load their information into SAP or if they do it doesn't always work. For many objects there is one or more BAPIs that can be used to load the data without having to rely on cumbersome recordings or even more cumbersome IDOCs.

Jimbo's picture

Useful Transaction Codes in SAP

Often during a career migrating legacy data it becomes a requirement to use more than the LSMW, SE16 and SM35 transactions. This is a list of useful transactions and the effects that make them useful. Where appropriate, an example of when to use the transaction is included.

Jimbo's picture

How to Grant Appropriate Permissions for LSMW

LSMW is a very powerful tool and many SAP Security specialists are reluctant to grant LSMW permission--rightly so! LSMW access should never be granted without a legitimate business need and it should only be used by professionals trained in its use. This whitepaper does not address that issue, but instead is written for junior Security specialist who have never been faced with the need to grant LSMW access.

Jimbo's picture

How To Populate Sets with a Recording

http://tinmanphotoblog.com/wp-content/uploads/2014/12/14-574-post/AS1R5355-Edit-2.jpg|http://i.dailymail.co.uk/i/pix/2013/09/01/article-0-1B8FFD81000005DC-736_634x471.jpg|http://ayay.co.uk/backgrounds/animals/goats/Mountain-Goat-Kids.jpg|https://media-cdn.tripadvisor.com/media/photo-s/01/f6/26/67/mountain-goat-kids-jumping.jpg|http://www.outdoorphotographer.com/blog/wp-content/uploads/2014/01/Mountain-Goat-Kids-Jumping-by-Tin-Man-Lee.jpgSets are a great way to group objects together for accounting purposes and for custom reporting. Understanding sets can seem daunting at first, but it is important to understand that a set is nothing more than a list of individual values that point to objects within SAP.

At first glance it would seem that the easiest way to populate a set is by manually entering in countless records one after another. While it is possible to trick a recording into loading screens full of records into a Set, the simplest way by far is by creating a recording that shifts the contents of the set down and inserts one record at the top. This recording can be called once for each record in the source data such that all records are eventually loaded in reverse order into the Set. The order of the Set contents probably doesn't matter, but if it does then the source data should be reversed so that is loaded in reverse of the desired order; this will make more sense once the operation of the recording is understood.

Jimbo's picture

Identify missing dependencies for Work Centers

Work Centers are one of the most complex objects that can be loaded using LSMW. The RCRAPDX2 program uses at least ten relational tables that end up knit together in order to form a single Work Center in SAP.

Jimbo's picture

Create routings with recordings. Part 4 of 4.

Manipulating the details of individual operations with a recording can be very simple when one knows how to navigate through the routing using a recording. Selecting the appropriate operation from a specific sequence can be very difficult when there are more than 15 of either on a screen because the selection block for sequences and operations after the first 15 do not appear on the screen without a page-down.

Jimbo's picture

Managing Expectations for Data Migration

Load Characteristic Values with a BAPIThe workflow of a project is marked by the path through which data flows from team to team. Each time data is touched it must also be validated against itself for relational integrity and against other source data for dependencies. These validation steps must occur before the data is passed downstream to the next team and, as the project progresses from early testing phases toward go-live the validation must occur faster and with more accuracy.

Jimbo's picture

Create routings with recordings. Part 3 of 4.

In many implementation projects for SAP it is necessary to break down the most complicated objects into manageable pieces for the purposes of time and energy. Routing data pulled from a legacy SAP system tends to load quite easily into a new system using the standard Direct Input or BAPI method, but this client wasn't using routings before.

Jimbo's picture

Best Practices for Implementation Testing

An SAP implementation tends to be a fluid concept with surprising challenges, changing deadlines and moving targets. Many businesses rush through the various steps of an SAP implementation or skip steps in order to cut costs or to meet unreasonable deadlines. The process behind a traditional implementation has been designed, tested and then ratified by SAP as a best practice.

Jimbo's picture

How to find a validating function in SAP

Many times it becomes necessary to rely on SAP's functions to validate source data. The optimal place to validate source data tends to be in the target system that the data will be loaded.

Some examples of source data that can be validated using ABAP functions written by SAP include dates, postal codes and tax jurisdictions. A little bit of know-how and the right function can save hours of effort and reporting by ensuring that source data is correct before attempting to load in SAP.

Jimbo's picture

How to obtain athorizations for LSMW

LSMW access isn't given out very often and few SAP security professionals know what is required for access to LSMW. An easy way to expedite a request for access to LSMW is to include the specific authorization objects required to successfully utilize LSMW.

Jimbo's picture

How To Find A Check Table in LSMW

Too often SAP will reject data to be loaded in a transaction when it is checked against a table of allowed values. It is always preferable to identify invalid data during the conversion step rather than during the load, but it isn't always obvious what table is being used by SAP to perform the check. There is an easy way in LSMW to determine what table is behind the check routine and then to write a snippet of code for validation.

Jimbo's picture

How To Use A Translation Table

A quick and easy transformation that can be applied to legacy data automatically (and therefore consistently) is a Translation. Translations are most often used in while migrating transactional data from legacy systems into a new production system.

Jimbo's picture

How to Install MiniSAP 6.20 Web Application Server

A lack of any access to SAP's ABAP development environment is too often a hurdle for aspiring developers. SAP provides a free, scaled-down versions of it's flagship product for use as a teaching tool. The easiest way to obtain a copy is by purchasing a copy of The Official ABAP Reference, a book from SAP. The development system is included on CDs for training purposes. Additionally, it can be obtained by downloading it from the internet in a variety of places. It is hosted on SAP's website and on many other websites. It may be available from peer-to-peer sharing networks.

Jimbo's picture

Find all occurances of master data objects

searching mountain goatStarting off as a developer in ABAP can be a daunting task due to the complexity of the system. In addition to the countless programs written and buried within SAP there are tens of thousands of native tables--many of them abandoned and empty. This makes it difficult to find where a single piece of information resides in a system nearly too complex to use, much less develop software for.

Knowing where a specific value occurs in the SAP database structure can greatly ease the development of software to validate and change these values. By checking the values in tables it is possible to know if the value needs to be changed or is already correct as it is. This saves time and effort, reduces the strain on a busy server and simplifies management of the system.

Jimbo's picture

Track transactional data with discreet keys

Load Characteristic Values with a BAPITransactional data is some of the trickiest to load. Many documents have dozens of dependencies which, in turn, are stacked on top of other dependencies. It's not always possible to catch every problem and a partial load might make for a failed project.

Planting a discreet key in each source record allows for the ability to link the records from the source file to documents created in SAP. This link allows for delta loads to be performed as obstacles to loading are removed and dependencies are provided and reduces the risk of duplicate records when performing delta loads. Additionally, editing (or reversing and re-creating) documents becomes a much simpler matter when errors are discovered after the data has been loaded.

Jimbo's picture

Add a shortcut to SAP Easy Access

http://www.bestofthetetons.com/wp-content/uploads/2014/02/GoatJumper_2012.jpg|http://2.bp.blogspot.com/-gC2veNhM6rg/UoAnZ8ny-cI/AAAAAAAABBk/WAt-hFl6sL4/s1600/Mountain+Goat.png|http://i.dailymail.co.uk/i/pix/2013/02/12/article-2277480-17873595000005DC-851_634x434.jpg|http://i.dailymail.co.uk/i/pix/2013/02/12/article-2277480-178734D5000005DC-743_634x416.jpg|http://i.dailymail.co.uk/i/pix/2013/02/12/article-2277480-1787345D000005DC-296_634x434.jpg|http://i285.photobucket.com/albums/ll60/ReDirkulous/September%202009/GoatSprint.jpg|http://i.dailymail.co.uk/i/pix/2013/02/12/article-2277480-17873584000005DC-141_634x416.jpg|http://i.dailymail.co.uk/i/pix/2013/02/12/article-2277480-178734DD000005DC-794_634x428.jpgThis isn't necessarily a new trick, but it can save a lot of time and energy when repetitively working on the same transaction or working with a transaction with a cumbersome transaction code like accessing Firefighter accounts. Go to the SAP Easy Access screen. It might very well be the first screen to come up after logging into SAP or there may be a button that leads to Easy Access. Also, typing /n in the Command Field and pressing the Enter key will most likely pull up the Easy Access screen.

Jimbo's picture

Handle text files with Excel while maintaining data integrity

Too often a team member will use Excel to open a source file for the purpose of changing some content. While manual manipulation of source data is taboo and should be avoided at all costs, it is sometimes unavoidable.

Jimbo's picture

Use multiple recordings in a single LSMW Object

Some objects call for two or more recordings because the screen flow is different based on the source data. In many cases a single recording will do when used with the coffee cup method because SAP raises a warning over a missing screen field instead of stopping the transaction, but the transaction can still be run.

Jimbo's picture

Produce meaningful pre-load validation reports using LSMW

https://s-media-cache-ak0.pinimg.com/564x/6c/6a/0b/6c6a0b7490de8d0bbe1994e303d43286.jpg|https://c2.staticflickr.com/8/7181/6926781482_c2a6cd7d29.jpg|https://s-media-cache-ak0.pinimg.com/236x/6c/6a/0b/6c6a0b7490de8d0bbe1994e303d43286.jpg|http://1.bp.blogspot.com/_m8z0LDxt1qY/TSiHknX460I/AAAAAAAABRw/X6JBwWZiWSU/s1600/far_side_mountain_goat.jpg|http://static.fjcdn.com/pictures/Mountain_19716e_291487.jpg|http://66.media.tumblr.com/0024fd820003f7975d5161974d5173da/tumblr_mo1ld3Z1wQ1s5f36lo1_250.jpg|http://2.bp.blogspot.com/_ZDEr-dli0Wg/SOOacRZfNNI/AAAAAAAAACw/rXG2q8mVPKk/s320/far+side+mountain+goat.bmp|http://rwg.cc/uploads/monthly_04_2013/post-32-136656906612.jpg|http://rwg.cc/uploads/monthly_04_2013/post-32-136656906612.jpg|http://rwg.cc/uploads/monthly_04_2013/post-32-136656906612.jpg|http://hemi.nu/Gary_Larsson/index-filer/obj14geo14pg1p3.jpg|http://img.ifcdn.com/images/6519e72b12d7877ee623f4ccb3b0db8a454938778cb36ba30c8f97de1ef54b82_1.jpg|https://media.licdn.com/mpr/mpr/p/6/005/07b/1a3/3993214.jpg|https://s-media-cache-ak0.pinimg.com/564x/bc/fc/c0/bcfcc0f3edea74bf531a93dde84b9cc2.jpgThe whole point of validating data prior to loading is to give functional team members a chance to fix the data by preparing it again in a way that can be loaded into SAP or by configuring SAP to allow for the data. A meaningful report comes with all of the relevant source data along with a detailed explanation of why the record cannot be loaded to SAP.

Many conversion specialists prefer a method of error correction that calls for the data to be loaded to SAP followed by a complex process of combing through the batch log for error messages. Seldom are these error messages meaningful enough to tell why the record failed--especially when the batch is run in the background or as IDOCs. By validating the data against check tables or by calling validating functions provided by SAP, a report that documents each and every potential problem with the data can be produced for use by the functional team. This data is invaluable when coupled with instructions on how to fix the problems.

Jimbo's picture

Expedite Table Lookups using Internal Tables

speed up ABAP codePart of almost any pre-validation of data in LSMW calls for a query against tables in SAP. Some of these tables are enormous with thousands or even millions of records in older systems. Comparing data to be loaded against documents already in the system using discreet external keys is a great way to avoid creating duplicate documents and is the best way to facilitate delta loads as obstacles to loading are exposed and removed. This often entails checking the key against fields that are not indexed and that can take seconds per document and make an otherwise well-developed LSMW object run for hours or even time out.

Jimbo's picture

Resolve a "Cursor field does not exist in the screen" in a BDC Recording

Recordings are an easy way to load data into SAP without a lot of effort or programming and they provide great way to make one-time modifications to existing data--especially to proprietary Z-fields. Producing a recording may be harder when the underlying program changes its interface by showing different fields on the screens or by changing the flow of the screens.

Jimbo's picture

Handling Disperate Material Masters in MM02 with a Recording

The MM02 transaction is a tough one to produce macros for because the layout of the checkboxes (field KZSEL) on the Select View(s) screen shifts to accommodate additional views. This inconsistency makes a simple recording almost impossible to use for any large number of materials or for a small number of materials of different type. There is a way to predict the layout of the views on the Select View(s) screen and it is relatively simple.

Jimbo's picture

Managing LSMW project hierarchy for efficiency and oversight

LSMW stores conversion objects in a hierarchical format within projects and sub projects. Limiting the storage of objects used for a single SAP implementation to a single LSMW project enables team leads to easily find objects distributed over team resources, oversee progress and contribute to the development process.

Jimbo's picture

Data Conversion Team Lead Best Practices

There are a handful of things that fall outside of the realms of common sense and the obvious. Managing the Extract, Transform and Load (ETL) aspect of an SAP implementation can be a daunting task were it not that there are ways to make the project run more smoothly.

Jimbo's picture

How to produce a reconciliation report for financial documents.

Financial documents are easy enough to transport when the data has been cleansed and formatted properly. We talk about that elsewhere on the site. Once the documents are loaded, the next step is to reconcile the documents. This report makes it easy to see how each document got into SAP by giving the SAP document number that relates to the legacy document.

The reconciliation