Ads

Wednesday, October 21, 2009

Indexes - Form and Use

Purposed of Indexes - to speed up selection from the database. Consist of a sorted copy of certain database table fields.

The primary index is always created automatically in the SAP System. It consists of the primary key fields of the database table, and there is at most one record in the table matching each possible combination of these fields. This kind of index is called a UNIQUE index.

If you cannot use the primary index to determine a selection result (for example, WHERE condition may not contain any primary index fields), the system searches the whole table. To prevent this, and determine the selection result by searching through a restricted number of database records, you can create a secondary index.

Creating an index

You can create an index in Transaction SE11 by choosing Change → Indexes... → Create. To make the index unique, select UNIQUE. To specify the fields that will comprise the index, choose "Choose fields". You then need to save and activate the index.

Better Aproach - Coding in Abap (Coding Format)

1.One Command Per line
-Each ABAP/4 command line consists of a sentence ending with a period. Each command
should start on a new line (Even though ABAP allows several commands per line). This will
provide the option for easier deleting, commenting and debugging.

Recommended:

IF F_STATUS EQ K_ERROR.

EXIT.

ENDIF.

Not Recommended:

IF F_STATUS EQ K_ERROR. EXIT. ENDIF.



2.Program Comments

Comments should be used to describe the program statements. Half line comments should be used to provide description of data declaration and parameters. Complex or unusual program logic should be documented with full line of comments prior to the statement and leaving one blank line before the comments.

Example : Standard Abap Report

REKH0004 - SAP demo program that shows how to do 2D, 3D, and 4D graphics.
RPDTRA00 - List all HR transactions.
RSABAPIV - Mass print/display of ABAP/4 help text.
RSSDOCTB - R/3 Table Manual - prints a list of all fields in the selected tables with the field name and the field documentation.

RSTXSCRP - Upload and download SAPScript layout sets.

SQL Interface

SQL Interface.

Select Where VS Select + Check
Always specify your conditions in the Where-clause instead of checking them yourself with
check statements. The database system can then use an index (if possible) and the network
load is considerably less.

Select with Index Support
For all frequently used Select statements, try to use an index. You always use an index if
you specify (a generic part of) the index fields concatenated with logical Ands in the Select statement's Where clause. Note that complex Where clauses are poison for the
statement optimizer in any database system.


Select single vs. Select-Endselect

if there exists at least one row of a database table or view with a certain condition, use
the Select Single statement instead of a Select-Endselect-loop. Select Single requires one
communication with the database system, whereas Select-Endselect needs two.

Select Into table t
It is always faster to use the Into Table version of a Select statement than to use Append
statements.

Select aggregates
If you want to find the maximum, minimum, sum and average value or the count of a database
column, use a select list with aggregate functions instead of computing the aggregates
yourself. Network load is considerably less.

Select Endselect VS Aray Select
If you process your data only once, use a Select-Endselect-loop instead of collecting data
in an internal table with Select Into Table. Internal table handling takes up much more
space.


Select with View
To process a join, use a view instead of nested Select statements. Network load is
considerably less.

Select with join
To read data from several logically connected tables use a join instead of nested Select
statements. Network load is considerably less.

Select with select list
Use a select list or a view instead of Select * , if you are only interested in specific
columns of the table. Network load is considerably less.

Select with buffer support
For all frequently used, read-only tables, try to use SAP buffering. Network load is
considerably less.

BASICS OF INTERACTIVE REPORTS

BASICS OF INTERACTIVE REPORTS:

When the user starts an executable (type 1) program, the program context and memory space for data objects (variables and structures) are made available on the application server. The subsequent program flow is controlled by the ABAP runtime system.

If the program contains a selection screen, the ABAP runtime system sends it to the presentation server at the start of the program.

Once the user has finished entering data on the selection screen, he or she chooses 'Execute' to tell the system to start processing the rest of the program. The data entered on the selection screen is automatically placed in the corresponding data objects. The ABAP runtime system takes over control of the program.

In this simple example, there is only one ABAP processing block to be processed by the runtime system.

This processing block contains a read access to the database. The program sends information to the database about the records that should be read.

The database returns the required database records and the runtime system ensures that the data is placed in the relevant data objects.

The list output is also programmed in the processing block. After the processing block finishes, the runtime system sends the list as a screen to the presentation server.

Selection screens allow users to enter ranges of values. They are normally used to define the set of data that needs to be read from the database.

As well as the normal graphical elements (group boxes, checkboxes, radio buttons, and so on) that you use in screens, selection screens also have input/output fields (PARAMETERS) and special groups of input/output fields (SELECT-OPTIONS).

You place a single input/output field on the selection screen using the PARAMETERS statement.

You can use the SELECT-OPTIONS statement to place a group of fields on the screen that allows users to enter complex selections. The selection may be a single value, or any form of interval (discrete or continuous). You can also use patterns. (See following slides).

You can create variants for selection screens.

If you declare an input field with reference to an ABAP Dictionary field, any search helps defined for the Dictionary field will be available on the selection screen.

Selection texts can be translated into other languages. They are then displayed in the user's logon language.

Selection ranges are stored in programs using an internal table.

The ABAP statement SELECT-OPTIONS FOR declares an internal table called , containing four fields - SIGN, OPTION, LOW, and HIGH. The fields LOW and HIGH have the same type as the field .

The SIGN field can take the value 'I' (for inclusive) or 'E' (for exclusive).

The OPTION field can contain relational operators, pattern operators, and operators that allow you to enter intervals.

For more information about selection ranges, choose Goto -> Selection screen help from any selection screen.

To define a selection screen, include the required PARAMETERS and SELECT-OPTIONS statements in your data declarations. If you define more selection screens than just the standard selection screen, you must enclose the additional definitions in the statements SELECTIONSCREEN BEGIN OF SCREEN and SELECTION-SCREEN END OF SCREEN where is the number of the selection screen.

For information about other graphical elements that you can place on a sele ction screen, such as group boxes, checkboxes, radio buttons, references to input fields on other selection screens and so on, see the keyword documentation for the SELECTION-SCREEN statement

The standard selection screen is displayed by the ABAP runtime system when the program starts.

User-defined selection screens are displayed when you use the statement CALL SELECTIONSCREEN . This statement sets the return code sy-subrc to zero if the user chooses 'Execute', and to 4 if the user chooses 'Cancel'.

You can also call a selection screen as a modal dialog box. To do this, use the syntax CALL SELECTION-SCREEN STARTING AT ENDING AT where and are the coordinates of the top left-hand corner of the screen. and are the coordinates of the bottom right-hand corner.

Selection screen processing is event-driven. Events are ABAP processing blocks that are called by the runtime system in a particular order and processed sequentially. In the program, each event is introduced by an event keyword. The processing block ends when the next event block starts, or the definition of a subroutine or dialog module occurs.

