What is buffer? how many types of buffers r there?

how many types of joins r there?
thank u.

Whenever an Open SQL statement is used to read a record,
the data buffer is checked first to see whether it is there. If not, the data is read from the database.
If the table's attributes indicate that the data should be buffered,
the record is saved in RAM on the application server in data buffers.
Later, if that record is read again, it is read from the buffer instead of the database.
By buffering data, you increase performance in two important ways:
The programs using the buffered data run faster because they don't have to wait for it to come from the database. This reduces delays waiting for the database and the network that connects it.
The other programs that need to access the database run faster because there is less load on the database and less traffic on the network.
Three types of buffering are possible:
Full Buffering
With full buffering, either the entire table is in the buffer or the table is not in the buffer at all. All
the records of the table are loaded into the buffer when one record of the table is read.
In this example, a program reads the record highlighted in red from table
SCOUNTER. If the table is fully buffered, all the records of the table are loaded into
the buffer.
Application server
The buffered data records are sorted in the buffer by table key. Accesses to the
buffered data can therefore only analyze field contents up to the last specified key
field for restricting the dataset to be searched.
The left-justified part of the key should therefore be as large as possible in such
accesses. For example, if you do not define the first key field, the system has to scan
the full table. In this case direct access to the database can be more efficient if the
database has suitable secondary indexes [Page 61].
When Should you Use Full Buffering?
When deciding whether a table should be fully buffered, you should take into account the size of
the table, the number of read accesses, and the number of write accesses. Tables best suited to
full buffering are small, read frequently, and rarely written.
Full buffering is recommended in the following cases:
BC - ABAP Dictionary SAP AG
Full Buffering
36 December 1999
• Tables up to 30 KB in size. If a table is accessed frequently, but all accesses are read
accesses, this value can be exceeded. However, you should always pay attention to the
buffer utilization.
• Larger tables where large numbers of records are frequently accessed. If these mass
accesses can be formulated with a very selective WHERE condition using a database
index [Page 61], it could be better to dispense with buffering.
• Tables for which accesses to non-existent records are frequently submitted. Since all the
table records reside in the buffer, the system can determine directly in the buffer whether
or not a record exists.
SAP AG BC - ABAP Dictionary
Generic Buffering
With generic buffering, all the records in the buffer whose generic key fields match this record are
loaded when one record of the table is accessed. The generic key is a part of the primary key of
the table that is left-justified.
In this example, the record highlighted in red is read by a program from table
SCOUNTER. If the table is generically buffered, all the records read whose generic
key fields (MANDT and CARRID) agree are loaded into the buffer.
Application server
When Should you Use Full Buffering?
A table should be buffered generically if only certain generic areas of the table are normally
needed for processing.
Client-specific, fully-buffered tables are automatically generically buffered since normally it is not
possible to work in all clients at the same time on an application server. The client field is the
generic key.
Language-specific tables are another example where generic buffering is recommended. In
general, only records of one language will be needed on an application server. In this case, the
generic key includes all the key fields up to and including the language field.
How Should you Define the Generic Key?
In generic buffering, it is crucial to define a suitable generic key.
BC - ABAP Dictionary SAP AG
Generic Buffering
If the generic key is too small, the buffer will contain a few very large areas. During access, too
much data might be loaded in the buffer.
If the generic key is too large, the buffer might contain too many small generic areas. These can
reduce buffer performance since there is an administrative entry for every buffered generic area.
It is also possible that too many accesses will bypass the buffer and go directly to the database,
since they do not fully define the generic key of the table. If there are only a few records in each
generic area, it is usually better to fully buffer the table.
Only 64 bytes of the generic key are used. You can specify a longer generic key, but the part of
the key exceeding 64 bytes is not used to create the generic areas.
Access to Buffered Data
It only makes sense to generically buffer a table if the table is accessed with fully-specified
generic key fields. If a field of the generic key is not assigned a value in a SELECT statement, it
is read directly from the database, bypassing the buffer.
If you access a generic area that is not in the buffer with a fully-specified generic key, you will
access the database to load the area. If the table does not contain any records in the specified
area ("No record found"), this area in the buffer is marked as non-existent. It is not necessary to
access the database if this area is needed again.
SAP AG BC - ABAP Dictionary
Single-Record Buffering
With single-record buffering, only the records that are actually read are loaded into the buffer.
Single-record buffering therefore requires less storage space in the buffer than generic and full
buffering. The administrative costs in the buffer, however, are greater than for generic or full
buffering. Considerably more database accesses are necessary to load the records than for the
other buffering types.
In this example, the record highlighted in red is read by a program from table
SCOUNTER. If single-record buffering is selected for the table, only the record that
was read is loaded into the buffer.
When Should you Use Single-Record Buffering?
Single-record buffering should be used particularly for large tables where only a few records are
accessed with SELECT SINGLE. The size of the records being accessed should be between 100
and 200 KB.
Full buffering is usually more suitable for smaller tables that are accessed frequently. This is
because only one database access is necessary to load such a table with full buffering, whereas
several database accesses are necessary for single-record buffering.
Access to Buffered Data
All accesses that are not submitted with SELECT SINGLE go directly to the database, bypassing
the buffer. This applies even if the complete key is specified in the SELECT statement.
BC - ABAP Dictionary SAP AG
Single-Record Buffering
40 December 1999
If you access a record which is not yet buffered with SELECT SINGLE, there is a database
access to load the record. This record is marked in the buffer as non-existent if the table does not
contain a record with the specified key.

