DATA DICTIONARY

Type of a table or structure

The table type determines how the logical table description defined in the ABAP/4 Dictionary is reproduced on the database. There are the following table types:
transparent table
structure
append structure
For internal purposes, such as storing control data or update texts, there are in addition the following table types:
pooled table
cluster table
generated view structure
Transparent table There is a physical table on the database for each transparent table. The names of the physical tables and the logical table definition in the ABAP/4 Dictionary correspond. All business data and application data are stored in transparent tables.

Structure No data records exist in the database for a structure. Structures are used for the interface definition between programs or between screens and programs.

Append structure An append structure defines a set of fields which belong to another table or structure but which are treated in the correction administration as its own object. Append structures are used to support modifications.

Pooled table Pooled tables can be used to store control data (e.g. screen sequences, program parameters or temporary data). Several pooled tables can be combined to form a table pool. The table pool corresponds to a physical table on the database in which all the records of the allocated pooled tables are stored.

Cluster table Cluster tables contain continuous text, for example, documentation. Several cluster tables can be combined to form a table cluster. Several logical lines of different tables are combined to form a physical record in this table type. This permits object-by-object storage or object-by-object access. In order to combine tables in clusters, at least parts of the keys must agree. Several cluster tables are stored in one corresponding table on the database.

Generated view structure In activation a structure is generated for a view. This structure serves as interface for the runtime environment. It does not generally appear in the ABAP/4 Dictionary.

What is a Data Class?
The Data class determines in which tablespace the table is stored when it is created in the database. What is a Size Category? The Size category describes the probable space requirement of the table in the database. How Many types of size categories and data classes are there? There are five size categories (0-4) and 11 data classes, only three of which are appropriate for application tables:
- APPL0 - Master data (data frequently accessed but rarely updated)
- APPL1 - Transaction data (data that is changed frequnetly)
- APPL2 - Organisational data (customizing data that is entered when system is
configured and then rarely changed)

What are control tables?
The values specified for the size category and data class are mapped to database-specific values via control tables.

What is the function of the transport system and workbench organiser?
The function of the transport system and the Workbench Organizer is to manage any changes made to objects of the ABAP/4 Development Workbench and to transport these changes between different SAP systems.

What is a table pool?
A table pool (or pool) is used to combine several logical tables in the ABAP/4 Dictionary. The definition of a pool consists of at least two key fields and a long argument field (VARDATA).

What are pooled tables?
These are logical tables which must be assigned to a table pool when they are defined. Pooled tables can be used to store control data (such as screen sequences or program parameters).

What is a table cluster?
A table cluster combines several logical tables in the ABAP/4 Dictionary. Several logical rows from different cluster tables are brought together in a single physical record. The records from the cluster tables assigned to a cluster are thus stored in a single common table in the database.
Which objects are independent transport objects?
Domains, Data elements, Tables, Technical settings for tables, Secondary indexes for transparent tables,
Structures, Views,
Matchcode objects, Matchcode IDs, Lock objects.

What are the Data types of the external layer?
ACCP, CHAR, CLNT, CUKY,CURR, DATS, DEC, FLTP, INT1,INT2, INT4, LANG, LCHR,LRAW, NUMC, PREC, QUAN,RAW ,TIMS, UNIT, VARC.

What are the Data types of the ABAP/4 layer?
Possible ABAP/4 data types: C: Character. D: Date, format YYYYMMDD. F: Floating-point number in DOUBLE PRECISION (8 bytes). I: Integer. N: Numerical character string of arbitrary length. P: Amount or counter field (packed; implementation depends on hardware platform). S: Time stamp YYYYMMDDHHMMSS. T: Time of day HHMMSS. V: Character string of variable length, length is given in the first two bytes. X: Hexadecimal (binary) storage.

How can we set the tablespaces and extent sizes ?
You can specify the extent sizes and the tablespace (physical storage
area in the database) in which a transparent table is to be stored by setting the size category and data class.

What is a data dictionary ?
Data dictionary is a central source of data in a data management system. Its main function is to support the .It has details about

- What data is contained ?
- What are the attributes of the data ?
- What is the relationship existing between the various data elements ?

What functions does a data dictionary perform ?
In a data management system, the principal functions performed by the data dictionary are
- Management of data definitions
- Provision of information for evaluation
- Support for software development
- Support form documentation
- Ensuring that the data definitions are flexible and up-to-date.

A field containing currency amounts (data type CURR) must be assigned to a reference table and a reference field. Explain.
As a reference table, a system table containing all the valid currencies is assigned or any other table which contains a field with the currency key format. This field is called as reference field. The assignment of the field containing currency amounts to the reference field is made at runtime. The value in the reference field determines the currency of the amount.

What is the significance of Technical settings (specified while creating a table in the data dictionary) ?
By specifying technical settings we can control how database tables are created in the database. The technical settings allows us to - optimize storage space requiremnets
- table access behaviour
- buffering required
- changes to entries logged

