Friday, July 27, 2007

Basic .NET Framework

(A) What is Manifest?Assembly metadata is stored in Manifest. Manifest contains all the metadata needed to do the following things (See Figure Manifest View for more details):


· Version of assembly


· Security identity


· Scope of the assembly


· Resolve references to resources and classes.


· The assembly manifest can be stored in either a PE file (an .exe or .dll) with Microsoft intermediate language (MSIL) code or in a stand-alone PE file that contains only assembly manifest information.



Tuesday, July 24, 2007

Basic .NET Framework



(B)What is a IL? Twist :- What is MSIL or CIL , What is JIT?(IL)Intermediate Language is also known as MSIL (Microsoft Intermediate Language) or CIL(Common Intermediate Language). All .NET source code is compiled to IL. This IL is then converted to machine code at the point where the software is installed, or at run-time by a Just-In-Time (JIT) compiler.

(B)What is a CLR? Full form of CLR is Common Language Runtime and it forms the heart of the .NET framework. All Languages have runtime and its the responsibility of the runtime to take care of the code execution of the program. For example VC++ has MSCRT40.DLL,VB6 has MSVBVM60.DLL,Java has Java Virtual Machine etc. Similarly .NET has CLR. Following are the responsibilities of CLR

  • Garbage Collection:- CLR automatically manages memory thus eliminating memory leaks. When objects are not referred GC automatically releases those memories thus providing efficient memory management.
  • Code Access Security :- CAS grants rights to program depending on the security configuration of the machine. Example the program has rights to edit or create a new file but the security configuration of machine does not allow the program to delete a file. CAS will take care that the code runs under the environment of machines security configuration.
  • Code Verification :- This ensures proper code execution and type safety while the code runs. It prevents the source code to perform illegal operation such as accessing invalid memory locations etc.

(B)What is a CTS? In order that two language communicate smoothly CLR has CTS (Common Type System).Example in VB you have “Integer” and in C++ you have “long” these data types are not compatible so the interfacing between them is very complicated. In order to able that two different languages can communicate Microsoft introduced Common Type System. So “Integer” data type in VB6 and “int” datatype in C++ will convert it to System.int32 which is datatype of CTS. CLS which is covered in the coming question is subset of CTS. Note: If you have undergone COM programming period interfacing VB6 application with VC++ application was a real pain as the datatype of both languages did not have a common ground where they can come and interface, by having CTS interfacing is smooth.

(B)What is a CLS(Common Language Specification)?This is a subset of the CTS which all .NET languages are expected to support. It was always a dream of Microsoft to unite all different languages in to one umbrella and CLS is one step towards that. Microsoft has defined CLS which are nothing but guidelines that language to follow so that it can communicate with other .NET languages in a seamless manner.

(B)What is a Managed Code? Managed code runs inside the environment of CLR i.e. .NET runtime. In short all IL are managed code. But if you are using some third party software example VB6 or VC++ component they are unmanaged code as .NET runtime (CLR) does not have control over the source code execution of the language.

(B)What is a Assembly?

  • Assembly is unit of deployment like EXE or a DLL.
  • An assembly consists of one or more files (dlls, exe’s, html files etc.), and represents a group of resources, type definitions, and implementations of those types. An assembly may also contain references to other assemblies. These resources, types and references are described in a block of data called a manifest. The manifest is part of the assembly, thus making the assembly self-describing.
  • An assembly is completely self-describing. An assembly contains meta data information, which is used by the CLR for everything from type checking and security to actually invoking the components methods. As all information is in the assembly itself, it is independent of registry. This is the basic advantage as compared to COM where the version was stored in registry.
  • Multiple versions can be deployed side by side in different folders. These different versions can execute at the same time without interfering with each other. Assemblies can be private or shared. For private assembly deployment, the assembly is copied to the same directory as the client program that references it. No registration is needed, and no fancy installation program is required.
  • When the component is removed, no registry cleanup is needed, and no uninstall program is required. Just delete it from the hard drive.
  • In shared assembly deployment, an assembly is installed in the Global Assembly Cache (or GAC). The GAC contains shared assemblies that are globally accessible to all .NET applications on the machine.

(A) What are the different types of Assembly? There are two types of assembly Private and Public assembly. A private assembly is normally used by a single application, and is stored in the application's directory, or a sub-directory beneath. A shared assembly is normally stored in the global assembly cache, which is a repository of assemblies maintained by the .NET runtime. Shared assemblies are usually libraries of code which many applications will find useful, e.g. Crystal report classes which will be used by all application for Reports.

(B) What is NameSpace? Namespace has two basic functionality :-

  • NameSpace Logically group types, example System. Web.UI logically groups our UI related features.
  • In Object Oriented world many times its possible that programmers will use the same class name. By qualifying NameSpace with class name this collision can be avoided.

(B) What is Difference between NameSpace and Assembly? Following are the differences between namespace and assembly :

  • Assembly is physical grouping of logical units. Namespace logically groupsclasses.vNamespace can span multiple assembly.

(A)If you want to view a Assembly how do you go about it ? Twist : What is ILDASM ?When it comes to understanding of internals nothing can beat ILDASM. ILDASM basically convertsthe whole exe or dll in to IL code. To run ILDASM you have to go to "C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Bin". Note that I had v1.1 you have to probably change it depending on the type of framework version you have. If you run IDASM.EXE from the path you will be popped with the IDASM exe program as shown in figure ILDASM. Click on file and browse to the respective directory for the DLL whose assembly you want to view. After you select the DLL you will be popped with a tree view details of the DLL as shown in figure ILDASM. On double clicking on manifest you will be able to view details of assembly, internal IL code etc.



Monday, July 23, 2007

Points to remember

• One of the first questions asked during interview is “Can you say something about yourself ”?
• Can you describe about your self and what you have achieved till now?
• Why do you want to leave the current company?
• Where do you see yourself after three years?
• What are your positive and negative points?
• How much do you rate yourself in the technology you are appearing for the interview in one out of ten?
• Are you looking for onsite opportunities? (Be careful do not show your desperation of abroad journeys)
• Why have you changed so many jobs? (Prepare a decent answer do not blame companies and individuals for your frequent change).
• Never talk for more than 1 minute straight during interview.
• Have you worked with previous version of SQL Server?
• Would you be interested in a full time Database administrator job?
• Do not mention client names in resume. If asked say that it’s confidential which brings ahead qualities like honesty
• When you make your resume keep your recent projects at the top.
• Find out what the employer is looking for by asking him questions at the start of interview and best is before going to interview. Example if a company has projects on server products employer will be looking for BizTalk, CS CMS experts.
• Can you give brief about your family background?
• As you are fresher do you think you can really do this job?
• Have you heard about our company ? Say five points about our company? Just read at least once what company you are going for?
• Can you describe your best project you have worked with?
• Do you work on Saturday and Sunday?
• Which is the biggest team size you have worked with?
• Can you describe your current project you have worked with?
• How much time will you need to join our organization? What’s notice period for your current company?
• What certifications have you cleared?
• Do you have pass port size photos, last year mark sheet, previous companies employment letter, last months salary slip, pass port and other necessary documents.
• What is the most important thing that motivates you?
• Why you want to leave the previous organization?
• Which type of job gives you greatest satisfaction?
• What is the type of environment you are looking for?
• Do you have experience in project management?
• Do you like to work as a team or as individual?
• Describe your best project manager you have worked with?
• Why should I hire you?
• Have you been ever fired or forced to resign?
• Can you explain some important points that you have learnt from your past project experiences ?
• Have you gone through some unsuccessful projects, if yes can you explain why did the project fail?
• Will you be comfortable with location shift? If you have personal problems say no right at the first stage.... or else within two months you have to read my book again.
• Do you work late nights? Best answer if there is project deadline yes. Do not show that it’s your culture to work during nights.
• Any special achievements in your life till now...tell your best project which you have done best in your career.
• Any plans of opening your own software company...Beware do not start pouring your bill gate’s dream to him.....can create a wrong impression.

Sunday, July 22, 2007

Salary Negotiation

Ok that’s what we all do it for money… not everyone. This is probably the weakest area for techno savvy guys. They are not good negotiators. I have seen so many guys at the first instance they will smile and say “NEGOTIABLE SIR”. So here are some points:-

