Skip to content

Posts from the ‘SAP Functional’ Category

23
Apr
SAP Tricks

How to unprotect a variant

Quite often, program variants are protected to avoid any unauthorised users from changing them.

For example, if this variant is for a program which is part of a batch plan, you don’t want to this variant to be modified as it will disturb your automatic processes. So you protect your variants. But a protected variant can only been changed by the user who has protected this variant.

The issue could arise when the original user has left the company or the variant is required to be changed for an urgent issue?

The solution – Go to transaction SE38, execute program RSVARENT, “Cancel Variant Protection” enter the program and the variant you want to unprotect and execute. The program variant is now available for any changes.

Submitted by Robin Ferali – Thank you for contributing to the webs largest database of SAP tricks!

21
Mar
SAP Tricks

Search Transports by IMG

So picture the scenario: You see an article which is configured has been changed in the IMG, but you do not know which transport was responsible. You could search with SE10 via table names , but did you know there is an easier method?

If you are trying to locate a transport/s of a specific IMG activity or object it is very easy to do, without even using the table names, simply use transaction SE 10 with the following steps:

1) Select Transport and organizer tools (Shift +F6).

2) Select “Search for Objects in Requests/Tasks”.

3) Select 1/2 down the page for “IMG Activity” then select F4.

4) Now select the place in the IMG, the lowest drill down level possible, for which you wish to search for transports, which include those changed objects.

5) Then select the date range and Status “modifiable” or “Released” and execute.

16
Mar
SAP Tricks

Customer Master FI SD Integration

Picture the scenario: Due to Sarbanes-Oxly or some other reason the FI part of the customer master is created by the Finance team. After which the SD part of the customer master is created by the Sales team. It is possible that the two teams have failed to communicate to eath other and customer master records can be sitting in your system as incomplete.

To report on these you can use the transaction OV50. This will show you the sales area created customer master records for which there are missing company code views, or visa versa. (A great little utility.)

13
Mar
SAP Tricks

Place your image in the right-hand side of the initial screen

You can place your image/company logo in the right-hand side of the initial screen, simply proceed as follows:

Transcation SMW0 – Create and import the picture/logo in the database with the transaction SMW0 and radio button “Binary Data For WebRFC applilcations” e.g. in “.GIF” format.

Transaction SM30 – with table SSM_CUST – Enter a record with the picture name in the key “START_IMAGE“.

If you wish to resize the image – Transaction SM30 – with table SSM_CUST – You can use values of ”YES” or “NO” with parameter key “RESIZE_IMAGE“.

If you wish to hide user specific picture display settings – Transaction SM30 – with table SSM_CUST – You can use values of ”YES” or “NO” with parameter key “HIDE_START_IMAGE“.

- I have heard that an HTML page may also be included, however have not tested it – If anyone has used an HTML page with hyperlinks please tell us as this would be great functionality to use.

5
Mar
SAP Tricks

BW BI Tables

Transfer Structure

RSTS Transfer Structure List

RSTSFIELD Transfer Structure fields

RSTSRULES Transfer Structure rules

RSAROUTT Text name of Transfer Routine

DD03T Text for R/3 Transfer structure Objects

Update Rules

RSUPDROUT Update rules List

RSUPDDAT Update rules with routines

RSUPDKEY Update rule key fields

RSUPDINFO InfoProvider to Infosource correlation

Embedded ABAP coding for Transfer / Update Rules

RSAABAP ABAP source code per object routine

InfoPackage

RSLDPIO Links datasource to infopackages

RSLDPIOT InfoPackage Text Description

RSLDPRULE ABAP source code for InfoPackages

RSLDPSEL Hardcoded selections in InfoPackages

RSMONICDP Contains the request-id number by data target

RSPAKPOS List of InfoPackage Groups / InfoPackages

ProcessChain

RSEVENTCHAIN Event Chain Processing Event Table

RSEVENTHEAD Header for the event chain

RSEVENTHEADT Header for the event chain

RSPCCHAIN Process chain details

RSPCCHAINATTR Attributes for a Process Chain