What is the significance of Delivery Class ?
- The delivery class controls the degree to which the SAP or the customer is responsible for table maintenance
- whether SAP provides the table with or without contents.
- determines the table type. - determines how the table behaves when it is first installed, at upgrade, when it is transported, and when a client copy is performed.

What is the maximum number of structures that can be included in a table or structure
- Nine.

What are the two methods of modifying Sap standard tables ?
- Append Structures and
- Customizing Includes.

What is the difference between a Substructure and an Append Structure ?
- In case of a substructure, the reference originates in the table itself, in the forma of a statement .include... . - In case of an append structure, the table itself remains unchanged and the refrence originates in the append structure.

What are the two ways for restricting the value range for a domain?
- By specifying fixed values.
- By stipulating a value table.

What is a Match Code ?
Match Code is a tool to help us to search for data records in the system. Match codes are an efficient and user-friendly search aid where key of a record is unknown. What are the two levels in defining a Match Code ?
- Match Code object
- Match Code Id.

What is the maximum number of match code Id's that can be defined for one Match code object ?
- 36. A match code Id is a one character ID which can be a letter or a number.

Can we define our own Match Code ID's for SAP Matchcodes ?
Yes, the numbers 0 to 9 are reserved for us to create our own Match Code IDs for a SAP defined Matchcode object.

What is an Update type with reference to a Match code ID?
If the data in one of the base tables of a matchcode ID changes, the matchcode data has to be updated. The update type stipulates when the matchcode is to be updated and how it is to be done. The update type also specifies which method is to be used for Building matchcodes . You must specify the update type when you define a matchcode ID.

What are conversion routines ?
- Non standard conversions from display format to sap internal format and vice-versa are implemented with so called conversion routines.
Aggregated Objects Views, matchcodes, and lock objects are also called aggregate objects because they are formed from several related tables.

What is a View ?
- A view is a logical view on one or more tables. A view on one or more tables i.e, the data from a view is not actually physically stored instead being derived from one or more tables. A view can be used to summarize data which is distributed among several tables

How many types of Views are there ? - Database View (SE11)
Database views are implement an inner join, that is, only records of the primary table (selected via the join operation) for which the corresponding records of the secondary tables also exist are fetched. Inconsistencies between primary and secondary table could, therefore, lead to a reduced selection set. In database views, the join conditions can be formulated using equality relationships between any base fields. In the other types of view, they must be taken from existing foreign keys. That is, tables can only be collected in a maintenance or help view if they are linked to one another via foreign keys.

- Help View ( SE54)
Help views are used to output additional information when the online help system is called. When the F4 button is pressed for a screen field, a check is first made on whether a matchcode is defined for this field. If this is not the case, the help view is displayed in which the check table of the field is the primary table. Thus, for each table no more than one help view can be created, that is, a table can only be primary table in at most one help view.

- Projection View
Projection views are used to suppress or mask certain fields in a table (projection), thus minimizing the number of interfaces. This means that only the data that is actually required is exchanged when the database is accessed. A projection view can draw upon only one table. Selection conditions cannot be specified for projection views.

Maintenance View ( SE54 ) 
Maintenance views enable a business-oriented approach to looking at data, while at the same time, making it possible to maintain the data involved. Data from several tables can be summarized in a maintenance view and maintained collectively via this view. That is, the data is entered via the view and then distributed to the underlying tables by the system.

What is Locking ?
When two users simultaneously attempt to access the same data record, this is synchronised by a lock mechanism.
When dialog transactions are programmed, locks are set and released by calling certain function modules. These function modules are generated automatically from the definition of so-called lock objects in the ABAP/4 Dictionary. To synchronize the access to a table by setting and removing locks, a Lock object has to be defined in the ABAP/4 Dictionary. Activating the lock object automatically creates #function modules for setting and removing locks. These function modules must be included when programming interactive transactions.

Lock Mechanism : To set locks, a lock object must be defined in the ABAP/4 Dictionary. In this lock object, those tables in which data records are to be locked by calling a lock are determined. All tables included in a lock object must be connected to each other via foreign keys. The key fields of the tables in a lock object form the Lock arguments for the tables. The lock arguments are the basis for formulating the logical condition for identifying the records to be locked. When activating this lock object, two function modulesB with the names ENQUEUE_ and DEQUEUE_ are generated.

Example :
Problem : You wish to prevent a user from being able to change the name of a course or the name of the professor with responsibility for the course at a time when another user is editing the course description (which contains this information).

