Difference between 
1. RFC and BAPI
2. Function Module & BAPI
3. BAPI and BADI
4. BADI and User-exit
5. User-exit & Customer exit.
6. Conversion & Interface
7. SAP Memory & ABAP Memory
8. SELECT-OPTIONS & Ranges
9. SELECT single & SELECT upto 1 rows
10. Check Table & Value Table
11. Table & Structure
12. Fieldstrings & Structure
13. Cluster Tables & Pool Tables
14. End-of-Selection & End-of-Page
15. Joins & For All Entries
16. SE01, SE09& SE10
17. Syntax Error & Runtime Error
18. Check & Continue
19. Default & Initialization
20. NACE & TNAPR
21. /h, /hs &/ha
1. RFC and BAPI
2. Function Module & BAPI
3. BAPI and BADI
4. BADI and User-exit
5. User-exit & Customer exit.
6. Conversion & Interface
7. SAP Memory & ABAP Memory
8. SELECT-OPTIONS & Ranges
9. SELECT single & SELECT upto 1 rows
10. Check Table & Value Table
11. Table & Structure
12. Fieldstrings & Structure
13. Cluster Tables & Pool Tables
14. End-of-Selection & End-of-Page
15. Joins & For All Entries
16. SE01, SE09& SE10
17. Syntax Error & Runtime Error
18. Check & Continue
19. Default & Initialization
20. NACE & TNAPR
21. /h, /hs &/ha
| 
RFC | 
BAPI | 
| 
1. RFC is the protocol used by SAP for
  remote communication, that
  is, for communications between remote (independent) systems.  | 
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. | 
| 
2. 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.    |  | 
| 
3. Using the
  RFC interfaces you can extend the functionality of R/3 applications from an
  external program.  |  | 
| 
4. It is
  not possible to connect SAP to Non-SAP systems to retrieve data using
  RFC alone. | 
RFC can access
  the SAP from outside only through BAPI and same is for vice versa
  access.   | 
| Function Module | BAPI | 
| 
Function module
  has a single bound functionality  while a BAPI object can contain many
  functionalities | 
Each Bapi
  Object has Interface, Key Fields, Attributes, Methods and Events.   Bapi Function Modules can be attached to these Bapi objects | 
| 
BDC  | 
BAPI | 
| 
In case of bdc
  data transfer takes place from flat file into sap system ie the file existing
  in sap system to sap system | 
Where as BAPI's
  are remotely enabled function modules which are assigned to some business
  objects n used to transfer the data between different business partners who
  are using different systems other than sap. | 
| BAPI | BADI | 
| 
BAPI stands for
  Business API (Application Program Interface). A BAPI is remotely enabled function module ie; it can be invoked from remote programs like standalone JAVA programs, web interface etc.. You can make your function module remotely enabled in attributes of Function module but A BAPI is standard SAP function modules provided by SAP for remote access. Also they are part of Business Object Repository (BOR). | 
A BADI is a Business Add-in - one of SAP's methods of
  implementing a user-exit or change to standard SAP code. BADI's are ABAP
  object based changes instead of the more common subroutines/function modules.  | 
| BADI | USER-EXIT | 
| 
BADI's can be
  used any number of times | 
USER-EXITS can
  be used only one time. Ex: - if you're assigning a USER-EXIT to a project in (CMOD), then you can not assign the same to other project. | 
| 
BADI's are oops
  based. |  | 
| USER-EXIT | CUSTOMER EXIT | 
| 
User exits are
  a type of system enhancement that were originally developed for the R/3 SD. The SAP developer creates a special include in a module pool. These includes contain one or more subroutines that satisfy the naming convention userexit_<name>. The calls for these subroutines have already been implemented in the R/3 program. A user exit is considered a modification, since technically objects in the SAP namespace are being modified. User exit - A user exit is a three character code that instructs the system to access a program during system processing. |  | 
SXX: S is for
standard exits that are delivered by SAP. XX represents the 2-digit exit number.
UXX: U is for
user exits that are defined by the user. XX represents the 2-digit exit number
Customer exits are “hooks” provided by SAP within many standard programs, screens and menus on which customers may “hang” custom functionality to meet business requirements
There are three main types of customer exits: function module exits, screen exits and menu exits
Function Module Exit: allows customer to add code via a function module at a specific location in an SAP application program
Menu Exit: allows customer to add items to a pull down menu in a standard SAP program. These items may be used to call add-on programs or custom screens.
Screen Exit: allows customer to add fields to a screen in an SAP program via a subscreen. The subscreen is called within the standard screen’s flow logic.
Customer exits are “hooks” provided by SAP within many standard programs, screens and menus on which customers may “hang” custom functionality to meet business requirements
There are three main types of customer exits: function module exits, screen exits and menu exits
Function Module Exit: allows customer to add code via a function module at a specific location in an SAP application program
Menu Exit: allows customer to add items to a pull down menu in a standard SAP program. These items may be used to call add-on programs or custom screens.
Screen Exit: allows customer to add fields to a screen in an SAP program via a subscreen. The subscreen is called within the standard screen’s flow logic.
| CONVERSION | INTERFACE | 
| 
Converting
  Legacy System DATA into a flat file | 