• Do a study of what is the salary trend? For instance have some kind of baseline. For example what is the salary trend on number of year of experience? Discuss this with your friends out.
• Do not mention your expected salary on the resume?
• Let the employer first make the salary offer. Try to delay the salary discussion till the end.
• If they say what you expect?, come with a figure with a little higher end and say negotiable. Remember never say negotiable on something which you have aimed, HR guys will always bring it down. So negotiate on AIMED SALARY + some thing extra.
• The normal trend is that they look at your current salary and add a little it so that they can pull you in. Do your homework my salary is this much and I expect this much so whatever it is now I will not come below this.
• Do not be harsh during salary negotiations.
• It’s good to aim high. For instance I want 1 billion dollars / month but at the same time be realistic.
• Some companies have those hidden cost attached in salary clarify that rather to be surprised at the first salary package.
• Many of the companies add extra performance compensation in your basic which can be surprising at times. So have a detail break down. Best is to discuss on hand salary rather than gross.
• Talk with the employer in what frequency does the hike happen.
• Take everything in writing, go back to your house and have a look once with a cool head is the offer worth it of what your current employer is giving.
• Do not forget once you have job in hand you can come back to your current employer for negotiation so keep that thing in mind.
• Remember the worst part is cribbing after joining the company that your colleague is getting more. So be careful while interview negotiations or be sportive to be a good negotiator in the next interview.
• One very important thing is that the best negotiation ground is not the new company where you are going but the old company which you are leaving. So once you have offer on hand get back to your old employee and show them the offer and then make your next move. It’s my experience that negotiating with the old employer is easy than with the new one….Frankly if approached properly rarely any one will say no. Just do not be aggressive or egoistic that you have an offer on hand. Top of all some time some things are worth above money :-

JOB SATISFACTION. So whatever you negotiate if you think you can get JOB SATISFACTION aspect on higher grounds go for it. I think its worth more than money.

Resume Preparation Guidelines

Before even the interviewer meets you he will first meet your resume. Interviewer looking at your resume is almost a 20% interview happening with out you knowing it. I was always a bad guy when it comes to resume preparation. But when I looked at my friend’s resume they where gorgeous. Now that I am writing series of book on interviews I thought this will be a good point to put in. You can happily skip it if you are confident about your resume. There is no hard and fast rule that you have to follow the same pattern but just see if these all check list are attended.

Use plain text when you are sending resumes through email. For instance you sent your resume using Microsoft word and what if the interviewer is using Linux he will never be able to read your resume. You can not be sure both wise, you sent your resume in Word 2000 and the guy has Word 97.

Attach a covering letter it really impresses and makes you look traditionally formal. Yes, even if you are sending your CV through email send a covering letter. Check list of content you should have in your resume:-

• Start with an objective or summary, for instance, “Working as a Senior Database administrator for more than 4 years. Implemented quality web based application. Follow the industry’s best practices and adhered and implemented processes, which enhanced the quality of technical delivery. Pledge to deliver the best technical solutions to the industry.”
• Specify your Core strengths at the start of the resume by which the interviewer can make a quick decision are you eligible for the position. For example :-

1. Looked after data mining and data warehousing department independently. Played a major role in query optimization.
2. Worked extensively in database design and ER diagram implementation.
3. Well versed with CMMI process and followed it extensively in projects.
4. Looking forward to work on project manager or senior manager position. This is also a good position to specify your objective or position which makes it clear to the interviewer that should he call you for an interview. For instance, if you are looking for senior positions specify it explicitly ‘looking for this job profile’. Any kind of certification like MCP, MCSD etc you can make it visible in this section.60

• Once you have specified briefly your goals and what you have done its time to specify what type of technology you have worked with. For instance RDBMS, TOOLS, Languages, Web servers, process (Six sigma, CMMI).
• After that you can make a run through of your experience company wise that is what company you have worked with, year / month joining and year / month left. This will give an overview to the interviewer what type of companies you have associated your self. Now its time to mention all your projects you have worked till now. Best is to start in descending order that is from your current project and go backwards. For every project try to put these things :-

• Project Name / Client name (It’s sometimes unethical to mention clients name; I leave it to the readers).
• Number of team members.
• Time span of the project.
• Tools, language, RDBMS and technology used to complete the project.
• Brief summary of the project. Senior people who have huge experience will tend to increase there CV with putting in summary for all project. Best for them is to just put description of the first three projects in descending manner and rest they can say verbally during interview. I have seen CV above 15 pages… I doubt who can read it.
• Finally comes your education and personal details.
• Trying for onsite, do not forget to mention your passport number.
• Some guys tend to make there CV large and huge. I think an optimal size should be not more than 4 to 5 pages.
• Do not mention your salary in CV. You can talk about it during interview with HR or the interviewer.
• When you are writing your summary for project make it effective by using verbs like managed a team of 5 members, architected the project from start to finish etc. It brings huge weight.
• This is essential very essential take 4 to 5 Xerox copies of your resume you will need it now and then.
• Just in case take at least 2 passport photos with you. You can escape it but many times you will need it.
• Carry all your current office documents specially your salary slips and joining letter.

Wednesday, July 11, 2007

SAP Interview Questions



1. Can you create a table with fields not referring to data elements?

YES. eg:- ITAB LIKE SPFLI.here we are referening to a data object(SPFLI) not data element.

What are the different types of data dictionary objects? tables, structures, views, domains, data elements, lock objects, Match code objects.

2. What should be the approach for writing a BDC program?

STEP 1: CONVERTING THE LEGACY SYSTEM DATA TO A FLAT FILE to internal table CALLED "CONVERSION".
STEP 2: TRANSFERING THE FLAT FILE INTO SAP SYSTEM CALLED "SAP DATA TRANSFER".
STEP 3: DEPENDING UPON THE BDC TYPE
i)call transaction(Write the program explicity)
ii) create sessions (sessions are created and processed.if success data will transfer).

3. What are the problems in processing batch input sessions and How is batch input process different from processing online?

PROBLEMS:
i) If the user forgets to opt for keep session then the session will be automatically removed from the session queue(log remains). However if session is processed we may delete it manually.
ii)if session processing fails data will not be transferred to SAP database table.

4. What does an extract statement do in the ABAP program?

Once you have declared the possible record types as field groups and defined their structure, you can fill the extract dataset using the following statements: EXTRACT. When the first EXTRACT statement occurs in a program, the system creates the extract dataset and adds the first extract record to it. In each subsequent EXTRACT statement, the new extract record is added to the dataset EXTRACT HEADER. When you extract the data, the record is filled with the current values of the corresponding fields. As soon as the system has processed the first EXTRACT statement for a field group , the structure of the corresponding extract record in the extract dataset is fixed. You can no longer insert new fields into the field groups and HEADER. If you try to modify one of the field groups afterwards and use it in another EXTRACT statement, a runtime error occurs. By processing EXTRACT statements several times using different field groups, you fill the extract dataset with records of different length and structure. Since you can modify field groups dynamically up to their first usage in an EXTRACT statement, extract datasets provide the advantage that you need not determine the structure at the beginning of the program.

5. Can a transparent table exist in data dictionary but not in the data base physically?

NO. TRANSPARENT TABLE DO EXIST WITH THE SAME STRUCTURE BOTH IN THE DICTIONARY AS WELL AS IN THE DATABASE,EXACTLY WITH THE SAME DATA AND FIELDS.

6. What is the step by step process to create a table in data dictionary?

step 1: creating domains(data type, field length, range).
step 2: creating data elements(properties and type for a table field).
step 3: creating tables(SE11).

7. What is the typical structure of an ABAP/4 program?

HEADER ,BODY,FOOTER.

8. A situation: An ABAP program creates a batch input session. We need to submit the program and the batch session in back ground. How to do it?

go to SM36 and create background job by giving job name, job class and job steps (JOB SCHEDULING)

9. What are the domains and data elements?

DOMAINS : FORMAL DEFINITION OF THE DATA TYPES.THEY SET ATTRIBUTES SUCH AS DATA TYPE,LENGTH,RANGE. DATA ELEMENT : A FIELD IN R/3 SYSTEM IS A DATA ELEMENT.

