Skip to content

Posts from the ‘Cross App’ Category

30
Jan
SAP Tricks

Change SAP menu

Do you know you can set the default area menu that all users will go to when opening a new session, system wide. This is beneficial should you wish to create a specific area menu for your company. If no setting is made, the standard entry point (area menu S000) is used.

The SAP menu entry point is specified in the transaction SSM2.

18
Jan
SAP Tricks

What to use to measure performance improvement

You know of ST05, ST01 and SE30. But do you know why  you would use one transaction code and not the other? What are the main purposes of each one when it comes to performance improvement and measurement?

To measure and improve performance of ABAP programs – Use SE30 to measure:

  • Excessive or unnecessary use of modularization units
  • CPU-intensive program functions
  • User-specific functions that could be replaced with ABAP statements
  • Inefficient or redundant database access.

In addition you may want to analyze or fine-tune a program’s database accesses – Use ST05 to measure:

  • Database accesses (SQL trace)
  • Table buffers
  • RFC calls
  • Lock operations (client side)

If you wishto fine tune the system – use ST01 to measure:

  • Authorization checks
  • Kernel functions
  • Kernel module

In addition ST01 encompasses the majority of the functionality of ST05.

23
Nov
SAP Tricks

SGEN – The SAP Load Generator

The SAP Load Generator is executed through transacion code SGEN. SGEN may be required to be executed after a large upgrade or release of functionality in a system. If you don’t run SGEN and try to access specific objects the programs may start to be  compiled as they are individually accessed.

 

Quick Overview 

  • SGEN is used to “compile” ABAP programs.
  • It can be used to re-generate all the SAP programs after you change version of your SAP kernel, upgrade your SAP system or apply support packages.
  • It is best to execute it during a period of time with very low user activity.
  • SGEN is a client independent transaction.
  • SGEN can also be used to re-generate objects within a Transport Request from SGEN menu–>Regenerate Existing Load
  • If you want to regenerate loads, make sure that there is enough space available in the database. The space required can be several hundred MB. Generation over all components requires around 2 GB of free space.
  • The runtime depends on the type of hardware configuration and number of objects being generated. (It would not be uncommon for this to take 5 hours.)
  • You can limit the components to be generated, in order to reduce the runtime.
  • You can schedule RSGENINVLAS to automatically regenerate invalidated loads. (Note this report has no selection screen)

 Use

1. Select the generation task.

On the initial screen of transaction SGEN you can select the task that suits the purpose of the generation:

Generate all Objects of Selected Software Components

Choose this strategy if you want to generate the loads of all objects of certain software components. This may be the case, for example, if your system has been reinstalled. Here, the loads that are required for operation are not yet available and must be regenerated.

After selecting this task, the Selection of the Generation Set by Software Components screen appears. Here, you can restrict the amount of objects to be generated by selecting software components. Use the pushbuttons to select the software components you require.

Regenerate After an SAP System Upgrade

After an upgrade, you have to regenerate the ABAP object load in the system.

Regenerate the Objects of the Last Run

This task is suitable, for example, in the following cases:

    • The generation of objects of the generation set that was used in the previous run was terminated and you want to regenerate the remaining objects.
    • You want to regenerate all objects of the generation set that was used in the previous run.

After selecting this task, the following two options are available to you:

    • Restart
      The generation set that was used in the previous run in transaction SGEN is used. Only those objects that were not generated in the previous run or whose generation was terminated due to a system error, are generated.
    • Generation:
      All objects of the generation set used in the previous run of transaction SGEN are generated.

Regenerate Existing Loads

This task allows you to regenerate all ABAP loads and invalidated loads that exist in your system, and to generate loads for objects of a Support Package queue. You have the following options:

    • Generate all Objects with Existing Load
    • Generate Objects with Invalidated Load Only

An object load is invalidated if, since the time the load was generated, activated changes were made to the object or to objects used by this object, such as includes or tables. This may occur by importing a Support Package (SPAM) or a kernel patch.

If you want to generate loads for objects from a Support Package queue, start the task after importing the queue. The task determines the generation set using the invalidated loads in the system. Unlike the Generate objects of a transport request task, this task also takes into account ABAP loads that were invalidated by modified Dictionary objects.

Note: You can also periodically schedule an automatic regeneration of invalidated loads (every night, or at other times when the system load is low, for example). To do this, schedule the RSGENINVLAS report for the relevant time and period. The report then determines the invalidated loads for every type of host in your system at the specified time, and regenerates them.

Generate Objects from a Transport Request

You can use this generation task to regenerate the ABAP load for all objects in a transport request that can be generated. However, this task does not take into consideration ABAP loads that were invalidated by modified Dictionary objects. To include these loads, choose Regenerate Existing Loads -> Generate Objects with Invalidated Load Only.

