Liveblogging SAP TechEd 09

Are you stuck in your cube while Bob from BASIS is heading to SAP TechEd 09 in sunny Phoenix?  Are you afraid that you’ll miss out on all the sun and fun?  While we can’t send the sun, we’ll try to bring you the fun.  DataXstream will be liveblogging at SAP TechEd 09.

Head over to live.dataxstream.com on Tuesday, October 13, 2009 to get up to second updates from the show.  We will be getting our liveblog on starting at 8am PDT (that’s 11am for you right-coasters) for the general keynote session.  We’ll also be liveblogging from SAP TechEd 09 Demo Jam at 8pm PDT on Tuesday.  The Demo Jam promises to be a great time, so plan to join us online after you put the kiddies to bed!

This is our first foray into liveblogging.  Hopefully it will go off without too many technical glitches.  We hope you’ll enjoy following the events with us!

Changing SAP IDOCs Status In Mass / Mass Deletion Of IDOCs

Mass Change of SAP IDOC Status

From time to time it becomes necessary to change the status of SAP IDOCs in SAP. The most common scenario is the requirement to mark SAP IDOCs for deletion. There is no good way to mass mark IDOCs for deletion via the standard IDOC processing transaction BD87. However there is a program that will let you change status.

RC1_IDOC_SET_STATUS

CAUTION: This program should be used with great care and consideration. Improper use of this program can result in data consistency issues. Make sure you know what you are deleting, why you are deleting it, and what is required to correctly update you system after deleting.

[Read more...]

“Transporting” scheduled jobs

‘Transport’ is a touch misleading. In this example, we aren’t using STMS to move a job from one AS/CI to another, but we aren’t recreating it from scratch either.

Scenario:

Our SAP servers are running on HP-UX hosts with Oracle 10g databases. Recently, the client underwent SPS application to production servers. The process called for the stopping of scheduled jobs during update. The jobs were to be restarted as directed by team leads. When a request to restart job was executed, it was unable to be completed because the required job had “disappeared”. The job in this scenario was over 100 steps with different programs and variants being executed. Due to time constraints and the possibility of incorrect data entry, manually recreating the job in SM36 was not an option.

It is possible to extract a job definition directly out of the tables in which it is stored and then reinsert it into another instance (i.e. copy the job definition from your Q box and drop it back in Production). For demonstration purposes we will call our source server Q01 and our destination server P01. The job used in this example will be OUR_LOST_JOB.

NOTE: The steps used in this tip may utilize commands that access and modify data in ways not explicitly endorsed by SAP. Therefore, the use of this tip should be done at your own risk.

[Read more...]

"Transporting" scheduled jobs

‘Transport’ is a touch misleading. In this example, we aren’t using STMS to move a job from one AS/CI to another, but we aren’t recreating it from scratch either.

Scenario:

Our SAP servers are running on HP-UX hosts with Oracle 10g databases. Recently, the client underwent SPS application to production servers. The process called for the stopping of scheduled jobs during update. The jobs were to be restarted as directed by team leads. When a request to restart job was executed, it was unable to be completed because the required job had “disappeared”. The job in this scenario was over 100 steps with different programs and variants being executed. Due to time constraints and the possibility of incorrect data entry, manually recreating the job in SM36 was not an option.

It is possible to extract a job definition directly out of the tables in which it is stored and then reinsert it into another instance (i.e. copy the job definition from your Q box and drop it back in Production). For demonstration purposes we will call our source server Q01 and our destination server P01. The job used in this example will be OUR_LOST_JOB.

NOTE: The steps used in this tip may utilize commands that access and modify data in ways not explicitly endorsed by SAP. Therefore, the use of this tip should be done at your own risk.

[Read more...]

Configuring SAP NetWeaver to send Email Externally – SAP Connect

SAP Connect has been around for quite sometime. I am sure there are plenty of documented procedures on setting it up. I recently had to configure it. I have not done this in a long time, so I figured I would capture the setup as well as point out some things to watch for.