AT SELECTION-SCREEN OUTPUT is processed before the selection screen is displayed. You can use this event to modify the selection screen dynamically.

AT SELECTION-SCREEN ON HELP-REQUEST FOR and
AT SELECTION-SCREEN ON VALUE-REQUEST FOR allow you to define your own F1 and F4 help.

AT SELECTION-SCREEN is processed when the user presses ENTER or chooses another function on the selection screen. You can use this event to check the values the user entered on the screen. The addition ON... allows you to control which fields or groups of fields should accept input again in the event of an error.

An ABAP program consists of a sequence of processing blocks (events) that are processed by the runtime system in a particular order.

LOAD-OF-PROGRAM is triggered directly after the system has loaded a program with type 1, M, F, or S into an internal session. The processing block is executed once only for each program in each internal session.

INITIALIZATION is processed in executable (type 1) programs, directly before the selection screen is displayed. You can use the corresponding processing block to preassign values to the parameters and selection options on the selection screen.

START-OF-SELECTION is processed after the selection screen has been processed. If you are working with a logical database, the corresponding GET events are triggered after START-OFSELECTION.

END-OF-SELECTION is processed after all of the data has been read, and before the list is displayed.

TOP-OF-PAGE is an event in list-processing. The processing block is always executed when you start a new page in the list.

Once the basic list has been displayed, you can react to possible user actions. Detail lists allow you to distribute the information you want to display across several lists.

This makes the lists easier for the user to understand, and improves performance, since you can delay reading extra information from the database until the user actually requests it.

You can also use additional selection screens to allow the user to enter further restrictions.

For each basic list you can use up to 20 detail lists. Each list is stored in its own list buffer. When the user chooses 'Back' (green arrow) or 'Cancel' (red cross), he or she returns to the previous list.
This action initializes the list buffer of the list level the user just le ft.

When the user chooses 'Exit' (yellow arrow), the system terminates the list processing and returns to the standard selection screen.

The events START-OF-SELECTION, GET, END-OF-SELECTION, TOP-OF-PAGE and END-OFPAGE can be used only to create basic lists.

To create detail lists, use the events AT LINE-SELECTION or AT USER-COMMAND.

Use TOP-OF-PAGE DURING LINE-SELECTION for page headers on detail lists.

Each detail list event exists only once in the program and is shared by all detail lists. You must therefore ensure yourself, within the processing block, that the correct list is created. To do this, use a CASE structure that uses the system field sy-lsind. This system field contains the list index of the list that you are currently generating.

Use the statement HIDE global_field to store the contents of the global data field
global_field for the current line.

If the user selects the line, the data field is automatically filled with the value that you retained for the line.

You do not have to display the field on the list in order to retain its value using HIDE.

The field can be a structure. However, deep structures (structures containing internal tables as components) are not supported.

When the user selects a line on an interactive list, all of the global data fields whose values you stored using the HIDE statement while you were creating the basic list are filled with those values.

The line selection is based on the cursor position when the AT LINE-SELECTION and AT USERCOMMAND events occur. (system field sy-lilli).

If you choose a line using the READ LINE... statement, the values are placed back in the original fields according to the line numbers.

To check whether the user selected a valid line, you can use the fact that the hide area only contains data for valid lines. When you have finished creating the list, initialize a suitable test field. This allows you to check before you create the detail list whether a value from the hide area has been placed in the test field.

Once you have created the detail list, re-initialize the test field to ensure that the user cannot choose an invalid line once he or she returns from the detail list and attempts to select another line for a new detail list.

Transactions

search_sap_menu - Finds the menu path to a transaction
IDoc Transactions

*

WE09 / WE02 IDoc lists according to content. View IDocs via specific IDoc number or business application detail contained within the contents of a segment.
*

WE05 View IDocs
*

WE19 EDI test tool. Use to test inbound Function module changes.
*

WE20 Partner profile configuration. Add partner detail together with inbound and outbound relationships. We also incorporate message control on the outbound IDocs. Utilize the organizational units to trap functional errors for further processing
*

WE30 Create IDoc extension type
*

WE31 Segment create
*

WE57 Assign function module to logical message and IDoc type
*

WE60 IDoc type documentation tool
*

WE82 Link Release detail to Extension IDoc Type
*

BD55 Conversion rule user exit. Link conversion rule user exit to the different system \ partner combinations
*

BD87 Reprocess IDocs in error or waiting for action. (Both inbound and outbound in 4.6. Use BD88 in prior versions)
*

BALA ALE Application Distribution
*

BALM ALE Master Data Distribution


Sales & Distribution : Sales order / Billing / Sched Agreement / Contract

*

VA02 Sales order change
*

VA05 List of sales orders
*

VA22 Quotation change
*

VA32 Scheduling agreement change
*

VA42 Contract change

Billing

*

VF02 Change billing document
*

VF11 Cancel Billing document
*

VF04 Billing due list
*

FBL5N Display Customer invoices by line
*

FBL1N Display Vendor invoices by line

Delivery

*

VL02N Change delivery document
*

VL04 Delivery due list
*

VKM5 List of deliveries
*

VL06G List of outbound deliveries for goods issue
*

VL06P List of outbound deliveries for picking
*

VL09 Cancel goods issue
*

VT02N Change shipment
*

VT70 Output for shipments

General

*

VKM3, VKM4 List of sales documents
*

VKM1 List of blocked SD documents
*

VD52 Material Determination

General command field formats

You can use this command in SAP screen field:
/n Skip to the next record if you are processing one batch input session
/bend Cancel a batch input foreground process
/nend Close all R/3 sessions and logoff
/nxxxx Call the transaction xxxx in the same session
/o Generate a session list
/oxxxx Call the transaction xxxx in an additional session
/i Delete the current session
/h Turn the debug mode on
/$tab Reset all buffers (for System Administrators)
/$sync Synchronize instances buffers (for System Administrators)

Sap Script

Sometimes user have a requirement to create form. Using normal Abap Code this is not possible. Instead SAP provides an object called SAPSCRIPT to generate such kind of documents which can contain logos, tables and other objects and which can look like pre-printed documents.


A layout set is a template designed in SAP to place the stream of data coming from a SAP program on different parts of a physical page. The designer needs to lay out the various elements that need to be printed on the page and store it as an object in the SAP system. An ABAP program will subsequently call this object to generate an instance of the template – thus generating an output document from the program.

  • Standard Attributes in Sapscript
  1. Description - Brief description or title of the layout set
  2. Default paragraph - The base paragraph that is globally applicable to the document. This can be overridden at lower level of the layout set by using other paragraphs
  3. Tab Stop - The base tab-stop that is globally applicable to the document. These can be overridden at lower level of the layout set by using other tab stops
  4. First Page - The start page of the layout set
  5. Page Format
  6. Orientation - The direction of printing the data on a page – P for portrait (vertical) and L for landscape (horizontal)
  7. Lines per inch
  8. Characters/inch