After choosing this task, a screen appears that allows you to search for the name of the transport request using the selection button, or to specify it directly.

Generation of BSP Applications

This task enables you to generate BSP applications of selected software components.

Each Business Server Page is realized technically by an ABAP object class. When BSP applications are generated, these classes and their ABAP loads are generated. BSP applications are not included in the generation sets of the Generate All Objects of Selected Software Components, Regenerate After an SAP System Upgrade and Regenerate All Existing Loads tasks, since they are optional. You can use this task to deal with these.

After selecting this task, the Selection of the Generation Set by Software Components screen appears. Here you can restrict the amount of BSP applications to be generated by selecting software components. Use the pushbuttons to select the software components you require.

If you quit the generation of BSP applications before it has finished, or if the system terminates generation, the Regenerate the Objects of the Last Run task allows you to resume the generation.

 

2. Select the servers for parallel generation.

The generation is based on a method where the generation set is divided into small subsets that are processed by parallel processes. Depending on resources, available servers are included in the parallel processing, whereby multiple parallel processes run on one server.

From the Selection of Servers for Parallel Generation screen, you can select the servers that are to be used in the parallel processing. Note that loads depend on the machine type (MT) of a host. This means that it only makes sense to parallel process the generation set of servers of the same machine type.

The default selection uses the server that you are logged on to. It corresponds to your logon server and all servers on your system that have the same machine type. If you want to use the default selection, choose Continue.

If you want to exclude individual servers from the generation, or if you want to generate the load for a particular machine type that is different to that of the logon server, then use the pushbutton to select the corresponding servers and choose Continue.

Note: The parallel servers are depicted via the logon groups in transaction RZ12. For transaction SGEN, logon group ‘parallel_generators‘ is created. Do not use this group for your own purposes, as transaction SGEN uses and continually redefines this group.

After you have selected the servers, the system starts to define the generation set dynamically, and stores it in the database (database table GENSETC). This can take several minutes.

Job Monitor Pushbutton

This function allows you to call the job process control directly, without redefining the generation set. By choosing Job Monitor -> Job Overview ->  Spool or Job Log, you can display logs from previous generation jobs.

21
Sep
SAP Tricks

How to Scan ABAP Sources for Specific Strings

It is simple to locate a string within a program but have you ever wondered how to find all programs where a specific ”string”, or line of text, or object name, is used.

There is a wonderful report which is I use to find ABAP programs related to specific search terms.

  • The Report name is – RPR_ABAP_SOURCE_SCAN 
  • You can execute it from transaction SA38 or SE38.

Some useful benefits of this report are:

You can limit the search range of the programs for example to your custom built developments only for example all programs starting with Y* or Z*.

Tip - Another similar program is RKCTSEAR.

1
Aug
SAP Tricks

Batch Input Reports

Here are some reports related to batch input:

-   RSBDCSUB -  Process sessions outside transaction SM35
-   RSBDCDRU -  Print session contents (transactions and data)
-   RSBDCLOG -  Process logs
-   RSBDCREO -  Reorganize processed sessions that are still in the system Reorganize logs (delete logs and shrink log file to actual size)

- RSBDC_REORG -  Same as old report RSBDCREO but with selection screen for reorganizing processed sessions.

RSBDCTL3 - Analyze Batch Input logs

5
Jun
SAP Tricks

Share Quick View Reports

Have you ever created a Quick View Report using SQVI and then wanted to share that report with another user?

You can do this simply by doing the following:

  1. Run SQVI
  2. Select the report name
  3. Select the menu path: Quick View–>Additional Functions –>Display Report Name

This will give you a dialog box with the report name sometimes with unusual characters such as “=” signs. Select the entire report name and share it with any user whom will be able to execute thee report by using the transaction code SA38.

2
May
SAP Tricks

Background Job Variants

You may know how to check the parameter values of a variant in SM37 by checking the variant name associated with the program being executed. But what do you do if the variant was created ad-hoc and has not been saved. That is it was a temporary variant with a name similar to SAP&0001.

You can see the values used in temporary variants by doing the following:

From the job overview within SM37:

  1. Select the Job that was run/is running.
  2. Select the “Step” button (Ctrl+Shift+F9)
  3. Select the program name.
  4. Then select the menu path Goto–>Variant

Also – A tip is changing the defaulted Job Overview screen Layout to add the “Executing server” to the display. Do this from within the Job Overview of SM37 by selecting (Ctrl+F7).

26
Apr
SAP Tricks

SM12 – Lock Entries Tips

