Skip to content

Recent Articles

22
Jan
SAP Tricks

Customer-specific text on the SAP Gui logon screen

Why change the SAP login Screen?

Some companies choose to modifiy the login screen to:

  • Give security notice warnings to potential unauthorised access.
  • List client numbers and their use within a system.

The history:

Before Release 4.6 the logon screen was modified through program SAPMSYST screen 0020. From release 4.6 onwards it is simply modified using transaction SE61.

Proceed as follows:

Go to Transaction SE61and select the document class ‘General Text’ (selection using F4 help).

Create a text with the name ZLOGIN_SCREEN_INFO in the system language. (If the text does not exist in the system language, no output is made.)

TIP – Check profile parameter “zcsa/system_language” in transaction RZ11 to determine your system language.

Title lines may be used, as well as very basic text formatting. You may also include standard SAP icons within the message. A tip is to change the editor from within SE61 (Goto–>change editor), this will clearly show you the available character and paragraph codes.

Note: Creating/changing this text requires a changeable system. Therefore, for production systems, SAP recommends maintaining the text in the upstream system and then transporting it. To do this, select a transportable (customer) development class when you create the text and save the active version prior to the export.
The transport is done via the transport object R3TR  DOCT  ZLOGIN_SCREEN_INFO

 

 

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.

6
Jan
SAP Tricks

How to find the IP address of a SAP system

Scenario – You wish to connect to your SAP system from a remote connection, you require your SAP system IP address and port.

Option 1 – There are a few methods to discover the IP address of a system the easiest being to simply use the menu path:
System–>Status–> then press (SHIFT+F5) –> You will see your current systems IP address under the System Information.

Option 2 –  Alternativly you may use SM59 then select R/3 connections and double click on the system (RFC destination), then select the menu path:
System Information–>Target System –> You will see the target systems IP address under the “Network address”.

4
Jan
SAP Tricks

Check IDoc number

Is there any way to check the IDOC number from a sending system, within a receiving system?

Yes there is a way to do this. In the receiving system, execute transaction BD87. Select the node for analysis and select “Trace IDOCS”. You will then see all IDOCS as well as the field, IDOC No. partner. (The external IDOC number).

30
Nov
SAP Tricks

Currency and Decimal Places in SAP

The number of decimal places varies for currencies. Currencies which do not have two decimal places must be defined in SAP in table TCURX (decimal places for currency codes).

You can maintain this table in the IMG as follows: SAP Customizing Implementation Guide–>SAP NetWeaver–>General Settings–>Currencies–>Set Decimal Places for Currencies. (Transaction code Oy04)

Never delete a currency or change the decimal place value of a currency in SAP.

Some common Customizing settings for table TCURX:

ISO Currency Decimal places
Code
————————————————————————

ADP Andoran Peseta 0
AFA Afghani Afghani 0
BEF Belgian franc 0
BHD Bahraini dinar 3
BIF Burundi franc 0
BYB Belorussian rubel (old) 0
BYR Belorussian rubel (new) 0
CLP Chilean peso 0
COP Columbian peso 0
DEM3 (Internal) German Mark (3 Dec.) 3
DJF Djibouti franc 0
ECS Ecuadorian sucre 0
ESP Spanish peseta 0
GNF Guinea franc 0
GRD Greek drachma 0
HUF Hungarian forint 0
IDR Indonesian rupiah 0
IQD Iraqui dinar 3
ITL Italian lira 0
JOD Jordan dinar 3
JPY Japanese yen 0
KMF Comoros franc 0
KRW South Korean won 0
KWD Kuwaiti dinar 3
LAK Laos new kip 0
LUF Luxembourg franc 0
LYD Libyan dinar 3
MGF Madagascan franc 0
MZM Mozambique metical 0
OMR Omani rial 3
PTE Portugese escudo 0
PYG Paraguay guarani 0
ROL Roumanian Lei 0
RWF Rwanda franc 0
TJR Tadzhikistani rubel 0
TMM Turkmenistani manat 0
TND Tunesian dinar 3
TPE Timor escudo 0
TRL Turkish lira 0
TWD New Taiwan dollar 0
UGX Uganda shilling 0
USDN (Internal) US Dollar (5 dec.pl.) 5
VND Vietnamese dong 0
VUV Vanuata vatu 0
XAF CFA Franc BEAC 0
XOF CFA Franc BCEAO 0
XPF CFP Franc 0