SAPScript Transaction codes

SE71 - Form painter

SE72 - Style maintenance

SE78 - SapScript Graphics Management

SO10 - Create standard text module

Convert the sapscript from spoollist to pdf

Convert the sapscript from spoollist to pdf.

When opening layout with "OPEN_FORM" function module specify:
DEVICE = 'PRINTER'
and OPTIONS = your_itcpo_variable
with your_itcpo_variable-TDGETOTF = 'X'.

When you close your layout with "close_form" function module suply an array to get OTFDATA.

This will generate your "print order" to an internal array not to spool. This will be in OTF format.

Then call "CONVERT_OTF_2_PDF" function module to get your OTF traslated to PDF. The array obtained can be saved to disk to get a pdf archive.

This works fine at least in 4.5B
You can use the standard program RSTXPDF4.
Hope this should work.

When u use the standard program [b]rstxldmc[/b] , there might be some probs with uploading of the bmp file.
So, a better approach is :
1. Go to T.C : se78(Graphics management).
2. select > Graphics > BMP.
3. Then click on Import on the standrad toolbar.
4. Press f4 and give the path where your BMP file is on the local system.
5. Give some name for your logo,,, Eg : 'MYLOGO' .
6. select the radiobutton for TYPE as Color Bitmap Image.
Continue. Finished.
Click on the print prewiev to view your Uploaded logo into the SAP System.

Report command field formats

%pri : Print the current report

%pc : Download the current report

%sc : Call the find function

p+ : Go to the next page

p- : Go to the previous page

p++ : Go to the last page

p-- : Go to the first page

ABAP/4 functions:

* Popup_to_confirm_loss_of_data
Create a dialog box in which you make a question whether the user wishes to perform a processing step with loss of data.
* Popup_to_confirm_step
Create a dialog box in which you make a question whether the user wishes to perform the step.
* Popup_to_confirm_with_message
Create a dialog box in which you inform the user about a specific decision point during an action.
* Popup_to_confirm_with_value
Create a dialog box in which you make a question whether the user wishes to perform a processing step with a particular object.
* Popup_to_decide
Create a dialog box in which you require the user between the two processing alternatives, or to cancel the action.
* Popup_to_decide_with_message
Create a dialog box in which you inform the user about a specific decision point via a diagnosis text.
* Popup_to_display_text
Create a dialog box in which you display a two-line message.
* Rfc_system_info
Fetch information from the current instance filling the structure FRCSI.
* Rs_send_mail_for_spoollist
Send messages from ABAP/4 programs to SAPoffice. The structure SOLI may contain the message.

What is ABAP?

ABAP - Advanced Business Application Programming

ABAP is a programming language for developing applications for the SAP R3 system, a widely-installed business application subsystem. ABAP is the Fourth generation programming language developed by SAP AG to develop application programs. The latest version, ABAP Objects, is object oriented programming. SAP will run applications written using ABAP/4, the earlier ABAP version, as well as applications using ABAP Objects.

Usefull Transaction Code in Abap

SE38 - Abap Editor.
SA38 - Execute a program.
SE11 - ABAP/4 Dictionary.
SE10 - Customizing Organizer (Transport).
SE71 -
SAPscript layout set
SE71 - SAPscript Layouts Create/Change
SE72 - SAPscript styles
SE73 - SAPscript font maintenance (revised)
SE74 - SAPscript format conversion
SE75 - SAPscript Settings
SE76 - SAPscript Translation Layout Sets
SE77 - SAPscript Translation Styles
SE80 - ABAP/4 Development Workbench
SE80 - Repository Browser: Initial Screen.
SE81 - SAP Application Hierarchy
SE82 - Customer Application Hierarchy
SE84 - ABAP/4 Repository Information System
SE85 - ABAP/4 Dictionary Information System
SE86 - ABAP/4 Repository Information System
SE87 - Data Modeler Information System
SE88 - Development Coordination Info System
SE91 - Maintain Messages
SE92 - Maintain system log messages
SE93 - Maintain Transaction Codes

SAP ABAP Interview FAQ

1. What are the various compoents of SAP XI?

2. Define Integaration Builder.

3. What is Software Component Version.

4. Explain IR and ID.

5. What is data type, message type, Message Interface, etc.

6. What is context handling?

7. Context object (How to create and use one).

8. What are the various steps in the ID for configuration and expain each one.

9. What are pipe line services?

10. Define central adapter engine.

11. What are the various type of Adapter.

12. Idoc adapter and File adapter.

13. What are the adapters that exist in the ABAP stack?

14. Different type of Mapping, their merits?

15. Define Simple and Advance function, how do we create it?

16. Overview of the Run Time Workbench.

17. How you create the Idoc to File or File to Idoc scenerio(Complete Flow).

18. What are the steps to send the Idoc to XI.

19. How can you varify that Idoc is sent to the XI or not.

20. What is Metadata, how can you check the Idoc metadata (t-code IDX2).

21. What are the Various steps for the Java Mapping?

22. What is Value Mapping? How we can use it, where does the table get stored?

23. What is MultiMapping, what interface do we use for it?

24. Define BPM, their basics steps (Like Fork, Block, Loop, etc.)?

25. Sender Agreement is required for Idoc adapter? Why?

SAP ABAP MNC Interview Questions

1. How do you call SAP script in reports & reports in SAP script?
2. What is different between SAP script & reports?
3. What is stack?
4. What is the defination of ALE RFC?
5. Why is BAPI required? How about BDC?
6. What happens if I use control break statement in between select & endselect?
7. What is lock Object
8. SAP Versions
9. SAP Platforms
10. SAP Processes
11. SAP Modules
12. SAP Table Name Standard
13. SAP Vendors
14. SAP Certification
15. What is SQL Trace, how would you carry out performance analysis of ABAP code using SQL Trace? Give the steps?
16. What are the transactions we should use in BDC? How do we use it?
17. How would you use BDC program to transfer material master record using MM01 transaction? Give me steps.
18. Could we use ME21N transaction, and XK01 transaction, either which one of the transaction, or could we use both the transactions for creating purchase information.
19. What is the name of the standard report that gives the deatails of Customer and sales amount?
20. How can we use XD02 transaction to change the customer data for updating KNA1 table? Give the steps.
21. How the transaction ME21N is used for to upload the purchase order in BDC?
22. How many transaction we can used in BDC at a time?
23. How the data get updated in BDC using transaction.
24. Why BAPI need then BDC?
25. What happen if I use controll break statement in between select & endselect?
26. What is lock Object?
27. Select option works like _____________ on Selection Screen?
28. Which sysgtem variable have current value during execution?
29. What is the main point while using controll bareak in internal table?
30. Waht is Field sysmbol?
31. Smartform uses wisely then selection screen, why?
32. Which one is not an exit comand? (Exit, cencle, stop, back)
33. Which component gives you better visibility? (pritty Printer)
34. Explain about roll area, Dispatcher, ABAP-Processor.
35. What is the final entry in BDC Table?
36. How can I get output on same page?
37. Why is Transaction Varient needed?
38. If I have table control, what is the same code in PBO and PAI?
39. Who takes care of passing the data to the application server?