If you check SM12 you may find some lock entries – this is not a problem. Locked entries are required in standard SAP processing. In most instances the entry will remain in SM12 for a few seconds milliseconds, however they could remain in SM12 for a lot longer depending on the logical unit of work.

Factors which can impact the entry in SM12:

  • Sizing and performance of the enqueue server.
  • Sizing and performance of the application server/number of available processing sessions. (indirectly related)
  • Program logic being executed on the application server.

What you may not know is that there is a hidden menu path for SM12 analysis. To activate this menu path you can do the following:

Run SM12, then enter OK code “test”. You will now see the top menu path has included a new Menu Option labelled “Error Handling”.

This menu option has many parameters and test functions which you can use to analyse the enqueue and dequeue processes.

If you require advice on how to use this new functionality you can refer to OSS note 5424 which is the SM12 FAQ! Success!

19
Apr
SAPTricks

SAP Change Logs

Use

To view the changes made to a table or a configuration node in the IMG, you can use transaction SCU3.

To view the changes, you must first have activated the change log for the required tables.

The system will read each change to an existing data record for example (Update/delete) and record it is table log.

Pre-requisite

In order to use table logging you need to do 2 steps:

Step 1:

Activate the system/client parameter. Check your systems value with RZ11 with the value: rec/client

Some options:

  • rec/client = ALL - Log all clients.
  • rec/client = 001,002,003 - Log the specified clients. (Note you can specify up to 10 clients.)
  • rec/client = OFF - Do not log.
  • TIP – make sure this parameter is the same for all servers of a system.

Step 2:

The Table then needs to be active for logging – you can do this in transaction SE13.

Additional Info

The data is stored in tables DBTABPRT and DBTABLOG.

If you have too much data in these tables:

  • As of Release 4.5A you can use Transaction SCU3 to start a deletion program (Menu “Edit –>Change Docs –>Delete”).
  • Or you can drop the table on database level and recreate it with transaction SE14.

History of table logging

  • Report RSTBSERV was used prior to 3.0
  • Report RSTBHIST was used between 3.0 and 4.5
  • Report RSVTPROT is used after 4.5
3
Mar
SAPTricks

Wild cards in searches

Did you know that a wild card search in a selection such as * is not the only wild card option. A * is used as a wild card for 1 or more characters, while a + may also be used as a wild card for a single character.

22
Feb
SAP Tricks

Translations

Hi Glynn do you have any tips on translations of texts?

This is a big area, however, a little time saver can be to use the unicode translator transaction SE63 which is a shortcut to all texts which need to be maintained and translated. Always check oss note – 0585116 for more info on using SE63.

Dont forget you can use SO10 to translate standard texts as well.

7
Feb
SAP Tricks

How to change Servers on a System

So you login to server X on a system and you would like to move to server Y on the same system without logging off and back on again – How do you do it?

You can do this a number of ways – the method I follow is:

  1. Go to transaction SM51. (see server overview)
  2. Double click on a server to see the processes.
  3. Then open a new session, you will now be on the new server you double clicked.

Be careful NOT to use the back arrow from the work process overview or else you will move back to the old server.

30
Aug
SAP Tricks

SAP Tips – Set IDoc Status

Set IDoc Status:

This allows you to change the status of IDOCs, which is particularly useful in test environments.

IDOC program – RC1_IDOC_SET_STATUS.

28
Jun
SAP Tricks

SAP Tips – Upload/Download files to/from application server

You can upload a file from your PC to the SAP application server with transaction CG3Z

You can download a file from the SAP application server to your PC with transaction CG3Y

23
Jun
SAP Tricks

SAP Tips – Debugging technique

We know we can use “/h” in transaction code (command field) box to debug. Then step through the code to find a bug. If you have a problem locating the cause of the bug , you can use this basic technique;

  1. Transaction  /h
  2. Then, step through by pressing F6 until the error is found. (count how many times you press F6.) for example 5 times.
  3. Then re start the process and step through by pressing F6, 1 time less than before, for example 4 times, then press F5, and step through until you find the error. Read more »
20
Apr
SAP Tricks

SAP Dictionary of Terms

How many projects have you been on where 1 acronym can mean different things to different people. It is generally good business practice to define a list of terms and acronyms to be used for a project. Here is a starting point should you be looking for a definition of a list of SAP terms. Read more »

29
Jan
SAP Tricks

Cross System Lock – ECC CRM

Hi Glynn, What do I do if I have a document that is blocked in 1 system when operating with ECC and CRM?

Answer – You need to start investigating the cause of the block/lock. I generally follow the following process:

1) Check document for errors in ECC and fix.

2) Check document for errors in CRM and fix.

3) Check middleware queues SMQ1 and SMQ2.

4) From CRM

2
Dec

Transaction and Screen Variants