Solution : The problem described above can be solved by defining a lock object E_UKURS. This is done by defining primary and secondary tables in the lock object. Table UKURS is check table of table UKRSB, so UKURS should be selected as primary table and UKRSB as secondary table of the lock object. The Lock argument in this case is the field combination FABNR, KRSNR, and SPRAS (i.e Primary Key Combination). The Lock mode Shared is to be selected here. This allows several users to access the data simultaneously in display mode. The lock mode in the generated function modules for setting (ENQUEUE_E_UKURS) and releasing (DEQUEUE_E_UKURS) locks is therefore set to shared as default, but can be overridden by calling the function modules. If the function module ENQUEUE_E_UKURS is called with FABNR = '1' and KRSNR = '3', the record for course 3 in faculty 1 is locked in table UKURS. Furthermore, all the course descriptions for this course are locked in table UKRSB since field SPRAS was not specified when the function module was called. In such cases, the lock is made generically for a field which is not defined. If the function module DEQUEUE_E_UKURS is now called with FABNR = '1', KRSNR = '3' and SPRAS = 'D', the German course description is unlocked. All other course descriptions remain locked.

What is database utility ?
Database utility is the interface between the ABAP/4 Dictionary and the underlying the SAP system. The database utility is the interface between the ABAP/4 Dictionary and the relational database underlying the SAP system. You can call the database utility from the initial screen of the ABAP/4 Dictionary with Utilities ® Database utility. The database utility allows you to create, delete and convert objects from the ABAP/4 Dictionary in the database.

MODULARIZATION

What is Modularization and its benefits?
If the program contains the same or similar blocks of statements or it is required to process the same function several times, we can avoid redundancy by using modularization techniques. By modularizing the ABAP/4 programs we make them easy to read and improve their structure. Modularized programs are also easier to maintain and to update.

How can we create callable modules of program code within one ABAP/4 Program?
A. By defining macros. B. By creating include programs in the library.

What are subroutines?
Subroutines are program modules which can be called from other ABAP/4 programs or within the same program.

What are the types of Subroutines?
A. Internal Subroutines: The source code of the internal subroutines will be in the
same ABAP/4 program as the calling procedure (internal call).
B. External Subroutines: The source code of the external subroutines will be in an
ABAP/4 program other than the calling procedure.


What are the different types of parameters?
Formal parameters: Parameters which are defined during the definition of subroutine with the FORM statement. Actual parameters: Parameters which are specified during the call of a subroutine with the PERFORM statement.

How can one distinguish between different kinds of parameters?
A. Input parameters are used to pass data to subroutines. B. Output parameters are used to pass data from subroutines.

What are the different methods of passing data?
A. Calling by reference: During a subroutine call, only the address of the actual
parameter is transferred to the formal parameters. The formal parameter has no memory of its own, and we work with the field of the calling program within the subroutine. If we change the formal parameter, the field contents in the calling program also change.
B. Calling by value: During a subroutine call, the formal parameters are created as
copies of the actual parameters. The formal parameters have memory of their own. Changes to the formal parameters have no effect on the actual parameters.
C. Calling by value and result: During a subroutine call, the formal parameters are
created as copies of the actual parameters. The formal parameters have their own memory space. Changes to the formal parameters are copied to the actual parameters at the end of the subroutine.
The method by which internal tables are passed is By Reference.

What is the difference between the function module and a normal ABAP/4 subroutine?
In contrast to normal subroutines function modules have uniquely defined interface. Sub routines do not return values.
Sub routines do not return exceptions. Sub routines cannot be tested independently. Declaring data as common parts is not possible for function modules. Function modules are stored in a central library. What is a function group? A function group is a collection of logically related modules that share global data with each other. All the modules in the group are included in the same main program. When an ABAP/4 program contains a CALL FUNCTION statement, the system loads the entire function group in with the program code at runtime. Every function module belongs to a function group.

What is the difference between internal tables and extract datasets?
A. The lines of an internal table always have the same structure. By using extract
datasets, you can handle groups of data with different structure and get statistical figures from the grouped data.
B. You have to define the structure of the internal table at the begining. You need
not define the structure of the extract dataset.
C. In contrast to internal tables, the system partly compresses extract datasets
when storing them. This reduces the storage space required.
D. Internal tables require special work area for interface whereas extract datasets
do not need a special work area for interface.
- See more at: http://www.saptechies.org/q-a-data-dictionary/#sthash.ig2ojcQP.dpuf

1. What are the layers of data description in R/3?
- The external layer.
- The ABAP/4 layer.
- The database layer.

2. Define external layer?
The external layer is the plane at which the user sees and interacts with the data, that is, the data format in the user interface. This data format is independent of the database system used.

3. Define ABAP/4 layer?
The ABAP/4 layer describes the data formats used by the ABAP/4 processor.

4. Define Database layer?
The database layer describes the data formats used in the database.

5. What is a Data Class?
The Data class determines in which table space the table is stored when it is created in the database.

6. What is a Size Category?
The Size category describes the probable space requirement of the table in the database.

