How to Search for Customizing Objects in Transport Requests

Search for Customizing Objects in Transport RequestsOur series of posts about SAP interview questions is continued with this article that discusses a question related to transport requests in SAP. Transport requests (TR) is an important mechanism of SAP that allows moving customizing and programs between different clients created in an SAP installation. One of the possible interview questions related to transport requests is ‘how to search for customizing objects in transport requests?’ This question is also very practical and, if you work as an SAP consultant, the information shared here could be very useful for you.

Why Do You Want to Search for Customizing Objects in Transport Requests?

It is a common situation in the life of an SAP specialist when she or he needs to find the transport requests containing certain customizing objects.  For example, it could be necessary for determining when a specific modification in customizing was transported to a particular SAP client and who was responsible for this transport.

Search for Customizing Objects in Transport Requests with Transaction SE03

The first and the most easy option is to use the standard transaction SE03 that enables you to search for customizing objects in transport requests or tasks. You need to select Search for Objects in Requests/Tasks and enter the input information about the objects that need to be included in the search. The most important thing here is to enter the correct search criteria because otherwise you will not be able to find the transport requests containing the customizing objects that you are looking for.

SE03 Transport Organizer Tools
Transaction SE03: Transport Organizer Tools

SAP has included some standard objects types like programs and function groups into the selection criteria but, unfortunately, no types corresponding to customizing objects are included by default. Therefore, you will need to enter them yourself. In most of the cases, you need one of these types:

R3TR TABU or R3TR VDAT

You need to use TABU when customizing is done directly via table and VDAT when customizing is performed via view maintenance. Besides, you can use other selection fields such as date or status of transport requests for additional filtering.

Now, let us see how to find ID of the customizing setting that we are interested in. For example, let us assume that we want to search for all transport requests that contain customizing related to product hierarchies. Product hierarchies (PH) are specified in material master records and creation of new levels in PH requires customizing. SE03 requires us to specify the object name to search for and this name can be found by pressing F1 button in the transaction for maintaining PH and going to the Technical Information tab. There you will see that the object name for PH is V_T179. As you can see from the name of the object, it is not a table but a view. So, we should enter it in SE03 next to the field containing VDAT. Next, we can execute the report and SE03 will output the list of transport requests containing this customizing object (product hierarchy).

Window After Pressing F1 in a Product Hierarchy
Pop-up Window after Pressing F1 Button in a Product Hierarchy

 

Technical Information for Product Hierarchy
Technical Information for Product Hierarchy
Transaction SE03: Transport Organizer Tools Input Screen
Transaction SE03: Transport Organizer Tools Input Screen

The main problem with this approach is that you cannot search for specific changes containing in these transport requests. For example, if you need to find the transport request with the product hierarchy level called ‘AABB1234’ you will have to through the list of transport requests displayed by SE03 and open each of the transport requests for checking whether it contains the level ‘AABB1234’ or not. Luckily, there is a different method that enables us to search for specific customizing inside transport requests. This method requires browsing tables in SE16N (or SE16) and we discuss it in the next section.

Search for Customizing Objects in Transport Requests with Transaction SE16N

Another approach towards searching for specific customizing inside transport requests browsing the table E071K that contains key entries of transport requests and transport tasks. At the input screen of the transaction SE16N it is necessary to specify the following data:

  • Program ID: R3TR
  • Object Type: VDAT
  • Object Name: V_T179
  • Object Name: Enter the string that you want to search for in this field

Fields descriptions are slightly misleading here and there two fields called Object Name. See the picture below and do not confuse them. In the last field Object Name it is necessary to enter the string that you are looking for. In our example, let us search for transport requests related to product hierarchies that contained level with the name *AABB*. Next, it is necessary to execute the transaction and it will display all transport requests that contain customizing objects with the type of product hierarchies and value of *AABB*.

Table E071K: Search for Customizing Objects in Transport Requests
Table E071K: Search for Customizing Objects in Transport Requests

This approach is very convenient in the situations when you need to look for a specific transport request that contained specific customizing. For example, you may need to use this method when it is necessary to trace down how and when a particular customizing was transported to an SAP system.

Conclusion

In this post, we have discussed another SAP interview question related to searching transport requests according to types and contents of customizing objects. We hope that the information shared here will be useful for you in your future SAP interviews or in your professional activities. Let us know if something is not clear in our explanation and we will try to improve it.

SAP Debugger: Changing Variable Values