The contents of this table is only delivered with new installations of SAP and never upgraded.

For upgrade installations, new or changed contents of Table TCURX are not delivered.

Currency codes and decimal places for currency codes are defined in ISO standard 4217. For the specification of decimal places for currency codes, SAP uses this ISO standard.

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.

1
Nov
SAP Tricks

Measure specific portions of ABAP Runtime

Most people know about SE30 which can be used to do an ABAP runtime analysis. However did you know that you are able to dynamically call the runtime analysis for a portion of source code for example a section of a user exit, or for a specific function module?

This is easily done by changing the user variant as follows:

  1. Open SE30
  2. On Measurement restrictions (1/2 way down the page) create/change your user defined variant.
    1. Within the variant under program parts, select the “particular Units” check box and save.

Now from within SE38 for the code you wish to measure – set your breakpoint for the position from which you  wish to measure and another for the position to which you wish to measure.

Go back to SE30 and execute your code when you reach the breakpoint activate the runtime analysis from System–>Utilities–>Runtime Analysis –> Switch On.

Run through the code by selecting F8.

When you reach your end point de-activate the analysis by selecting System–>Utilities–>Runtime Analysis –> Switch Off.

TIP: You can activate the runtime performance analysis start by entering the command prompt code /RON in the transaction box. You can de-activate the analysis by using the command prompt code /ROFF.

NOTE: If you get the message “The Particular “units” option is not selected – S7100.  It means you are not using your new changed default user variant for the execution.

 

28
Oct
SAP Tricks

Debug and change in SE16

Not a very common procedure – however you may have an instance where you are required to change a value of a record or field  in a table.  If you are unable to change the value using SM30. You may wish to debug and manipulate the abap controls of the field permissions using SE16. You can do this as follows:

1) SE16 using the table name, extract the record you wish to change.

2) /h to enter debug mode.

3) Double click on the record you wish to change.

4) Press F7.

5) Change the code from “SHOW” to “EDIT” by changing the field contents.

6) Press F8 to run to end.

The authorization to proceed in step 5 should generally only be available for advanced ABAP developers who are in an integrated or development environment and need to adjust variables to develop their code. It is very possible that the majority of the readers of this site will not have the authorization.

19
Oct
SAP Tricks

The New SCN is on its way

With over 2 million users of the network and more than 8 000 active bloggers, the SAP Community Network is SAP’s professional social network, orchestrating connections between SAP customers, partners, employees, and experts.

The SAP Community Network - is releasing its latest user interface at the end of November. There will be a lot of focus making this the “Social Network For SAP Professionals“. – Here is a YouTube video - It is highly recommended that your profile is up to date to leverage from this new release.

If you are not a member of the SAP Community Network – you can become a member here.

These communities play an integral role in the SAP Ecosystem.  Members use the power of social networking to tap into a broad network of peers to gather advice and knowledge to help solve their business problems.

 

17
Oct
SAP Tricks

BD56 and WE20 ALE IDoc Segment Filtering

Problem with ALE IDoc segment filtering?

A common problem related to ALE IDoc segment filtering is a mis-alignment between the partner profile settings in WE20 and the segment filtering settings in BD56. Normally the settings in BD56 are maintained and transported where the values in WE20 are maintained manually in each system. If the settings in WE20 are not maintained with the same expected parameters in BD56 the segment filtering will not work. Specifically one needs to make special note that:

  • BD56 – Message Type = WE20 – Message Type
  • BD56 – Logical System Type = WE20 – Partner Type
  • BD56 – Receiver = WE20 – Partner Number
  • BD56 – Receiver Role = WE20 – Partner Role

Specifically if Receiver Role is blank then Partner role must be blank. Alternatively if a value exists such as LS (Logical System) the same value must be in both fields.

3
Oct
SAP Tricks

How to create a Price Report in 15 minutes