Converting Flat
  File into SAP | 
| 
Conversion is
  one time process | 
Interface is
  periodic process. | 
| 
Converting Legacy System DATA into a flat file: 
Meaning that it
  is mainly a one shot deal for example:  
Bringing
  our  customer master to
  SAP from the legacy system, converting the fields used in legacy to the
  fields & values used in SAP. | 
Converting Flat File into SAP: 
A program (or)
  group of programs that handle the passing of data from one system to another
  .These programs work together to export the data from one system & import
  into a target system ,may be these programs run once a day ,may be twice ,may
  every hour throughout the day . 
It is a good
  way to keep the data in two (or ) more systems in sync with each other  | 
| SAP MEMORY | ABAP MEMORY | 
| 
SAP memory (also known as
  global memory), if the data has to be passed b/w two main sessions, we can
  use SAP Memory (SPA/GPA Parameters).  SAP Memory can also be used to
  pass data b/w internal sessions. | 
Within a main
  session, when ever you start an application program, it opens up an internal
  sessions with in the main session. The internal session has a memory area
  that contains the ABAP program and its associated data.  So when ever
  you want to pass data between two internal sessions, then you can use ABAP Memory (i.e. import, export).  | 
| 
Application programs that use SAP memory must do so using
  SPA/GPA parameters (also known as SET/GET parameters). These parameters can
  be set either for a particular user or for a particular program using the SET
  PARAMETER statement. Other ABAP programs can then retrieve the set parameters
  using the GET PARAMETER statement. The most frequent use of SPA/GPA
  parameters is to fill input fields on screens . The SET PARAMETER and GET PARAMETER statements allow you to write to, or read from, the SAP memory. | 
ABAP memory is
  a memory area that all ABAP programs within the same internal session can
  access using the EXPORT and IMPORT statements. 
You can retain
  or pass data across internal sessions. The EXPORT TO MEMORY andIMPORT FROM MEMORY statements allow you to write data
  to, or read data from, the ABAP memory.  | 
| SELECT-OPTIONS | RANGES | 
| 
Here both
  SELECT-OPTIONS & RANGES works for the same purpose.  They both are
  used for the range selection from selection screen.  The main diff.
  between them is : |  | 
| 
While we use
  SELECT-OPTIONS, system implicitly creates the select options internal table
  which contains the fields of SIGN, OPTION, LOW & HIGH. | In case of RANGES, this internal table should be defined explicitly. | 
| 
Example 1:  REPORT YARSELECT. TABLES YTXLFA1. SELECT-OPTIONS : VENDOR FOR TXLFA1-LIFNR. INITIALIZATION. VENDOR-LOW = 1000. " It specifies the range starting value. VENDOR-HIGH = 2000. " It specifies the range ending value. VENDOR-OPTION = 'BT'. " specifies ranges value is in between. VENDOR-SIGN = 'I'. "specifies both inclussive. APPEND VENDOR. - - - - - - - - SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO TABLE ITAB WHERE LIFNR IN VENDOR. 
Example 2: 
select-options:
  bukrs for zstock-bukrs.  Should the user fill in 'ABFI' in BUKRS on the selection screen, BUKRS will look like this: IEQABFI This is because BUKRS is set as a table as follows: begin of bukrs occurs 0, SIGN(1) type c, OPTION(2) type c, LOW like bukrs, HIGH like bukrs, end of bukrs. Now, when you create the following range, it will have the exact same fields set inside its table: | 
REPORT
  YARRANGE.  TABLES YTXLFA1. RANGES: VENDOR FOR YTXFLA1-LIFNR. - - - - - - - -- - - - - SELECT LIFNR LAND1 NAME1 FROM LFA1 INTO TABLE ITAB WHERE LIFNR IN VENDOR. Here with RANGES user has to design an internal table with fields - SIGN,OPTION,LOW and HIGH EXPLICITLY. 