SAP DebuggerWith this post we are going to continue our series of SAP interview questions that you may encounter when interviewing for a new SAP job. The question that is going to be discussed today is related to using SAP debugger for analyzing custom developments (so called Z* programs and functional modules) and finding errors. Although it sounds like this question should be expected at the interviews for SAP ABAP developers, you will probably not encounter it there because this question is too easy for any ABAPer. On the other hand, you may expect this question on the interview for functional SAP consultants and its primary purpose is to test whether they have basic skills of using SAP debugger. Many people have an opinion that functional SAP consultants should have minimal understanding of ABAP and this point of view seems to be valid based on our experience of the real life SAP projects assignments.

The question that we are going to cover today is: How to change values of variables when debugging an ABAP program in SAP debugger?

SAP debugger is a powerful instrument for analyzing the programs while they run. It enables developers to see what is going on inside the programs and find problems that are present in the code. One of the features of SAP debugger is the ability to change values of the variables “on the fly”. This feature is commonly used by functional SAP consultants when they have a hypothesis that changing the value of a particular variable will solve the problem that they are troubleshooting. Without this feature it would be necessary to modify the code to the program to test their hypothesis. Modification of the code is rather time and resource consuming process that also requires participation of an ABAP developer. On the other hand, changing values of the variables online in the debugger offers a fast and convenient alternative to the modification.

There are different types of variables that can be changed in SAP Debugger and we will discuss them in separate sections.

SAP Debugger: Changing Variable Values (Simple)

We start with the easiest type of variables: simple. The SAP debugger screen is shown on the screenshot below. The variable that we are going to modify is: HEADER_DATA-DELIV_NUMB. It is a simple variable and it contains a number of a delivery document in SAP. Currently it has the value ‘123456789’. Let us change it to ‘003456789’. For achieving this goal, it is necessary to double-click on the pencil icon located in the column after the value of the variable. The value field will become white and you will be able to modify the value of the variable in SAP debugger. The pencil icon will be replaced with the glasses icon. When you complete the editing of the value, it is necessary to press Enter button for exiting from the edit mode and saving the changes.

SAP Debugger: Changing Variable Values (Structure)
SAP Debugger: Find the simple variable which value you would like to modify

SAP Debugger: Change Simple Variable [Double-Click]
SAP Debugger: Double-click the pencil icon and the debugger will make the field editable
SAP Debugger: Change Simple Variable [Confirm]
SAP Debugger: Confirm the change by pushing Enter button

SAP Debugger: Changing Variable Values (Structure)

Next, let us see how to change the value of a structure variable. The key difference with the simple variables is that it is not possible to change the value of the structure on the same screen as shown above. There is simply no pencil icon next to the structure variable. For editing the structure variable, it is necessary to first drill down (navigate) to its components. You can do it by double-clicking the name of the variable. The system will take you to another tab with detailed overview of the structure you clicked on (see screenshot below). In this overview, you will find the pencil icons next to each component of this structure variable. These components can be edited in the same way as simple variables in the previous section.

SAP Debugger: Change Structure Variable [Find]
SAP Debugger: Find the structure variable which value you would like to modify
SAP Debugger: Change Structure Variable [Edit]
SAP Debugger: Modify the required field of the structure by clicking the pencil icon

SAP Debugger: Changing Variable Values (Table)

Finally, we are going to see how to change the value of a table in SAP debugger. It is the most complex case because tables may have multiple rows and multiple columns. Similarly to structures, you will not find the pencil icon next to variables of type table. It is necessary to double-click the name of the table for navigating to the detailed overview of the table. From the overview, it is possible to edit any field in the table but the process is a little bit tricky because there are no pencil icons anywhere.

SAP Debugger: Change Table Variable [Find]
SAP Debugger: Find the table variable which value you would like to modify
SAP Debugger: Change Table Variable [Detailed Overview]
SAP Debugger: Navigate to the detailed overview of the table
For editing the existing content of the table, it is necessary to:

  1. Select the row in which the cell you wish to edit is located.
  2. Click Services of the Tool icon on the right side of the window. A new popup window called Table Services will appear.
  3. In the Table Services window it is necessary to select Change Row Content command.
  4. All cells in the selected row will become available for editing. Perform your modification and save the changed by hitting Enter button.