Similar Messages

  • How many types of messages are there what are they?

    How many types of messages are there? what are they?

    Hi,
    Refer the Demo program this iwll help
    <b>DEMO_MESSAGES</b>
    1. MESSAGE xnnn.
    2. MESSAGE ID id TYPE mtype NUMBER n.
    3. MESSAGE xnnn(mid).
    Effect
    Sends a message. Messages are stored in table T100, and can be maintained using Transaction SE91. They are fully integrated in the forward navigation of the ABAP Workbench.
    The ABAP runtime environment handles messages according to the message type specified in the MESSAGE statement and the context in which the message is sent. There are six kinds of message type:
    A (Abend)
    Termination
    E (Error)
    Error
    I (Info)
    Information
    S (Status)
    Status message
    W (Warning)
    Warning
    X (Exit)
    Termination with short dump
    Messages are used primarily to handle user input on screens. The following table shows how each message type behaves in different contexts. The numbers are explained at the end of the table.
    A E I S W X
    PAI module 1 2 3 4 5 6
    PAI module at POH 1 7 3 4 7 6
    PAI module at POV 1 7 3 4 7 6
    AT SELECTION-SCREEN ... 1 8 3 4 9 6
    AT SELECTION-SCREEN at POH 1 7 3 4 7 6
    AT SELECTION-SCREEN at POV 1 7 3 4 7 6
    AT SELECTION-SCREEN ON EXIT 1 7 3 4 7 6
    AT LINE-SELECTION 1 10 3 4 10 6
    AT PFn 1 10 3 4 10 6
    AT USER-COMMAND 1 10 3 4 10 6
    INITIALIZATION 1 11 3 4 11 6
    START-OF-SELECTION 1 11 3 4 11 6
    GET 1 11 3 4 11 6
    END-OF-SELECTION 1 11 3 4 11 6
    TOP-OF-PAGE 1 11 3 4 11 6
    END-OF-PAGE 1 11 3 4 11 6
    TOP-OF-PAGE DURING ... 1 10 3 4 10 6
    LOAD-OF-PROGRAM 1 1 4 4 4 6
    PBO module 1 1 4 4 4 6
    AT SELECTION-SCREEN OUTPUT 1 1 4 4 4 6
    reward if this helps.

  • What is dsp.how many types of dso's

    hi
    guys
              what is dsp.how many types of dso's  plz post answer

    Hi,
    Types of DSO are
    1. Standard DSO
    2. Direct Update DSO
    3. Write Optimized DSO
    Standard DataStore object
    Data provided using a data transfer process
    SID values can be generated
    oData records with the same key are aggregated during activation
    Data is available for reporting after activation
    *Write-optimized DataStore object
    Data provided using a data transfer process
    SID values cannot be generated
    Records with the same key are not aggregated
    Data is available for reporting immediately after it is loaded
    *DataStore object for direct update
    Data provided using APIs
    SIDs cannot be generated
    Records with the same key are not aggregated
    Standard DSO:
    zRThe standard DataStore object is filled with data during the extraction and load process in the BI system.
    A standard DataStore object is represented on the database by three transparent tables:
    Activation queue: Serves to save DataStore object data records that are to be updated, but that have not yet been activated. The data is deleted after the records have been activated.
    Active data: A table containing the active data (A table).
    Change log: Contains the change history for the delta update from the DataStore object into other data targets, such as DataStore objects or InfoCubes.
    Direct Update DSO:
    The DataStore object for direct update differs from the standard DataStore object in terms of how the data is processed. In a standard DataStore object, data is stored in different versions (active, delta, modified), whereas a DataStore object for direct update contains data in a single version. Therefore, data is stored in precisely the same form in which it was written to the DataStore object for direct update by the application. In the BI system, you can use a DataStore object for direct update as a data target for an analysis process.
    DataStore objects for direct update ensure that the data is available quickly. The data from this kind of DataStore object is accessed transactionally. The data is written to the DataStore object (possibly by several users at the same time) and reread as soon as possible
    Write Optimized DSO:
    DataStore object that only consists of one table of active data. Data is loaded using the data transfer process.
    Data that is loaded into write-optimized DataStore objects is available immediately for further processing.
    You use write-optimized DataStore objects in the following scenarios:
    ● You use a write-optimized DataStore object as a temporary storage area for large sets of data if you are executing complex transformations for this data before it is written to the DataStore object. Subsequently, the data can be updated to further (smaller) InfoProviders. You only have to create the complex transformations once for all data.
    ● You use write-optimized DataStore objects as the EDW layer for saving data. Business rules are only applied when the data is updated to additional InfoProviders.
    The system does not generate SIDs for write-optimized DataStore objects and you do not need to activate them. This means that you can save and further process data quickly. Reporting is possible on the basis of these DataStore objects. However, we recommend that you use them as a consolidation layer, and update the data to additional InfoProviders, standard DataStore objects, or InfoCubes

  • How many types of rfcs are there

    Hello,
    Can any body explain about how many type of rfcs are there. give the difference also.
    Thanks.

    Hi,
    Check this info.
    These are the types of RFC
    Asynchronous RFC (aRFC)
    Synchronous RFC (sRFC)
    Transactional RFC (tRFC)
    Queued RFC (qRFC)
    Parallel RFC (pRFC)
    Asynchronous RFC :
    This is used when you need to increase the performance of ABAP program by having system call more than one function module in parallel than forcing the program to wait for results .
    Transactional RFC
    This let you group one or more function module call together o tRFC LUW and ensure that fucnction module within LUW is called once . In contrast to aRFC and sRFC the tRFC belonging to tRFC LUW are executed in order .
    tRFC is always used if a function is executed as a Logical Unit of Work (LUW). Within a LUW, all calls are
    1.Executed in the order in which they are called
    2.Executed in the same program context in the target system
    3.Run as a single transaction: they are either committed or rolled back as a unit.
    Implementation of tRFC is recommended if you want to guarantee that the transactional order of the calls is preserved
    Asynchronous remote function calls (aRFCs) are similar to transactional RFCs, in that the user does not have to wait for their completion before continuing the calling dialog. There are three characteristics, however, that distinguish asynchronous RFCs from transactional RFCs:
    • When the caller starts an asynchronous RFC, the called server must be available to accept the request.
    The parameters of asynchronous RFCs are not logged to the database, but sent directly to the server.
    • Asynchronous RFCs allow the user to carry on an interactive dialog with the remote system.
    • The calling program can receive results from the asynchronous RFC.
    You can use asynchronous remote function calls whenever you need to establish communication with a remote system, but do not want to wait for the function’s result before continuing processing. Asynchronous RFCs can also be sent to the same system. In this case, the system opens a new session (or window). You can then switch back and for between the calling dialog and the called session
    RECEIVE RESULTS FROM FUNCTION Remotefunction is used within a FORM routine to receive the results of an asynchronous remote function call. The following receiving parameters are available:
    IMPORTING
    TABLES
    EXCEPTIONS
    The addition KEEPING TASK prevents an asynchronous connection from being closed after receiving the results of the processing. The relevant remote context (roll area) is kept for re-use until the caller terminates the connection.
    Transactional RFC (tRFC) and Queued RFC (qRFC).
    tRFC is used mainly to transfer ALE Intermediate Documents (IDocs).
    Transactional RFC:
    If an error occurs during a synchronous remote function call, the system cannot tell at what point the error occurred (most crucially, whether the function module was actually processed in R/3 before the operation failed). Restarting a failed call is therefore a dangerous thing to do, since you risk duplicating a completed function call.
    To alleviate this problem, you can use transactional RFC, which guarantees that each function call you issue will only be executed once, even if you submit it repeatedly to the R/3 System. The system implements this safeguard by assigning a unique transaction ID (TID) to each transaction that you submit. When you attempt to process the transaction, the system checks whether that TID has already been processed. If it has, the transaction is ignored.
    Disadvantages of tRFC
    - tRFC processes all LUWs independent of one another. Due to the amount of activated tRFC processes, this procedure can reduce performance significantly in both the send and the target systems.
    - In addition, the sequence of LUWs defined in the application cannot be kept. Therefore, there is no guarantee that the transactions are executed in the sequence dictated by the application. The only guarantee is that all LUWs are transferred sooner or later.
    Queued RFC:
    When you use transactional RFC, you cannot guarantee the order in which the function calls will be processed in the system (it is quite possible that one call might overtake another). For cases where you need to specify a particular processing order, you can use queued RFC, which is an extension of transactional RFC. In qRFC, you place each function call in a logical queue. A function call cannot be executed until all of its predecessors in the queue have been processed. Queued RFC calls are processed asynchronously
    Therefore, Queued RFC is better than Transactional RFC.
    Remote Function Call:
    RFC is an SAP interface protocol. Based on CPI-C, it considerably simplifies the programming of communication processes between systems.
    RFCs enable you to call and execute predefined functions in a remote system - or even in the same system.
    RFCs manage the communication process, parameter transfer and error handling.
    http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.
    Remote Function Call (RFC) is the standard SAP interface for communication between SAP systems. The RFC calls a function to be executed in a remote system.
    Synchronous RFC:
    The first version of RFC is synchronous RFC (sRFC). This type of RFC executes the function call based on synchronous communication, which means that the systems involved must both be available at the time the call is made.
    Transactional RFC (tRFC) and Queued RFC (qRFC). tRFC is used mainly to transfer ALE Intermediate Documents (IDocs).
    Transactional RFC:
    If an error occurs during a synchronous remote function call, the system cannot tell at what point the error occurred (most crucially, whether the function module was actually processed in R/3 before the operation failed). Restarting a failed call is therefore a dangerous thing to do, since you risk duplicating a completed function call.
    To alleviate this problem, you can use transactional RFC, which guarantees that each function call you issue will only be executed once, even if you submit it repeatedly to the R/3 System. The system implements this safeguard by assigning a unique transaction ID (TID) to each transaction that you submit. When you attempt to process the transaction, the system checks whether that TID has already been processed. If it has, the transaction is ignored.
    Queued RFC:
    When you use transactional RFC, you cannot guarantee the order in which the function calls will be processed in the system (it is quite possible that one call might overtake another). For cases where you need to specify a particular processing order, you can use queued RFC, which is an extension of transactional RFC. In qRFC, you place each function call in a logical queue. A function call cannot be executed until all of its predecessors in the queue have been processed. Queued RFC calls are processed asynchronously
    For more information on RFC, please go through the link.
    http://help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5b6a85b11d6b28500508b5d5211/content.htm
    Have a look at this link.
    http://help.sap.com/printdocu/core/Print46c/en/data/pdf/BCFESDE2/BCFESDE2.pdf
    http://help.sap.com/saphelp_47x200/helpdata/en/22/042860488911d189490000e829fbbd/frameset.htm.
    Rewords some points.
    Rgds,
    P.Nag

  • How many types of requests are there

    hai,
    how many types of requests are there plz explain it plzzzzzzzzzzz
    thanks and regards,
    pg babu

    Hi ,
    We are not at all clear about your query here. Please let us know what kind of requests you are telling about. Is it regarding data base requests?
    Regards,
    Abhisek

  • How many types of ports are there which we use for data transfe in ale/idoc

    friends let me know how many types of ports  are there which we use for transfering
    data in ale/idocs?

    Hello,
    you can use file port,trnasactional RFC port.FI you are using IDOC-XML conversion combination,then you can XML port also.
    Thanks

  • How many types of messages are there

    Hi,
    After using CALL TRANSACTION tcode USING gi_bdcdata
                     MODE   gv_ctumode
                     UPDATE gv_cupdate
                     MESSAGES INTO gi_messtab.
    I am looping gi_messtab for extracting messages.
    I know msgtyp = 'E'    -
    > means error message.
    I want to how many types of messages are there, tell me with the full forms.
    s -
    > means?
    LOOP AT gi_messtab.
    IF gi_messtab-msgtyp = 'E'.
    endif.
    endloop.

    HI Mohan
    A --> Termination Message
    The message appears in a dialog box, and the program terminates. When the user has confirmed the message, control returns to the next-highest area menu.
    E -->  Error Message
    Depending on the program context, an error dialog appears or the program terminates.
    I --> Information
    The message appears in a dialog box. Once the user has confirmed the message, the program continues immediately after the MESSAGE statement.
    S -->  Status Message and Sucess message
    The program continues normally after the MESSAGE statement, and the message is displayed in the status bar of the next screen.
    W --> Warning
    Depending on the program context, an error dialog appears or the program terminates.
    X --> Exit
    No message is displayed, and the program terminates with a short dump. Program terminations with a short dump normally only occur when a runtime error occurs. Message type X allows you to force a program termination. The short dump contains the message ID.
    Regards
    Sudheer

  • How many  types of joins are there?

    how many  types of joins are there?
    Edited by: Alvaro Tejada Galindo on Feb 21, 2008 4:58 PM

    Hi,
    Joins are used to fetch data fast from Database tables:
    Tables are joined with the proper key fields to fetch the data properly.
    If there are no proper key fields between tables don't use Joins;
    Important thing is that don't USE JOINS FOR CLUSTER tableslike BSEG and KONV.
    Only use for Transparenmt tables.
    You can also use joins for the database VIews to fetch the data.
    JOINS
    ... FROM tabref1 INNER JOIN tabref2 ON cond
    The data is to be selected from transparent database tables and/or views determined by tabref1 and tabref2. tabref1 and tabref2 each have the same form as in variant 1 or are themselves Join expressions. The keyword INNER does not have to be specified. The database tables or views determined by tabref1 and tabref2 must be recognized by the ABAP Dictionary.
    In a relational data structure, it is quite normal for data that belongs together to be split up across several tables to help the process of standardization (see relational databases). To regroup this information into a database query, you can link tables using the join command. This formulates conditions for the columns in the tables involved. The inner join contains all combinations of lines from the database table determined by tabref1 with lines from the table determined by tabref2, whose values together meet the logical condition (join condition) specified using ON>cond.
    Inner join between table 1 and table 2, where column D in both tables in the join condition is set the same:
    Table 1 Table 2
    A  B  C  D    D  E  F  G  H 
    a1  b1  c1  1    1  e1  f1  g1  h1 
    a2  b2  c2  1    3  e2  f2  g2  h2 
    a3  b3  c3  2    4  e3  f3  g3  h3 
    a4  b4  c4  3    -
    Inner Join
    A  B  C  D  D  E  F  G  H 
    a1  b1  c1  1  1  e1  f1  g1  h1 
    a2  b2  c2  1  1  e1  f1  g1  h1 
    a4  b4  c4  3  3  e2  f2  g2  h2 
    Example
    Output a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out:
    DATA: DATE LIKE SFLIGHT-FLDATE,
    CARRID LIKE SFLIGHT-CARRID,
    CONNID LIKE SFLIGHT-CONNID.
    SELECT FCARRID FCONNID F~FLDATE
    INTO (CARRID, CONNID, DATE)
    FROM SFLIGHT AS F INNER JOIN SPFLI AS P
    ON FCARRID = PCARRID AND
    FCONNID = PCONNID
    WHERE P~CITYFROM = 'FRANKFURT'
    AND P~CITYTO = 'NEW YORK'
    AND F~FLDATE BETWEEN '20010910' AND '20010920'
    AND FSEATSOCC < FSEATSMAX.
    WRITE: / DATE, CARRID, CONNID.
    ENDSELECT.
    If there are columns with the same name in both tables, you must distinguish between them by prefixing the field descriptor with the table name or a table alias.
    In order to determine the result of a SELECT command where the FROM clause contains a join, the database system first creates a temporary table containing the lines that meet the ON condition. The WHERE condition is then applied to the temporary table. It does not matter in an inner join whether the condition is in the ON or WHEREclause. The following example returns the same solution as the previous one.
    Example
    Output of a list of all flights from Frankfurt to New York between September 10th and 20th, 2001 that are not sold out:
    DATA: DATE LIKE SFLIGHT-FLDATE,
    CARRID LIKE SFLIGHT-CARRID,
    CONNID LIKE SFLIGHT-CONNID.
    SELECT FCARRID FCONNID F~FLDATE
    INTO (CARRID, CONNID, DATE)
    FROM SFLIGHT AS F INNER JOIN SPFLI AS P
    ON FCARRID = PCARRID
    WHERE FCONNID = PCONNID
    AND P~CITYFROM = 'FRANKFURT'
    AND P~CITYTO = 'NEW YORK'
    AND F~FLDATE BETWEEN '20010910' AND '20010920'
    AND FSEATSOCC < FSEATSMAX.
    WRITE: / DATE, CARRID, CONNID.
    ENDSELECT.
    Since not all of the database systems supported by SAP use the standard syntax for ON conditions, the syntax has been restricted. It only allows those joins that produce the same results on all of the supported database systems:
    Only a table or view may appear to the right of the JOIN operator, not another join expression.
    Only AND is possible in the ON condition as a logical operator.
    Each comparison in the ON condition must contain a field from the right-hand table.
    If an outer join occurs in the FROM clause, all the ON conditions must contain at least one "real" JOIN condition (a condition that contains a field from tabref1 amd a field from tabref2.
    In some cases, '*' may be specified in the SELECT clause, and an internal table or work area is entered into the INTO clause (instead of a list of fields). If so, the fields are written to the target area from left to right in the order in which the tables appear in the FROM clause, according to the structure of each table work area. There can then be gaps between table work areas if you use an Alignment Request. For this reason, you should define the target work area with reference to the types of the database tables, not simply by counting the total number of fields. For an example, see below:
    Variant 3
    ... FROM tabref1 LEFT OUTER JOIN tabref2 ON cond
    Effect
    Selects the data from the transparent database tables and/or views specified in tabref1 and tabref2. tabref1 und tabref2 both have either the same form as in variant 1 or are themselves join expressions. The keyword OUTER can be omitted. The database tables or views specified in tabref1 and tabref2 must be recognized by the ABAP-Dictionary.
    In order to determine the result of a SELECT command where the FROM clause contains a left outer join, the database system creates a temporary table containing the lines that meet the ON condition. The remaining fields from the left-hand table (tabref1) are then added to this table, and their corresponding fields from the right-hand table are filled with ZERO values. The system then applies the WHERE condition to the table.
    Left outer join between table 1 and table 2 where column D in both tables set the join condition:
    Table 1 Table 2
    A  B  C  D    D  E  F  G  H 
    a1  b1  c1  1    1  e1  f1  g1  h1 
    a2  b2  c2  1    3  e2  f2  g2  h2 
    a3  b3  c3  2    4  e3  f3  g3  h3 
    a4  b4  c4  3    -
    Left Outer Join
    A  B  C  D  D  E  F  G  H 
    a1  b1  c1  1  1  e1  f1  g1  h1 
    a2  b2  c2  1  1  e1  f1  g1  h1 
    a3  b3  c3  2  NULL NULL NULL NULL NULL
    a4  b4  c4  3  3  e2  f2  g2  h2 
    Example
    Output a list of all custimers with their bookings for October 15th, 2001:
    DATA: CUSTOMER TYPE SCUSTOM,
    BOOKING TYPE SBOOK.
    SELECT SCUSTOMNAME SCUSTOMPOSTCODE SCUSTOM~CITY
    SBOOKFLDATE SBOOKCARRID SBOOKCONNID SBOOKBOOKID
    INTO (CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY,
    BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID,
    BOOKING-BOOKID)
    FROM SCUSTOM LEFT OUTER JOIN SBOOK
    ON SCUSTOMID = SBOOKCUSTOMID AND
    SBOOK~FLDATE = '20011015'
    ORDER BY SCUSTOMNAME SBOOKFLDATE.
    WRITE: / CUSTOMER-NAME, CUSTOMER-POSTCODE, CUSTOMER-CITY,
    BOOKING-FLDATE, BOOKING-CARRID, BOOKING-CONNID,
    BOOKING-BOOKID.
    ENDSELECT.
    If there are columns with the same name in both tables, you must distinguish between them by prefixing the field descriptor with the table name or using an alias.
    Note
    For the resulting set of a SELECT command with a left outer join in the FROM clause, it is generally of crucial importance whether a logical condition is in the ON or WHERE condition. Since not all of the database systems supported by SAP themselves support the standard syntax and semantics of the left outer join, the syntax has been restricted to those cases that return the same solution in all database systems:
    Only a table or view may come after the JOIN operator, not another join statement.
    The only logical operator allowed in the ON condition is AND.
    Each comparison in the ON condition must contain a field from the right-hand table.
    Comparisons in the WHERE condition must not contain a field from the right-hand table.
    The ON condition must contain at least one "real" JOIN condition (a condition in which a field from tabref1 as well as from tabref2 occurs).
    Note
    In some cases, '*' may be specivied as the field list in the SELECT clause, and an internal table or work area is entered in the INTO clause (instead of a list of fields). If so, the fields are written to the target area from left to right in the order in which the tables appear in the llen in der FROM clause, according to the structure of each table work area. There can be gaps between the table work areas if you use an Alignment Request. For this reason, you should define the target work area with reference to the types of the database tables, as in the following example (not simply by counting the total number of fields).
    Example
    Example of a JOIN with more than two tables: Select all flights from Frankfurt to New York between September 10th and 20th, 2001 where there are available places, and display the name of the airline.
    DATA: BEGIN OF WA,
    FLIGHT TYPE SFLIGHT,
    PFLI TYPE SPFLI,
    CARR TYPE SCARR,
    END OF WA.
    SELECT * INTO WA
    FROM ( SFLIGHT AS F INNER JOIN SPFLI AS P
    ON FCARRID = PCARRID AND
    FCONNID = PCONNID )
    INNER JOIN SCARR AS C
    ON FCARRID = CCARRID
    WHERE P~CITYFROM = 'FRANKFURT'
    AND P~CITYTO = 'NEW YORK'
    AND F~FLDATE BETWEEN '20010910' AND '20010920'
    AND FSEATSOCC < FSEATSMAX.
    WRITE: / WA-CARR-CARRNAME, WA-FLIGHT-FLDATE, WA-FLIGHT-CARRID,
    WA-FLIGHT-CONNID.
    ENDSELECT.

  • How many types of servlets are there

    posted June 12, 2006 03:36 AM
    HI EveryOne
    what are the different types of servlets.
    If we want to write our own servlet for particular protocol
    what to do ?

    I don't think it goes as far as needing to change the server. You just have to do a bunch of subclassing and servlet mapping.
    I would start with a subclass of GenericServlet that mimics the functionality of HttpServlet. For example, if I had an FtpServlet it might override the service method to read the FTP request and forward it to a doUser, doPass, doChangeWorkingDirectory, doQuit, doPort, doMode, doRetrieve, doStore, doAppend, etc... methods (there are a lot of commands for FTP.
    You would probably want to make FtpServletRequest and FtpServletResponse classes as well. For instance, your FtpServlet would probably make an FtpServletRequest (that would double as the user's FTP session since FTP really is a sequence of requests) that stores all the user's previous commands and their order. It is maintained (probably mapped to the user's IP address) on a per-user basis until they doQuit.
    The FtpServletResponse would be a a little more complicated. I would probably design it to do the data transfer part of FTP. It would then be a Thread that managed a URLConnection to the client to get or send data to.
    You design your servlets to extend your FtpServlet and override those methods whose default functionality you want to change and maybe design a good wrapping system to make it easy to do the different FtpResponses that would be required.
    You configure the server to listen to port 21, and your firewall to allow two way traffic on port 20. You would map all incoming calls to a default FtpServlet whose actual class you define in web.xml.
    I think you then have a working FtpServlet without the need to force the web server to recognize that it is doing it.
    Come to think of it, you probably wouldn't need a lot of subclassing of the FtpServlet. Probably just one for every site you want to host (would you want to have special cases for specific files?).
    I guess the real room for developement would be to get an FTP command that does one of the myriad of FTP actions. As you develope them you could probably use servlet parameters in web.xml to define which class to call for each of the actions...
    I digress. What meant to say was that all you have to do is some subclassing and URL mapping. No real change to the server itself.

  • How many types of exits are there...

    explain each exit with a simple easy example...
    Message was edited by:
            balaji velpuri

    explain each exit with a simple easy example...
    Message was edited by:
            balaji velpuri

  • How many types of roadmaps?

    Hi
    How many types of roadmaps are there?
    What is the use of roadmaps?
    What are the substructures of the each phase?
    Message was edited by:
            Neni

    Hi Neni,
    all of the information you are looking for is here.
    http://service.sap.com/roadmaps
    Also, in the system if you create a project in SOLAR_PROJECT_ADMIN, click on the scope tab and the the Roadmap select tab and you can see what Roadmaps are available for you. The ST-ICO component determines which ones you have.
    The purpose of a roadmap is to give you an idea of the items you need to accomplish, milestones and accelerators to help you perform the task at hand.
    Look through the link above and then ask questions if you need more detail.
    regards,
    Jason

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

    hi,
    How many types of tables exists and what are they in data dictionary?
    regards.

    Hello Liu,
    Please search in forum before posting any question .
    anyhow check the below link :
    http://web.mit.edu/sapr3/dev/sap_table_types.htm
    Thanks
    Seshu

  • How many types i can import as file in FLA and what's the differences ??

    Hello
    How many types i can import as file in FLA and what's the differences ??

    you wouldn't import a .as file. 
    you could open it in the flash ide (or any text editor) and edit it.
    you could  create a fla and assign a document class which flash will compile into your swf.
    you could create a library object in a fla, tick export for actionscript and assign a class that flash will compile that class into your swf.
    you could instantiate a class object (using the "new" constructor) in a flash movieclip timeline or in another class file and flash will compile that class into your swf.
    for Workers to extend a class use something like:
    package
    import Citizens;
          public class Workers  extends Citizens
           protected var baseSalary:Number = 1000;
               public function Workers()
                   super();
              public function receivePayment():Number
                    return this.baseSalary;

  • How many types of internal tabels?

    hi all,
    how many types of internal tbels ,
    how they are differetiate ?
    regards.
    raj

    Hi,
    Three Types of Internal Table:
    1.Standard Table
    2.Sorted Table
    3.Hashed Table
    Standard Table - the most commonly used type of table.
    The key access to a standard table uses a sequential search. The time required for an access is linearly dependent on the number of entries in the internal table.
    You should usually access a standard table with index operations.
    You can sort and resort this table anytime. You can have duplicate records in them. Recommend that when accessing these tables, you sort them by a key and then READ via a BINARY SEARCH - better performance. When you write to this table the record is "appended" to the end of the table. In order to maintain the sort sequence (if any) you must use the SORT command again.
    Sorted table - this table has a defined sort sequence. You cannot resort. You can have duplicates.
    The table is always stored internally sorted by its key. Key access to a sorted table can therefore use a binary search. If the key is not unique, the entry with the lowest index is accessed. The time required for an access is logarithmically dependent on the number of entries in the internal table.
    Index accesses to sorted tables are also allowed. You should usually access a sorted table using its key.
    When you READ these tables, SAP automatically tries to use a BINARY SEARCH. Because you use a Binary Search, the retrieval time isexpodential to the number of records. When you write a record to this table the table is resorted.
    Hashed Table - this table has a defined key.
    The table is internally managed with a hash procedure. All the entries must have a unique key. The time required for a key access is constant, that is it does not depend on the number of entries in the internal table.
    When you write to the table it uses a hashing algorithm to identify where the record is stored (think if this as writing the location of a page in an index of a book). When you READ this table the system looks up this "index" and retrieves the record. Because of this the retrieval time is constant. Writing to this type of table takes the most time as it needs to calculate the hashing algorithm.
    Personally I generally use Standard Tables as they are the most flexible table available. It lets me resort my data anyhow I like any time I like. I very rarely use a Sorted Table.
    I use Hashed Tables as "buffer" tables. Let's say for example I want to retrieve HR data for a number of sales reps. To get HR data I need to use FM 'HR_READ_INFOTYPE'. This takes time. So what I do is read my hashed table to see if I have already got the data (very quick). If I don't have the data, I hit the FM and update my hashed table for next time. By using the hashed table in this way I reduce the number of FM calls I need to make.
    /people/harry.dietz/blog/2005/10/28/performance-improvement-hints-3-internal-table--fill-and-read
    http://www.sap-img.com/abap/what-are-different-types-of-internal-tables-and-their-usage.htm
    http://help.sap.com/saphelp_erp2005/helpdata/en/fc/eb35de358411d1829f0000e829fbfe/frameset.htm
    Regards,
    Padmam.

  • How many types of projects exist in sap bw

    i heard that there are two types of projects
    1.implementation project
    2.support project
    and what about up gradation project, migration project, and i want to know what all the projects exists and there processes..
    if not possible please provide the link to navigate me to there

    sb92075 wrote:
    how many types of searching is in dbms ?42(What was the question, again? ;-) )
    Learn something new every day. I thought there were only 2 - successful (aka correct) and failed (aka wrong).

Maybe you are looking for

  • How to display ext_quote_id in bbsc01 ?

    Hi, I would like to display the ext_quote_id field on BBSC01. I was hoping to just find the correct template name and un-comment the corresponding line. However, i did not find it.... Do you know where it is ? Kind regards, Yann

  • PI7.11 - Integration Directory

    I'm trying using PI7.11.  Trying to create this scenario, ECC<-(SOAPadapter)->PI<-- (JDBCadapter)----->OracleTable. I've got all the design objects built correctly along with the SLD products and all. I'm in ID now where I created 2 business systems

  • P2 STORAGE Volumes won't transfer data

    Okay. So. I have 5 (8 GB) P2 cards loaded up on my P2 Store. The volumes show up on my desk top and in FCP 6.0.1 they show up in log and capture with their respective thumbnails and "(incomplete)" next to the file. I select a clip to add to que... it

  • JMS Cluster error

    Hi,           We have clustered two WLS 6.1 instances which has two JMS servers one deployed on each server instance. There are two destinations(Queues) with same JNDI name but deployed under different JMS servers. We are getting this following error

  • No 'Refresh' tab, can't find in Customize menu

    Another application directs me to refresh my browser page. FF doesn't show any command for doing that. I followed instructions from a user in your community, but there is no option for refreshing or reloading in the Customize palette.