RSPCCHAINEVENTS Multiple Events with Process Chains

RSPCCHAINT Texts for Chain

RSPCCOMMANDLOG System Command Execution Logs (Process Chains)

RSPCLOGCHAIN Cross-Table Log ID / Chain ID

RSPCLOGS Application Logs for the Process Chains

RSPCPROCESSLOG Logs for the Chain Runs

RSPCRUNVARIABLES Variables for Process Chains for Runtime

RSPC_MONITOR Monitor individual process chains

Queries

RSZELTDIR Directory of the reporting component elements

RSZELTTXT Texts of reporting component elements

RSZELTXREF Directory of query element references

RSRREPDIR Directory of all reports (Query GENUNIID)

RSZCOMPDIR Directory of reporting components

RSZRANGE Selection specification for an element

RSZSELECT Selection properties of an element

RSZELTDIR Directory of the reporting component elements

RSZCOMPIC Assignment reuseable component <-> InfoCube

RSZELTPRIO Priorities with element collisions

RSZELTPROP Element properties (settings)

RSZELTATTR Attribute selection per dimension element

RSZCALC Definition of a formula element

RSZCEL Query Designer: Directory of Cells

RSZGLOBV Global Variables in Reporting

Workbooks

RSRWBINDEX List of binary large objects (Excel workbooks)

RSRWBINDEXT Titles of binary objects (Excel workbooks)

RSRWBSTORE Storage for binary large objects (Excel workbooks)

RSRWBTEMPLATE Assignment of Excel workbooks as personal templates

RSRWORKBOOK Where-used list for reports in workbooks

Web templates

RSZWOBJ Storage of the Web Objects

RSZWOBJTXT Texts for Templates/Items/Views

RSZWOBJXREF Structure of the BW Objects in a Template

RSZWTEMPLATE Header Table for BW HTML Templates

InfoObject

RSDIOBJ Directory of all InfoObjects

RSDIOBJT Texts of InfoObjects

RSDIOBJ Directory of all InfoObjects

RSDIOBJT Texts of InfoObjects

RSDATRNAV Navigation Attributes

RSDATRNAVT Navigation Attributes

RSDBCHATR Master Data Attributes

RSDCHABAS Basic Characteristics (for Characteristics,Time Characteristics, and Units)

RSDCHA Characteristics Catalog

RSDDPA Data Package Characteristic

RSDIOBJCMP Dependencies of InfoObjects

RSKYF Key Figures

RSDTIM Time Characteristics

RSDUNI Units

InfoCube

RSDCUBE Directory of InfoCubes

RSDCUBET Texts on InfoCubes

RSDCUBEIOBJ Objects per InfoCube (where-used list)

RSDDIME Directory of Dimensions

RSDDIMET Texts on Dimensions

RSDDIMEIOBJ InfoObjects for each Dimension (Where-Used List)

RSDCUBEMULTI InfoCubes involved in a MultiCube

RSDICMULTIIOBJ MultiProvider: Selection/Identification of InfoObjects

RSDICHAPRO Characteristic Properties Specific to an InfoCube

RSDIKYFPRO Flag Properties Specific to an InfoCube

RSDICVALIOBJ InfoObjects of the Stock Validity Table for the InfoCube

Aggregates

RSDDAGGRDIR Directory of Aggregates

RSDDAGGRCOMP Description of Aggregates

RSDDAGGRT Text on Aggregates

RSDDAGGLT Directory of the aggregates, texts

ODS Object

RSDODSO Directory of all ODS Objects

RSDODSOT Texts of all ODS Objects

RSDODSOIOBJ InfoObjects of ODS Objects

RSDODSOATRNAV Navigation Attributes for ODS Object

RSDODSOTABL Directory of all ODS Object Tables

PSA

RSTSODS Directory of all PSA Tables

DataSource (= OLTP Source)

ROOSOURCE Header Table for SAP BW DataSources (SAP Source System/BW System)

RODELTAM BW Delta Procedure (SAP Source System)

RSOLTPSOURCE Replication Table for DataSources in BW