10. What is the alternative to batch input session?

Call transaction.

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

13. What is the advantage of structures? How do you use them in the ABAP programs?

Adv:- GLOBAL EXISTANCE(these could be used by any other program without creating it again).

14. How many types of tables exists and what are they in data dictionary?

4 types of tables
i)Transparent tables - Exists with the same structure both in dictionary as well as in database exactly with the same data and fields. Both Opensql and Nativesql can be used. ii)Pool tables &
iii)Cluster tables - These are logical tables that are arranged as records of transparent tables. one cannot use native sql on these tables (only open sql).They are not managable directly using database system tools.
iv)Internal tables - .?

  1. What is ERP? ERP is a package with the techniques and concepts for the integrated management of business as a whole, for effective use of management resources, to improve the efficiency of an enterprise. Initially, ERP was targeted for manufacturing industry mainly for planning and managing core business like production and financial market. As the growth and merits of ERP package ERP software is designed for basic process of a company from manufacturing to small shops with a target of integrating information across the company.
  2. Different types of ERP? - SAP, BAAN, JD Edwards, Oracle Financials, Siebel, PeopleSoft. Among all the ERP’s most of the companies implemented or trying to implement SAP because of number of advantages aver other ERP packages.
  3. What is SAP? - SAP is the name of the company founded in 1972 under the German name (Systems, Applications, and Products in Data Processing) is the leading ERP (Enterprise Resource Planning) software package.
  4. Explain the concept of “Business Content” in SAP Business Information Warehouse? - Business Content is a pre-configured set of role and task-relevant information models based on consistent Metadata in the SAP Business Information Warehouse. Business Content provides selected roles within a company with the information they need to carry out their tasks. These information models essentially contain roles, workbooks, queries, InfoSources, InfoCubes, key figures, characteristics, update rules and extractors for SAP R/3, mySAP.com Business Applications and other selected applications.
  5. Why do you usually choose to implement SAP? - There are number of technical reasons numbers of companies are planning to implement SAP. It’s highly configurable, highly secure data handling, min data redundancy, max data consistency, you can capitalize on economics of sales like purchasing, tight integration-cross function.
  6. Can BW run without a SAP R/3 implementation? - Certainly. You can run BW without R/3 implementation. You can use pre-defined business content in BW using your non-SAP data. Here you simply need to map the transfer structures associated with BW data sources (InfoCubes, ODS tables) to the inbound data files or use 3rd part tool to connect your flat files and other data sources and load data in BW. Several third party ETL products such as Acta, Infomatica, DataStage and others will have been certified to load data in BW.
  7. What is IDES? - International Demonstration and Education System. A sample application provided for faster learning and implementation.
  8. What is WF and its importance? - Business Work Flow: Tool for automatic control and execution of cross-application processes. This involves coordinating the persons involved, the work steps required, the data, which needs to be processed (business objects). The main advantage is reduction in throughput times and the costs involved in managing business processes. Transparency and quality are enhanced by its use.
  9. What is SAP R/3? - A third generation set of highly integrated software modules that performs common business function based on multinational leading practice. Takes care of any enterprise however diverse in operation, spread over the world. In R/3 system all the three servers like presentation, application server and database server are located at different system.
  10. 24. What are presentation, application and database servers in SAP R/3? - The application layer of an R/3 System is made up of the application servers and the message server. Application programs in an R/3 System are run on application servers. The application servers communicate with the presentation components, the database, and also with each other, using the message server. All the data are stored in a centralized server. This server is called database server.
    25. What should be the approach for writing a BDC program? - Convert the legacy system data to a flat file and convert flat file into internal table. Transfer the flat file into sap system called “sap data transfer”. Call transaction(Write the program explicitly) or create sessions (sessions are created and processed ,if success data will transfer).
    26. Explain open SQL vs native SQL? - ABAP Native SQL allows you to include database-specific SQL statements in an ABAP program. Most ABAP programs containing database-specific SQL statements do not run with different databases. If different databases are involved, use Open SQL. To execute ABAP Native SQL in an ABAP program, use the statement EXEC. Open SQL (Subset of standard SQL statements), allows you to access all database tables available in the R/3 System, regardless of the manufacturer. To avoid conflicts between database tables and to keep ABAP programs independent from the database system used, SAP has generated its own set of SQL statements known as Open SQL.
    27. What are datasets? - The sequential files (processed on application server) are called datasets. They are used for file handling in SAP.
    28. What are internal tables check table, value table, and transparent table? - Internal table: It is a standard data type object, which exists only during the runtime of the program. Check table: Check table will be at field level checking. Value table: Value table will be at domain level checking ex: scarr table is check table for carrid. Transparent table: - Exists with the same structure both in dictionary as well as in database exactly with the same data and fields.
    29. What are the major benefits of reporting with BW over R/3? Would it be sufficient just to Web-enable R/3 Reports? - Performance — Heavy reporting along with regular OLTP transactions can produce a lot of load both on the R/3 and the database (cpu, memory, disks, etc). Just take a look at the load put on your system during a month end, quarter end, or year-end — now imagine that occurring even more frequently. Data analysis — BW uses a Data Warehouse and OLAP concepts for storing and analyzing data, where R/3 was designed for transaction processing. With a lot of work you can get the same analysis out of R/3 but most likely would be easier from a BW.
    30. How can an ERP such as SAP help a business owner learn more about how business operates? - In order to use an ERP system, a
    business person must understand the business processes and how they work together from one functional area to the other. This knowledge gives the student a much deeper understanding of how a business operates. Using SAP as a tool to learn about ERP systems will require that the
    people understand the business processes and how they integrate.
    31. What is the difference between OLAP and Data Mining? - OLAP - On line Analytical processing is a reporting tool configured to understand your database schema ,composition facts and dimensions . By simple point-n-clicking, a user can run any number of canned or user-designed reports without having to know anything of SQL or the schema. Because of that prior configuration, the OLAP engine “builds” and executes the appropriate SQL. Mining is to build the application to specifically look at detailed analyses, often algorithmic; even more often misappropriate called “reporting.
  11. 32. What is “Extended Star Schema” and how did it emerge? - The Star Schema consists of the Dimension Tables and the Fact Table. The Master Data related tables are kept in separate tables, which has reference to the characteristics in the dimension table(s). These separate tables for master data is termed as the Extended Star Schema.
    33. Define Meta data, Master data and Transaction data - Meta Data: Data that describes the structure of data or MetaObjects is called Metadata. In other words data about data is known as Meta Data. Master Data: Master data is data that remains unchanged over a long period of time. It contains information that is always needed in the same way. Characteristics can bear master data in BW. With master data you are dealing with attributes, texts or hierarchies. Transaction data: Data relating to the day-to-day transactions is the Transaction data.
    34. Name some drawbacks of SAP - Interfaces are huge problem, Determine where master data resides, Expensive, very complex, demands highly trained staff, lengthy implementation time.
    35. What is Bex? - Bex stands for Business Explorer. Bex enables end user to locate reports, view reports, analyze information and can execute queries. The queries in workbook can be saved to there respective roles in the Bex browser. Bex has the following components: Bex Browser, Bex analyzer, Bex Map, Bex Web.
    36. What are variables? - Variables are parameters of a query that are set in the parameter query definition and are not filled with values until the queries are inserted into workbooks. There are different types of variables which are used in different application: Characteristics variables, Hierarchies and hierarchy node, Texts, Formulas, Processing types, User entry/Default type, Replacment Path.
    37. What is AWB?. What is its purpose? - AWB stands for Administrator WorkBench. AWB is a tool for controlling, monitoring and maintaining all the processes connected with data staging and processing in the business information whearhousing.
    38. What is the significance of ODS in BIW? - An ODS Object serves to store consolidated and debugged transaction data on a document level (atomic level). It describes a consolidated dataset from one or more InfoSources. This dataset can be analyzed with a BEx Query or InfoSet Query. The data of an ODS Object can be updated with a delta update into InfoCubes and/or other ODS Objects in the same system or across systems. In contrast to multi-dimensional data storage with InfoCubes, the data in ODS Objects is stored in transparent, flat database tables.
    39. What are the different types of source system? - SAP R/3 Source Systems, SAP BW, Flat Files and External Systems.
    40. What is Extractor? - Extractors is a data retrieval mechanisms in the SAP source system. Which can fill the extract structure of a data source with the data from the SAP source system datasets. The extractor may be able to supply data to more fields than exist in the extract structure.