Objective: You wish to create a report listing specific condition records with associated condition record validity dates, but you wish to extract data relevant for a specific customer across multiple condition types. This would normally entail you having to do multiple extracts or creating a specific query/custom ABAP program. A standard SAP solution is to create a price report, which can be done very quickly and effectivly.

 

Procedure to Create a SAP Price Report:

  1. Access the IMG: SAP Customizing Implementation Guide–>Sales and Distribution–>Basic Functions–>Pricing–>Maintain Pricing Report
  2. Select “Create Pricing Report”
  3. Enter a Name and Title
  4. Now select a field which is part of the condition table within your access sequence assigned to your condition type. For example you may select the field KUNNR. (Be careful as more than 1 technical field may have the same Field name description). (A good tip is to not select too many fields.)
  5. Select the OR or AND buttons depending on the number of fields you have selected.
  6. You will now have a list of all the pricing tables which contain the field you have selected. Select the tables for which you would like the report to extract the data. (Be careful as each field which is represented in a table will need to be represented in the final report, so you may not wish to have too many variables.)
  7. Now select the Next Step (F5)You can select which fields are used as selection parameters or not. All fields must have a position assigned in the report; Page Header –Group Header –Item level –  

Result: You can now execute the report with transaction V/LD.

26
Sep
SAP Tricks

Transport of Copies

Issue: Imagine you create and release a few transports before setting up the target system and Landscape. Because of this, the transports can be released without target clients. How do you fix this problem?

Fix: Fix is done using Transport of Copies Method:

  1. Execute transaction SE10
  2. Select the create icon.
  3. Select “Transport of Copies”
  4. Enter short description and save, this will create your transport number.
  5. Now follow the menu path to place your objects into this transport copy:
    1. Request Type–>Object List–>Include Objects
  6. Select “Object List from Request” and enter your old transport number.

Thats it! Your new transport is a copy of your old transport with all associated objects.

———-

Post contributed by: Sundar Raghuraman

Contact: sundar.raghuraman@gmail.com

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.

15
Sep
SAP Tricks

Where Customized in the IMG

Today someone asked me how do they find the place an object is customized if they only have the table or view name. The technique is very simple you can do the following:

  1. Transaction SM30
  2. Enter the table or view name and select the button “Customizing”
  3. You will then see a dialogue box where you may enter a project – or simply select “Continue without specifying project”
  4. You will then see a list of place in the IMG where that table/view is edited/customized. Simply select the entry.

You can view which tables are customizing tables, by looking at the table in SE10 and then selecting the button “technical Settings”. You will see the “Data class” as APPL2 – Organization and customizing.

6
Sep
SAP Tricks

So which system is connected?

I work on a large landscape of 110 SAP systems (not clients). Every now and then someone asks if a specific system is connected to another, there is no way I can remember which systems are connected. Depending on what system they are referring to one may be able to execute a system specific transaction. However as a dependable alternative one may simply use SM59 and view the connected systems.

Here you can view the following connections:

  • R/3 connections
  • HTTP Connections to R/3 System
  • Internal connections
  • Logical destinations
  • TCP/IP connections
  • Connections via ABAP/4 driver

Tip – Depending on your settings (If the logon data is saved on the Logon/security tab) you may even be able to login to a connected system remotely from within SM59, simply select the R/3 connection and selecting “Remote logon” button.

 

23
Aug
SAP Tricks

ABAP Code Inspector

Do you need to easily check the performance of an ABAP program or do some analysis on its code?

 You can use the transaction SCI.

This is a very powerful transaction code, which can do more than a performance check.

However here is an example of one of the more simpler uses:

 From transaction SCI.

-Enter Person responsible

-Enter A name and version and select the “Create” Icon.

From the new screen

-Select the “Single” radio button

-From the drop down select “PROG Program”

-Enter the program/report you wish to analyse in the adjacent field.

-Under the check variant section enter “PERFORMANCE_CHECKLIST” (If this value does not work simply select the value from the F4 match-code selection list).

-Select Execute

From the next screen select the “Results” Icon (Shift + F6).

17
Aug
SAP Tricks

