Interview Question on BAPI, RFC, ABAP Objects, Tables

简介:

1) What is the difference between RFC and BAPI ? 
    What are subclasses and super classes in BAPI and also what are the methods in BAPI ? 
2) Is it possible to connect SAP to Non-SAP systems to retrieve data using RFC alone with out using BAPI ? 
3) What is the difference between Function module and BAPI ? 
4) What are the types of tables? 
5) What are pooled table ? 
6) What are Hashed Tables ? 
7) What are advantages of using ABAP objects? 
8) What is the advantage of using ABAP objects in Reports ?

1) BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. in this case u only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.

The following standardized BAPIs are provided: 
Reading instances of SAP business objects 
GetList ( )  With the BAPI GetList you can select a range of object key values, for example, company codes and material numbers.

The BAPI GetList() is a class method. 
GetDetail()  With the BAPI GetDetail() the details of an instance of a business object type are retrieved and returned to the calling program. The instance is identified via its key. The BAPI GetDetail() is an instance method.  BAPIs that can create, change or delete instances of a business object type

The following BAPIs of the same object type have to be programmed so that they can be called several times within one transaction. For example, if, after sales order 1 has been created, a second sales order 2 is created in the same transaction, the second BAPI call must not affect the consistency of the sales order 2. After completing the transaction with a COMMIT WORK, both the orders are saved consistently in the database.

Create( ) and CreateFromData! ( )  
The BAPIs Create() and CreateFromData() create an instance of an SAP business object type, for example, a purchase order. These BAPIs are class methods. 

Change( )  
The BAPI Change() changes an existing instance of an SAP business object type, for example, a purchase order. The BAPI Change () is an instance method. 

Delete( ) and Undelete( )  The BAPI Delete() deletes an instance of an SAP business object type from the database or sets a deletion flag.

The BAPI Undelete() removes a deletion flag. These BAPIs are instance methods.

Cancel ( )  Unlike the BAPI Delete(), the BAPI Cancel() cancels an instance of a business object type. The instance to be cancelled remains in the database and an additional instance is created and this is the one that is actually canceled. The Cancel() BAPI is an instance method. 

Add<subobject> ( ) and Remove<subobject> ( )  The BAPI Add<subobject> adds a subobject to an existing object inst! ance and the BAPI and Remove<subobject> removes a subobject from an object instance. These BAPIs are instance methods. 

2) No it is not  possible to connect SAP to Non-SAP systems to retrieve data using RFC alone. RFC can acces the SAP from outside only through BAPI and same is for vice versa access.

3) Each Bapi Object has  Interface, Key Fields, Attributes,Methods and Events.  
Bapi Function Modules can be attached to these Bapi objects .Function module has a single bound functionality  while a BAPI object can contain many functionalities

4) Transparent table, Pool table and cluster table are data dictionary table objects sorted table, indexed table and hash table are internal tables.

5)Table pools (pools) and table clusters (clusters) are special table types in the ABAP Dictionary. The data from several different tables can be stored together in a table pool or table cluster. Tables assigned to a table pool or table cluster are referred to as pooled tables or cluster tables.

A table in the database in which all records from the pooled tables assigned to the table pool are stored corresponds to a table pool.

The definition of a pool consists essentially of two key fields (Tabname and Varkey) and a long argument field (Vardata). 
Table Clusters Several logical data records from different cluster tables can be stored together in one physical  
record in a table cluster.

A cluster key consists of a series of freely definable key fields and a field (Pageno) for distinguishing continuation records. A cluster also contains a long field (Vardata) that contains the contents of the data fields of the cluster tables for this key. If the data does not fit into the long field, continuation records are created. Control information on the structure of the data string is still written at the beginning of the Vardata field. 

6) Hashed tables  
This is the most appropriate type for any table where the main operation is key access. You cannot access a hashed table using its index. The response time for key access remains constant, regardless of the number of table entries. Like database tables, hashed tables always have a unique key. Hashed tables are useful if you want to construct and use an internal table which resembles a database table or for processing large amounts of data. 

Sample Prog: This does nothing.  
REPORT Z_1 .  
tables: mara.  
data: i type hashed table of mara with unique key matnr

7) and 8) ABAP objects are root for your program and reports.

RFC Vs BAPI

BAPI are RFC enabled function modules. the difference between RFc and BAPI are business objects. You create business objects and those are then registered in your BOR (Business Object Repository) which can be accessed outside the SAP system by using some other applications (Non-SAP) such as VB or JAVA. 