Tuesday, July 10, 2007

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.
  1. What is a breakpoint ?
    Breakpoint is used to help the user scrutinize how the system behaves at a certain point in the ABAP code. At that point the system goes into debug mode. This breakpoint is useful in investigating how routines and requirements function. By accessing the routine source code and setting a breakpoint at its execution point, a user can follow the routine through each step.

25. What is a CATT ?
CATT means Computer Aided Test Tool. It is SAP's tool for processing transactions automatically. CATT is used in bringing in data, such as a mass maintenance of the material master in EXCEL, from an application to modify master data.

26. What is a user exit ?
User exit is a point in an SAP program at which a customer's own program can be called. User exits allow developers to access program components and data objects in the standard system. There are two types of user exits -
user exits that use includes (customer enhancements that are called from the program)
and user exits that use tables, which are used and managed directly via customizing.

27. What is a client ?
Client in a SAP work environment is the highest organizational structure. Many clients can be found in each system. QA (quality analysis) and Development are clients in Training and Production system.

28. What is an authorization ?
Authorization gives an SAP user permission to perform a given set of transactions.

29. Who is a user ?
Anyone who is given access to the SAP system by the system (basis) administrator is known as a user.

30. What is a variant ?
When executing a program, different selection parameters may be used. These selection parameters are stored in the SAP system as variants.

31. What is a SQL trace ?
SQL trace records all open, prepare, fetch, execute and actual SQL statements and the duration time for each step in a procedure.

32. What is master data ?
Master data is used in an SAP system to represent the basic components of a procedure and to ensure data integrity throughout the SAP business process. This gaurantees that one common record is accessed for different procedures. Example - a customer master record may be referenced by more than one functional module : FI (financial) and SD (sales and distribution).

  1. What is the IMG ?
    IMG is Implementation Guide that SAP system developers use to customize the client they are working in.
  2. What is ASAP ?
    ASAP is Accelerated SAP, a project management software tool that is used on SAP implementations to guide the project through different phases. ASAP can take a project from the designing of the "blueprint" through to "going live". Accelerated SAP is SAP’s total process-oriented solution for accelerated implementation and continuous optimization of R/3.
  3. What are the core modules of SAP ?
    The core functional modules in SAP R/3 are Financial Accounting (FI) usually in combination with Controlling (CO) or Treasury (TR) - Human Resources (HR), and logistic modules : Sales and Distribution (SD), Materials Management (MM), Quality Management (QM), Plant Maintenance (PM), and Production Planning (PP).
  4. What is the ABAP Workbench?
    ABAP Workbench is SAP's graphical programming environment. It is used to write ABAP code, design screens, create user interfaces, obtain database information, debug and test applications for effeciency.
  5. In the SD document, what are the three levels of a sales document?
    Each sales document comprises of three main levels and each level is represented by a table that holds the data for that level. Data for the header level is stored in table VBAK, data for the item levels is stored in table VBAP, and data for the schedule line level is stored in table VBEP.
  6. What is a user profile?
    User profile is a set of authorizations that enable user access to certain parts of the SAP system.
  7. What is a sales area ?
    Sales area is a segment that combines the sales organization, the distribution channel, and the sales division.
  8. What is a logical database ?
    Logical database is an ABAP program that combines the contents of database tables. It is linked to an ABAP report program as one of the program attributes. It supplies the report program with a set of hierarchically structured table entires derived from different database tables. This saves the developer from having to program the data retrieval.
  9. What is a requirement ?
    Requirement is a portion of code that is used to determine if a function or formula should be executed.
  10. What is an ABAP Query ?
    ABAP Query is a reporting tool that uses a logical database (LDB), individual table, or combined tables to form a report.
  11. What is a functional area ?
    Functional area is assigned to the query. It is the representation of a logical database or tables with their respective table joins. This defines which tables and fields the query can reference.
  12. What is a batch input ?
    Batch input facility in SAP is a convenient tool for capturing data into SAP or updating large amounts of information in SAP transactions. The simplest way to utilize batch input is by : 1) Record the batch input for the transaction used to enter the data in SAP; 2) Then export the batch input recording to a text file. From the recording, you know what data is required. Create a spreadsheet or word processor document containing all the data to be captured or changed. Then mail merge the exported text file with the data in a word processing program. Finally, import the merged file, upload the file into SAP, and execute the batch input in SAP.
  13. What is LIS ?
    LIS is Logistics Information System. LIS consists of following information systems -
    Sales Information System
    Purchasing Information System
    Inventory Controlling
    Shop Floor Information System
    Plant Maintenance Information System
    Quality Management Information System
    These information systems can be used to plan, control, and monitor business events at different stages in the decision-making process. They are flexible tools for collecting, aggregating, and analyzing data from the operative applications.
  14. What is OSS ?
    OSS is an Online Service System which can be used to access information about a module in a given release. OSS is a database of notes on known issues and their remedies. Any user with a logon name and password can access this information. OSS can be used to obtain quick responses from the SAP help desk representatives, administration and registration of new users.
  15. What is an SAP GUI ?
    GUI means Graphical User Interface. It is responsible for the graphical layout of the SAP software. GUIs in SAP R/3 differ from version to version of SAP.
  16. What is the typical structure of an ABAP/4 program?
    ANS:-
    HEADER ,BODY,FOOTER.
  17. What are field symbols and field groups.?
    Have you used "component idx of structure" clause with field groups?
    ANS:-
    Field symbols:- Field groups :-
  18. What should be the approach for writing a BDC program?
    ANS:-
    STEP 1: CONVERTING THE LEGACY SYSTEM DATA TO A FLAT FILE to internal table CALLED "CONVERSION".
    STEP 2: TRANSFERING THE FLAT FILE INTO SAP SYSTEM CALLED "SAP DATA TRANSFER".
    STEP 3: DEPENDING UPON THE BDC TYPE i)call transaction(Write the program explicity)
    ii) create sessions (sessions are created and processed.if success data will transfer).
  19. What is a batch input session?
    ANS:-
    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. What is the alternative to batch input session?
    ANS:-
    Call transaction.
  21. A situation: An ABAP program creates a batch input session.
    We need to submit the program and the batch session in back ground. How to do it?
    ANS:-
    go to SM36 and create background job by giving
    job name,job class and job steps (JOB SCHEDULING)
  22. What are the problems in processing batch input sessions?
    How is batch input process different from processing online?
    ANS:-
    PROBLEMS:-
    i) If the user forgets to opt for keep session then the session will be automatically removed from the session queue(log remains). However if session is processed we may delete it manually.
    ii)if session processing fails data will not be transferred to SAP database table.
  23. What are the different types of data dictionary objects?
    ans:-
    tables, structures, views, domains, data elements, lock objects, Matchcode objects.
  24. How many types of tables exists and what are they in data dictionary?
    ans :-
    4 types of tables
    i)Transparent tables - Exists with the same structure both in dictionary as well as in database exactly with the same data and fields. Both Opensql and Nativesql can be used. ii)Pool tables & iii)Cluster tables -
    These are logical tables that are arranged as records of transparent tables.one cannot use native sql on these tables
    (only opensql).They are not managable directly using database system tools.
  25. iv)Internal tables - .
  26. What is the step by step process to create a table in data dictionary?
    ans:-
    step 1: creating domains(data type,field length,range).
    step 2: creating data elements(properties and type for a table
    field).
    step 3: creating tables(SE11).
  27. Can a transparent table exist in data dictionary but not in the data base physically?
    ANS:- NO.
    TRANSPARENT TABLE DO EXIST WITH THE SAME STRUCTURE BOTH IN THE DICTIONARY AS WELL AS IN THE DATABASE,EXACTLY WITH THE SAME DATA AND FIELDS.
  28. What are the domains and data elements?
    ANS:-
    DOMAINS : FORMAL DEFINITION OF THE DATA TYPES.THEY SET ATTRIBUTES SUCH AS DATA TYPE,LENGTH,RANGE.
    DATA ELEMENT : A FIELD IN R/3 SYSTEM IS A DATA ELEMENT.
  29. Can you create a table with fields not referring to data elements?
    ANS:-
    YES. eg:- ITAB LIKE SPFLI.here we are referening to a data object(SPFLI) not data element.
  30. What is the advantage of structures? How do you use them in the ABAP programs?
    ANS:-
    Adv:- GLOBAL EXISTANCE(these could be used by any other program without creating it again).
  31. What does an extract statement do in the ABAP program?
    ANS:-
    Once you have declared the possible record types as field groups and defined their structure, you can fill the extract dataset using the following statements:
    EXTRACT .