7. How many types of size categories and data classes are there?
There are five size categories (0-4) and 11 data classes only three of which are appropriate for application tables:
APPL0 - Master data (data frequently accessed but rarely updated).
APPL1 - Transaction data (data that is changed frequently).
APPL2 - Organizational data (customizing data that is entered when system is configured and then rarely changed).
The other two types are:
- USR
- USR1 – Intended for customer’s own developments.

8. What are control tables?
The values specified for the size category and data class are mapped to database-specific values via control tables.

9. What is the function of the transport system and workbench organizer?
The function of the transport system and the Workbench Organizer is to manage any changes made to objects of the ABAP/4 Development Workbench and to transport these changes between different SAP systems.

10. What is a table pool?
A table pool (or pool) is used to combine several logical tables in the ABAP/4 Dictionary. The definition of a pool consists of at least two key fields and a long argument field (VARDATA).

11. What are pooled tables?
These are logical tables, which must be assigned to a table pool when they are defined. Pooled tables can be used to store control data (such as screen sequences or program parameters).

12. What is a table cluster?
A table cluster combines several logical tables in the ABAP/4 Dictionary. Several logical rows from different cluster tables are brought together in a single physical record. The records from the cluster tables assigned to a cluster are thus stored in a single common table in the database.

13. How can we access the correction and transport system?
Each time you create a new object or change an existing object in the ABAP/4 Dictionary, you branch automatically to the Workbench Organizer or correction and transport system.

14. Which objects are independent transport objects?
Domains, Data elements, Tables, Technical settings for tables, Secondary indexes for transparent tables, Structures, Views, Matchcode objects, Matchcode Ids, Lock objects.

15. How is conversion of data types done between ABAP/4 & DB layer?
Conversion between ABAP/4 data types and the database layer is done within the database interface.

16. How is conversion of data types done between ABAP/4 & external level?
Conversion between the external layer and the ABAP/4 layer is done in the SAP dialog manager DYNP.

17. What are the Data types of the external layer?
ACCP, Char, CLNT, CUKY, CURR, DATS, DESC, FLTP, INT1, INT2, INT4, LANG, LCHR, LRAW, NUMC, PREC, QUAN, RAW, TIMS, UNIT,VARC.

18. What are the Data types of the ABAP/4 layer?
Possible ABAP/4 data types:
C: Character.
D: Date, format YYYYMMDD.
F: Floating-point number in DOUBLE PRECISION (8 bytes).
I: Integer.
N: Numerical character string of arbitrary length.
P: Amount of counter field (packed; implementation depends on h/w platform).
S: Time Stamp YYYYMMDDHHMMSS.
V: Character string of variable length, length is given in the first two bytes.
X: Hexadecimal (binary) storage.

19. How can we set the table spaces and extent sizes?
You can specify the extent sizes and the table space (physical storage area in the database) in which a transparent table is to be stored by setting the size category and data class.

20. What is the function of the correction system?
The correction system manages changes to internal system components. Such as objects of the ABAP/4 Dictionary.

21. What are local objects?
Local objects (Dev class$TMP) are independent of correction and transport system.

22. What is a Development class?
Related objects from the ABAP/4 repository are assigned to the same development class. This enables you to correct and transport related objects as a unit.

23. What is a data dictionary?
Data Dictionary is a central source of data in a data management system. Its main function is to support the creation and management of data definitions. It has details about
- What data is contained?
- What are the attributes of the data?
- What is the relationship existing between the various data elements?

24. What functions does a data dictionary perform?
In a data management system, the principal functions performed by the data dictionary are
- Management of data definitions.
- Provision of information for evaluation.
- Support for s/w development.
- Support form documentation.
- Ensuring that the data definitions are flexible and up-to-date.

25. What are the features of ABAP/4 Dictionary?
The most important features are:
- Integrated to aABAP/4 Development Workbench.
- Active in the runtime environment.

26. What are the uses of the information in the Data dictionary?
The following information is directly taken from the Data dictionary:
- Information on fields displayed with F1 help.
- Possible entries for fields displayed with F4 help.
- Matchcode and help views search utilities.

27. What are the basic objects of the data dictionary?
- Tables
- Domains
- Data elements
- Structures
- Foreign Keys

28. What are the aggregate objects in the data dictionary?
- Views
- Match codes
- Lock objects.

29. In the ABAP/4 Dictionary Tables can be defined independent of the underlying database (T/F).
True.

30. ABAP/4 Dictionary contains the Logical definition of the table.

31. A field containing currency amounts (data type CURR) must be assigned to a reference table and a reference field. Explain.
As a reference table, a system containing all the valid currencies is assigned or any other table, which contains a field with the currency key format. This field is called as reference field. The assignment of the field containing currency amounts to the reference field is made at runtime. The value in the reference field determines the currency of the amount.

32. A field containing quantity amounts (data type QUAN) must be assigned to a reference table and a reference field. Explain?
As a reference table, a system table containing all the valid quantity units is assigned or any other table, which contains a field with the format or quantity units (data type UNIT). This field is called as reference field.
The assignment of the field containing quantity amounts to the reference field is made at runtime. The value in the reference field determines the quantity unit of the amount.