InfoSource

RSIS Directory of InfoSources with Flexible Update

RSIST Texts on InfoSources with Flexible Update

RSISFIELD InfoObjects of an InfoSource

Communications Structure

RSKS Communications Structure for InfoSources with Flexible Update

RSKS Communications Structure (View) for Attributes for an InfoSource with

Direct Update

RSKSFIELD Texts on InfoSources with Flexible Update

RSISFIELD InfoObjects of an InfoSource with Flexible Update

Transfer Structure

RSTS Transfer Structure in SAP BW

ROOSGEN Generated Objects for a DataSource (Transfer Structure, for example in SAP

Source System)

Mapping

RSISOSMAP Mapping Between InfoSources and DataSources (=OLTP Sources)

RSOSFIELDMAP Mapping Between DataSource Fields and InfoObjects

InfoSpoke

RSBSPOKESELSET InfoSpoke Directory and Selection Options

RSBSPOKEVSELSET InfoSpoke Directory with Selection Options and Versioning

SAP BW Statistics

RSDDSTAT Basic Table for InfoCubes/Queries

RSDDSTATAGGR Detail Table for Aggregate Setup

RSDDSTATAGGRDEF Detail Table of Navigation for each InfoCube/Query

RSDDSTATCOND InfoCube Compression

RSDDSTATDELE InfoCube Deletions

RSDDSTATWHM Warehouse Management

Misc

RSSELDONE InfoPackage selection and job program

RSPSADEL PSA Table deletion

TBTCP Job Schedule Definition

TBTCO Job Schedule Result

RSMONMESS Monitor Messages

RSERRORLOG Check loading errors in table

V_RSZGLOBV Report Variables view table

DEVACCESS Developer Keys table

TSTC All Transactions in the system

RSDDAGGRDIR Directory of the aggregates

ROIDOCPRMS Control parameters for data transfer from the source system

SMEN_BUFFC Objects in User’s Favorites

Web Item

RSZWITEM Header Table for BW Web Items

RSZWMDITEM BW Web Metadata: Template Item ( Dataprovider, Item, … ).

Archiving

RSARCHIPRO BW Archiving: General Archiving Properties

RSARCHIPROIOBJ BW Archiving: General Archiving Properties

RSARCHIPROLOC BW ARchiving: General Local Properties

RSARCHIPROLOCSEL BW Archiving: Archived Data Area

RSARCHIPROPID BW Archiving: Program References of InfoProvider

RSARCHREQ BW Archiving: Archiving Request

RSARCHREQFILES BW Archiving: Verfified Archive Files

RSARCHREQSEL BW Archiving: Request-Selections

22
Feb
SAP Tricks

Execute a Function Module without using SE37

A number of companies restrict the execution of function modules in quality, pre-prod and prod environments, for good reason. Therefore you may find you do not have access to the transaction code SE37.  Generally experienced developers may however have access to SE38.

So how do you execute or test a function module in a system/client but wish to get around the authorization issue? Simply use SE38 with program RSFUNCTIONBUILDER.

TIP – You can sometimes use the same technique by using SE93 with the problem transaction and using the program name however do not expect to be able to bypass all authorizations.

10
Feb
SAP Tricks

Deactivate SAP menu or All user menus

You may have a requirement to control your user navigation in SAP, either you may wish to create your own area menus, or you may wish to restrict a user specific menu from being created.

You can deactivate the menus for the entire system by creating or changing records in the global settings table SSM_CUST in the view maintenance transaction SM30.

  • To globally deactivate the SAP menu, enter a record “SAP_MENU_OFF” “YES” in upper-case letters.
  • To globally deactivate all user menus enter a record “ALL_USER_MENUS_OFF” “YES” in upper-case letters.

(Note the value “CUSTOMER_MENU_OFF” is obsolete and has no effect.)

For more information refer to OSS Note 380029.

–> Dont forget you can use transaction SSM2 to set which area menu in a system is to be used as the SAP menu.

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.

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.

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.

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

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.

 

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.)

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 »

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).

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

 

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
14
Apr
SAPTricks