When the first EXTRACT statement occurs in a program, the system creates the extract dataset and adds the first extract record to it. In each subsequent EXTRACT statement, the new extract record is added to the dataset
EXTRACT HEADER.
When you extract the data, the record is filled with the current values of the corresponding fields.
As soon as the system has processed the first EXTRACT statement for a field group , the structure of the corresponding extract record in the extract dataset is fixed. You can no longer insert new fields into the field groups and HEADER. If you try to modify one of the field groups afterwards and use it in another EXTRACT statement, a runtime error occurs.
By processing EXTRACT statements several times using different field groups, you fill the extract dataset with records of different length and structure. Since you can modify field groups dynamically up to their first usage in an EXTRACT statement, extract datasets provide the advantage that you need not determine the structure at the beginning of the program.
  1. What is a collect statement? How is it different from append?
    ANS:-
    If an entry with the same key already exists, the COLLECT statement does not append a new line, but adds the contents of the numeric fields in the work area to the contents of the numeric fields in the existing entry.
  2. What is open sql vs native sql?
    ANS:-
    Open SQL , native SQL are the interfaces to create the database applicatons.
    Open SQL is consistant across different types of existing Databases.
    Native SQL is the database language specific to database.Its API is specific to the databse.
    Open SQL API is consistent across all vendors
  3. What does an EXEC SQL stmt do in ABAP? What is the disadvantage of using it?
    ANS:-
  4. What is the meaning of ABAP/4 editor integrated with ABAP/4 data dictionary?
    ANS:-
  5. What are the events in ABAP/4 language?
    ANS:-
    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.
  6. What is an interactive report?
    What is the obvious diff of such report compared with classical type reports?
    ANS:-
    An Interactive report is a dynamic drill down report that produces the list on users choice.
    diff:-
    a) THE LIST PRODUCED BY CLASSICAL REPORT DOESN'T allow user to interact with the system
    the list produced by interactive report allows the user to interact with the system.
    b) ONCE A CLASSICAL REPORT EXECUTED USER LOOSES CONTROL.IR USER HAS CONTROL.
    c) IN CLASSICAL REPORT DRILLING IS NOT POSSIBLE.IN INTERACTIVE DRILLING IS POSSIBLE.
  7. What is a drill down report?
    ANS:-
    Its an Interactive report where in the user can get more relavent data by selecting explicitly.
  8. How do you write a function module in SAP? describe.
    ANS:-
    creating function module:-
    called program - se37-creating funcgrp,funcmodule by assigning attributes,importing,exporting,tables,exceptions.
    calling program - SE38-in pgm click pattern and write function name- provide export,import,tables,exception values.
  9. What are the exceptions in function module?
    ANS:-
    COMMUNICATION_FAILURE
    SYSTEM_FAILURE
  10. What is a function group?
    ANS:-
    GROUP OF ALL RELATED FUNCTIONS.
  11. How are the date and time field values stored in SAP?
    ANS:-
    DD.MM.YYYY. HH:MM:SS
  12. Name a few data dictionary objects? //rep//
    ANS:-
    TABLES,VIEWS,STRUCTURES,LOCK OBJECTS,MATCHCODE OBJECTS.
  13. What happens when a table is activated in DD?
    ANS:-
    It is available for any insertion,modification and updation of records by any user.
  14. What is a check table and what is a value table?
    Check table will be at field level checking.
    Value table will be at domain level checking ex: scarr table is check table for carrid.
  15. What are match codes? describe?
    ans:-
    It is a similar to table index that gives list of possible values for either primary keys or non-primary keys.
  16. What transactions do you use for data analysis?
    ANS:-
  17. What is table maintenance generator?
    ANS:-
  18. What are ranges? What are number ranges?
    ANS:-
    max,min values provided in selection screens.
  19. What are select options and what is the diff from parameters?

ANS:-
select options provide ranges where as parameters do not.

SELECT-OPTIONS declares an internal table which is automatically filled with values or ranges
of values entered by the end user. For each SELECT-OPTIONS , the system creates a selection table.

SELECT-OPTIONS FOR .

A selection table is an internal table with fields SIGN, OPTION, LOW and HIGH.
The type of LOW and HIGH is the same as that of .
The SIGN field can take the following values: I Inclusive (should apply) E Exclusive (should not apply)
The OPTION field can take the following values: EQ Equal GT Greater than NE Not equal BT Between LE Less
than or equal NB Not between LT Less than CP Contains pattern GE Greater than or equal NP No pattern.
diff:-
PARAMETERS allow users to enter a single value into an internal field within a report.
SELECT-OPTIONS allow users to fill an internal table with a range of values.

For each PARAMETERS or SELECT-OPTIONS statement you should define text elements by choosing
Goto - Text elements - Selection texts - Change.

Eg:- Parameters name(30).
when the user executes the ABAP/4 program,an input field for 'name' will appear on the selection screen.You can change the comments on the left side of the input fields by using text elements as described in Selection Texts.

  1. How do you validate the selection criteria of a report?
    And how do you display initial values in a selection screen?
    ANS:-
    validate :- by using match code objects.
    display :- Parameters default 'xxx'.
    select-options for spfli-carrid.
  2. What are selection texts?

  3. What is CTS and what do you know about it?

  4. 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.
    For practical information on working with the Change and Transport System, see Change and Transport Organizer and Transport Management System.
  5. 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?
    ANS:-
  6. What is the client concept in SAP? What is the meaning of client independent?
    ANS:-
  7. Are programs client dependent?
    ANS:-
    Yes.Group of users can access these programs with a client no.
  8. Name a few system global variables you can use in ABAP programs?
    ANS:-
    SY-SUBRC,SY-DBCNT,SY-LILLI,SY-DATUM,SY-UZEIT,SY-UCOMM,SY-TABIX.....
    SY-LILLI IS ABSOLUTE NO OF LINES FROM WHICH THE EVENT WAS TRIGGERED.
  9. What are internal tables? How do you get the number of lines in an internal table?
    How to use a specific number occurs statement?
    ANS:-
    i)It is 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.
    ii)using SY-DBCNT.
    iii)The number of memory allocations the system need to allocate for the next record population.
  10. How do you take care of performance issues in your ABAP programs?

Performance of ABAPs can be improved by minimizing the amount of data to be transferred.
The data set must be transferred through the network to the applications, so reducing the amount OF time and also reduces the network traffic.

Some measures that can be taken are:

Use views defined in the ABAP/4 DDIC (also has the advantage of better reusability).
- Use field list (SELECT clause) rather than SELECT *.
- Range tables should be avoided (IN operator)
- Avoid nested SELECTS.

i)system tools

ii)field symbols and field groups.
ans:-
Field Symbols : Field symbols are placeholders for existing fields. A Field Symbol does not physically reserve space for a field,but points to a field which is not known until runtime of the program.
eg:- FIELD-SYMBOL [].