SAP ABAP MNC Mostly asked interview questions

SAP/ABAP interview questions

1. Type of table?
2. Events of module pool?
3. Events of interactive report?
4. Filters & idoc and segments?
5. Types of enhancements?
6. Type of partner profile?
7. What is RFC? What is its purpose?
8. Steps of LSMW?
9. Types of BDC? How u proceed BDC(call transaction) without recording?
10. What is message type in idoc?
11. What is a dialog program?
12. What is debugging? How do you proceed the steps in your reports?
13. What are the parameters passed to fieldcatalog?
14. What are all the tools used for debugging and run time analysis?
15. What is the diffrence between watchpoint and breakpoint?
16 How many watchpoints and breakpoints can be used in each program?
17. Types of watchpoints and breakpoints?
18. How do you transfer file from application server to SAP R/3 system?
19. What is commit and rollback?
20. Using BDC when uploading the data to database, what are all the fields that the table (BDCDATA) will display?

SAP ABAP interview Questions and Answers

SAP ABAP interview questions

1. What is an ABAP data dictionary?- ABAP 4 data dictionary describes the logical structures of the objects used in application development and shows how they are mapped to the underlying relational database in tables/views.

2. What are domains and data element?- Domains:Domain is the central object for describing the technical characteristics of an attribute of an business objects. It describes the value range of the field. Data Element: It is used to describe the semantic definition of the table fields like description the field. Data element describes how a field can be displayed to end-user.

3. What is foreign key relationship?- A relationship which can be defined between tables and must be explicitly defined at field level. Foreign keys are used to ensure the consistency of data. Data entered should be checked against existing data to ensure that there are now contradiction. While defining foreign key relationship cardinality has to be specified. Cardinality mentions how many dependent records or how referenced records are possible.

4. Describe data classes.- Master data: It is the data which is seldomly changed. Transaction data: It is the data which is often changed. Organization data: It is a customizing data which is entered in the system when the system is configured and is then rarely changed. System data:It is the data which R/3 system needs for itself.

5. What are indexes?- Indexes are described as a copy of a database table reduced to specific fields. This data exists in sorted form. This sorting form ease fast access to the field of the tables. In order that other fields are also read, a pointer to the associated record of the actual table are included in the index. Yhe indexes are activated along with the table and are created automatically with it in the database.

6. Difference between transparent tables and pooled tables.- Transparent tables: Transparent tables in the dictionary has a one-to-one relation with the table in database. Its structure corresponds to single database field. Table in the database has the same name as in the dictionary. Transparent table holds application data. Pooled tables. Pooled tables in the dictionary has a many-to-one relation with the table in database. Table in the database has the different name as in the dictionary. Pooled table are stored in table pool at the database level.

7. What is an ABAP/4 Query?- ABAP/4 Query is a powerful tool to generate simple reports without any coding. ABAP/4 Query can generate the following 3 simple reports: Basic List: It is the simple reports. Statistics: Reports with statistical functions like Average, Percentages. Ranked Lists: For analytical reports. - For creating a ABAP/4 Query, programmer has to create user group and a functional group. Functional group can be created using with or without logical database table. Finally, assign user group to functional group. Finally, create a query on the functional group generated.

8. What is BDC programming?- Transferring of large/external/legacy data into SAP system using Batch Input programming. Batch input is a automatic procedure referred to as BDC(Batch Data Communications).The central component of the transfer is a queue file which receives the data vie a batch input programs and groups associated data into “sessions”.

9. What are the functional modules used in sequence in BDC?- These are the 3 functional modules which are used in a sequence to perform a data transfer successfully using BDC programming: BDC_OPEN_GROUP - Parameters like Name of the client, sessions and user name are specified in this functional modules. BDC_INSERT - It is used to insert the data for one transaction into a session. BDC_CLOSE_GROUP - This is used to close the batch input session.

10. What are internal tables?- Internal tables are a standard data type object which exists only during the runtime of the program. They are used to perform table calculations on subsets of database tables and for re-organising the contents of database tables according to users need.

11. What is ITS? What are the merits of ITS?- ITS is a Internet Transaction Server. ITS forms an interface between HTTP server and R/3 system, which converts screen provided data by the R/3 system into HTML documents and vice-versa. Merits of ITS: A complete web transaction can be developed and tested in R/3 system. All transaction components, including those used by the ITS outside the R/3 system at runtime, can be stored in the R/3 system. The advantage of automatic language processing in the R/3 system can be utilized to language-dependent HTML documents at runtime.

12. What is DynPro?- DynPro is a Dynamic Programming which is a combination of screen and the associated flow logic Screen is also called as DynPro.

13. What are screen painter and menu painter?- Screen painter: Screen painter is a tool to design and maintain screen and its elements. It allows user to create GUI screens for the transactions. Attributes, layout, filed attributes and flow logic are the elements of Screen painter. Menu painter: Menu painter is a tool to design the interface components. Status, menu bars, menu lists, F-key settings, functions and titles are the components of Menu painters. Screen painter and menu painter both are the graphical interface of an ABAP/4 applications.

14. What are the components of SAP scripts?- SAP scripts is a word processing tool of SAP which has the following components: Standard text. It is like a standard normal documents. Layout sets. - Layout set consists of the following components: Windows and pages, Paragraph formats, Character formats. Creating forms in the R/3 system. Every layout set consists of Header, paragraph, and character string. ABAP/4 program.

15. What is ALV programming in ABAP? When is this grid used in ABAP?- ALV is Application List viewer. Sap provides a set of ALV (ABAP LIST VIEWER) function modules which can be put into use to embellish the output of a report. This set of ALV functions is used to enhance the readability and functionality of any report output. Cases arise in sap when the output of a report contains columns extending more than 255 characters in length. In such cases, this set of ALV functions can help choose selected columns and arrange the different columns from a report output and also save different variants for report display. This is a very efficient tool for dynamically sorting and arranging the columns from a report output. The report output can contain up to 90 columns in the display with the wide array of display options.

16. What are the events in ABAP/4 language?- Initialization, At selection-screen, Start-of-selection, end-of-selection, top-of-page, end-of-page, At line-selection, At user-command, At PF, Get, At New, At LAST, AT END, AT FIRST.

17. What is CTS and what do you know about it?- The Change and Transport System (CTS) is a tool that helps you to organize development projects in the ABAP Workbench and in Customizing, and then transport the changes between the SAP Systems and clients in your system landscape. This documentation provides you with an overview of how to manage changes with the CTS and essential information on setting up your system and client landscape and deciding on a transport strategy. Read and follow this documentation when planning your development project.