For adding new rows in the table it is necessary to:

  1. Click Services of the Tool icon on the right side of the window. A new popup window called Table Services will appear.
  2. In the Table Services window it is necessary to select Insert Row (Index) command.
  3. If there are existing rows in the table, the SAP system will offer you to use one of the existing rows as template. It is up to you whether to accept this offer.
  4. A new row will be added to the table and should be saved by pressing Enter button.

For removing a row from the table it is necessary to:

  1. Select the row that you would like to delete.
  2. Click Services of the Tool icon on the right side of the window. A new popup window called Table Services will appear.
  3. In the Table Services window it is necessary to select Delete Rows command.

SAP Debugger: Change Table Variable [Table Services]
SAP Debugger: Table Services window
SAP Debugger: Change Table Variable [Modifying Table Content]
SAP Debugger: Modifying the content of the row

Final Remarks

It is possible that you may not be able to edit values of the variables in SAP debugger. The most likely and often reason of this problem is that you do not have authorization for editing the variables. You should contact your SAP security consultant and ask for assigning the required permissions.

In this post, we explained how to change variables’ values in SAP debugger. Our hope is that after reading this article you will easily answer any SAP interview questions related to using SAP debugger for modifying variables.

 

Rebate Agreements in SAP

SAP Rebate AgreementsWith this post we continue our series of articles discussing potential SAP Interview Questions. Today, we are going to discuss the interview question related to rebate agreements in SAP. This piece of SAP functionality is related to Sales and Distribution (SD), Billing (BIL). Therefore, this post is likely to be of high interest for SAP SD consultants.

Rebate Agreements: Basic Information

Rebate agreements are created to offer special discounts for customers. The key feature of this type of discounts is that it is paid retroactively. The amount of discount offered through rebate agreements is determined based on the customer’s sales volume over a specific period of time. Rebate agreements in SAP are created in the transaction VBO1. They define the customer who receives the discount, criteria on which the rebate is based, and validity of the rebate.

SAP Rebate Agreement: Create
Create new rebate agreements in transaction VB01

Several condition records for each material or a group of materials that a customer buys are created inside the rebate agreement. Each record can specify the rebate amount either as percentage or fixed value. Moreover, condition records can use pricing scales so that the customer can earn more discount by buying more products. Rebate agreements are specified in the header of billing documents (in the Price data area) and enable SAP to keep track of the sales volume corresponding to a particular customer. Depending on the SAP configuration, it is possible to automatically post accruals together with billing documents, so that the accumulated rebate amount is recorded in the accounting. For paying out the rebate to the customer, it is necessary to settle the rebate agreement. The settlement of the rebate agreement leads to issuance of a credit memo to the customer for the accumulated rebate amount.

Rebate Agreements: Prerequisites

Before using rebate agreements, it is necessary to prepare an SAP system with several customizing settings. Here are these prerequisites:

  • The Sales Organization needs to be marked as relevant for rebate processing. Rebate agreements can be created only in such sales organizations.
  • The Payer needs to be marked as relevant for rebate processing. You can do it in the master date of the Payer.
  • The Billing Type that is used for rebate processing needs to be marked as relevant. Only the sales volume from the documents with these billing types will be considered by the system when calculating rebates.

Rebate Agreements: Settlement

When the validity period of a rebate agreement is over, it needs to be settled and the accumulated discount should be credited to the customer’s account. However, it is also possible to perform partial partial settlement of the rebate agreement during its validity period. Settlement of rebate agreements is performed in the transaction VB(7.

SAP Rebate Agreement: Settlement
Settlement of rebate agreements in SAP is performed in transaction VB(7.

When the final settlement of a rebate agreement is carried out, the SAP system will automatically calculate the rebate based on the sales volume statistics and the lump sum discounts (if applicable). It will also deduct any rebates that have been previously paid out to this customer. Next, the system will create a credit memo request that can be released by the users and used for generation of the final credit memo. The final settlement of rebate agreements can be performed manually, automatically or with a batch job (in background).

When the partial settlement of a rebate agreement is carried out, it takes into account all partial payments. The amount of payments can be limited in customizing to the cumulative accruals of the condition record, to the amount that would be paid if final settlement were presently carried out, or be unlimited.

Final Remarks

Rebate agreement is an important concept in billing. It is widely used by different companies in various industries. SAP consultants that are looking for SAP SD jobs should be familiar with the process of managing rebate agreements in SAP. SAP offers convenient functionality for creating, accounting for, and settling rebate agreements.

Further Reading

For additional information on rebate processing in SAP we recommend you to read the help documents at SAP Help Portal.