Field groups : A field group combines several fields under one name.At runtime,the INSERT command is used to define which data fields are assigned to which field group.
There should always be a HEADER field group that defines how the extracted data will be sorted,the data is sorted by the fields grouped under the HEADER field group.

  1. What are datasets?
    ANS:-
    The sequential files(ON APPLICATION SERVER) are called datasets. They are used for file handling in SAP.
  2. How to find the return code of a statement in ABAP programs?
    ANS:-
    Using function modules.
  3. What are interface/conversion programs in SAP?
    ANS :
    CONVERSION : LEGACY SYSTEM TO FLAT FILE.
    INTERFACE : FLAT FILE TO SAP SYSTEM.
  4. Have you used SAP supplied programs to load master data?
  5. What are the techniques involved in using SAP supplied programs?
    Do you prefer to write your own programs to load master data? Why?
  6. What are logical databases? What are the advantages/disadvantages of logical databases?
    ANS:-
    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:-
    The programmer need not worry about the primary key for each table.Because Logical database knows how the different tables relate to each other,and can issue the SELECT command with proper where clause to retrieve the data.
    i)An easy-to-use standard user interface.
    ii)check functions which check that user input is complete,correct,and plausible.
    iii)meaningful data selection.
    iv)central authorization checks for database accesses.
    v)good read access performance while retaining the hierarchical data view determined by the application logic.
    disadvantages:-
    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).
  7. What specific statements do you using when writing a drill down report?
    ans:-
    AT LINE-SELECTION,AT USER-COMMAND,AT PF.
  8. What are different tools to report data in SAP? What all have you used?
    ans:-
  9. What are the advantages and disadvantages of ABAP/4 query tool?
  10. What are the functional areas? User groups? and how does ABAP/4 query work in relation to these?
  11. Is a logical database a requirement/must to write an ABAP/4 query?
  12. What are Change header/detail tables? Have you used them?
  13. What do you do when the system crashes in the middle of a BDC batch session?
    ans:-
    we will look into the error log file (SM35).
  14. What do you do with errors in BDC batch sessions?
    ANS:-
    We look into the list of incorrect session and process it again. To correct incorrect session we analyize the session to determine which screen and value produced the error.For small errors in data we correct them interactively otherwise
    modify batch input program that has generated the session or many times even the datafile.
  15. How do you set up background jobs in SAP? What are the steps? What are the event driven batch jobs?
    ans:-
    go to SM36 and create background job by giving job name,job class and job steps(JOB SCHEDULING)
  16. Is it possible to run host command from SAP environment? How do you run?
  17. What kind of financial periods exist in SAP? What is the relavent table for that?
  18. Does SAP handle multiple currencies? Multiple languages?
    ans:-Yes.
  19. What is a currency factoring technique?
  20. How do you document ABAP/4 programs? Do you use program documentation menu option?
  21. What is SAPscript and layout set?
    ans:-
    The tool which is used to create layout set is called SAPscript. Layout set is a design document.
  22. What are the ABAP/4 commands that link to a layout set?
    ans:-
    control commands,system commands,
  23. What is output determination?
  24. What are IDOCs?
    ans:-
    IDOCs are intermediate documents to hold the messages as a container.
  25. What are screen painter? menu painter? Gui status? ..etc.
ans:-
dynpro - flow logic + screens.
menu painter -
GUI Status - It is subset of the interface elements(title bar,menu bar,standard tool bar,push buttons) used for a certain screen.
The status comprises those elements that are currently needed by the transaction.
118.What are screen painter? menu painter? Gui status?
ans:-
dynpro - flow logic + screens.
menu painter -
GUI Status - It is subset of the interface elements(title bar,menu bar,standard tool bar,push buttons) used for a certain screen.
The status comprises those elements that are currently needed by the transaction.
119. What is screen flow logic? What are the sections in it? Explain PAI and PBO.
ans:-
The control statements that control the screen flow.
PBO - This event is triggered before the screen is displayed.
PAI - This event is responsible for processing of screen after the user enters the data and clicks the pushbutton.
120. Overall how do you write transaction programs in SAP?
ans:-
Create program-SE93-create transcode-Run it from command field.
121. Does SAP has a GUI screen painter or not? If yes what operating systems is it available on? What is the other type of screen painter called?
122. What are step loops? How do you program pagedown pageup in step loops?
ans:-
step loops are repeated blocks of field in a screen.
123. Is ABAP a GUI language?
ANS:-
Yes.
ABAP IS AN EVENT DRIVEN LANGUAGE.
124. Normally how many and what files get created when a transaction program is written?
What is the XXXXXTOP program?
ans:-
ABAP/4 program.
DYNPRO
125. What are the include programs?
ANS:-
When the same sequence of statements in several programs are to be written repeadly they are coded in include programs (External programs) and are included in ABAP/4 programs.
126. Can you call a subroutine of one program from another program?
ans:- Yes- only external subroutines Using 'SUBMIT' statement.
127. . What are user exits? What is involved in writing them? What precations are needed?
128. What are RFCs? How do you write RFCs on SAP side?
129. What are the general naming conventions of ABAP programs?
ANS:-
Should start with Y or Z.
130. How do you find if a logical database exists for your program requrements?
ans:-
SLDB-F4.
131. How do you find the tables to report from when the user just tell you the transaction he uses? And all the underlying data is from SAP structures?
ans:-
Transcode is entered in command field to open the table.Utilities-Table contents-display.
132. How do you find the menu path for a given transaction in SAP?
ans:-
133. What are the different modules of SAP?
ans:-
FI,CO,SD,MM,PP,HR.
134. How do you get help in ABAP?
ans:-
HELP-SAP LIBRARY,by pressing F1 on a keyword.
135. What are different ABAP/4 editors? What are the differences?
ans:-
136. What are the different elements in layout sets?
ans:-
PAGES,Page windows,Header,Paragraph,Character String,Windows.
137. Can you use if then else, perform ..etc statements in sap script?
ans:-
yes.
138. What type of variables normally used in sap script to output data?
139. How do you number pages in sapscript layout outputs?
140. What takes most time in SAP script programming?
ANS:-
LAYOUT DESIGN AND LOGO INSERTION.
141. How do you use tab sets in layout sets?
142. How do you backup sapscript layout sets? Can you download and upload? How?
  1. What are presentation and application servers in SAP?
    ANS:-
    The application layer of an R/3 System is made up of the application servers and the message server. Application programs in an R/3 System are run on application servers. The application servers communicate with the presentation components, the database, and also with each other, using the message server.
  2. In an ABAP/4 program how do you access data that exists on a presentation server vs on an application server?
    ans:-
    i)using loop statements.
    ii)flat
  3. What are different data types in ABAP/4?
    ans:-
    Elementary -
    predefined C,D,F,I,N,P,T,X.
    userdefined TYPES.
    ex: see in intel book page no 35/65
  4. Structured -
    predefined TABLES.
    userdefined Field Strings and internal tables.
  5. What is difference between session method and Call Transaction?

  6. Setting up a BDC program where you find information from?

  7. What has to be done to the packed fields before submitting to a BDC session.
    ans:-
    fields converted into character type.
  8. What is the structure of a BDC sessions.
    ans:-
    BDCDATA (standard structure).
  9. What are the fields in a BDC_Tab Table.
    ans:-
    program,dynpro,dynbegin,fnam,fval.
  10. What do you define in the domain and data element.
    Technical details like
  11. What is the difference between a pool table and a transparent table and how they are stored at the database level.
    ans:-
    ii)Pool tables is a logical representation of transparent tables .Hence no existence at database level. Where as transparent tables are physical tables and exist at database level.
  12. What is cardinality?
For cardinality one out of two (domain or data element) should be the same for Ztest1 and Ztest2 tables. M:N
Cardinality specifies the number of dependent(Target) and independent (source) entities which can be in a relationship


Thursday, July 5, 2007

C++ interview Questions

What is inheritance?
Inheritance allows one class to reuse the state and behavior of another class. The derived class inherits the properties and method implementations of the base class and extends it by overriding methods and adding additional properties and methods.

What is encapsulation??
Containing and hiding information about an object, such as internal data structures and code. Encapsulation isolates the internal complexity of an object's operation from the rest of the application. For example, a client component asking for net revenue from a business object need not know the data's origin.

What is Polymorphism??
Polymorphism allows a client to treat different objects in the same way even if they were created from different classes and exhibit different behaviors.
You can use implementation inheritance to achieve polymorphism in languages such as C++ and Java.
Base class object's pointer can invoke methods in derived class objects.
You can also achieve polymorphism in C++ by function overloading and operator overloading.

What is assignment operator?
Default assignment operator handles assigning one object to another of the same class. Member to member copy (shallow copy)