SAP Table Editing Function

This is a SAP Trick that is possibly too powerful, if authorizations are not in place in your system you dont want to use this too liberally:

To edit the contents of a table (Virtually any table from customizing to database records):

  1. Use transaction SE16n or in some systems transaction n.
  2. Enter the table name and see the records. (Sometimes you may be able to change a tables contents depending on its attributes.)

However if you wish to change most tables regardless of table attributes/control you can do the following:

  1. Use transaction SE16n or in some systems transaction n.
  2. Then enter &sap_edit in the command field.
  3. You will see a message “SAP editing function is activated”.
  4. Now enter the table name and execute to see the records. You will now be able to change the contents of the table.

This SAP technique may be useful to maintain faulty data in your system. But should only be used by a very experienced person.

12
Aug
SAP Tricks

Spool – Output

The output controller – Spool Request Selection Screen can be used in transaction code SP01.

This will give you spool requests and output requests by system.

If you wish to limit a user access to their own individual spool requests you can give them access to SP02.

If you wish to completely control the spool and output functionality of a system you can use the administration transaction SPAD (or additionally transaction SPAT.)

When working with output/messages you can access the objects message status in table NAST.

If you are looking for a simple single table overview of all output/message condition types which have a condition record you can use table NACH. (This will give you the Condition Type+Access Sequence Table+Application+Partner function and a variable key which will show you the key fields for the access sequence table.)

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

12
Jul
SAP Tricks

Batch Input Recordings SM35

What: A Batch Input Recording is a recording of a series of screens and fields

Why: A Batch Input Recording can be used for multiple uses, some of the more common ones are:

  • To test functionality after a change has been done in the system.
  • To enter data into a system.
  • To create a Function module.
  • To create a program.

How: Create a Batch Input Recording via transaction SHDB.

Brief Process:

  1. Transaction SHDB
  2. Select New Recording button.
  3. Enter a recording name and a transaction code for example VD02. (Update mode = A, CATT mode = No CATT, Defualt size checked and all other fields unchecked.)
  4. Start Recording –> Follow the screen and field sequence you wish to record.
  5. At Commit (save) the recording will end and you will be provided with a list of program and screen and field names, with entered values.
  6. Now Save
  7. What you have created now is a simple recording of a sequence of steps with 1 unique set of transactional or master data. As you have no variables in the load/runtime you cannot use this recording to load data or for any other purposes than simple test executions.
  8. An idea on its use – Execute this same recording any time you change customising and wish to run a series of automated non regression tests.
  9. To execute it you need to create a batch input session, from within SHDB select “Create Session”, which will then create a session to be executed in SM35.
  10. Go to SM35 select your session and execute it.

I will do another post with the steps to create a data transfer program using a Batch Input Recording.

Tips:

  • Not all BDC OK codes work such as /nxxxx where xxxx is a transaction code. Another code which does not work is /i
  • If you wish to set the cursor on a field in a screen in the batch input use
    -   Utility field BDC_CURSOR and specify the field name:    For example: Cursor on field HUGO, then BDC_CURSOR = HUGO.
  • To go to the Batch Input menu, choose “System” -> “Services” -> “Batch input”
  • With batch input running, you can:. Delete a running transaction   OK code /bdel or BI menu. Call the next transaction              /n       -”-. Terminate batch input                  /bend    -”-. Set the processing mode  . Process in foreground        OK code /bda  or BI menu   . Display errors only                /bde     -”-. Activate expert mode          OK code /bdx  or BI menu. Deactivate expert mode                /bdy     -”
  • You can record sessions using SHDB (The transaction Recorder).
  • You can examine logs/print/export and archive them with SM35P.
28
Jun
SAP Tricks

Creating deliveries by Background Job

Here are a few tips on creating outbound delivery documents via a background job:

1)       The Easy Access menu path:

  1. SAP menuàLogisticsàLogistics ExecutionàOutbound ProcessàGoods Issue for Outbound DeliveryàOutbound DeliveryàCreateàCollective Processing of Documents Due for Deliveryà
  2. VL10 – User-Specific Delivery Scenario
  3. VL10A – Sales Orders
  4. VL10C – Sales Order Items
  5. VL10E – Sales Order Schedule Lines
  6. VL10B – Purchase Orders
  7. VL10D – Purchase Order Items
  8. VL10F – Purchase Order Item Schedule Line
  9. VL10G – Sales Orders and Purchase Orders
  10. VL10H – Sales Orders and Purchase Orders (Items)
  11. VL10I – Sales Orders and Purchase Orders (Schedule Lines)
  12. VL10U – Cross-System Deliveries
  13. VL10BATCH – Plan Background Processing

2)       One can simply execute a transaction code as above and then fill the values of the selection screen and tabs, after which one may SAVE the variant.

3)       Transaction VL10BATCH is useful to show all variants. One can also use this transaction to select a variant and execute the job immediately or schedule the job.

4)       Alternatively one may use the batch Job Wizard (I am not going to share on how to use the job wizard as this is pretty basic via transaction code SM36.) to create a background job and schedule it. Use your created variant with program RVV50R10C.

 

Some Tips:

A)      It makes sense to create an express shipping point for which you can schedule a delivery creation background job in a much faster schedule to the normal delivery creation schedule.

B)      Be careful to schedule your jobs with care. For example you want your delivery creation job to be completed before you process any picking jobs and shipment related jobs. (Likewise you want your billing jobs to run after your shipment related jobs are completed.)

C)      It is not uncommon for the delivery creation jobs to hold sales docs and or materials in a shared or exclusive lock. This is not a problem. It just means you have to wait for the locks to be released, which in most instances should be split seconds. But knowing this happens your target should be to have more delivery due list jobs running with smaller run times than a single huge list which could lock itself at times.

D)      In the “User Role” Tab is a setting for Delivery Profile which has a field called “Repeat Blocked” This will set how many times the system will try access a document which is blocked.

E)      You can also enter a default delivery scenario and a default list profile for each user, that is called up from the menu or via transaction VL10. Set the user parameters LE_VL10_SZENARIO and LE_VL10_PROFIL. (You can see the values for the scenario on the “User Role” Tab.)

 

27
Jun
SAP Tricks

Functional Domain Tables

Here are a list of tables which you may find useful related to their domain.

Read more »

22
Jun
SAP Tricks

ABAP System Fields – Use of structure SYST

Often one needs to use the values of the system structure SYST. Here is an alphabetical list of the different fields followed by a few sentences on the usage of their values.

Alphabetical List