In this case you only specify the business object and its method from external system in BAPI there is no direct system call. while RFC are direct system call Some BAPIs provide basic functions and can be used for most SAP business object types. These BAPIs should be implemented the same for all business object types. Standardized BAPIs are easier to use and prevent users having to deal with a number of different BAPIs. Whenever possible, a standardized BAPI must be used in preference to an individual BAPI.  It is not  possible to connect SAP to Non-SAP systems to retrieve data using RFC alone. RFC can acces the SAP from outside only through BAPI and same is for vice versa access.  
  
RFC is the protocol used by SAP for remote communication, that is, for communications between remote (independent) systems. RFC is used for communications between two independent SAP systems, or for communications between an SAP system and a non-SAP system, such as an external application. It can also be used for communications between modules on the same system. Using the RFC interfaces you can extend the functionality of R/3 applications from an external program.

What is the different btween clear and refresh?

There are 2 types of clear statements we can use: 
Clear ITAB  : This Statement will clear the Internal Table Header content. 
To clear the Intertal Table Hearder as well Body we can use Clear ITAB [ ] statement.

Refresh will deletes the Internal Table content but still memory is not freed.

What is the pick statment do?

Pick Statemnt will captures the UserAction. 
Eg: if SY-UCOMM = 'X'. 
This type of user actions can be captured thru PICK Statement only.

What is the different between sesstion method and call transaction method and suppose I used one method to transform the data next time suppose I want transform the data which method I can use.

There are many difference between Session method and Call Transaction. 
Which method we have to use will be found based on Volume Of data and  Accuracy of data given.  Mainly Call Transaction used for small sets of data because in Call Transaction we have to Handle the Processing errors explicitly.  We can do this by BDCMSGCOLL structure.  
In Session method seperate session will crate for errors.  Calll Transaction will update the Database fastly compare with Session Method.

What is single and upto one row different?

The Major difference between Select Single and Select UPTO 1 rows is The Usage Of Buffer for each. 
Select Single will search for all the satisfied data and bring all that data into Buffer and later it will give to that data to the program. 
Select UPTO 1 Rows will end the search after getting the 1st satisfied record and gives that record to the program. 
Thus Select Single will take much processing time when compare with Select UPTO 1 rows.

What is the differences between selection screen and selection screen out?

The difference between Selection Screen and Selection Screen Output is we use the Selection Screen Output Event before the Selection Screen will displayed.   Eg: Suppose if we want to disable some fields and enable some fields in the Selection Screen then we can code that in Section-Screen Output event. 
Selection-Screen Event will trigger after section-screen is displayed and user action takes place on that.

专注于企业信息化,最近对股票数据分析较为感兴趣,可免费分享股票个股主力资金实时变化趋势分析工具,股票交流QQ群:457394862

本文转自沧海-重庆博客园博客,原文链接:http://www.cnblogs.com/omygod/archive/2007/12/16/996994.html,如需转载请自行联系原作者
目录
相关文章
abap开发function module时使用tables传递参数报错过时的解决方法
如下图,我写了一个Function Module我要在tables中添加一个参数TABLES参数已过时不管怎么点击保存按钮,一直报错,怎么办呢?不管是不是过时,狂点回车,就保存了
1740 0
ABAP System Tables
System Tables ADCP Person/Address assignment (central address administration) ADIRACCESS Table to store keys for TADIR objects ADR2 Telephone numbers (central address admin.
1727 0
|
6月前
|
程序员
开发语言漫谈-ABAP
ABAP是SAP公司专门用于SAP软件环境的专门语言
|
SQL 设计模式 前端开发
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
1552 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
|
BI
SAP ABAP在线预览文档对象的开发实现
应用场景:有些定制化开发(报表/功能增强等)完成之后,客户需要将其操作手册或者相关文档放在某个报表的初始画面,供实际操作者在线查阅,当然这个功能也同样类似于模板的下载,这里就以在线预览(直接打开)为例进行说明。
224 0
|
前端开发 JavaScript 数据库
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
Restful ABAP Programming 编程模式是 ABAP 这门编程语言在不断向前进化的过程中,诞生的一门新的编程模型,简称为RAP模型。
155 0
如何使用 Restful ABAP Programming 编程模型开发一个支持增删改查的 Fiori 应用(二)
|
程序员 BI
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
也谈SAP业务顾问如何避免被ABAP开发顾问怒打
ABAP开发基础知识:10)数据流控制
在SAP业务处理中,存在许许多多数据流,分别管控着不同的业务模式。下面介绍如何通过ABAP语法来实现数据流程管控。     1)使用IF语句实现分支       [Syntax]      IF .
1263 0
|
小程序
ABAP开发基础知识:11)子程序的建立与调用
ABAP子程序(Subrouting)是包含在程序中的一段具有一定功能的代码,能够将某个功能作为一个小程序包含在主程序中,以方便程序分析及阅读。特别是一此程序中多次用到的功能,可以简化代码,增加程序的可读性且便于维护。
1484 0