What are all the implicit member functions of the class? Or what are all the functions which compiler implements for us if we don't define one.??
default ctor(Constructor)
copy ctor
assignment operator
default destructor
address operator

What is constructor or ctor?
Constructor creates an object and initializes it. It also creates vtable for virtual functions. It is different from other methods in a class.

What is default constructor?
Constructor with no arguments or all the arguments has default values.

What is copy constructor?
Constructor which initializes the it's object member variables ( by shallow copying) with another object of the same class. If you don't implement one in your class then compiler implements one for you.
for example:
Boo Obj1(10); // calling Boo constructor
Boo Obj2(Obj1); // calling boo copy constructor
Boo Obj2 = Obj1;// calling boo copy constructor

When are copy constructors called?
Copy constructors are called in following cases:
a) when a function returns an object of that class by value
b) when the object of that class is passed by value as an argument to a function
c) when you construct an object based on another object of the same class
d) When compiler generates a temporary object

What is conversion constructor?
constructor with a single argument makes that constructor as conversion ctor and it can be used for type conversion.
for example:
class Boo
{
public:
Boo( int i );
};
Boo BooObject = 10 ; // assigning int 10 Boo object

What is destructor?
Destructor usually deletes any extra resources allocated by the object.

What is conversion operator??
class can have a public method for specific data type conversions.
for example:
class Boo
{
double value;
public:
Boo(int i )
operator double()
{
return value;
}
};
Boo BooObject;
double i = BooObject; // assigning object to variable i of type double. now conversion operator gets called to assign the value.

What is diff between malloc()/free() and new/delete?

malloc allocates memory for object in heap but doesn't invoke object's constructor to initiallize the object.

new allocates memory and also invokes constructor to initialize the object.

malloc() and free() do not support object semantics
Does not construct and destruct objects
string * ptr = (string *)(malloc (sizeof(string)))
Are not safe
Does not calculate the size of the objects that it construct
Returns a pointer to void
int *p = (int *) (malloc(sizeof(int)));
int *p = new int;
Are not extensible
new and delete can be overloaded in a class

"delete" first calls the object's termination routine (i.e. its destructor) and then releases the space the object occupied on the heap memory. If an array of objects was created using new, then delete must be told that it is dealing with an array by preceding the name with an empty []:-

Int_t *my_ints = new Int_t[10];

...

delete []my_ints;

what is the diff between "new" and "operator new" ?


"operator new" works like malloc.

What is difference between template and macro??

There is no way for the compiler to verify that the macro parameters are of compatible types. The macro is expanded without any special type checking.

If macro parameter has a postincremented variable ( like c++ ), the increment is performed two times.

Because macros are expanded by the preprocessor, compiler error messages will refer to the expanded macro, rather than the macro definition itself. Also, the macro will show up in expanded form during debugging.

for example:

Macro:

#define min(i, j) (i <>

template:
template
T min (T i, T j)
{
return i <>

What are storage qualifiers in C++ ?

They are..

const
volatile
mutable

Const keyword indicates that memory once initialized, should not be altered by a program.

volatile keyword indicates that the value in the memory location can be altered even though nothing in the program
code modifies the contents. for example if you have a pointer to hardware location that contains the time, where hardware changes the value of this pointer variable and not the program. The intent of this keyword to improve the optimization ability of the compiler.

mutable keyword indicates that particular member of a structure or class can be altered even if a particular structure variable, class, or class member function is constant.

struct data
{
char name[80];
mutable double salary;
}

const data MyStruct = { "Satish Shetty", 1000 }; //initlized by complier

strcpy ( MyStruct.name, "Shilpa Shetty"); // compiler error
MyStruct.salaray = 2000 ; // complier is happy allowed

What is reference ??

reference is a name that acts as an alias, or alternative name, for a previously defined variable or an object.

prepending variable with "&" symbol makes it as reference.

for example:

int a;
int &b = a;

What are C++ storage classes?

auto
register
static
extern

auto: the default. Variables are automatically created and initialized when they are defined and are destroyed at the end of the block containing their definition. They are not visible outside that block

register: a type of auto variable. a suggestion to the compiler to use a CPU register for performance

static: a variable that is known only in the function that contains its definition but is never destroyed and retains its value between calls to that function. It exists from the time the program begins execution

extern: a static variable whose definition and placement is determined when all object and library modules are combined (linked) to form the executable code file. It can be visible outside the file where it is defined.


What is passing by reference?

Method of passing arguments to a function which takes parameter of type reference.

for example:

void swap( int & x, int &amp;amp;amp;amp; y )
{
int temp = x;
x = y;
y = temp;
}

int a=2, b=3;

swap( a, b );

Basically, inside the function there won't be any copy of the arguments "x" and "y" instead they refer to original variables a and b. so no extra memory needed to pass arguments and it is more efficient.

When do use "const" reference arguments in function?

a) Using const protects you against programming errors that inadvertently alter data.
b) Using const allows function to process both const and non-const actual arguments, while a function without const in the prototype can only accept non constant arguments.
c) Using a const reference allows the function to generate and use a temporary variable appropriately.

What is virtual function?

When derived class overrides the base class method by redefining the same function, then if client wants to access redefined the method from derived class through a pointer from base class object, then you must define this function in base class as virtual function.

class parent
{
void Show()
{
cout << "i'm parent" << endl;
}
};

class child: public parent
{
void Show()
{
cout << "i'm child" << endl;
}

};

parent * parent_object_ptr = new child;

parent_object_ptr->show() // calls parent->show() i

now we goto virtual world...

class parent
{
virtual void Show()
{
cout << "i'm parent" << endl;
}
};

class child: public parent
{
void Show()
{
cout << "i'm child" << endl;
}

};

parent * parent_object_ptr = new child;

parent_object_ptr->show() // calls child->show()

When are temporary variables created by C++ compiler?

Provided that function parameter is a "const reference", compiler generates temporary variable in following 2 ways.

a) The actual argument is the correct type, but it isn't Lvalue

double Cube(const double & num)
{
num = num * num * num;
return num;

}

double temp = 2.0;
double value = cube(3.0 + temp); // argument is a expression and not a Lvalue;

b) The actual argument is of the wrong type, but of a type that can be converted to the correct type

long temp = 3L;
double value = cuberoot ( temp); // long to double conversion

What is pure virtual function? or what is abstract class?

When you define only function prototype in a base class without implementation and do the complete implementation in derived class. This base class is called abstract class and client won't able to instantiate an object using this base class.

You can make a pure virtual function or abstract class this way..

class Boo
{
void foo() = 0;
}

Boo MyBoo; // compilation error


What is Memory alignment??

The term alignment primarily means the tendency of an address pointer value to be a multiple of some power of two. So a pointer with two byte alignment has a zero in the least significant bit. And a pointer with four byte alignment has a zero in both the two least significant bits. And so on. More alignment means a longer sequence of zero bits in the lowest bits of a pointer.

What problem does the namespace feature solve?

Multiple providers of libraries might use common global identifiers causing a name collision when an application tries to link with two or more such libraries. The namespace feature surrounds a library's external declarations with a unique namespace that eliminates the potential for those collisions.

namespace [identifier] { namespace-body }

A namespace declaration identifies and assigns a name to a declarative region.
The identifier in a namespace declaration must be unique in the declarative region in which it is used. The identifier is the name of the namespace and is used to reference its members.

What is an Iterator class?

A class that is used to traverse through the objects maintained by a container class. There are five categories of iterators: input iterators, output iterators, forward iterators, bidirectional iterators, random access. An iterator is an entity that gives access to the contents of a container object without violating encapsulation constraints. Access to the contents is granted on a one-at-a-time basis in order. The order can be storage order (as in lists and queues) or some arbitrary order (as in array indices) or according to some ordering relation (as in an ordered binary tree). The iterator is a construct, which provides an interface that, when called, yields either the next element in the container, or some value denoting the fact that there are no more elements to examine. Iterators hide the details of access to and update of the elements of a container class. Something like a pointer.

What is the use of 'using' declaration?

A using declaration makes it possible to use a name from a namespace without the scope operator.


What is a dangling pointer?