33. What is the significance of Technical settings (specified while creating a table in the data dictionary)?
By specifying technical settings we can control how database tables are created in the database. The technical settings allows us to
- Optimize storage space requirements.
- Table access behaviour.
- Buffering required.
- Changes to entries logged.

34. What is a Table attribute?
The table’s attributes determine who is responsible for maintaining a table and which types of access are allowed for the table. The most important table attributes are:
- Delivery class.
- Table maintenance allowed.
- Activation type.

35. What is the significance of Delivery Class?
- The delivery class controls the degree to which the SAP or the customer is responsible for table maintenance.
- Whether SAP provides the table with or without contents.
- Determines the table type.
- Determines how the table behaves when it is first installed, at upgrade, when it is transported, and when a client copy is performed.






Webdynpro Interview Questions



1)   Types of ABAP UI Technologies
      Ans: Webdynpro for ABAP, BSP


2)   MVC Architecture Concepts and usage of the same in ABAP Webdynpro
       Ans: As per the MVC Architecture there is a clear separation between flow logic, view and the                            Business Logic. View holds all the UI elements that are visible in the UI, Controllers have the flow                logic. Controllers are of different kind (Component Controller, View Conroller,Window                                Controller). Business logic is held in the Model which is in the form of Assistance class
               in webdynpro context.


3)   Difference Between the View Container and the Transparent Container
      Ans: View Container holds the views, there can be multiple views assigned to the
              view container but only  one view can be active(viewed) at a time.
              Transparent holds the webdynpro UI elements, A layout type can be
              associated  with it.


4)   What does a Model Class Consists of
      Ans: Model Class is the Assitance class in webdynpro. It contains the Business
              Logic in the form of  methods, Global data & Constants in the form of
              Class Attributes. The Model class can be accessed in webdynpro component
              using the attribute wd_assist->. Note: All the visibility properties of the
              Class are applicable when accessing the class using the object wd_assist.


5)   What is an Assistance Class and How is it Instantiated in Webdynpro
       Ans: Assistance Class is the model class which would act as the data provider
              for the webdynpro component and it is instantiated by the webdynpro
              component during the run time and no explicat instantation is required.


6)   Design Patterns in Webdynpro(GAF,OIF,QAF Etc)
      Refer to the link:
      FPM Concepts in Webdynpro


7)   How do you debug an web based Application
                  (Could be from ABAP Webdynpro, BSP or CRM Web UI)
       Ans: External break-points should be used to debug web UI's.


8)   How do you create a ALV Report/Editable ALV in Webdynpro
      Ans: ->Add the Standard ALV component to the web dynpro Component.
              ->Use Components tab: Ex: ALV_MATS  type SLV_WD_TABLE
              ->Create a context node with the table field information to be displayed
              ->Write the ALV Default Code for table display
              ->Set the read only attribute to false to switch to editable mode using
                 the method set_read_only of the interface
                IF_SALV_WD_TABLE_SETTINGS implementing class
                CL_SALV_WD_CONFIG_TABLE).



9)   How do you Navigate between Views in Webdynpro
       Ans: Navigation between Views is through Plugs(Inbound and Outbound),


10) Usage of Plugs in Webdynpro
       Ans: Plugs are used to Navigate between the views. Parameters can be
       passed using the plugs similar to interface parameters of function module
       or a class method.


11) Usage of Webdynpro Component Controller
       Ans: Component controller is used to the store the Global attributes and
       Methods of the component. Attributes/methods declared in the component
       controller are visible through out the component and they are accessed
       using the attribute wd_comp_controller outside of component
       controller(like views,windows etc)
       All the context nodes defined in the component controller are
       visible in all the views and windows of the component.
       Ex: if a variable called gv_count is defined in the component controller,
       it can be accessed in the view using the syntax
       wd_comp_controller->gv_count.


12) How do you access a Context Nodes and elements Programmatically
      Code required for accessing the Context Nodes can be written using
      the webdynpro code wizard.
      For Ex: if there exists a Node Node1 with cardinality 1:1 and has
      3 Attributes to it Att1, Att2,Att3. The attributes can be accessed
      using the below code.

      data: lo_nd_node1 type ref to if_wd_context_node.
      data: lo_el_node1 type ref to if_wd_context_element.
      data: ls_node1 type wd_this->element_node1.

      lo_nd_node1 = wd_context->get_child_node
      ( name = wd_this->wdctx_node1 ).
      lo_el_node1 = lo_nd_node1->get_element( ).

**Read Node1
      lo_el_node1->get_static_attributes(
          importing
          static_attributes = ls_node1 ).

**Write to Node1
      lo_el_node1->set_static_attributes(

          exporting

          static_attributes = ls_node1 ).