Name Type Length Use Description
ABCDE CHAR 26 Constants Alphabet (A,B,C,…)
APPLI RAW 2 Obsolete
BATCH CHAR 1 Background processing Program runs in the background
BATZD CHAR 1 Obsolete
BATZM CHAR 1 Obsolete
BATZO CHAR 1 Obsolete
BATZS CHAR 1 Obsolete
BATZW CHAR 1 Obsolete
BINPT CHAR 1 Batch input Program runs under batch input
BREP4 CHAR 4 Obsolete
BSPLD CHAR 1 Obsolete
CALLD CHAR 1 ABAP Program Call mode of ABAP program
CALLR CHAR 8 Printing Lists ID for print dialog function
CCURS DEC 9 Obsolete
CCURT DEC 9 Obsolete
CDATE DATS 8 Obsolete
CFWAE CUKY 5 Internal
CHWAE CUKY 5 Internal
COLNO INT4 10 Creating Lists Current column in the list
CPAGE INT4 10 List processing Current page number
CPROG CHAR 40 ABAP Program External procedure call
CTABL CHAR 4 Obsolete
CTYPE CHAR 1 Obsolete
CUCOL INT4 10 Screens Horizontal cursor position at PAI
CUROW INT4 10 Screens Vertical cursor position at PAI
DATAR CHAR 1 Screens Displays user input
DATLO DATS 8 Date and time Local date of user
DATUM DATS 8 Date and time Current (application server) date
DAYST CHAR 1 Date and time Daylight saving time flag
DBCNT INT4 10 Database accesses Number of processed table rows
DBNAM CHAR 20 ABAP Program Linked logical database
DBSYS CHAR 10 R/3 System Name of central database system
DCSYS CHAR 4 Obsolete
DEBUG CHAR 1 Internal
DSNAM CHAR 8 Internal
DYNGR CHAR 4 ABAP Program Screen group of current screen
DYNNR CHAR 4 ABAP Program Number of current screen
ENTRY CHAR 72 Internal
FDAYW INT1 3 Date and time Factory calendar weekday
FDPOS INT4 10 Character strings Offset in character strings
FFILE CHAR 8 Internal
FLENG INT4 10 Internal
FMKEY CHAR 3 Obsolete
FODEC INT4 10 Internal
FOLEN INT4 10 Internal
FTYPE CHAR 1 Internal
GROUP CHAR 1 Internal
HOST CHAR 8 R/3 System Name of application server
INDEX INT4 10 Loops Current loop pass
INPUT CHAR 1 Internal
LANGU LANG 1 R/3 System Current language
LDBPG CHAR 40 ABAP Program Program of logical database
LILLI INT4 10 List processing Selected list row
LINCT INT4 10 Creating Lists Page length of list
LINNO INT4 10 Creating Lists Current row
LINSZ INT4 10 Creating Lists Column width of list
LISEL CHAR 255 List processing Content of selected row
LISTI INT4 10 List processing Index of selected list
LOCDB CHAR 1 Obsolete
LOCOP CHAR 1 Obsolete
LOOPC INT4 10 Screens Number of rows visible in table
LPASS CHAR 4 Internal
LSIND INT4 10 List processing Index of detail list
LSTAT CHAR 16 List processing ID for list levels
MACDB CHAR 4 Obsolete
MACOL INT4 10 Printing Lists Columns from SET MARGIN statement
MANDT CLNT 3 R/3 System Client number from logon
MARKY CHAR 1 Obsolete
MAROW INT4 10 Printing Lists Rows from SET MARGIN statement
MODNO CHAR 1 R/3 System Index of external modes
MSGID CHAR 20 Messages Message class
MSGLI CHAR 60 Messages Message line
MSGNO NUMC 3 Messages Message number
MSGTY CHAR 1 Messages Message type
MSGV1 CHAR 50 Messages Message variable
MSGV2 CHAR 50 Messages Message variable
MSGV3 CHAR 50 Messages Message variable
MSGV4 CHAR 50 Messages Message variable
NEWPA CHAR 1 Internal
NRPAG CHAR 1 Internal
ONCOM CHAR 1 Internal
OPSYS CHAR 10 R/3 System Operating system of application server
PAART CHAR 16 Print parameters Print formatting
PAGCT INT4 10 Obsolete
PAGNO INT4 10 Creating Lists Current page:
PAUTH NUMC 2 Internal
PDEST CHAR 4 Print parameters Output device
PEXPI NUMC 1 Print parameters Retention period
PFKEY CHAR 20 Screens Current GUI status
PLAYO CHAR 5 Internal
PLAYP CHAR 1 Internal
PLIST CHAR 12 Print parameters Name of spool request
PNWPA CHAR 1 Internal
PRABT CHAR 12 Print parameters 

 