A dangling pointer arises when you use the address of an object after its lifetime is over. This may occur in situations like returning addresses of the automatic variables from a function or using the address of the memory block after it is freed.

What do you mean by Stack unwinding?

It is a process during exception handling when the destructor is called for all local objects in the stack between the place where the exception was thrown and where it is caught.

Name the operators that cannot be overloaded??

sizeof, ., .*, .->, ::, ?:

What is overloading??

With the C++ language, you can overload functions and operators. Overloading is the practice of supplying more than one definition for a given function name in the same scope.

- Any two functions in a set of overloaded functions must have different argument lists.
- Overloading functions with argument lists of the same types, based on return type alone, is an error.

What is inline function??

The __inline keyword tells the compiler to substitute the code within the function definition for every instance of a function call. However, substitution occurs only at the compiler's discretion. For example, the compiler does not inline a function if its address is taken or if it is too large to inline.

What is a container class? What are the types of container classes?

A container class is a class that is used to hold objects in memory or external storage. A container class acts as a generic holder. A container class has a predefined behavior and a well-known interface. A container class is a supporting class whose purpose is to hide the topology used for maintaining the list of objects in memory. When a container class contains a group of mixed objects, the container is called a heterogeneous container; when the container is holding a group of objects that are all the same, the container is called a homogeneous container.

What is Overriding?

To override a method, a subclass of the class that originally declared the method must declare a method with the same name, return type (or a subclass of that return type), and same parameter list.
The definition of the method overriding is:
· Must have same method name.
· Must have same data type.
· Must have same argument list.
Overriding a method means that replacing a method functionality in child class. To imply overriding functionality we need parent and child classes. In the child class you define the same method signature as one defined in the parent class.

What is "this" pointer?

The this pointer is a pointer accessible only within the member functions of a class, struct, or union type. It points to the object for which the member function is called. Static member functions do not have a this pointer.

When a nonstatic member function is called for an object, the address of the object is passed as a hidden argument to the function. For example, the following function call

myDate.setMonth( 3 );

can be interpreted this way:

setMonth( &myDate, 3 );

The object's address is available from within the member function as the this pointer. It is legal, though unnecessary, to use the this pointer when referring to members of the class.

How virtual functions are implemented C++?

Virtual functions are implemented using a table of function pointers, called the vtable. There is one entry in the table per virtual function in the class. This table is created by the constructor of the class. When a derived class is constructed, its base class is constructed first which creates the vtable. If the derived class overrides any of the base classes virtual functions, those entries in the vtable are overwritten by the derived class constructor. This is why you should never call virtual functions from a constructor: because the vtable entries for the object may not have been set up by the derived class constructor yet, so you might end up calling base class implementations of those virtual functions

What is name mangling in C++??

The process of encoding the parameter types with the function/method name into a unique name is called name mangling. The inverse process is called demangling.

For example Foo::bar(int, long) const is mangled as `bar__C3Fooil'.
For a constructor, the method name is left out. That is Foo::Foo(int, long) const is mangled as `__C3Fooil'.

What happens when you make call "delete this;" ??

The code has two built-in pitfalls. First, if it executes in a member function for an extern, static, or automatic object, the program will probably crash as soon as the delete statement executes. There is no portable way for an object to tell that it was instantiated on the heap, so the class cannot assert that its object is properly instantiated. Second, when an object commits suicide this way, the using program might not know about its demise. As far as the instantiating program is concerned, the object remains in scope and continues to exist even though the object did itself in. Subsequent dereferencing of the pointer can and usually does lead to disaster.

You should never do this. Since compiler does not know whether the object was allocated on the stack or on the heap, "delete this" could cause a disaster.

What is the difference between a pointer and a reference?

A reference must always refer to some object and, therefore, must always be initialized; pointers do not have such restrictions. A pointer can be reassigned to point to different objects while a reference always refers to an object with which it was initialized.

How are prefix and postfix versions of operator++() differentiated?

The postfix version of operator++() has a dummy parameter of type int. The prefix version does not have dummy parameter.

What is the difference between const char *myPointer and char *const myPointer?

Const char *myPointer is a non constant pointer to constant data; while char *const myPointer is a constant pointer to non constant data.

How can I handle a constructor that fails?

throw an exception. Constructors don't have a return type, so it's not possible to use return codes. The best way to signal constructor failure is therefore to throw an exception.

How can I handle a destructor that fails?

Write a message to a log-file. But do not throw an exception.
The C++ rule is that you must never throw an exception from a destructor that is being called during the "stack unwinding" process of another exception. For example, if someone says throw Foo(), the stack will be unwound so all the stack frames between the throw Foo() and the } catch (Foo e) { will get popped. This is called stack unwinding.
During stack unwinding, all the local objects in all those stack frames are destructed. If one of those destructors throws an exception (say it throws a Bar object), the C++ runtime system is in a no-win situation: should it ignore the Bar and end up in the } catch (Foo e) { where it was originally headed? Should it ignore the Foo and look for a } catch (Bar e) { handler? There is no good answer -- either choice loses information.
So the C++ language guarantees that it will call terminate() at this point, and terminate() kills the process. Bang you're dead.

What is Virtual Destructor?

Using virtual destructors, you can destroy objects without knowing their type - the correct destructor for the object is invoked using the virtual function mechanism. Note that destructors can also be declared as pure virtual functions for abstract classes.

if someone will derive from your class, and if someone will say "new Derived", where "Derived" is derived from your class, and if someone will say delete p, where the actual object's type is "Derived" but the pointer p's type is your class.


Can you think of a situation where your program would crash without reaching the breakpoint which you set at the beginning of main()?

C++ allows for dynamic initialization of global variables before main() is invoked. It is possible that initialization of global will invoke some function. If this function crashes the crash will occur before main() is entered.

Name two cases where you MUST use initialization list as opposed to assignment in constructors.

Both non-static const data members and reference data members cannot be assigned values; instead, you should use initialization list to initialize them.

Can you overload a function based only on whether a parameter is a value or a reference?

No. Passing by value and by reference looks identical to the caller.

What does extern "C" int func(int *, Foo) accomplish?

It will turn off "name mangling" for func so that one can link to code compiled by a C compiler.

How do you access the static member of a class?

::

What is multiple inheritance(virtual inheritance)? What are its advantages and disadvantages?

Multiple Inheritance is the process whereby a child can be derived from more than one parent class. The advantage of multiple inheritance is that it allows a class to inherit the functionality of more than one base class thus allowing for modeling of complex relationships. The disadvantage of multiple inheritance is that it can lead to a lot of confusion(ambiguity) when two base classes implement a method with the same name.

What are the differences between a C++ struct and C++ class?

The default member and base class access specifiers are different.

The C++ struct has all the features of the class. The only differences are that a struct defaults to public member access and public base class inheritance, and a class defaults to the private access specifier and private base class inheritance.

What are the access privileges in C++? What is the default access level?

The access privileges in C++ are private, public and protected. The default access level assigned to members of a class is private. Private members of a class are accessible only within the class and by friends of the class. Protected members are accessible by the class itself and it's sub-classes. Public members of a class can be accessed by anyone.

What is a nested class? Why can it be useful?

A nested class is a class enclosed within the scope of another class. For example:

// Example 1: Nested class
//
class OuterClass
{
class NestedClass
{
// ...
};
// ...
};
Nested classes are useful for organizing code and controlling access and dependencies. Nested classes obey access rules just like other parts of a class do; so, in Example 1, if NestedClass is public then any code can name it as OuterClass::NestedClass. Often nested classes contain private implementation details, and are therefore made private; in Example 1, if NestedClass is private, then only OuterClass's members and friends can use NestedClass.

When you instantiate as outer class, it won't instantiate inside class.

What is a local class? Why can it be useful?

local class is a class defined within the scope of a function -- any function, whether a member function or a free function. For example:

// Example 2: Local class
//
int f()
{
class LocalClass
{
// ...
};
// ...
};
Like nested classes, local classes can be a useful tool for managing code dependencies.

Can a copy constructor accept an object of the same class as parameter, instead of reference of the object?

No. It is specified in the definition of the copy constructor itself. It should generate an error if a programmer specifies a copy constructor with a first argument that is an object and not a reference.