13) Message Areas in Webdynpro
      Message areas are created in views to display messages
      (Error,Success,Warning,Info).
      WD allows to have multiple Message errors in a view but throws an
      error when the view is displayed.
      Use the code wizard to get code for raising error messages.
      Few of the message classes and methods are:
      Interface: if_wd_message_manager.
      methods: report_t100_message.(used to report message from the
      message class)


14) Concept of OTR(Online Text Repository) and its Usage
      OTR's are similar to text elements in ABAP. OTR's are created for
      UI texts and texts can be maintained in multiple language.
      OTR's can be created using the transaction: SOTR_EDIT


15) Concept of Interface Views
       If the views of a different components are need to be used in a
       webdynpro component mark the view as interface view and use it in
       another component. It's similar to using a include in a program.
       A Interface view of the component can be used in any no of components.
       this concept supports the reusuability of the views.


16) Sequence of Webdynpro Events:
      Ex: WDDOINIT,WDMODIFYVIEW,WDAFTERACTION,
      WDBEFOREACTION etc
       Sequence: WDDOINIT of the component controller,
                       WDDOINIT of the Window Controller,
                       WDDOINIT of the View Controller,
      WDMODIFYVIEW(On Input/Display on any UI Element).
      WDBEFOREACTION(Method for validation of user input,
      Once the user action happens on the UI)
      WDAFTERACTION(Method for non-action specific operations
       before Navigation)
      WDDOEXIT( Exit from the View/Window/Component Controller)


17) Can a Component have Multiple Applications
       Yes, For a given webdynpro component any no of applications can be
       created. Applications are similar to transactions in SAP.
       You can associate different Interface views of the component to
       create different applications using the same component.


18) How do you launch a Webdynpro Application from a Transaction
      Refer to the previous blog Calling webdynpro application from a Transaction
      URL: http://sapabapwebdynpro.blogspot.com/2011/04/call-abap-webdynpro-application-from-r3.html


19) How do you Navigate between two Webdynpro Components
      You can use Interface views to navigate between components or create a navigation class and
      do a explicit call.


20) Creating a tree in Webdynpro
      Tree UI element is used to create Tree  in Webdynpro.
      Tree can be defined as part of the table column.


21) Usage of Exit Plug in a Webdynpro Window
      Exit plugs are outbound plugs used to close the webdynpro application.
      they can be called from the view which are embedded in the window
      Note: Exit plugs won't work in portal environment.
      Exit plugs can also be used to pass the call to another URL.
      Here is the sample code snippet of the exit plug call:
      method onexit .

        data url type string.
        data close_window type wdy_boolean.
        url = 'url_name'.
        close_window = abap_false.
        wd_this->fire_to_exit_plg( url = url
                                                 close_window = close_window ).
      endmethod.



Other Interview Questions 

1. Can we write the code both call transaction and session method in single program?

Ans. Yes it is possible to write call transaction and session in one program.

2. Which BDC you prefer?
Ans. If we want to transfer large amount of data and when we need to use more than one transaction code we prefer session method. For small or less amount of data and for single transaction use call transaction.
(This is more genric answer but you can add more on to this if you have worked on  BDC)

3. When u prefer LSMW?
Ans. When we need to update medium amount of data we use LSMW. LSMW is also used when the person like functional consultant has less programming language.

5. Difference between .include and  .append?
Ans.
Include structure allows to add one or more structure into structure or table.Also placed positioning anywhere. Upto 6 include structure can be used in a table.
Append structure can be placed only at the end of a structure or table which also stops further insertion of fields.Only one append structure can be used

6. Preformance techniques
Ans.
1. The sequence of fields must be same as per database table
2. During writing select query write all fields in sequence as per database table.
3. Never write select statements inside loop….endloop.
4. Use st05 SQL trace, se30 run time analysis, code inspector, slin,etc.
5. Use select single * statement instead of select *
6. Always use primary key
7. Use binary search but before using binary search sort that table.

7. How to debug sapscripts ?
Ans.
Two ways to debug sapscript . first way is goto SE 71 and from menu bar select Utilities->activate debugger .then goto SE38 execute the print program ,it automatically goes to debugging mode …..the other way is , run the program RSTXDBUG in se 38 . execute it . a message will show that debugger is activated .now open the print program in se 38 …u vll notice that the print prgm is automatically diverted to debugging mode.

8. What is partner selection?
Ans. This concept is mainly used in IDOC where u select the partner profile using Tcode We20 .with  Tcode SM59 you create RFC(remote function call) to create communication link to a remote system.

10. What is occurs in internal table?
Ans. Occurs addition to the Declaration will give initial size to that table.occur statement allocates 8kb of memory to the internal table.

11. What is page window?
Ans : page window is nothing but a container of a page ,which uniquely identifies a set of data …for example while creating invoice …we create logo window , billing document header window , customer window , terms and condition window etc …