SAP Connect can be configured for a number of different message relaying purposes. This blog post will only cover sending E-mail from SAP externally.

Some basic requirements and points:

  • SAP Connect configuration is client dependent. It has to be configured in each client where you want to use it.
  • SAP Connect requires an external SMTP server to send emails.
  • SAP Connect needs to be authorized to use the SMTP server to send emails.
  • You need to have applications configured in SAP that send external emails.

High level outline of process:

  • SMTP Server Details
  • Configuring SAP Connect INT Node
  • Configuring Routes For SAP Connect INT Node
  • Configuring SAP Connect Default Domain
  • Scheduling Send Process
  • Setting Up Your User ID with and External Email Address
  • Testing Your Configuration
  • Monitoring SAP Connect

[Read more...]

How To Configure UNIX Security To Allow SAP To Share A File System With Another UNIX Application

I run into this requirement all the time at clients. My current client is implementing SAP and the development team has decided to build file based interfaces. In this particular case we are implementing interfaces between SAP and JD Edwards.

The basic requirement is as follows: SAP needs to be able to write files that JDE can read/delete and visa-versa JDE needs to write files that SAP can read/delete. Both servers are running UNIX.

High level outline of process:

  1. Define Example Landscape
  2. Create An Integration File System
  3. Export File System and Mount
  4. Example Issues / Scenarios
  5. Creating A New UNIX Group
  6. Set Integration Directory Group Ownership and Permissions
  7. Adjusting The Umask

[Read more...]

Changing the UNIX user UID for the SAP Users sidadm and orasid

SAP System Administrator Unix User Accounts <sid>adm and ora<sid>

You may find it necessary to change the the UID of the sidadm and orasid accounts on your SAP server. The process is not difficult but there are a number of steps that must be followed for it to work correctly. The following is an outline of steps that I have followed in that past on AIX running oracle. Please note you should always test this on a test server to develop a proper procedure for your specific OS and installation. You should also confirm that you have a current backup just in case.
Lets Review The High Level Steps

  • Confirm backups are in place and current. Validate the restore procedure.
  • Review the current SAP UNIX user setup and develop list of required changes.
  • Backup the current passwd file.
  • Create a backup list of files owned by the user being changed.
  • Stop SAP System and processes owned by <sid>adm.
  • Stop Oracle and processes owned by ora<sid>.
  • Restart the server.
  • Change user UID mapping.
  • Change file ownership to new UID mapping.
  • Restart the server.
  • Restart SAP and Validate server started correctly.

[Read more...]

SAP ABAP Performance Tuning – High CPU Utilization, Low DB Activity

So I have been working on a list of blog topics.  I actually have an outline that is 3 pages long, but I am not going to blog on any of the topics on the outline because my experience this week at the client site I think was useful and relevant.  We are at crunch time.  A lot of things have stacked up and as usual we are working to a very aggressive deadline.  In recent years I have typically held many leadership roles on SAP projects.  Usually heading up the technical team, working as the project architect or serving as the overall project manager for the SAP project.  In my current roll I heading up the Basis Team in a very hands on role.  I have been doing my best not to interfere with the development team.  The development team is headed up by a good friend of mine and a very talented senior SAP consultant. This week we have had a number of SAP performance defects logged.  Upon a quick initial analysis it was clear that the SAP performance issues were not  Basis related.  The development team is currently buried in the perfect storm of conversions finally coming together and the test team finally kicking the tires on the rest of the delivered development interface objects. This gave me the opportunity to pitch in get my hands dirty and look at some code and performance issues. We knocked off a significant SAP ABAP performance issue with a 100 fold improvement when all was said and done. Looking back on the problem it was obvious to me, but I missed a couple of clues that should have pointed me to the problem even sooner.  This is what this blog post is about.

[Read more...]

Issues with GuiXT and the SAP GUI

