Monday, August 30, 2010

Getting to actual function module for a Function Exit in SAP ABAP

 

It is common to find customer exits in SAP’s code and Function modules, to accommodate customer specific business rules in SAP provided applications. These exits sometimes are in the form:

Call Customer-Function ‘xxx’, where ‘xxx’ is usually a number. So, how do we know what the actual function module is, where we should put our custom code? This BLOG tells you exactly this.

Here is a screen shot of a function module with customer exit:

image

To find out the actual function module, we will need to know what the main program name is. You can go to the main program using the menu item GO TO –> Main Program

image

Now, our customer exit name would be:

EXIT_<Progam Name>_<XXX>,

Where
<Program_Name> is the main program name
<XXX>                  is the number next to “Customer-Function”

 

In this example function module, the main program was : SAPLHRBEN00GENERAL.

Hence, our customer exit will be
EXIT_SAPLHRBEN00GENERAL_022

Wednesday, August 11, 2010

Problem Steps Recorder – A new tool in Windows 7

Here is a video I made for PSR (Problem Steps Recorder)… a very handy tool to record screen actions, and share the recording with others to seek help with a problem.

This is my first video blog. As always, your comments are most welcome.

Friday, May 07, 2010

“Page Cannot be found” error when browsing aspx pages in Windows Server

 

You may be frustrated with a “page not found” error when attempting to execute your .aspx page. If you have a static “index.html” page, everything looks good.

The problem lies in the fact that by default, in windows Server-2003, all extensions are disabled. Its understandable, as its a server environment, and its safer to let the administrator specifically enable a setting, than auto enable it.

Here are the steps to resolve this:

  1. In “Run” dialog, type in “inetmgr” or start IIS administration.
  2. Go to “Webservice Extensions” node
  3. Enable the required extensions. For ASP.Net to work, enable the extensions as shown in the screen shot.
  4. Try accessing your page again, and everything should be working now.

image

Detect DirectX version installed in your system

 

Here are the steps to detect directX version installed in your system:

  • Select Start—>Run, or <windows key> + R, and type in “dxDiag”
  • You will get a dialog which shows you the directx version, as shown below:

image

Tuesday, April 13, 2010

Setting admin password for fresh Tomcat installation

When tomcat server is installed for the first time in your local machine, and you point to : http://localhost:8080, and try to access admin console, you will be presented with the admin userID/password. However, you have no idea what the userID/password is!!.

Tomcat does not come with an admin userID/password. Instead, we are going to create one.

First, go to “<Tomcat Installation Directory>\conf” folder. Here, you will see a file named “tomcat-users.xml”. Open this file in your XML editor, or notepad. Change the file to look like the following:

<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="manager"/>
  <role rolename="tomcat"/>
  <role rolename="admin"/>
  <role rolename="role1"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="admin" password="adminpassword" roles="admin,manager"/>
  <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

 

Make sure you change the admin passwords to something more secure. I just used “adminpassword” as the password here for ease of understanding.

That’s it!!. Restart the Tomcat server, and you should now be able to log in as admin.

Friday, March 12, 2010

Windows 7 God Mode

Here is a trick to get access to all of Windows 7 configuration settings in one single place. Follow the following steps:

  1. Create an empty folder
  2. Name this folder : “GodMode.{ED7BA470-8E54-465E-825C-99712043E01C}” , of course without the “.

    image
  3. The folder icon will now change into a shortcut.

     image
  4. Double click on this new shortcut, and get access to all the feature settings – Some of which you didn't even know existed!

Friday, February 12, 2010

Useful Workflow Administration Transactions

I am in the process of learning workflows in SAP, and thought of documenting couple of workflow administration transactions that are pretty useful. If you are interested in learning more about workflows, consider this book. Its the one I am using and find it very useful.

 

Reporting on Workflow Progress

Workflows For Objects SWI6
Workflows for Object Type SWI4

Reporting on Workflow Performance

Work Items by processing duration SWI2_DURA
Work Items with monitored Deadlines SWI2_DEAD
Number of work items processed per period SWI2_FREQ
Work Load analysis for agents SWI5

 

Support tools for Agent Determination problems

Execute rules for work items SWI1_RULE
List of work items without agents (Orphaned Work items) SWI2_ADMI
Execute work items without agent check SWIA

 

Resolving Buffering errors (The Cinderella Principle)

The SAP system buffers/keeps a copy of different data in memory to improve overall performance. This is particularly prevalent in organizational management related entities like Org Units, Jobs, Positions, agents, tasks and relationships between them. Buffering problems can also occur when there is a change in task definition, or after transporting new workflows or versions of workflows into a system.

The buffering while important for system performance, may cause issues in the over all working of workflows. Typically, the system refreshes its buffer every midnight. So, the problems caused may be temporary. Its not uncommon to work on an issue all day, and come back the next day to find the problem does not even exist!!!. More frustrating is the realization that what ever changes/tries you made the previous day, in an attempt to “fix” the issue have to be reversed.

The above scenario is called “Midnight Magic” or the “Cinderella Principle” (i.e.) everything back to normal after midnight.

Solution to the above problem is either to wait a day, or more practically, synchronize the run time buffer.

To synchronize the runtime buffer, use the transaction : SWU_OBUF

After executing the above transaction, some workflow functions may have a performance hit. But this performance hit will go away, as the buffers are rebuild.

Some More Support Tools

Diagnosis of workflows with errors SWI2_DIAG
Deadline monitoring for work items. This transaction is useful to control the working of background job which monitors deadlines. SWWA
Background job/report that monitors work item start or end steps RSWWICOND
Continue workflow after system crash SWPC