12. What is the difference between scrolling a table horizontally and vertically..??
Ans: In table control when you scroll a table vertically presentation server needs to call application server to fetch the next record and display in the table while in case of horizontal scroll there is no need to call application server.

13. What are Field Groups?
Ans: A group that combines several fields fewer than one name, at runtime, the INSERT command is used to define which data fields are assigned to which field group are called Field Groups. It should always be a HEADER field group that defines how the extracted data will be sorted; the fields grouped under the HEADER field group sort the data.

14. List the events in ABAP/4 Language?
Ans: The events in ABAP/4 are load of program ,Initialization, Selection Screen, Start of Selection, End of Selection, Top of page, Line selection, User command, End, First.

15.How the values will be passed to RFC Function module PassbyValue or Passbyreference?
Ans: always Pass by Value.
RFC is Remote Function call so it can’t access the values with Pass by reference.

16. Buffering concept usage?
Ans: There are three type of buffer
1 single record
2 generic buffer
3 full buffer
Buffering is use for improve performance. it improves performance  10 to 100 times more

17. Select up to 1 row and select single difference ?
Ans:  Select single fetches first matching record. If more than one matching records are there then only the first matching record will be considered other records will not be taken into account. Where as select up to 1 rows will fetch all the matching records from the database.(Again it will assign only One Record to the internal table/Work area)

18. What are the different buffering methods?
There are two different buffering methods
The system ensures that data transfer between the R/3 System and the database system is as efficient as possible. To do this, it uses the following techniques:
Table buffering: The program accesses data from the buffer of the application server.
Database request buffering: Individual database entries are not read or passed to the database until required by an OPEN SQL statement.

19. Different types of locks?
v  Read lock (shared lock)
Protects read access to an object. The read lock allows other transactions read access but not write access to the locked area of the table.
v  o Write lock (exclusive lock)
Protects write access to an object. The write lock allows other transactions neither read nor write access to the locked area of the table.
v  o Enhanced write lock (exclusive lock without cumulation)
Works like a write lock except that the enhanced write lock also protects from further accesses from the same transaction.

20. CHAIN END CHAIN?
Ans: Chain and end chain are used for multiple field validation in Module pool programming .It is written inside the screen flow logic.

21.How to Debug RFC Function module?
Ans:
SE38 –> Utilities –> Settings –> ABAP Editor –> Debugging
Activate the external debugging and choose the New Debugger option in ABAP debugger.
Go to the particular place in the code and put break point, pop will appear then choose the HTTP break point.
If you are triggering the RFC from SAP portal make sure that both the user ID should be same
If the users are different then provide the XI/Portal User ID in the users field.

22.Why sapscripts are client dependent and smartforms are client independent.?
Ans-: Smartforms create its own function module so it doesn’t need to transport the request through SCC1.As all the Development Object are stored in client independent tables. Whereas Script doesn’t generate  any function module while executing so we need to transport the request number through SCC1.Sap script is stroed in side the client depended table as a TEXT.so sapscripts are client dependent and smartforms are client independent.

23. Difference between user exit and BADIs?
Ans: User exit is for single implementation and it is procedural approach while BADIs are for multiple implementation and object oriented approach.
Multiple implementation means Reusability… because we use OOps Concepts for BADI.

24. Control break events in ABAP:-
1. AT-FIRST: This is used when we want to execute the statements before records are processed.
2. AT-LAST: This event is used when we want to execute the statements after all records are processed.
3. AT-NEW: This event is used when we want to execute the statement before group of records are processed.
4. AT-END: This event is used when we want to execute the statements after processing of group of records.

25.I am uploading 100 records out of which say 59th record has error so what will happen if i am using synchronous or asynchronous method of BDC? Can we update the database using local update mode how?

26. Suppose i am writing following code then what will be output?
LOAD-OF-PROGRAM.
WRITE:/”HELLO”.
Ans:  HELLO
(Explain the importance of LOAD-OF-PROGRAM Event.If you dont know Tell the interviewer as this event is used in such cases when you want to clear sum buffers or something Before calling that Program)

27. What is TMG?
Ans. TMG stands for Table Maintenance generator. It is a tool available in abap by which we can add or delete multiple records at a time and it is executed or triggered by the transaction code SM30.

28. Difference between select option and ranges ?
Ans. The main difference between select option and ranges is that ranges implicitly or automatically creates internal table with fields like OPTION,LOW,HIGH,SIGN,etc . Where as in case of select option we have to explicitly create internal table.
When u declares a select options it will implicitly declare an internal table (ranges) for you.
While using RANGES syntax u can declare internal table explicitly.
The only need of declaring ranges is when you r not taking input from the user but you want make limit based selection at that time it will be use full e.g. SELECT ** from ** where MATNR in val_range.
here u can use select-option or ranges : val_range.