----------------------------------------------------- Now, when you create the following range, it will have the exact same fields set inside its table: Ranges: bukrs for zstock-bukrs. The difference is, because ranges doesn't show on the selection screen, you will have to fill it yourself, meaning you will have to fill bukrs-sign, bukrs-option, bukrs-low & bukrs-high all manually. | 
| 
Some Tips:  Sign is always I (for Include) or E (for Exclude) Option can be a whole range, which includes: EQ (Equal) BT (Between)) CP (Contain Pattern) So let's say you want to have the range check for all company codes not starting with AB, you will set your code as follow: ranges: bukrs for zstock-bukrs. bukrs-sign = 'E'. "Exclude bukrs-option = 'CP'. "Pattern bukrs-low = 'AB*'. "Low Value bukrs-high = ''. "High Value append bukrs. Always remember to APPEND your range when you fill it, as the WHERE clause checks against the lines of the range table, not against the header line. |  | 
| SELECT upto 1 rows | |
| 
The 'SELECT SINGLE' statement selects the first row in the
  database that it finds that fulfils the 'WHERE' clause If this results in
  multiple records then only the first one will be returned and therefore may
  not be unique.  | 
The 'SELECT
  .... UP TO 1 ROWS' statement is subtly different. The database selects all of
  the relevant records that are defined by the WHERE clause, applies any
  aggregate, ordering or grouping functions to them and then returns the first
  record of the result set.  | 
| 
The most
  important thing to remember about theSELECT SINGLE is There are several things to remember: 1) It retrieves only one row 2) It does not need an ENDSELECT statement 3) THE FULL KEY OF THE TABLE MUST BE INCLUDED IN THE WHERE CLAUSE OF THE SELECT STATEMENT |  | 
| 
Select single * will fetch the first matching
  value into a work area. | 
Select upto fill
  fetch all the values and fill the internal table with first matching record. | 
| 
single * will
  use work area | 
Select upto 1
  rows will use internal table. | 
| Check Table | Value Table | 
| 
Check table Validates the data -
  because it contains all valid set of values . | 
Value table doesn't validates the
  data. | 
| 
This is nothing
  but a Parent & Child relationship . Here data can be maintained at client level , no development involved. | 
Value table is maintained at domain level | 
| Table | Structure | 
| 
Represent the Database Tables where data actually resides. | 
Are record
  declarations that do not correspond to a Database Table. 
Just like user-defined data type. | 
| 
Tables can be
  defined independently of the database in the ABAP Dictionary | 
Defined like a table and can then be addressed from ABAP/4
  programs.  | 
| 
The fields of the table are defined with their
  (database-independent) ABAP/4 data types and lengths. | 
Structures contain data only during the runtime of a program. | 
| 
Tables which
  exists at the underlying DB | 
Structures
  doesnot exists at the Underlying DB | 
| Filed Strings | Structure | 
| 
There is no
  differnts b/w field string and structure both are same...but  |  | 
| 
The term field
  string is used in program | 
the term structure is used in tables. | 
| 
Both are used
  to declare a group of common variables/field that is frquently used in sap. |  | 
| 
Field string
  can hold one record at a time. | 
Structure
  contains data temporarily during program run time. No database table are generated from it. | 
| 
field string is
  the one we create in programs,classes,Fms,etc...these | 
structure is
  the one we create in the data dictionary.these are global | 
| Cluster Tables | Pool Tables | 
| 
The data from several (Small) different tables can be stored
  together in a Table pool or Table cluster. (Large) tables assigned to a Table pool or Table cluster are referred to as Pooled tables or Cluster tables. |  | 
| 
A cluster table is similar to a pooled table. It has a
  many-to-one relationship with a table in the database. Many cluster tables
  are stored in a single table in the database called a table cluster.  | 
A pooled table
  in R/3 has a many-to-one relationship with a table in the database. | 
| 
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. 
The intersection of the key fields
  of the cluster tables forms the Primary key of the Table cluster. | 
Table
  Pools A Table pool or Table cluster should be used exclusively for storing internal control information (screen sequences, program parameters, temporary data, continuous texts such as documentation). Data of commercial relevance is usually stored in transparent 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 Table pool's primary key
  consists of two fields: 1) TABNAME for the name of a pool table 2) VARKEY for the interdependent contents of the key fields in the corresponding pool table. | 
| 
The table in the database has a different name than the tables
  in the DDIC, it has a different number of fields, and the fields have
  different names as well. Pooled tables are an SAP proprietary construct.  |  | 
| END-OF-SELECTION | END-OF-PAGE | 
| 
Will trigger at
  the end f every page | 
Will trigger only once at the end of processing all the
  events. | 