Part of cover sheet
PRBIG CHAR 1 Print parameters Selection cover page
PRCOP NUMC 3 Print parameters Number of copies
PRDSN CHAR 6 Print parameters Name of spool dataset
PREFX CHAR 3 Obsolete
PRI40 CHAR 1 Internal
PRIMM CHAR 1 Print parameters Print immediately
PRINI NUMC 1 Internal
PRLOG CHAR 1 Internal
PRNEW CHAR 1 Print parameters New spool request
PRREC CHAR 12 Print parameters Recipient
PRREL CHAR 1 Print parameters Delete after print
PRTXT CHAR 68 Print parameters Text for cover sheet
REPI2 CHAR 40 Internal
REPID CHAR 40 ABAP Program Current main program
RSTRT CHAR 1 Internal
RTITL CHAR 70 Print parameters Title of printing program
SAPRL CHAR 4 R/3 System Release status R/3 System
SCOLS INT4 10 Screens Number of columns
SFNAM CHAR 30 Obsolete
SFOFF INT4 10 Internal
SLSET CHAR 14 Selection screens Name of variant
SPONO NUMC 10 Printing Lists Spool number
SPONR NUMC 10 Obsolete
SROWS INT4 10 Screens Number of rows
STACO INT4 10 List processing First displayed column
STARO INT4 10 List processing Uppermost displayed row
STEPL INT4 10 Screens Index of current table row
SUBCS CHAR 1 Internal
SUBRC INT4 10 Return value Return value after ABAP statement
SUBTY RAW 1 Internal
SYSID CHAR 8 R/3 System Name of R/3 System
TABID CHAR 8 Internal
TABIX INT4 10 Internal Tables Current row index
TCODE CHAR 20 ABAP Program Current transaction code
TFDSN CHAR 8 Obsolete
TFILL INT4 10 Internal Tables Current number of rows
TIMLO TIMS 6 Date and time Local time of user
TITLE CHAR 70 Screens Text in header line
TLENG INT4 10 Internal Tables Row size
TLOPC INT4 10 Internal
TMAXL INT4 10 Obsolete
TNAME CHAR 30 Obsolete
TOCCU INT4 10 Obsolete
TPAGI INT4 10 Obsolete
TSTIS INT4 10 Internal
TTABC INT4 10 Obsolete
TTABI INT4 10 Obsolete
TVAR0 CHAR 20 Creating Lists Text variable for headers
TVAR1 CHAR 20 Creating Lists Text variable for headers
TVAR2 CHAR 20 Creating Lists Text variable for headers
TVAR3 CHAR 20 Creating Lists Text variable for headers
TVAR4 CHAR 20 Creating Lists Text variable for headers
TVAR5 CHAR 20 Creating Lists Text variable for headers
TVAR6 CHAR 20 Creating Lists Text variable for headers
TVAR7 CHAR 20 Creating Lists Text variable for headers
TVAR8 CHAR 20 Creating Lists Text variable for headers
TVAR9 CHAR 20 Creating Lists Text variable for headers
TZONE INT4 10 Date and time Time difference to Greenwich Mean Time
UCOMM CHAR 70 Screens Function code that triggered PAI
ULINE CHAR 255 Constants Horizontal line with length 255
UNAME CHAR 12 R/3 System Logon name of user
UZEIT TIMS 6 Date and time Current (application server) time
VLINE CHAR 1 Constants Vertical line
WAERS CUKY 5 Obsolete
WILLI INT4 10 Obsolete
WINCO INT4 10 Obsolete
WINDI INT4 10 Obsolete
WINRO INT4 10 Obsolete
WINSL CHAR 79 Obsolete
WINX1 INT4 10 Obsolete
WINX2 INT4 10 Obsolete
WINY1 INT4 10 Obsolete
WINY2 INT4 10 Obsolete
WTITL CHAR 1 Creating Lists Flag for standard page header
XCODE CHAR 70 Internal
XFORM CHAR 30 Internal
XPROG CHAR 40 Internal
ZONLO CHAR 6 Date and time Time zone of user

 

Thematic Overview

The following is a thematic summary of the system fields with notes on their use:

Read more »

16
Jun
SAPTricks

Introduction to SOA – Service Oriented Architecture

Definition

Service oriented architectures (SOA) is an architectural pattern which requires all exposed functionality to be published as services in a platform-independent manner. These services can be consumed by other applications.

To successfully utilize SOA on an enterprise level, you need to consider:

  • All interfaces need to be clearly defined and stable and to make use of global data types they should avoid superfluous transformations caused by technically different definitions of semantically identical information.

To establish additional reliability, all services must follow clearly defined communication and behavioral patterns.  For example – Clients need to know whether services are synchronous or asynchronous, whether they return an answer, how they handle exceptions, which security policy they use etc.

The overview

  • A service in SOA is best explained as “Structure, Typing (as in Object Orientated and system design) and behaviour”.
  • Best understood as “Message Based Integration”.
  • A “Service Object” gives access to a business object and business functionality.
  • A “Service Object” uses a “Service Interface”.
  • A “Service” has a related signature and message types, which control the structure of the operation.