Tip – Did you know that you can control elements of a screen display from within a transaction, say for example a sales document eg: VA01, for example program SAPMV45A screen 4440, so that only specific fields are shown to the user and are available for input or required to have input. Use transaction SHD0 – there is great SAP documentation on the use of these settings as well.

16
Nov

SAPconnect emails from SAP output

How do we configure our system to send emails or faxes?

You can use the SAPconnect solution. Monitor the transmission requests with transaction SOST.
You can configure the SMTP server for mail or the RFC destination for faxes with transaction SCOT.
You are also able to do a routing test and internal trace if required.

3
Nov

How to see if the system/client is locked for customising changes

Question: How do I see if the system and client is locked for customising changes and who changed the client control values last?

Answer: You can view the contents of table T000 which is the Clients table. Look at the value of “changes and transports” T000-CCCORACTIV, to see if the client can be changed, for example value 2

28
Oct

How do you add activities and nodes to IMG Structure

Question – How to add nodes and activities to the IMG structure (SPRO)?

Answer – You can edit the IMG structures using transaction SIMGH. For complete step by step procedures follow this simple instruction http://help.sap.com/saphelp_sm32/helpdata/en/9a/b7b2375ca97f68e10000009b38f8cf/content.htm

28
Sep

User Menus

Tip – Sometimes you may wish a user to login to a specific area menu or transaction code. This can be easily done by assigning the area menu or transaction code to the user profile. To set the user start menu in CRM to CRM_MENU, assign the start menu to the users profile in SU01.

To see what area menus are available in Standard SAP check the values in SE43. Here are some good area menus:

VA00 Sales
VC00 Sales Support
VF00 Billing
VKP0 Pricing
VL00 Shipping
VS00 Sales Master Data
VT00 Transportation

2
Sep

Changed data in a table

Q- How to check which data changed has changed in a table, or check the values of a table at a specific date and time?

A – If table logging is active you can use transaction SCU3. Enter the table name and execute. You can also use this transaction to see the contents of the table for a specific date and time by selecting comparison History –>Current and execute.

31
Aug

What tables are being used to populate specific screen fields?

Q- How do I see what tables are being used to populate specific screen fields?

A – You can debug the transaction. Or an easier method is to use a SQL trace. Start the trace with ST05. Then run the transaction. Then switch the trace off with ST05. Then list the trace and you will see the table calls, with the variables used in the call.

25
Aug

Release locked transaction codes?

How do you lock or unlock transaction codes?

Answer – Transaction SM01.

(But you may be reffering to locking and unlocking entries. For this you can use Sm12 to see locked entry list.
Or you may be reffering to SMCL for the cross system lock. Please be careful when using SM12 and SMCL.) See other posts on its use.)

25
Aug

Compare ABAP programs

I have 2 routines, for example 2 item category copy control data transfer routines, how do I see the differences within the routines easily?

Answer – Use transaction code SE39. Enter the 2 ABAP program names, 1 for left and 1 for right, then press enter. You will see the 2 programs in the split screen editor. Now select the “Compare” icon or (Ctrl+Shift+F11). The system will show you the inconsistent lines in the code by highlighting them in blue. (Press Ctrl+Shift+F10 to see the next difference.)You can also use this transaction to connect to another system via RFC to compare code.

25
Aug

SE16 or SE16n

Dont forget there are differences between SE16 and SE16N. SE16N is much more fun! There are many advantages of using SE16N as opposed to SE16, for example:

  • With SE16N you can check number of entries in background – good for production environments where the table is very large and timeouts occur.
  • You can see technical names and descriptions for fields.
  • You are not limited to table width.
  • The results are displayed in ALV grid format.
25
Aug

Which Hot Package is installed?

How do I know what support pack is installed?

Within the system go;

System–>Status–>click on the display ICON under component information –>Select the SupPack tab–>All the support packagaes may be seen.

20
Aug

Can I have many selection parameter values for SE16?

Q – Is it possible to copy and paste a selection of values, larger than a quantity of lines for a multiple selection. For example in SE16 you wish to select 100 single customer numbers for field KUNNR?

Yes, simply copy the customer numbers and select the multiple selection icon for the field, then select the “Import from text file” icon (SHIFT+F11), then select the “Upload from clipboard” icon (CTRL+SHIFT+F1). Be careful though as I have not been able to determine what is the largest number of pasted values that may be used. I have used +- 200 in the past. Larger quantities may not be pasted correctly.

20
Aug

How do I get a list of all Z* tables?

How do I get a list of all Z* tables?


You could use SE11 or SE16 or SE16n and then view F4 to see a list of all tables. But then you need to extract them….

A better solution is to do the following, use SE16n on table DD02T and search on all Z* tables. (This will give the table and table text.)