GuiXT is a scripting environment that allows for the creation of huge macros in the SAP GUI environment.  The HP testing product LoadRunner uses GuiXT to generate user load for system stability testing purposes.  This document is designed to show you how to install the GuiXT plug-in if it isn’t already, and how to fix some errors that are less than descriptive.

GuiXT is a SAPGUI plug-in that is selected during the launch pad install.  If you don’t select it during the initial install, you can run the installer again and select only GuiXT.

SAP Netweaver Front-End Installer

If everything is working correctly when you open a GUI session, you will see “Activate GuiXT” under the “Customize Local Layout” menu.

WARNING:
Neither the author of this article nor DataXstream can be held responsible if the reader breaks the registry while making this correction.  Whenever working inside the registry, it is good practice to take a full back-up before continuing.  Also break up any keys before directly editing them.

To open the registry editor click ‘Start’->’Run’ and enter regedit.

Windows Runline

The registry editor window appears:

Registry Editor

To take a full back-up of the registry, click ‘File’->’Export’ while ‘My Computer’ is highlighted:

Registry Editor File Menu

Save the file somewhere you won’t forget and with a name you will easily recognize:

Export Registry File View

With the full backup, we can now feel safe as we make our changes.  Drill down through the tree starting with
HKEY_CURRENT_USER\Software\SAP\SAGUI Front\SAP Frontend \Server\Adminstration.
Look for a key titled DisappearItems.  If it exists, export by following the previous steps with just that key highlighted, then delete the key.

Registry Editor

The option ‘Activate GuiXT’ should now be available in the Customize layout menu.

Another issue that I’ve seen with GuiXT in regards to LoadRunner is LR not being able to find the GuiXT Dynamic Link Library (.dll) when excuting a test script.  The fix is easy; Copy ‘guixt.dll’ from the directory path C:\Program Files\SAP\FrontEnd\SAPgui\ to C:\WINDOWS\system32\.

These fixes assume that you have administrative access to your computer.  If you do not, please contact your IT/Help Desk department to either gain admin rights or have a tech follow these steps for you.

Moving SAP transports in batch using SCC1

The other day I ran into an issue with a test client missing transports in one of my clients QA systems. Upon reviewing the logs I determined that the entire basis team was not on the same page when importing client dependent transports. I now had missing transports and a sequencing issue. Another consultant on the team suggested I use the bulk transport program to clean up the client. Since I was not aware of this program which has been around for quite sometime. I decided that others might find it useful.

This program lets you pick a point in time in one client and synch its configuration changes from that point to another client. The program is RSCC_SCC1_BATCH. You can find more details on the specifics of this program in SAP OSS: Note 645846 – CC-ADMIN: Collective Customizing copy with SCC1.

Program Features:

  • Bulk Import Customizing Changes From One Client To Another
  • Selections Of SAP Transports By: Transport Number, Owner, Point In Time
  • Program Has A Test Mode
  • Program Has Ability To Merge Transport Into One New Large Transport
  • Program Can Be Schedules To Run As A Periodic Job

The program selection screen is pretty straight forward:
RSCC_SCC1_BATCH Selection Screen

I was most interested in the changes since date.  I had performed a client copy on May 19th and was already missing transports by the 20th.  There was too much testing setup to redo the client copy so we had to get the configuration corrected.

Results:

  • In my testing the program typically runs 600 + seconds.
  • SAP suggests you use the Merge Requests:  This takes all the request that is selects and merges them into one big request.  (Even in test mode it creates the request it just does not import it.)
  • The merged request contains a list of the merged transports in the comments section.
  • I was pulling changes from client 400 (Golden Client in QA) to 431 test client.  The transports originated in our development system client 100 so I had to turn off the (Check Request Source Client) Flag
  • Configuration was correctly synchronized.

The program creates a spool report:

RSCC_SCC1_BATCH Spool Report

The report contains summary details of the execution.  You can see the number of the newly created merge transport at the bottom.

The merge transport contains the list of merged transport in the comment section:

Merge Transport From RSCC_SCC1_BATCH

Transport is not release unless you set the release flag.