| 
END-OF-SELECTION
  is the last of the events called by the runtime environment to occur. It is
  triggered after all of the data has been read from the logical database, and
  before the list processor is started | 
To define page
  footer, use the END-OF-PAGE event. This event occurs if, while processing a
  list page, the system reaches the lines reserved for the page footer, or if
  the RESERVE statement triggers a page break. Fill the lines of the page
  footer in the processing block following the event keyword END-OF-PAGE | 
| 
END-OF-SELECTION
  occurs after all the database related SELECT statements have finished their
  execution. 
So,END-OF-SELECTION occurs before
  END-OF-PAGE bcoz database fetch is completed before displaying the report. | 
when a report
  is written and when a new page begins, the top-of-page event is triggered and the statements in this event block are executed. 
Like-wise when the end of the page
  is reached,theEND-OF-PAGE event is triggered and the statements in this event
  block are triggered. 
The END-OF-PAGE
  is decided by the size of the page which is determined by the LINE-COUNT
  addition in the REPORT statement. | 
| JOINS | FOR ALL ENTRIES | 
| 
Joins are used
  to fetch data from two database table based on certain joining condition. | 
For all entries
  is used to fetch data from database table based on the data present in the
  internal table. | 
| 
Join statement
  is used to create a view on two or more tables that is we can select the
  entries from two or more tables simultaneously.. Like if we want VBAK (SO
  header tab) and VBAP (SO item tab) details in single work area we go for join
  statement. | 
For all entries
  option is used when we want to select data into the table on the basis of
  already existing internal table data. Like we have SO header details in
  vbak_itab internal table and now we want SO item details in separate
  vbap_itab then we will go for this option... | 
| 
SE01 | 
SE09 | 
SE10 | 
| 
To display the
  workbench Requests | 
Workbench
  Request and it is client specific | 
Customizing
  Requests which is Global | 
| 
Especially for administrative purpose means administrator can
  achieve all the tasks from here | 
workbench
  requests related to developers to make the changes | 
Customizing
  requests related to business analysts | 
| 
Syntax Error | 
Runtime Error | 
| 
Syntax error
  means you are not using proper syntax in coding | 
Runtime error means syntax is correct but you are trying to do
  some operation whih is logically not possible like  
the error which occurs during
  runtime..... 
for example: if u give 5/0...then it gives
  runtime error. if u declare a internal table with 5 feilds and u select4 feilds and try to place in internal table...it gives runtime error. | 
| 
A program with a syntax error cannot be executed. | 
The program
  with a runtime error can be executed but dumps under certain conditions. 
Example: You
  have a division statement in  
Your program.
  If for some reason the denominator becomes zero then you will get a runtime
  error (something like DIVISION_BY_ZERO). | 
| 
Syntax errors
  are static error that can be detected by the
  compiler | 
Runtime errors
  are dynamic error that cannot be detected by the
  compiler. | 
| 
Check | 
Continue | 
| 
check is
  conditional 
 
 
 
 
*output:*3 4 | 
continue is non
  conditional 
 
 
 
 
 
 *output:*3 4 | 
| 
Check statement
  is like IF and EXIT combined. That is if check statement fails then it skips
  the programming code next.. | 
Continue statement is used inside the loops if we want to
  again start the loop with the same record thus there is no exit.. | 
| 
Default  | 
Initialization | 
| 
Default is one
  of the selection screen statement used to default a value in a particular
  parameter in the selection screen | 
Initialization
  is a event in reports where you can initialize values in all types of fields
  in the selection screen | 
| 
NACE | 
TNAPR | 
| 
The transaction
  code where you can maintain the output types for the applications... 
NACE - Initial Customizing Screen where your going to attach the layout which u have designed to the particular output type - Specifies the kind of output to be produced. 
The output type can specify, for
  example, a printed form that you need for internal use or a form that you
  want to send to a customer or vendor (for example, an order confirmation).
  The output type can also be an internal electronic mail message that you want
  to send to staff in another department. 
Print program - If you want to
  inform a partner about changes to output that was already issued, you enter
  the name of a program and a routine in the Form routine field. 
The routine in the program checks
  which changes should result in a changed output being sent. | 
TNAPR table has
  the details of the driver programs for Scripts and Smart forms. 
In table TNAPR, pass the driver
  program name in PGNAM field. Smart form name is obtained in SFORM field. | 
| 
/h | 
/hs | 
/ha | 
| 
Start Debugger | 
Start System
  Debugging | 
Start Debugging
  without Screen Handling | 
 
1 comment:
Good Information...
Post a Comment