18. What are logical databases? What are the advantages/ dis-advantages of logical databases?- To read data from a database tables we use logical database. A logical database provides read-only access to a group of related tables to an ABAP/4 program. Advantages: i)check functions which check that user input is complete, correct,and plausible. ii)Meaningful data selection. iii)central authorization checks for database accesses. iv)good read access performance while retaining the hierarchical data view determined by the application logic. dis advantages: i)If you donot specify a logical database in the program attributes,the GET events never occur. ii)There is no ENDGET command,so the code block associated with an event ends with the next event statement (such as another GET or an END-OF-SELECTION).

19. What is a batch input session?- BATCH INPUT SESSION is an intermediate step between internal table and database table. Data along with the action is stored in session ie data for screen fields, to which screen it is passed, program name behind it, and how next screen is processed.

20. How to upload data using CATT ?- These are the steps to be followed to Upload data through CATT: Creation of the CATT test case & recording the sample data input. Download of the source file template. Modification of the source file. Upload of the data from the source file.

21. What is Smart Forms?- Smart Forms allows you to create forms using a graphical design tool with robust functionality, color, and more. Additionally, all new forms developed at SAP will be created with the new Smart Form solution.

22. How can I make a differentiation between dependent and independent data?- Client dependent or independent transfer requirements include client specific or cross client objects in the change requests. Workbench objects like SAPscripts are client specific, some entries in customizing are client independent. If you display the object list for one change request, and then for each object the object attributes, you will find the flag client specific. If one object in the task list has this flag on, then that transport will be client dependent.

23. What is the difference between macro and subroutine?- Macros can only be used in the program the are defined in and only after the definition are expanded at compilation / generation. Subroutines (FORM) can be called from both the program the are defined in and other programs . A MACRO is more or less an abbreviation for some lines of code that are used more than once or twice. A FORM is a local subroutine (which can be called external). A FUNCTION is (more or less) a subroutine that is called external. Since debugging a MACRO is not really possible, prevent the use of them (I’ve never used them, but seen them in action). If the subroutine is used only local (called internal) use a FORM. If the subroutine is called external (used by more than one program) use a FUNCTION.

ABAP Technical Interview Questions

ABAP Technical Interview Questions: http://sap-abap-programming.blogspot.com/

1. What is the typical structure of an ABAP program?
2. What are field symbols and field groups.? Have you used "component idx of structure" clause with field groups?
3. What should be the approach for writing a BDC program?
4. What is a batch input session?
5. What is the alternative to batch input session?
6. A situation: An ABAP program creates a batch input session. We need to submit the program and the batch session in background. How to do it?
7. What is the difference between a pool table and a transparent table and how they are stored at the database level?
8. What are the problems in processing batch input sessions? How is batch input process different from processing on line?
9. What do you define in the domain and data element?
10. What are the different types of data dictionary objects?
11. How many types of tables exist and what are they in data dictionary?
12. What is the step-by-step process to create a table in data dictionary?
13. Can a transparent table exist in data dictionary but not in the database physically?
14. What are the domains and data elements?
15. Can you create a table with fields not referring to data elements?
16. What is the advantage of structures? How do you use them in the ABAP programs?
17. What does an extract statement do in the ABAP program?
18. What is a collect statement? How is it different from append?
19. What is open sql vs native sql?
20. What does an EXEC SQL stmt do in ABAP? What is the disadvantage of using it?
21. What is the meaning of ABAP editor integrated with ABAP data dictionary?
22. What are the events in ABAP language?
23. What is an interactive report? What is the obvious diff of such report compared with classical type reports?
24. What is a drill down report?
25. How do you write a function module in SAP? Describe.
26. What are the exceptions in function module?
27. What is a function group?
28. How are the date abd time field values stored in SAP?
29. What are the fields in a BDC_Tab Table?
30. Name a few data dictionary objects?
31. What happens when a table is activated in DD?
32. What is a check table and what is a value table?
33. What are match codes? Describe?
34. What transactions do you use for data analysis?
35. What is table maintenance generator?
36. What are ranges? What are number ranges?
37. What are select options and what is the diff from parameters?
38. How do you validate the selection criteria of a report? And how do you display initial values in a selection screen?
39. What are selection texts?
40. What is CTS and what do you know about it?
41. When a program is created and need to be transported to prodn does selection texts always go with it? if not how do you make sure? Can you change the CTS entries? How do you do it?
42. What is the client concept in SAP? What is the meaning of client independent?
43. Are programs client dependent?
44. Name a few system global variables you can use in ABAP programs?
45. What are internal tables? How do you get the number of lines in an internal table? How to use a specific number occurs statement?
46. How do you take care of performance issues in your ABAP programs?47. What are datasets?
48. How to find the return code of a stmt in ABAP programs?
49. What are interface/conversion programs in SAP?50. Have you used SAP supplied programs to load master data?

Face SAP ABAP Interview

1. What are the techniques involved in using SAP supplied programs? Do you prefer to write your own programs to load master data? Why?
2. What are logical databases? What are the advantages/disadvantages of logical databases?
3. What specific statements do you using when writing a drill down report?
4. What are different tools to report data in SAP? What all have you used?
5. What are the advantages and disadvantages of ABAP query tool?
6. What are the functional areas? User groups? How does ABAP query work in relation to these?
7. Is a logical database a requirement/must to write an ABAP query?
8. What is the structure of a BDC sessions.
9. What are Change header/detail tables? Have you used them?
10. What do you do when the system crashes in the middle of a BDC batch session?
11. What do you do with errors in BDC batch sessions?
12. How do you set up background jobs in SAP? What are the steps? What are the event driven batch jobs?
13. Is it possible to run host command from SAP environment? How do you run?
14. What kind of financial periods exist in SAP? What is the relevant table for that?
15. Does SAP handle multiple currencies? Multiple languages?
16. What is a currency factoring technique?
17. How do you document ABAP programs? Do you use program documentation menu option?
18. What is SAPscript and layout set?
19. What are the ABAP commands that link to a layout set?
20. What is output determination?

SAP ABAP Certification

SAP ABAP Questions and Answers http://sap-abap-programming.blogspot.com/

SAP ABAP Certification.

Rules to Download :-

1)Always Donate the user who created this site.
2)Most of the Files are in zip, winrar, wmv format so use appropiates software to extract the files.
3)All files are shared on a Third Party website so register with them for free to download the files.
4)Distribute this site to other so that every one gain free knowledge.
5)Leave a comment of the site which encourge me to devop more.




Download - SAP ABAP Certification ---> www.4shared.com/file/24651249/5fa103dd/SAP_ABAP_Certification.html

BUILD WEB SERVICE ABAP&SAP