Work Faster in the IMG – Restrict Selections

It is possible you may be in a configuration screen which either has too many entries from which you wish to select to analyse, or you may need to select specific entries based upon values  which are not part of the key of the table/configuration screen.

You could navigate to the table and do checks in SE16N or SQVI etc. Or…… the next time you are in a configuration node of the IMG, try the following tip:………

Select the following from the Top Menu Navigation Bar: Selection–>By Contents

Then select the Fields you require to filter the configuration entries.

 

11
Apr
SAP Tricks

External Send – email Output and Transaction SCOT

Question: How does the external sending of email for output messages for example standard Order Confirmation occur with SAPconnect?

Answer: The format of the output must be adjusted to be used by the SMTP email server as used in SAPconnect (transaction SCOT). Here is a quick guideline for email outbound processing only:

1) You have to adjust the profile of the SAP Web Application Server if you want to use the SMTP function. The SAPconnect send job can only be scheduled for servers on which SMTP has been activated. For this reason, you must activate SMTP for all of the SAP system’s application servers. – Use transaction RZ10.

2) You maintain the SAPconnect settings for the SMTP node. For more information on SCOT see standard SAP help:  Here

3) Next the original format of your standard output,for example order confirmation output could be in SCR (Standard SAPscript). In this case the SD messages are transferred to SAPconnect in SCR format (SAPscript) these are then converted to OTF format and may be converted to PDF format in accordance with the conversion rules in the IMG.

The configuration for the system is done in “SAP Customizing Implementation Guide–> SAPNetWeaver –>SAP Web Application Server -> Basis Services -> Communication Interfaces -> SAPconnect Client-Wide Settings -> General Settings -> Conversion Rules”.

4) Lastly the emails from the SAP spplication are stored in a queue. A background job needs to be created to collect the emails from the queue and process/send them. You can schedul ethe job in SAPconnect with SCOT as follows:

  • From the user menu in SCOT select View–>Jobs
  • Select Create
  • Enter a job name and confirm it.
  • Select the variant SAP&CONNECTALL Sending requests
  • Schedule the job to run periodically for example every 10 mins.

For more information, refer to the online documentation for SAPconnect (component BC-SRV-COM).

24
Mar
SAPTricks

Download Sales Orders according to SH Party

Recently Asked: How do you download sales orders in SAP by ship to party address?

Its easier than you think:

You can easily do this in VA05.

When in VA05 change the Search parameter from Sold to Party to Ship To Party by selecting the “Partner Function” button Ctrl+F10. Then use the other selection parameters as required.

The resultant lists can be downloaded/exported from the ALV grid.

If you dont find SH partner function in in VA05,please add it in the below mentioned menu path

IMG–>SD–>Sales–>Lists–>Set updating of partner index

Add SH to Transaction Group ’0′.

Then you can get a report based on Ship to Party in VA05.

24
Mar
SAPTricks

Price Agreement unwanted condition types

Scenario - You are in a contract and select the “Price Agreement” button. You then select the top right hand button “Other Condition Type” (Ctrl+Shift+F7), the drop down list has condition types that you are unfamiliar with, you may not even have these condition types in your pricing procedure. Some of the usual culprits are:

PPAG MatlGroup Price Item

PPAR Settlement Price Itm

PPSG Hierarchy Price Item

PPSV Service Price Item

So how do you remove these from the drop down list (match code) as there is no clear customizing causing them to appear?

The Answer is all condition types that have an access sequence that has a condition table which refers to a sales document number VBELN or item number POSNR will automatically appear in this list of price agreement conditions. To remove them from your match code simply remove the table from the access sequence.

 

17
Mar
SAP Tricks

2 Click Hard Copy Screen print

Did you know that you can generate an instant Hard Copy printout of any SAP screen by simply selecting:

Customizing of Local Layout (Rainbow Icon top right  of navigation bar) (Alt+F12)

Followed by “Hard Copy”.

This is a simple method of capturing information on your screen, without needing to open applications and configure special settings.