General categorization of Services

  • A service  can do a Query operation
  • A service  can do an Action operation
  • A service  can do a CRUD (Create Retrieve Update Delete) operation

The Service can be Synchronous or Asynchronous.

Basic Summary

Essentially SAP SOA can be seen as a set of standardizations of interfaces. For example one could move from having 3 different mapping rules and possible interfaces for a single business process, for example a price and availability check, to a single standardized SOA service.

12
Jun
SAP Tricks

Is it possible to extend materials en masse

How do I extend a materials views easily for example for a range of materials? (Not a mass change)

There is a transaction code that not many people know about – MM50. This may be used to extend a material of range of materials views. On a decentralised WMS system and some SAP versions it may be executed on background. Program (SAPMMGMP).

5
Jun
sapww

SAPWW – SAP WorldWide iPhone App now 99c

Hi Guys,

The SAP iPhone Application called “SAPWW SAP WorldWide” is on sale in the iTunes App Store for $0.99 USD.

All the best,

Glynn

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.

23
May
SAP Tricks

EDI – IDoc Segment Qualifiers Actions Sundry tips

Have you ever looked for documentation on an IDoc type, listing all segments, all fields including descriptions in the segment and all actions/qualifiers or possible selection values for a field?

You can get all this information by generating a report on a specific IDoc type by using the following function module in Se37:  IDOCTYPE_READ_COMPLETE

Put the IDoc basic type for example “ORDERS05” in the field “PI_IDOCTYP” then select the Test Icon.

Alternatively Should you wish to see all qualifiers for a specific segment you can use the Function module “SEGMENT_READ_COMPLETE”.

Enter the segment, for example “E1EDK02” in the field “PI_SEGTYP” and select the Test Icon. In this example segment you will find there are 92 possible qualifiers.

Unrelated Sundry EDI OSS notes

A great OSS note regarding EDI with 27 questions and answers is “SAP Note 456127 – FAQ: Electronic Data Interchange (EDI)in purchasing” .

Another OSS note which gives the settings to use in WE20 when you use the Message Control tab –  ”SAP Note 389713 – VE 561: Partner nnn is not an EDI partner”.

17
May
SAP Tricks

System Performance Analysis Transaction Codes

Here are some transaction codes I find useful when checking for performance related issues in a system:

Depending on the issue, I start with ST05 with all trace options (SQL, Enqueue, RFC, Buffer) active with a very small time frame where data is captured so as not to have more than +-2000 records.

I then compare the results with an identical capture of the same process and time frame using standard SAP.

With both recordings I activate the extended results, which gives times for each execution. Permitting one to easily see the time differences between the executions. These results should point you in the right direction.

Here are the transaction codes I find useful in this analysis:

  • SM21 – System Log
  • ST03N - R3 Workload statistics
  • ST03G - Global System Workload Analysis
  • STAD - Statistical Records
  • STATTRACE - Functional Trace
  • ST05 - Performance Trace (SQL, Enqueue, RFC, Buffer)
  • SLIN - ABAP Program Syntax Check
  • SE30 - ABAP Runtime Analysis
12
May
SAP Tricks

Send a SAP message via a dialog box in the GUI

This one has been a personal trick of mine for a few years. Use it with caution and hopefully all you system administrators have restricted this functionality (Function Module testing) to responsible users.

There are a number of requirements where you may wish to send a message to a specific user or all users in a system. Yes there are alternative solutions in doing this, but here is a simple and powerful method.

You can send a message which will be pushed to the user on the users desktop via a dialog box through the SAP GUI.  To do this  simply use SE37 and the Function Module “TH_POPUP”.

Beware what values you use in the import parameters.

If you do not use a user ID, the system will send the message to everyone in the system.

If you use a user ID the system will send the message to that user only.  The user must be logged into the system to receive the message.

An example of settings you can use:

  • CLIENT                          211   (Your client)
  • USER                            S1010631     (Your user ID)
  • MESSAGE                         PLEASE RELEASE SALES DOC 1234567 URGENTLY    (Any Message)
  • MESSAGE_LEN                     0
  • CUT_BLANKS