SAP ABAP Questions and Answers http://sap-abap-programming.blogspot.com/

BUILD WEB SERVICE ABAP&SAP.

Rules to Download :-

1)Always Donate the user who created this site.
2)Most of the Files are in zip, winrar, wmv format so use appropiates software to extract the files.
3)All files are shared on a Third Party website so register with them for free to download the files.
4)Distribute this site to other so that every one gain free knowledge.
5)Leave a comment of the site which encourge me to devop more.



Download - BUILD WEB SERVICE ABAP&SAP ---> www.4shared.com/file/31388614/10a91648/BUILD-WEB_SERVICE-ABAPSAP.html

ABAP Objects-An Introduction to Programming

SAP ABAP Questions and Answers http://sap-abap-programming.blogspot.com/

ABAP Objects-An Introduction to Programming.

Rules to Download :-

1)Always Donate the user who created this site.
2)Most of the Files are in zip, winrar, wmv format so use appropiates software to extract the files.
3)All files are shared on a Third Party website so register with them for free to download the files.
4)Distribute this site to other so that every one gain free knowledge.
5)Leave a comment of the site which encourge me to devop more.



Dowload - ABAP Objects-An Introduction to Programming ---> www.4shared.com/file/54851731/283fb7aa/ABAPObjects-AnIntroductiontoProgrammingSAPApplications.html

SAP ABAP complete reference

SAP ABAP Questions and Answers http://sap-abap-programming.blogspot.com/

SAP ABAP complete reference.

Rules to Download :-

1)Always Donate the user who created this site.
2)Most of the Files are in zip, winrar, wmv format so use appropiates software to extract the files.
3)All files are shared on a Third Party website so register with them for free to download the files.
4)Distribute this site to other so that every one gain free knowledge.
5)Leave a comment of the site which encourge me to devop more.






Download - SAP ABAP complete reference ---> www.4shared.com/file/49379676/ab3b6728/abap_sap_material.html

SAP ABAP Complete Certification

SAP ABAP Questions and Answers http://sap-abap-programming.blogspot.com/

SAP ABAP Complete Certification.

Rules to Download :-

1)Always Donate the user who created this site.
2)Most of the Files are in zip, winrar, wmv format so use appropiates software to extract the files.
3)All files are shared on a Third Party website so register with them for free to download the files.
4)Distribute this site to other so that every one gain free knowledge.
5)Leave a comment of the site which encourge me to devop more.




Download - SAP ABAP Complete Certification

Sap BC Abap Programming

SAP ABAP Questions and Answers http://sap-abap-programming.blogspot.com/

Sap Bc Abap Programming.

Rules to Download :-

1)Always Donate the user who created this site.
2)Most of the Files are in zip, winrar, wmv format so use appropiates software to extract the files.
3)All files are shared on a Third Party website so register with them for free to download the files.
4)Distribute this site to other so that every one gain free knowledge.
5)Leave a comment of the site which encourge me to devop more.


Downlaod - Sap Bc Abap Programming --->

www.4shared.com/file/61143093/5540b03e/_Ebook_-_English__Sap_Bc_Abap_Programming.html

SAP ABAP Interview Part - 2

Question 6:

Modification Assistant

What is the Modification Assistant?

ANSWER"
The modification assistant is a tool introduced in release 4.5 to simplify the upgrade process as it relates to modifications. The modification assistant can be triggered through the ABAP editor and it will assist in logging modifications for any changes that are made to the system. The modification assistant provides support for modification made through the ABAP Editor, Screen Painter, Menu Painter, text element maintenance,Function Builder and ABAP Dictionary.

Question 7:

Function Module Exit

What statement will be found in an SAP application program that implements a function module exit?

ANSWERS:

Function module exits will exist in some SAP application programs to allow a customer to add some functionality to the SAP program. Search die SAP application program globally looking for the following search string: "CALL CUSTOMER" to determine if an exit exists.

Question 8:

Transaction Variants

What is a transaction variant and why are they used?

ANWERS:

A transaction variant is a set of screen variants that is used to predefine screen behavior and defaults. Fields, subscreens and full screens that may not be required by a user can be suppressed from that users view through the use of variant functionality. Default values can also be set for any input fields and fields can have the "ready for input" status revoked.

The GuiXT script language allows a developer to modify a screen through transaction

A transaction variant can only be created for a dialog or reporting transaction and only normal, subscreen and dialog screens can be included in the variant.

variant maintenance providing more flexibility and power to the developer. Screen layouts can be modified by inserting buttons, value helps, movingobjects, inserting screens and much more

Question 9;

Changing SAP



List some of the many different ways that the SAP standard functionality can be changed by a customer?


ANSWER:

The SAP standard can be changed through personalization, customizing, modifications, enhancements and custom ABAP programs developed by the customer development team. Examples of these different approaches for changing the standard are as follows:

Personalization techniques include creation of variants, set/get parameters and activity groups.

Customizing is the most common way for changing the SAP standard through the use SAP tools such as the R/3 reference model and the Implementation Guide. Customizing could be considered mandatory in order to implement R/3 and is usually performed by the functional team.

Enhancements are usually performed by the development team and include activities such as dictionary enhancements, function module exits, menu and screen exits and Business add-ins (BADI's)
Custom ABAP programs are developed for a wide variety of reasons and can work with standard SAP objects or custom developed objects.

Modifications to SAP objects are strongly discouraged. All other techniques should be explored before modifying an SAP object. The SAP Software Change Registration SSCR) is a procedure for registering all manual modification to SAP objects.

Question 10:

Adding Fields

What are two different ways to add fields to SAP tables?

ANSWER:

An append structure or a customizing include can be used to add fields to a table. Append structures are created by adding fields to the end of a table while Customizing includes are specified by the SAP developer in advance to allow for the customer to create new fields.

SAP ABAP Interview Part - 1

Question 1:

Lock Objects and Function Modules

What are the names of the function modules that will be generated upon activation of a lock object?


ANSWERS Prior to creating setting any locks in an ABAP program, a lock object must be created in the ABAP dictionary'. When the lock object is created, the system will automatically generate the two function modules required for lock management.


The first function module used to set locks is the ENQUEUE_<>. This function module is used to generate a lock entry in the lock table. If the lock cannot be set for any reason then this would be reflected in the return code.


The second function module used to release locks is the DEQUEUE_<>. This function module will remove a lock entry from the lock table.


These function modules are used to set and release locks in an ABAP program. The programmer

simply performs the specific "CALL FUNCTION..." statement for each function module.

These lock function modules are executed in a specific work process with the SAP system dedicated to lock management. This work process is run on a single server that maintains the central locktable for the entire SAP system.

There are two types of locks that can be set:

Shared lock - is a read only lock that prevents data from being changed while a user is reading it.

Exclusive lock - is a write lock that prevents data from being changed while a used is already modifying it.

Question 2:

Update function modules