29. is it possible to bring select option in module pool screens?
Ans.Create a SELECT-OPTIONS in module pool screen using two methods as shown.
Method 1:—-
a) Create a subscreen area in your screen layout where you want to create the select options.
b) In the top include of your module pool program declare a selection screen as a subscreen e.g.
SELECTION-SCREEN BEGIN OF SCREEN 100 AS SUBSCREEN.
select-options s_matnr for mara-matnr.
SELECTION-SCREEN END OF SCREEN.
c) In the PBO and PAI of the main screen where the select options needs to be created do a call subscreen of the above screen (100).
CALL SUBCREEN sub_area INCLUDING
This CALL SUBSCREEN statement is necessary for transport of values between screen and program.
Note: All validations of the selection screen fields e.g. the s_matnr field created above should be done in selection screen events like AT SELECTION-SCREEN etc and not in PAI. These selection screen validations etc should be done in the top include only.
Method 2:——-
a) Create 2 separate fields in your screen layout – one for the low value and one for the high value. Insert an icon beside the high value which will call the multiple selections popup screen on user command. Use function module COMPLEX_SELECTIONS_DIALOG to achieve this.
continued ……
struc_tab_and_field-fieldname = con_cust. ” ‘KUNNR’
struc_tab_and_field-tablename = con_kna1. ” ‘KNA1′.
CALL FUNCTION ‘COMPLEX_SELECTIONS_DIALOG’ EXPORTING*
TITLE = ‘ ‘
text = g_titl1 ” ‘Customers’
tab_and_field = struc_tab_and_field
TABLES RANGE = rng_kunnr
EXCEPTIONS
NO_RANGE_TAB = 1
CANCELLED = 2
INTERNAL_ERROR = 3
INVALID_FIELDNAME = 4
OTHERS = 5.
IF NOT rng_kunnr[] IS INITIAL.
* Read the very first entry of the range table and pass it to
* dynpro screen field
*READ TABLE rng_kunnr INDEX 1.
IF sy-subrc = 0.
g_cust = rng_kunnr-low.
ENDIF.
ENDIF.
You can use the return table rng_kunnr to populate your own internal range table with the values entered by the user. Basically here you are just simulating the work of a select-options parameter by module pool screen elements.
30.how we can retrive data using secondary index.explain with simple example
Ans:  First create secondary indexes on required fields of a particular database table.
We can create one primary index and 15 secondary indexes.Once the respective secondary indexes are created write select queries and within select queries specify secondary indexes field name with where clause.

31.How can we handle table control in BDC?
Ans.We can handle table control using line index
Line index indicates which line of Table control is to be use for BDC transaction
Ex -
perform bdc_field using ‘RC29K-AUSKZ(01)’
Indicates 1st line of table control is going to be used for transaction which is Line index of Table Control

32. If i want to execute a BDC program only in background not in foreground is there any option for this?
Ans.The sm37 transaction can be used for running a program in the background. Also in the session method while processing the session you can specify the processing type as background or foreground.

33.How Can We upload a text file having Delimiters in to Legacy System
Ans.For up loading text file we use the pre-defined FM gui_upload. in that FM we have the parameter has_field_seperator for that we assign the default delimiter ‘x’.
HAS_FIELD_SEPERATOR ‘X’
‘X’ can provide the Whatever delimiter we used in flat file for separation.

34. What is the land scape in sap.
Ans. In every organisation sap landscape involves three servers viz, Development server, Quality server and Production server. Whatever new development we do as per clients requirement is done in development server. Later to test the developed object we move it to quality server for testing and finally once everything goes clear then the object is moved to production server ,production server data is ready for final business use.

35. Workbench request are client dependent or client independent
Ans. Workbench request are client independent.
(Common Man Workbench request holds the Program , FM etc…. How it can be Client Dependent!!!!)

36. Tell me about workbench request and customization requests.
Ans.Workbench (ABAP Dev) request is client independent when you import it into one system it reflact it in all client in same system, but customized request has to import in that client perticular client where it is created, actually it is client dependent.
Other  Interview questions…

SAP SCRIPTS & FORMS

1. Can we write the code/program inside sap script?
2. How will u create sapscripts & smartforms in multiple language?
3.How to execute sap script & smart forms in Background?
4.How to do total & subtotal in scripts & forms?
=================================================

DATA DICTIONARY
1.Apart from .include & .append how will u do table enhancement?
2.what r the events of table maintainence generator?
3.what will happen if i use projection view and maintainence view together?
4. I created ZEMP table now i want to add more data but prev. data should not disturb how can i do this?
=====================================================

REPORTS
1.How will u print footers in alv report?
2.How will u edit fields from output list of alv?
====================================================

BDC
1.what r the fields u took during recording for mmo1,me21n?
2.If u want to do bdc for xd01 explain me how will be the flow?
=================================================

user exits
1.what r enhancement points?
2.How to write customer exits?
3.what is routine? how it is different from user exits?

Share this

Related Posts