Update function modules are classified as either Vi or V2. Which type of update is performed first and in what mode (Asynchronously, Synchronously or locally) can each type be processed in?

ANSWERS

VI updates take priority over V2 updates and are therefore processed prior to V2 updates. Vi updates can be performed asynchronously, synchronously or locally. V2 updates always run asynchronously.

Question 3:

ABAP Memory Exchanging

What two statements would be used to exchange data between programs using ABAP memory?


ANSWER:

EXPORT to MEMORY ID will copy data to ABAP memory and IMPORT from MEMORY ID is used to copy the data from ABAP memory into a program.
The data that is being exchanged via ABAP memory must be declared in the two programs involved with exactly the same data declarations.

Question 4:

Authorization Objects

What are authorization objects and what statement is used to perform an authorization check in an ABAP program?

ANSWERS:

Authorization objects are composed of a grouping of fields. The values in these fields will be used in an authorization check.

AUTHORITY- CHECK is the statement used in an ABAP program to perform an authorization check against an authorization object. In the AUTHORITY-CHECK statement, all fields of the object must be addressed or the keyword DUMMY is used to bypass checking on a field.

There can be a maximum of 10 fields defined on an authorization object.

Question 5:

Modifications

What is the definition of a modification in an SAP system and how do they impact an upgrade?

ANSWERS:

A modification is a change made by a customer to an SAP delivered repository object. Modifications must be reviewed during upgrade time to determine if the new SAP object should be used or if the modified object can still be used with or without further modifications.

Thursday, October 15, 2009

ABAP ENHANCEMENTS

ABAP ENHANCEMENTS:


SAP delivers a broad range of business functions within its R/3 application suite. You may find that the standard applications do not offer some of the functionality you need. The R/3 enchancement concept allows you to add your own functionality to SAP's standard business applications.


SAP creates customer exits for specific programs, screens and menus within standard R/3 applications. These exits do not contain any functionality. Instead, the customer exits act as hooks. You can hang your own add-on functionality onto these hooks.

Purpose of the Enhancement Concept

With the ABAP/4 Development Workbench, SAP's client-server development environment, you can create add-ons or entire applications. Before the enhancement concept existed, customers who wanted to add their own specific functions to SAP software had to modify the standard SAP programs.

Modifying SAP's software holds at least two dangers:

1.Modifying standard code can lead to errors

When a customer changes the source code of a standard program, these changes can have unwanted results within other parts of the application. Once a customer has begun 'reconstructing' a standard program, SAP can no longer guarantee that this customer's system will run without serious errors.


2.Modifications mean more work during software upgrades

Customers of standard software packages often want to take advantage of software upgrades or new releases. Customers who have modified the software of their current release must save these modifications and reenter them into the new software after each upgrade or release change. Depending on the number and scope of modifications, this reentry process may make it difficult or even impossible to take advantage of new software releases.

The enhancement concept offers a better alternative to the problem-ridden modification approach.

Reason for Using Exits

If you want to extend the functionality of your R/3 System, you should take advantage of the exits available within the standard R/3 applications. There are two main reasons why you should use exits rather than modifying SAP software. Add-ons that are attached to exits have the advantage that they:

1.Do not affect standard SAP source code When you add new functionality to your R/3 System using SAP's exits, you do not change the source code of standard SAP programs. The code and screens you create are encapsulated as separate objects. These customer objects are linked to standard applications, but they exist apart from SAP's standard software package.


2.Do not affect software upgrades When you add new functions using SAP's exits, the objects you develop are customer objects. Customer objects adhere to strict naming conventions. When the time comes to upgrade a software release, the special names of customer objects ensure that they will not be affected by either changes or additions within the standard software package. As a result, you do not need to save and then reenter add-ons attached to exits.

Customer exits are not available for all programs and screens within the R/3 standard applications. You can only use exits if they already exist within the SAP R/3 System. Locating Applications that Have Exits explains how to find applications with predefined exits.


If no user exit is available in an area where you want to add your own functionality, you can request that SAP develop an exit. You can make this request via the Online Service System (OSS).

Types of Exits

There are four basic types of customer exits. Each of these exits is a hook that you can hang your add-ons onto.

Menu exits Add items to the pulldown menus in standard R/3 applications. You can use these menu items, for example, to call up your own screens or to trigger entire add-on applications.

SAP creates menu exits by defining special menu items in the Menu Painter. These special entries have function codes that begin with + (plus sign). You specify the menu item's text when activating the item within an add-on project.


Screen exits Add fields to the screens within R/3 applications. SAP creates screen exits by placing special subscreen areas within a standard R/3 screen and calling a customer subscreen from within the standard dynpro's flow logic.

Function module exits Add functionality to R/3 applications. Function module exits play a role in both menu and screen exits. When you add a new menu item to a standard pulldown menu, for example, you can use a function module exits to define the actions that should take place once your menu is activated. Function module exits also control the data flow between standard programs and the fields created within dynpro exits.

SAP application developers create function exits by preparing calls to customer functions within standard R/3 programs. These calls have the following syntax: CALL CUSTOMER-FUNCTION '001'.


Keyword exits Add documentation to the data elements of key words defined in the ABAP/4 Dictionary. The system displays this documentation whenever a user presses F1 to get online help for a screen field.

Unlike the other exits listed above, documentation exits do not require that SAP make any special preparations.

Creating an Add-on Project


To take advantage of the exits available within standard R/3 applications, you need to create an add-on project. This project lets you organize the enhancement packages and exits you want to use. The add-on project also allows you to hang add-on functionality onto the exit hooks contained with SAP enhancements.

Managing an Add-on Project

An add-on project contains a series of exits and the add-ons, such as menu entries or function modules, that you develop to hook onto these exits. To create an add-on project from within the ABAP/4 Development Workbench menu, choose Utilities ® Enhancements ® Project management.


Before you begin defining a project, you need to decide which application, application component, or specific standard transaction you would like to add your own functionality to. Give your project a name that indicates the type of functions it contains or shows which transactions are affected. It might be useful to agree upon a company-wide naming convention for enhancement projects.


There are two factors you need to keep in mind when you create an add-on project. First, you can include an SAP enhancement package and the customer exits it contains in one project only. The same SAP enhancement may not appear in two different customer projects.


Second, in order to make your add-ons, such as menu items or screen fields, appear in standard R/3 applications, you must activate your add-on project. When you activate a project, all of the add-ons created within this project are turned on. For this reason, you should ensure that the exits you include in your project contain functions that can be activated simultaneously. It is not possible to activate specific exits only.

After you have specified the name of your new project, proceed as follows:

1. Choose Create.
2. Describe the nature of the project by providing a short descriptive text.
3. Choose the SAVE icon.

The system prompts you to assign a change task. This assignment allows you to transport the project and its components into a productive system once you have completed it.

4. Specify which SAP enhancements packages you want to include in your project by choosing SAP enhancements.
5. Enter the names of all the SAP enhancements in the spaces provided.

You should choose enhancements packages which logically belong together. If you are planning to use several enhancements that deal with Materials Management modules, for example, you can include each of these enhancements in the same project. If you are working on enhancements that deal with different applications, or if the enhancements are not logically related, you should include these enhancements in separate projects.

Once you have identified the SAP enhancements to include in your project, you can begin adding your own functionality to the exits offered in the enhancements. To display the individual components of the SAP enhancements, return to the main screen of the Project Management transaction and choose Enhancement components. The system shows you all of the exits included in each of the enhancements assigned to your project.


To take advantage of the exits available within standard R/3 applications, you need to create an add-on project. This project lets you organize the enhancement packages and exits you want to use. The add-on project also allows you to hang add-on functionality onto the exit hooks contained with SAP enhancements.

Managing an Add-on Project

An add-on project contains a series of exits and the add-ons, such as menu entries or function modules, that you develop to hook onto these exits. To create an add-on project from within the ABAP/4 Development Workbench menu, choose Utilities ® Enhancements ® Project management.


Before you begin defining a project, you need to decide which application, application component, or specific standard transaction you would like to add your own functionality to. Give your project a name that indicates the type of functions it contains or shows which transactions are affected. It might be useful to agree upon a company-wide naming convention for enhancement projects.


There are two factors you need to keep in mind when you create an add-on project. First, you can include an SAP enhancement package and the customer exits it contains in one project only. The same SAP enhancement may not appear in two different customer projects.


Second, in order to make your add-ons, such as menu items or screen fields, appear in standard R/3 applications, you must activate your add-on project. When you activate a project, all of the add-ons created within this project are turned on. For this reason, you should ensure that the exits you include in your project contain functions that can be activated simultaneously. It is not possible to activate specific exits only.



After you have specified the name of your new project, proceed as follows:

1. Choose Create.
2. Describe the nature of the project by providing a short descriptive text.
3. Choose the SAVE icon.

The system prompts you to assign a change task. This assignment allows you to transport the project and its components into a productive system once you have completed it.

4. Specify which SAP enhancements packages you want to include in your project by choosing SAP enhancements.
5. Enter the names of all the SAP enhancements in the spaces provided.

You should choose enhancements packages which logically belong together. If you are planning to use several enhancements that deal with Materials Management modules, for example, you can include each of these enhancements in the same project. If you are working on enhancements that deal with different applications, or if the enhancements are not logically related, you should include these enhancements in separate projects.

Once you have identified the SAP enhancements to include in your project, you can begin adding your own functionality to the exits offered in the enhancements. To display the individual components of the SAP enhancements, return to the main screen of the Project Management transaction and choose Enhancement components. The system shows you all of the exits included in each of the enhancements assigned to your project.

Activating and Deactivating a Project

After you have attached all add-on functionality to the exits in your project, you need to activate the project. Activating a project turns on all your add-ons. You also need to activate your project after you have transported it from a development system into a productive system.


When you activate your project, the system turns on all the add-ons contained within the project. You cannot activate certain add-ons separately. The activate an add-on project, proceed as follows:

1. Enter the Project Management transaction.
2. Choose Activate project.

The system confirms that the project was activated.

You can now call up a standard SAP transaction that contains an exit you used in your add-on project. Your add-on functionally should appear.


If you need to make changes to any of your add-ons, you must first deactivate the project that contains that add-on. Deactivating a project turns off all of that project's add-ons. To deactivate an add-on project, proceed as follows:

1. Enter the Project Management transaction.
2. Choose Deactivate project.

The system confirms that the project was deactivated.

Once the project is turned off, you can make changes to the project's add-ons or build new functionality to hook on to the other exits in the project.


Transporting Add-on Projects
To take advantage of the exits in the R/3 System, you must create an add-on project. This project contains at least one SAP enhancement package and all the user exits assigned to this package. Your add-on project also holds the add-on functionality you create to hang onto the exit hooks.


When you first create an add-on project, you must assign the project to a change task. You also need to allocate a change task number for every add-on component you develop, such as include programs, subscreens, and menu texts. You can use the same change task number for all your project components. If your project is spread out over more than one change task, you should assign these tasks to the same transport request.


Once you have completed your project, release your change tasks. As a final step, release the transport request that contains all the change tasks for your project. The system will export your add-on project and coordinate its import into a consolidation or productive system. You must then ensure that your add-on project is active.

Using Field Exits


Field exits allow you to create your own programming logic for any data element in the Dictionary. You can use this logic to carry out checks, conversions, or business-related processing for any screen field.


The data element BBBNR identifies a company's international location number. You might want to set up your R/3 System so that all international location numbers are larger than 100. The field exit concept lets you create a special function module that contains this logic.


You assign the special function module to the data element BBBNR. You then assign the module to any programs and screens in which users can add new international location numbers. When you activate your field exit, the system automatically triggers your special routine whenever a user enters a company location number.

To create your own logic for a particular data element, proceed as follows:

1. Enter the Project management transaction by choosing Utilities ® Enhancements ® Project management from the ABAP/4 Development Workbench menu.
2. Choose Text enhancements ® Field exits.
3. Choose Field exit ® Create.
4. Enter the name of data element.
5. Choose Continue.

The system takes you into the Function Library and suggests a name for your function module (FIELD_EXIT_BBBNR). You should use this name.

6. Create the source code and, if needed, global data for your function module.
7. Activate the function module.

After you have created the processing logic for your field exit, you must assign the exit to one or more programs and screens. This assignment tells the system which screens to trigger your function module on.

If your processing logic checks naming conventions for a certain field, for example, you might want to trigger the field exit module only on screens where new data can be written to the database. If another screen allows you to display data only, then you can leave out the special function module call. To assign your field exit module to one or more screens, proceed as follows:

1. Select the field exit.

2. Choose Assign prog./screen.

3. Enter the name of the program and the screen number.
4. Choose Save.

For some fields, you might want to trigger a different processing logic on different screens. You can trigger screen-specific logic by allocating a field exit identifier when you make your screen assignments. A field exit identifier can be any number or letter. The field exit identifier tells the system to trigger the function module that has this identifier in its name.


You create a field exit for the data element BBBNR. You make the following exit and screen assignments:

Field exit Program Screen
1 SAPMI0IA 2300
2 SAPMI0IA 3450

If a user makes an entry into the BBBNR-related field in screen 2300, the system triggers the function module called FIELD_EXIT_BBBNR_1. If the user makes the same entry in screen 3450, the system triggers the function FIELD_EXIT_BBBNR_2.

After you have created one or more function modules and assigned them to programs and screens, you need to activate the field exit. Choose Field exit ® Activate. The system will trigger the processing logic in your function modules according to the screen assignments you made.

Blog Archive