About modularization techniques

hi,,
   can anybody send me the details about modularization techniques ?
   mainly i want differences between INCLUDES and FUNCTION MODULES.
                                                     MACROS and SUBROUTINES.

Hi
Purpose of modularization is: 1) Organizing your ABAP Code 2) Limit maintenance cost by coding every thing only once and making your ABAP code easier to understand.
Modularization techniques:
1) Organizing your ABAP code can be done by using INCLUDE reports and local MACRO's (DEFINE statement). Typical examples can be found in Module Pools and Function Groups with TOP-includes and special includes for PBO events, PAI events et cetera. You can discuss if using subroutines, functions or methods is also part of this type of modularization technique. At this moment, most ABAP programmers use subroutines partly as a means to create some sort of main line in their program, thus limiting large chunks of ABAP code. Regarding MACRO's there are some special problems, especially that they don't improve readability of ABAP coding, and you can not debug them.
2)Here, we are talkin about ABAP PROCEDURES: a) Subroutines, b) Functions and c) Methods
- 2a) Subroutines: can be used locally and globally (external subroutine calls). Subroutines have a formal interface ( USING, CHANGING, TABLES parameters). The interface parameters can be passed BY VALUE or BY REFERENCE. Data that is defined within a subroutine (FROM ... ENDFORM.) is local: lifetime and visibility is limited to the moment the subroutine is called. External Subroutines are subroutines that are called from another program. Typical example can be found in the way SAPscript and SMARTforms printprograms are called by RSNAST00. External Subroutines can be grouped into Subroutine Pools.
- 2b) Functions: are part of function groups. They are designed for global use and have a unique name. Function Modules also have a formal interface using IMPORTING, EXPORTING, CHANGING and TABLES parameters. The interface parameters can be passed BY VALUE or BY REFERENCE. Specific EXCEPTIONS can be defined for error handling. A function module can also have local data.
In theory, a function module can only use data a)from the interface parameters, b) defined locally in the function module and c) defined globally in the function group. However, it is possible to see global data from calling programs using field-symbols.
Remote Function Modules are function modules that can be called from other SAP or NON-SAP systems. BAPI's are examples of RFC-enabled function modules.
Function Groups and Function Modules are maintained using transaction SE37 (or SE80).
- 2c) Methods: are part of CLASSES. Here we are talking about ABAP Objects, supporting inheritance, instantiation, encapsulation, polymorphism, events, Interfaces, visibility sections (PUBLIC, PROTECTED, PRIVATE) and lifetime options STATIC and INSTANCE.
Classes can be defined locally or globally: a) Local Classes are classes, defined as part of an ABAP program. They can be used only within this program. b) The functionality of Global Classes is identical, but these classes are maintained using the Class Builder (SE24 or SE80).
The name of a method is not unique; you always need the name of the object to create the unique name. As a result, several classes will have exactly the same method name.
Methods also have a formal interface using IMPORTING, EXPORTING, CHANGING and RETURNING parameters. The interface parameters can be passed BY VALUE or BY REFERENCE. Specific EXCEPTIONS can be defined for error handling. A method can also have local data.
In general, using classes is considered a much better alternative to using subroutines and function modules, especially with regards to maintenance costs. Actually, you do not need subroutines anymore. Function Modules are only needed is some cases, for example as RFC's because the classes don't support remote calls.
One limitation of ABAP Classes is that they do not support dynpro's. This means that you always need a report/module pool/function group if you want to create screens.
Within methods, several types of obsolete ABAP statements are not allowed like: ON CHANGE OF, TABLES and OCCURS.
Consider that new tools and options like Web Dynpro, Unit Testing, Shared Objects, Exception Classes can only be understood when having the knowledge of ABAP OO. If you are debugging new SAP transactions, you'll see that they are also programmed using ABAP Objects.
Processing blocks that are called from ABAP programs:
   1. Subroutines
   2. Function modules
   3. Methods
      Procedures
      Procedures contain a set of statements, and are called from other ABAP programs.
      The processing blocks that you call from ABAP programs are called procedures
      You define procedures in ABAP programs. When the program is generated, they remain as standalone modules. You can call procedures in the program in which they are defined, or from external programs. Procedures have an interface for passing data, and can also contain local data.
      ABAP contains the following kinds of procedures:
Subroutines
Subroutines are principally for local modularization, that is, they are generally called from the program in which they are defined. You can use subroutines to write functions that are used repeatedly within a program. You can define subroutines in any ABAP program.
Function Modules
Function modules are for global modularization, that is, they are always called from a different program. Function modules contain functions that are used in the same form by many different programs. They are important in the R/3 System for encapsulating processing logic and making it reusable. Function modules must be defined in a function group, and can be called from any program.
Methods
Methods describe the functions and behavior of classes and their instances in ABAP Objects. Methods must be defined in classes. When you call them, you must observe certain special rules of object-oriented programming.
Subroutines
Subroutines are procedures that you can define in any ABAP program and also call from any program. Subroutines are normally called internally, that is, they contain sections of code or algorithms that are used frequently locally. If you want a function to be reusable throughout the system, use a function module.
subroutine is a block of code introduced by FORM and concluded by ENDFORM.
FORM [USING ... [)] ... ] [CHANGING... [)] ... ].
ENDFORM.
subroutines cannot be nested. You should therefore place your subroutine definitions at the end of the program
Calling Subroutines
PERFORM... .
Subroutines can call other subroutines (nested calls) and may also call themselves (recursive calls). Once a subroutine has finished running, the calling program carries on processing after the PERFORM statement. You can use the USING and CHANGING additions to supply values to the parameter interface of the subroutine.
Function Modules
Function modules are procedures that are defined in function groups (special ABAP programs with type F) and can be called from any ABAP program. Function groups act as containers for function modules that logically belong together.
Unlike subroutines, you do not define function modules in the source code of your program. Instead, you use the Function Builder. The actual ABAP interface definition remains hidden from the programmer. You can define the input parameters of a function module as optional. You can also assign default values to them. Function modules also support exception handling. This allows you to catch certain errors while the function module is running.
Function groups are containers for function modules. You cannot execute a function group. When you call an function module, the system loads the whole of its function group into the internal session of the calling program (if it has not already been loaded).
This is used by the system to create the components of the group (main program and corresponding include programs). When you create a function group or function module in the Function Builder , the main program and include programs are generated automatically.
The main program SAPL contains nothing but the INCLUDE statements for the following include programs:
LTOP. This contains the FUNCTION-POOL statement (equivalent for a function group of the REPORT or PROGRAM statement) and global data declarations for the entire function group.
LUXX. This contains further INCLUDE statements for the include programs
LU01, LU02, ... These includes contain the actual function modules.
The include programs LF01, LF02, ... can contain the coding of subroutines that can be called with internal subroutine calls from all function modules of the group.
All of the function modules in a function group can access the global data of the group. For this reason, you should place all function modules that use the same data in a single function group.
Function modules can have the following interface parameters:
Import parameters. These must be supplied with data when you call the function module, unless they are flagged as optional. You cannot change them in the function module.
Export parameters. These pass data from the function module back to the calling program. Export parameters are always optional. You do not have to receive them in your program.
Changing parameters. These must be supplied with data when you call the function module, unless they are flagged as optional. They can be changed in the function module. The changed values are then returned to the calling program.
Tables parameters. You use these to pass internal tables. They are treated like CHANGING parameters. However, you can also pass internal tables with other parameters if you specify the parameter type appropriately.
You can specify the types of the interface parameters, either by referring to ABAP Dictionary types or elementary ABAP types. When you call a function module, you must ensure that the actual parameter and the interface parameters are compatible.
Interface parameters are, by default, passed by value. However, they can also be passed by reference. Tables parameters can only be passed by reference. You can assign default values to optional importing and changing parameters. If an optional parameter is not passed in a function module call, it either has an initial value, or is set to the default value.
Exceptions are used to handle errors that occur in function modules. The calling program checks whether any errors have occurred and then takes action accordingly.
Calling Function Modules in ABAP
To call a function module, use the CALL FUNCTION statement:
CALL FUNCTION [EXCEPTIONS e1 = r 1.... e n = r n ].
You can specify the name of the function module either as a literal or a variable. Each interface parameter is explicitly assigned to an actual parameter . You can assign a return value to each exception . The assignment always takes the form = . The equals sign is not an assignment operator in this context.
After EXPORTING, you must supply all non-optional import parameters with values appropriate to their type. You can supply values to optional import parameters if you wish.
After IMPORTING, you can receive the export parameters from the function module by assigning them to variables of the appropriate type.
After CHANGING or TABLES, you must supply values to all of the non-optional changing or tables parameters. When the function module has finished running, the changed values are passed back to the actual parameters. You can supply values to optional changing or tables parameters if you wish.
You can use the EXCEPTIONS option to handle the exceptions of the function module. If an exception is raised while the function module is running, the system terminates the function module and does not pass any values from the function module to the program, except those that were passed by reference. If is specified in the EXCEPTION option, the calling program handles the exception by assigning to SY-SUBRC. must be a numeric literal.
If you specify of ERROR_MESSAGE in the exception list you can influence the message handling of function modules. Normally, you should only call messages in function modules using the MESSAGE ... RAISING statement. With ERROR_MESSAGE you can force the system to treat messages that are called without the RAISING option in a function module as follows:
Messages of classes S, I, and W are ignored (but written to the log in a background job).
Messages of classes E and A stop the function module as if the exception ERROR_MESSAGE had occurred (SY-SUBRC is set to ).
If you specify OTHERS after EXCEPTIONS, the system assigns a single return code to all other exceptions that you have not specified explicitly in the list.
You can use the same number for several exceptions.
You can trigger exceptions in the function module using either the RAISE or the MESSAGE ... RAISING statement. If the calling program handles the exception, both statements return control to the program. The MESSAGE ..... RAISING statement does not display a message in this case. Instead, it sets the following system fields:
   1. Message class ® SY-MSGID
   2. Message type ® SY-MSGTY
   3. Message number ® SY-MSGNO
   4. SY-MSGV1 to SY-MSGV4 (contents of fields to , included in a message).
      You can use the system fields to trigger the message from the calling program.
Raising Exceptions
There are two ABAP statements for raising exceptions. They can only be used in function modules:
RAISE .
and
MESSAGE..... RAISING .
The effect of these statements depends on whether the calling program handles the exception or not. If the name of the exception or OTHERS occurs in the EXCEPTIONS addition of the CALL FUNCTION statement, the exception is handled by the calling program.
If the calling program does not handle the exception
The RAISE statement terminates the program and switches to debugging mode.
The MESSAGE ..... RAISING statement display the specified message. How the processing continues depends on the message type.
If the calling program handles the exception, both statements return control to the program. No values are transferred. The MESSAGE ..... RAISING statement does not display a message. Instead, it fills the system fields SY-MSGID, SY-MSGTY, SY-MSGNO, and SY-MSGV1 to SY-MSGV4.
Remote Function Modules
To implement a remote function module in ABAP, perform the following steps:
1. Register the module as remotely callable in the RFC server system.
In the function module Administration screen (transaction code SE37), set the field Can be called via REMOTE CALL. Registering a module as remote causes an RFC stub to be generated for it.
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) and allows you to switch back and forth between the calling dialog and the called session.
To start a remote function call asynchronously, use the following syntax:
CALL FUNCTION RemoteFunction STARTING NEW TASK taskname
Destination ...
EXPORTING...
TABLES ...
EXCEPTIONS...
The following calling parameters are available:
TABLES
passes references to internal tables. All table parameters of the function module must contain values.
EXPORTING
passes values of fields and field strings from the calling program to the function module. In the function module, the correponding formal parameters are defined as import parameters.
EXCEPTIONS
see Using Pre-Defined Exceptions for RFC
RECEIVE RESULTS FROM FUNCTION func is used within a FORM routine to receive the results of an asynchronous remote function call. The following receiving parameters are available:
   1. IMPORTING
   2. TABLES
   3. 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.
Call a transaction asynchronally and display it in an amodal window:
DATA: MSG_TEXT(80) TYPE C. "Message text
Asynchronous call to transaction SM59 ->
Create a new session
CALL FUNCTION ‘ABAP4_CALL_TRANSACTION’ STARTING NEW TASK ‘TEST’
DESTINATION ‘NONE’
EXPORTING
TCODE = ‘SM59’
EXCEPTIONS
COMMUNICATION_FAILURE = 1 MESSAGE MSG_TEXT
SYSTEM_FAILURE = 2 MESSAGE MSG_TEXT
IF SY-SUBRC NE 0.
WRITE: MSG_TEXT.
ELSE.
WRITE: ‘O.K.’
ENDIF.
You must not use IMPORTING when calling aRFCs.
Transactional Remote Function Calls
    RfcInstallTransactionControlinstalls four functions to control transactional behaviour.
    RFC_ON_CHECK_TIDis called when a local transaction is starting.
    RfcCreateTransID Get a unique transaction-ID for calling an
    ABAP function module using the transactional RFC Interface
    RfcIndirectCall Call an ABAP function module using the
    transactional RFC Interface
    RFC_ON_COMMIT is called when a local transaction ends.
    RFC_ON_CONFIRM_TID is called when a local transaction is
    completed.
    RFC_ON_ROLLBACK is call
ed when a local transaction ends with
failure.
RFC_ONCALL
INCLUDE AND MACROS:
When you modularize source code, you place a sequence of ABAP statements in a module. Then, instead of placing all of the statements in your main program, you just call the module.
Include programs are global R/3 Repository objects. They are solely for modularizing source code, and have no parameter interface.
They have the following functions:
Library:Include programs allow you to use the same source code in different programs. For example, this can be useful if you have lengthy data declarations that you want to use in different programs. 
Order. Include programs allow you to manage complex programs in an orderly way. Function groups and module pools use include programs to store parts of the program that belong together. The ABAP Workbench supports you extensively when you create such complex programs by creating the include programs automatically and by assigning them unique names.
Creating Your Own Include Programs
If you create an include program yourself, you must assign it the type I in its program attributes.
An include program cannot run independently, but must be built into other programs. Include programs can contain other includes.
The only restrictions for writing the source code of include programs are:
Include programs cannot call themselves.
Include programs must contain complete statements.
The INCLUDE statement has the same effect as copying the source code of the include program into the program. In the syntax check, the contents of the include program are also analyzed. Include programs are not loaded at runtime, but are expanded when the program is generated. Once the program has been generated, the load version contains static versions of all of its includes. If you subsequently change an include program, the programs that use it are automatically regenerated.
***INCLUDE STARTTXT.
WRITE: / 'Program started by', SY-UNAME,/ 'on host', SY-HOST, 'date:', SY-DATUM, 'time:', SY-UZEIT.ULINE.
We can then include this program in any other ABAP program to display a standard list header.
PROGRAM SAPMZTST.INCLUDE STARTTXT.
This could produce the following output:
Program started by KELLERH
on host ds0025 date: 03/19/1998 time: 09:00:39
Macros
If you want to reuse the same set of statements more than once in a program, you can include them in a macro. For example, this can be useful for long calculations or complex WRITE statements. You can only use a macro within the program in which it is defined, and it can only be called in lines of the program following its definition.
The following statement block defines a macro :
DEFINE .
END-OF-DEFINITION.
Macros do not belong to the definition part of the program. This means that the DEFINE...END-OF-DEFINITION block is not interpreted before the processing blocks in the program. At the same time, however, macros are not operational statements that are executed within a processing block at runtime. When the program is generated, macro definitions are not taken into account at the point at which they are defined
A macro definition inserts a form of shortcut at any point in a program and can be used at any subsequent point in the program. As the programmer, you must ensure that the macro definition occurs in the program before the macro itself is used. Particular care is required if you use both macros and include programs, since not all include programs are included in the syntax check (exception: TOP include).
To use a macro, use the following form:
When the program is generated, the system replaces by the defined statements and each placeholder &i by the parameter
. You can use macros within macros. However, a macro cannot call itself.
DATA: RESULT TYPE I,N1 TYPE I VALUE 5,N2 TYPE I VALUE 6.
DEFINE OPERATION. RESULT = &1 &2 &3.OUTPUT &1 &2 &3 RESULT.END-OF-DEFINITION.
DEFINE OUTPUT. WRITE: / 'The result of &1 &2 &3 is', &4.END-OF-DEFINITION.
OPERATION 4 + 3.OPERATION 2 ** 7.OPERATION N2 - N1.
The produces the following output:
The result of 4 + 3 is 7
The result of 2 ** 7 is 128
The result of N2 - N1 is 1
Inserting the macro changes nothing in the generated form of the program.
Check this link
http://www.sapbrainsonline.com/FAQs/TECHNICAL/SAP_ABAP_MODULARIZATION_FAQ.html
http://help.sap.com/saphelp_40b/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/content.htm
http://help.sap.com/saphelp_40b/helpdata/en/9f/db970e35c111d1829f0000e829fbfe/content.htm
Regards
Pavan
Message was edited by:
        Pavan praveen
Message was edited by:
        Pavan praveen

Similar Messages

  • Please tell me about Enhancement Techniques used in SAP Other then BADI/Usr

    Hi Experts .
    Please guide me about Enhancement Techniques used in SAP apart from BADI/User-Exit .
    1.) what is set and how to create it ?
    2.) What is formula is SAP and How to set it for Enhancement Pupose .
    3.) What is BTE (Buisness Transection Events) ? How to create it for Enhancement Pupose ?
    Please Elabarate the reply with step by step procedure .
    Thanx .
    Regards : Rajneesh

    Hi Raj,
                  Check these links
       help.sap.com/saphelp_nw04/helpdata/en/eb/3e7ceb940e11d295df0000e82de14a/content.htm
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/207835fb-0a01-0010-34b4-fef1240ba9b7
    Regards,
    Sana.
    reward for useful answers..

  • Please tell me about Enhancement Technique like BTE , SET and Formula

    Hi Experts .
    Please guide me about Enhancement Techniques used in SAP apart from BADI/User-Exit .
    1.) what is set and how to create it ?
    2.) What is formula is SAP and How to set it for Enhancement Pupose .
    3.) What is BTE (Buisness Transection Events) ? How to create it for Enhancement Pupose ?
    Please Elabarate the reply with step by step procedure .
    Thanx .
    Regards : Rajneesh

    Hi rajneesh mittal  ,
    Business Transaction Events
    Business Transaction Events (Open FI) The Open FI enhancement technique was developed in the Financial Accounting component. Open FI is based upon the following principles: Application developers must define their interface in a function module, an assignment table is read in the accompanying (generated) code, and the customer modules assigned are called dynamically. This technique differentiates between enhancements that are only allowed to have one implementation and enhancements that can call multiple implementations in any sequence desired. Both industry-specific and country-specific enhancements may be defined.
    SAP business transaction events are one type of customer enhancements provided by SAP! We can access the business transaction events using FIBF.Next we have to find the process interface for duplicate invoice check!
    check this blog for details on SAP business transaction events
    Business Transaction Events
    Business Transaction Events
    http://fuller.mit.edu/user_exits/business_transaction_event.htm
    FI Enhancement Technique – How-To-Guide on the Usage of Business Transaction Events (BTE)
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/207835fb-0a01-0010-34b4-fef1240ba9b7
    Creation of Events via Business Transaction Events
    http://help.sap.com/saphelp_nw04/helpdata/en/3b/7f3e8be57c11d1951f0000e82dec10/content.htm
    In SAP R/3 you must activate the business transaction events (BTEs) for Availability Check Using SAP R/3. To set this indicator in SAP R/3:........
    http://help.sap.com/saphelp_crm40/helpdata/en/b6/de3efc6bbcdc4b948d466857a10323/content.htm
    cheers!
    gyanaraj
    ****Pls reward points if u find this helpful

  • How Modularization Technique imrpove performance tuning?

    Can you please tell me that how a Modularization Technique can help us to do the performance tuning?
    Regards,
    Subhasish

    Modularization makes the program more legible and readable. ie It's noting but building up Perform....FORMS for the execution of "lines of code" .
    However it may effect your performance if you have not Modularized them properly. As a best practice and for better performance, sap code executes from top to bottom.
    Then writing the FORM--ENDFORM in the beginning and making the PERFORM call from the bottom is not a best practice of writing code and that will effect the performance.
    As a better practice to improve the performance, it is suggested to write the FORMS below and closest to the place from where it is called.
    rgds,
    TM.

  • Modularization Technique

    Hi frnds,
                   I am new to MODULARIZATION Techniques. I want to know what is the Actual parameters , Formal Parameters and in general what is the use of those.
    Frnds i hav material for the above but i m unable to understand.
    So i dont need any material but i need just understanding for the above.
    Thanking u all.
    Regards,
    Satish

    Hi satish
    PERFORM get_data using p_table.
    form get_data using in_table.
    endform.
    here formal parameter is in_table.
    it does not have a value of it's own, but it gets a value that is present in the actual parameter i.e. p_table
    Formal and actual parameters have same type always.
    Now, according to modulariztion technique, when we use actual and formal parameters, we can pass multiple values to same code so that we dont have to write that code multiple times.
    It is same concept as FUNCTIONS in C language.
    Hope this info helps you.
    Reward points if it has been useful to you.
    Thanks
    Ravish

  • About datatransfer technique

    which bdc method mostly we use in real time.
    Now projects are using bdc or bapi.
    Edited by: madhu sudhan on Feb 26, 2008 1:22 PM

    >
    madhu sudhan wrote:
    > which bdc method mostly we use in real time.
    > Now projects are using bdc or bapi.
    >
    > Edited by: madhu sudhan on Feb 26, 2008 1:22 PM
    Hi,
    Now a days companies are using bdc as well as bapi.
    most of the companies are using bdc only.
    because bapis are related to oops concept and there is less resources on bapis as compare to bdc.
    here iam givina session method and call transaction method procedures.
    When you create a batch input session, it remains in the batch input queue until it is explicitly started. Session processing can be started in two ways:
    An on-line user can start the session using the batch input menu options. (To access the batch input options, choose System>Services>Batch Input.)
    You can submit the background job RSBDCSUB to start a session in background processing. If several sessions have the same name, RSBDCSUB starts them all.
    It's possible to coordinate the generation and execution of a session in the background processing system.
    You can, for example, schedule both the batch input program and RSBDCSUB in the background. If you designate the batch input job as the predecessor for RSBDCSUB, then RSBDCSUB will be started automatically when the batch input job successfully completes.
    Alternatively, you can schedule both the batch input program and RSBDCSUB as job steps in a single background job. In this case, however, RSBDCSUB is started even if the batch input program should terminate abnormally.
    For detailed information about processing batch input sessions, see MANAGING BATCH INPUT SESSIONS(B) in the System Services guide. You'll find this guide in the Basis library, system administration section, on the SAP documentation CD-ROM.
    (19) USING CALL TRANSACTION USING FOR BATCH INPUT:
    Processing batch input data with CALL TRANSACTION USING is the faster of the two recommended batch input methods. In this method, batch input data is processed inline in your batch input program.
    Error recovery, restarting, and management of batch input processing are all more comfortable if you use "classical" batch input processing by way of batch input sessions. CALL TRANSACTION USING is therefore recommended only if batch input sessions do not run fast enough to meet your requirements.
    For more information on choosing a batch input method, please see Selecting a Batch-Input Method(11) .
    A program that uses CALL TRANSACTION USING to submit batch input should perform the following steps:
    1. Prepare a BDCDATA structure for the transaction that you wish to run. The requirements for filling the BDCDATA structure are the same as for "classical" batch input using sessions. For more information, please see Using the Batch Input Data Structure(12).
    2. With a CALL TRANSACTION USING statement, call the transaction and pass the BDCDATA structure to it as batch input. For example:
    CALL TRANSACTION 'SE38' USING BDCDATA
    MODE 'A'
    UPDATE 'S'.
    MESSAGES INTO MESSTAB.
    The Mode Parameter
    The MODE parameter lets you specify whether the batch input processing should be displayed to you as it happens. You can choose between three modes:
    A Display everything.
    All screens and the data that goes in them appear when you run your program. This is the default setting for MODE in CALL TRANSACTION USING.
    N Display nothing.
    All screens are processed invisibly, regardless of whether there are errors or not. Control returns to your program as soon as transaction processing is finished. (Database updates however, may have taken place or may have not have taken place, depending on the value of the UPDATE parameter.)
    E Display errors only. The transaction goes into display mode as soon as an error in one of the screens is detected. You can then correct the error.
    The display modes are the same as those that are available for processing batch input sessions.
    The Update Parameter
    The UPDATE parameter lets you specify how updates produced by a transaction should be processed. You can select between these modes:
    A Asynchronous updating.
    In this mode, the called transaction does not wait for any updates it produces to be completed. It simply passes the updates to the SAP update service.Asynchronous processing therefore usually results in faster execution of your batch input program.
    Asynchronous processing is NOT recommended for processing any larger amount of data. This is because the called transaction receives no completion message from the update module in asynchronous updating. The calling batch input program, in turn, cannot determine whether a called transaction ended with a successful update of the database or not.
    If you use asynchronous updating, then you will need to use the update management facility (transaction SM12) to check whether updates have been terminated abnormally during session processing. Error analysis and recovery is less convenient than with synchronous updating.
    S Synchronous updating.
    In this mode, the called transaction waits for any updates that it produces to be completed. Execution is slower than with asynchronous updating because called transactions wait for updating to be completed. However, the called transaction is able to return any update error message that occurs to your program. It's much easier for you to analyze and recover from errors.
    L Local updating.
    If you update data locally, the update of the database will not be processed in a separate process, but in the process of the calling program. (Refer to the keyword documentation of SET UPDATE TASK LOCAL for more information.)
    The Messages Parameter
    The MESSAGES specification indicates that all system messages issued during a CALL TRANSACTION USING are written into the internal table . The internal table must have the structure BDCMSGCOLL.
    Example
    You can have system messages issued by transaction SE38 (bottom of example) collected in table MESSTAB with the following coding:
    DATA BEGIN OF BDCDATA OCCURS 100.
    INCLUDE STRUCTURE BDCDATA.
    DATA END OF BDCDATA.
    DATA BEGIN OF MESSTAB OCCURS 10.
    INCLUDE STRUCTURE BDCMSGCOLL.
    DATA END OF MESSTAB.
    DATA REPORT(8).
    BDCDATA-PROGRAM = 'SAPMS38M'.
    BDCDATA-DYNPRO = '0100'.
    BDCDATA-DYNBEGIN = 'X'.
    APPEND BDCDATA.
    CLEAR BDCDATA.
    BDCDATA-FNAM = 'RS38M-PROGRAMM'.
    BDCDATA-FVAL = REPORT.
    APPEND BDCDATA.
    CALL TRANSACTION 'SE38' USING BDCDATA MODE 'N'
    MESSAGES INTO MESSTAB.
    The following figures show the return codes from CALL TRANSACTION USING and the system fields that contain message information from the called transaction. As the return code chart shows, return codes above 1000 are reserved for batch input.
    If you use the MESSAGES INTO option, then you do not need to query the system fields shown below; their contents are automatically written into the message table. You can loop over the message table to write out any messages that were entered into it.
    Regards,
    swami.

  • HELP???Question about the technique RM COPY. Please Help

    PLEASE HELP
    Im wondering if anyone can help me. I recently got a reply to a post that I wrote about deleting duplicated files. Mainly MP3s. I have not done this method yet though. Does it work? I have around 9000 mp3s that Itunes seems to always duplicate and I need to get rid of them. Can I open one of my ex-Harddrives that pretty much hold mp3s and run this command? Im looking for a completely faster method than individually deleting them in Itunes. One last question too. Where do I type this command? How do I access the directorys where my mp3s are in my ex-HD? If anyone can help me Id greatly appreciate it. The reply is below my name
    Jamie
    posternut:
    If none of the original filenames contains the lettering " copy", you can do what you want quite easily.
    Open Terminal, navigate to the folder that contains the files, and enter the following command (exactly as it appears here):
    rm *" copy"*
    That's all there is to it. All 9000 duplicate files will be removed very quickly.
    If you need help "navigating to the folder" or if some of your original filenames contain the lettering “ copy”, then post back here.
    Greg

    Launch Terminal.app
    Type cd followed by a space. Do not hit return key just yet.
    In Finder, navigate to folder containing the files you want to blow away.
    Drag and drop that folder (in the finder) into the Terminal.app window. It'll autofill the path to the directory containing the files you're wanting to blow away. Now hit the return key.
    You could type ls (that's a lower-case ell) and see the directory listing of all the files in your current directory. Probably a good idea to do just to doublecheck that you really are in the directory that you want to blow away all these files from.
    Now do what Greg said.
    Don't get impatient because Terminal is just sitting there and you're not getting an immediate command prompt. It'll take a while to blow away 9000 files.
    For entertainment, instead of rm *" copy"* use rm -v *" copy"* so you can watch all 9000 file names be printed in your terminal window as they are being deleted.
    Will it work? Oh yes .... irreversibly (if it doesn't, that's coz' there are some file ownership and/or file permission issues that need to be looked at, but assuming those are "compatible" with your current Terminal user environment, those guys'll be toast. Any file that's in the working directory where you are in Terminal that has the five characters " copy" in its filename will be history.
    The assumption in Greg's command is that all the files you want to blow away all reside in the one directory that you have navigated to.

  • HELP???Question about the technique RM COPY

    Im wondering if anyone can help me. I recently got a reply to a post that I wrote about deleting duplicated files. Mainly MP3s. I have not done this method yet though. Does it work? I have around 9000 mp3s that Itunes seems to always duplicate and I need to get rid of them. Can I open one of my ex-Harddrives that pretty much hold mp3s and run this command? Im looking for a completely faster method than individually deleting them in Itunes. One last question too. Where do I type this command? If anyone can help me Id greatly appreciate it. The reply is below my name
    Jamie
    posternut:
    If none of the original filenames contains the lettering " copy", you can do what you want quite easily.
    Open Terminal, navigate to the folder that contains the files, and enter the following command (exactly as it appears here):
    rm *" copy"*
    That's all there is to it. All 9000 duplicate files will be removed very quickly.
    If you need help "navigating to the folder" or if some of your original filenames contain the lettering “ copy”, then post back here.
    Greg

    Launch Terminal.app
    Type cd followed by a space. Do not hit return key just yet.
    In Finder, navigate to folder containing the files you want to blow away.
    Drag and drop that folder (in the finder) into the Terminal.app window. It'll autofill the path to the directory containing the files you're wanting to blow away. Now hit the return key.
    You could type ls (that's a lower-case ell) and see the directory listing of all the files in your current directory. Probably a good idea to do just to doublecheck that you really are in the directory that you want to blow away all these files from.
    Now do what Greg said.
    Don't get impatient because Terminal is just sitting there and you're not getting an immediate command prompt. It'll take a while to blow away 9000 files.
    For entertainment, instead of rm *" copy"* use rm -v *" copy"* so you can watch all 9000 file names be printed in your terminal window as they are being deleted.
    Will it work? Oh yes .... irreversibly (if it doesn't, that's coz' there are some file ownership and/or file permission issues that need to be looked at, but assuming those are "compatible" with your current Terminal user environment, those guys'll be toast. Any file that's in the working directory where you are in Terminal that has the five characters " copy" in its filename will be history.
    The assumption in Greg's command is that all the files you want to blow away all reside in the one directory that you have navigated to.

  • About webdynpro techniques!

    I have to read data from reference database(read-only) (SAP) by calling Function to access database then I have to calculate and store it somewhere and other person can access and get this data. I wonder where can I store these data. Does web-dynpro support any techniques to do this?
    Edited by: Dinh Thieu Thien on Jun 26, 2008 11:05 AM

    You can find information at "Component-based development from Database Table to Web Dynpro using NWDI"

  • Question about sort technique

    we have a report that shows a list of contacts and we have an sub-report that displays (1) one field max(history completed date) so we can see that last time the contact was talked to.   The issue is: if we want to have a sort parameter sorts on the max(history completed date) field.  How would we do this?
    1) pass the field value from the sub-report to the main report?
    2) don't created a sub-report, create field value in the main report using sql
    Please comment on the approaches above or any other methods that I might not have thought of.

    Better yet, here's a sample of what your query should look like.
    Insert it into 'Add Command'
    select contact_names,
    (select max(lasttime) from time.table b where a.contactID=b.contactID)
    from table.contacts a
    Enjoy,
    Zack H.

  • Can any  one explain me about break point

    Hi gurus
    What is break point what is the use of it? please let me know what is the use of it?
    Thanks in advance

    Hi
    Hi,
    A breakpoint is a signal at a particular point in the program that tells the ABAP runtime processor to interrupt processing and start the Debugger. The Debugger is activated when the program reaches this point.Max 30 breakpoints we can use.
    Session Breakpoints exist only until you are logged in or until ur session is active. Even if u forget to remove the session break points, they are automatically removed once ur session becomes invalid or u logged out.
    Debugger
    This section of the ABAP Workbench documentation provides information on how to use the Debugger as a test tool for finding errors in the source code of an ABAP program.
    Functional Overview
    Use
    The ABAP Debugger is an integrated test tool within the ABAP Workbench. You use it to check the program logic and to find errors in the source code of an ABAP program. In the Debugger, you can step through the source code of a program. The running program is interrupted after each step, allowing you to check its processing logic and the results of individual statements.
    As of Release 6.10, you can also run Business Server Pages (BSP) in the debugging mode. You can also display and set breakpoints here. Business Server Pages can be displayed in the Object Navigator when you select an appropriate application under BSP Application.
    Features
    The Debugger provides an efficient means of identifying errors in ABAP programs. It contains the following functions:
    Ways of starting the Debugger
    Choosing different views
    Choosing different execution options in the Debugger
    Displaying source code in the Debugger
    • Setting and deleting breakpoints
    • Setting and deleting watchpoints
    • Stopping a program at a particular statement or event
    Displaying and changing field contents at runtime
    Displaying ABAP Objects and references
    Displaying and positioning strings
    Setting and deleting database locks
    Opening the ABAP Editor, or Object Navigator
    System settings and runtime warnings
    Starting the Debugger
    There are two possible strategies for starting the Debugger in the ABAP Workbench:
    By setting breakpoints then running the program
    By running the program in debugging mode.
    Setting Breakpoints
    A breakpoint is a signal in a specific line of the program source code. This signal indicates to the ABAP runtime processor to stop the program at the relevant line and start the ABAP Debugger. A distinction is made between static and dynamic breakpoints. For further information about the different types of breakpoints and how to use them, refer to Breakpoints.
    Direct Processing
    You can start the Debugger without previously having set breakpoints. This is the best procedure to use when you want to test a program right from the beginning. It is also a useful procedure if you are not overly familiar with the program and therefore are not sure where best to set breakpoints. You can start the Debugger as follows:
    From the Object Navigator
    Select a report or transaction and choose Program ® Test ® Debugging.
    From the ABAP Editor
    Choose Program ® Execute ® Debugging (or the Debugging pushbutton).
    From any screen
    Choose System ® Utilities ® Debug ABAP.
    From any screen
    Enter /h in the command field.
    Display Modes in the Debugger
    When you are debugging a program, there are various display modes that you can use. All of the display modes have the same structure. The top part of the screen displays an extract of the program source code. The bottom part displays the information specifically available in that display mode. There are also pushbuttons on the screen allowing you to switch to the most frequently-used display modes.
    Display Modes Available Using Pushbuttons
    Fields
    The scrollable field display contains the contents of up to eight fields. The contents of the three most important system fields are always displayed. This is the default display mode in the Debugger. See also Processing Fields
    Table
    Displays the contents of an internal table. This mode allows you to display and edit the entries in an internal table. See also Processing Internal Tables
    Breakpoints
    A scrollable display containing up to 30 breakpoints. Next to each breakpoint is a counter. You can also delete breakpoints in this display. See also Managing Dynamic Breakpoints
    Watchpoints
    You can set a watchpoint for a field so that the program is interrupted whenever the value of that field changes. This display mode contains a list of watchpoints, the fields and programs to which they are assigned, the current values of the fields, and the conditions upon which the watchpoint is activated. See also Setting Watchpoints
    Calls
    This mode displays the current sequence of events, and the sequence of calls up to the current breakpoint. The last active call is displayed at the top of the list; previous calls are listed in reverse chronological order. When an event (for example, START-OF-SELECTION) concludes, it is deleted from the display.
    Overview
    This mode displays the structure of the program. It lists its events, subroutines, and modules, and shows which sections belong to which events. It also displays the section currently being processed.
    Settings
    This mode displays the current Debugger settings. You can change the settings by selecting or deselecting various options. For further information, refer to Settings and Warnings
    Other Display Modes
    You can access other display modes by choosing Goto ® Display data object.
    Single field
    Displays the contents and technical attributes of a field.
    Structured
    field
    Displays the components of a structure, along with their contents and attributes. If you double-click a component, the system displays detailed information for it.
    Strings
    Display the content and current length of the string. You can also display part of the content by means of offset and length.
    Internal table
    Displays the type, line numbers and contents of an internal table.
    Object
    Displays the structure of an ABAP Object.
    For further information on these displays, refer to Displaying Attributes and Displaying ABAP Objects
    Checking System Programs for Errors
    To check a program or program component that is part of the ABAP Workbench (for example, the Screen Painter), you must use the system Debugger. To start the system Debugger, choose System ® Utilities ® Debug System from any screen. To stop the system Debugger, choose Debugger ® Debugging off.
    Displaying Program Attributes
    You can display the attributes Fixed Point Arithmetic, System Program, and Unicode Checks of the program that has just been executed by choosing Goto ® Further Information ® Program Attributes.
    Restarting the Debugger
    If you choose Debugging ® Restart, debugging mode is stopped and the system takes you to the initial screen of the last transaction you called. If, for example, you started an ABAP program in debugging mode from transaction SE38 (ABAP Editor), choosing Debugging ® Restart will take you back to the screen titled ABAP Editor: Initial Screen. If you want to restart the program in debugging mode, choose Debugging.
    Breakpoints
    Apart from direct execution of an ABAP program in the Debugger, it is also possible to start the Debugger call by the exact setting of a breakpoint. This is achieved by setting one or more of these breakpoints in the program. A breakpoint is a signal at a particular point in the program that tells the ABAP runtime processor to interrupt processing and start the Debugger. The program runs normally until the breakpoint is reached.
    There is also a special kind of breakpoint called a watchpoint. When you use watchpoints, the Debugger is not activated until the contents of a particular field change. For further information, refer to Watchpoints.
    Breakpoint Variants
    The Debugger contains different breakpoint variants:
    Static
    The BREAK-POINT statement in an ABAP program. Static breakpoints are not normally user-specific. However, you can make them user-specific.
    Directly-set
    dynamic breakpoints
    Can be set in the ABAP Editor or the Debugger. Dynamic breakpoints are always user-specific, and are deleted when you log off from the R/3 System.
    Breakpoints
    at statement
    The Debugger stops the program directly before the specified statement is executed.
    Breakpoints
    at subroutine
    The Debugger stops the program directly before the specified subroutine is called.
    Breakpoint at function module
    The Debugger stops the program directly before the specified function module is called.
    Breakpoint at method
    The Debugger stops the program directly before the specified method is called.
    Breakpoints at system exceptions
    The Debugger stops the program directly after a system exception, that is, after a runtime error has been intercepted.
    Static Breakpoints
    Static breakpoints are not normally user-specific. Once a user has inserted the statement BREAK-POINT or BREAK name in an ABAP program, the system always interrupts the program at that point for that user or only for the user name. This procedure is only useful in the development phase of an application, when the program execution is always to be interrupted at the same place. For further information, refer to Static Breakpoints.
    In HTTP sessions, a static breakpoint is skipped if you did not set additional dynamic HTTP breakpoints in the editor of a BSP page. Instead, a corresponding system log entry is written, which can be checked using transaction SM21.
    Dynamic Breakpoints
    Dynamic breakpoints are user-specific. Therefore, you should use them if you only want the program to be interrupted when you run it yourself, not when it is being executed by other users. All dynamic breakpoints are deleted when you log off from the R/3 System.
    Dynamic breakpoints are more flexible than static breakpoints, because you can deactivate or delete them at runtime. They have the following advantages:
    You do not have to change the program code
    You can set them even when the program is locked by another programmer
    You can define a counter that only activates the breakpoint after it has been reached
    Special dynamic breakpoints are useful when you want to interrupt a program directly before a particular ABAP statement, a subroutine, or an event, but do not know exactly where to find it in the source code. Event here is used to refer to the occurrence of a particular statement, for example, or calling up a method. Special dynamic breakpoints are user-specific. You can only set them in the Debugger. For further information, refer to Dynamic Breakpoints.
    In HTTP sessions, the system stops both at static and dynamic breakpoints if a dynamic breakpoint was set in the editor of a BSP page before program execution.
    Lifetime and Transfer of Breakpoints
    A static breakpoint remains intact as long as the BREAK-POINT or BREAK-POINT name statement is not removed from the source code. Without saving, dynamic breakpoints only remain intact in the relevant internal session. However, they are effective during the entire user session, if they are saved by choosing Breakpoints ® Save in the ABAP Debugger. For more details on the subject of sessions and user sessions, refer to Modularization Techniques in the ABAP keyword documentation.
    If you call an HTTP session during a user session, only the HTTP breakpoints are loaded when the HTTP session is started. You activate HTTP debugging in the ABAP Editor by choosing Utilities ® Settings ® HTTP Debugging. Depending on the setting, the system then displays either the HTTP or standard breakpoints in the Editor.
    If you call an update session during a user session, breakpoints that were defined beforehand in the calling processing unit are copied to the new update session, where they can be displayed under Breakpoints. If, in the ABAP Debugger, you check Update Debugging under Settings and then, for example, call the update module func using CALL FUNCTION func IN UPDATE TASK, a new window is opened in which you can debug this function module in the update session. All the breakpoints that were set in the calling processing unit can also be processed here.
    Breakpoints at Statements
    You can use this special kind of dynamic breakpoint to interrupt a program directly before an ABAP statement is processed.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint at an ABAP statement:
    1.Choose Breakpoint ® Breakpoint at ® Statement...
    The following dialog box appears:
    2.Enter the ABAP statement.
    The system sets a breakpoint at all points in the program at which the ABAP statement occurs.
    3.Choose ENTER.
    The breakpoint applies to all lines containing the specified statement.
    Result
    The system confirms the breakpoint and adds it to the list in the display. When you finish your debugging session, the breakpoint is automatically deleted unless you have explicitly saved it.
    Breakpoints at Subroutines
    You can use this special kind of dynamic breakpoint to interrupt a program directly before a subroutine is called.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint for a subroutine:
    Choose Breakpoint ® Breakpoint at ® Event/Subroutine.
    The following dialog box then appears:
    Enter the name of the subroutine before which you want to interrupt the program. By default, the Program field contains the name of the program that is currently active. The system sets a breakpoint wherever the specified subroutine occurs in the program code.
    Choose ENTER.
    Result
    The system confirms the breakpoint. The breakpoint is added to the breakpoints displayed.
    Breakpoints at Function Module
    You can use this kind of dynamic breakpoint to interrupt a program directly before a function module is called.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint for a function module:
    Choose Breakpoint ® Breakpoint at ® Function module...
    The following dialog box appears:
    Enter the name of the function module before which you want to interrupt the program. The system sets a breakpoint wherever the specified event, module pool, or subroutine occurs in the program code.
    Choose ENTER.
    Result
    If you entered a valid function module name, the system confirms that the breakpoint has been set. If the function module exists in the system, the new breakpoint is added to the display list.
    Breakpoints at Methods
    You can use this special kind of dynamic breakpoint to interrupt a program directly before a method is called.
    Prerequisites
    You must be already running the program in the debugger.
    Procedure
    To set a breakpoint for methods:
    1. Choose Breakpoint ® Breakpoint at ® Method...
    The following dialog box then appears:
    2. Enter the name of the method and class before which you want to interrupt the program. A breakpoint is then set each time the specified processing block appears in the source code.
    3. Choose ENTER.
    Result
    The system confirms the breakpoint. The breakpoint is added to the list in the display.
    Breakpoints at System Exceptions
    You can use this special form of dynamic breakpoint to interrupt a program immediately after a runtime error has occurred.
    Prerequisites
    You must already be running the program in the Debugger.
    Procedure
    To set a breakpoint at a system exception:
    Choose Breakpoint ® Breakpoint at ® System exception.
    Result
    The system confirms the breakpoint. The breakpoint is added to the breakpoints displayed.
    When a system exception is triggered, a warning triangle appears in the line containing the statement that caused it. If you double-click the warning triangle, the internal name of the runtime error appears.
    Static Breakpoints
    You should only use static breakpoints during the development phase of an application. You must remove them from your program before you transport it.
    Setting Breakpoints
    To set a static breakpoint, use the ABAP statement BREAK-POINT . Place the breakpoint in the line at which you want to interrupt the program.
    program RSDEBUG_01.
    if SY-SUBRC 0.
    break-point.
    endif.
    When you run the program, the runtime processor interrupts it when the breakpoints occur. You can number your breakpoints to make them easier to identify ( BREAK-POINT 1, BREAK-POINT 2 …).
    Static breakpoints are not normally user-specific. The program is, therefore, always interrupted as soon as the runtime processor reaches the line containing the breakpoint. The program is interrupted regardless of the user who executes it.
    However, you can set user-specific static breakpoints using the BREAK statement followed by your user name. For example, if you use the statement BREAK SMITH , the program is only interrupted when user Smith runs it. Although user-specific breakpoints appear in the program code, they are not active when other users run the program. You should, however, be careful if an application is being used by several users with the same name.
    Deleting Breakpoints
    Since static breakpoints apply to all users, you must remove them from the program once you have finished testing it. In the ABAP Editor, you can find breakpoints quickly by choosing Utilities ® Global search. You can also use the Extended Program Check to find them.
    If you do not remove static breakpoints from your program, they will be transported to your production system. This could cause serious problems in the production system.
    Dynamic Breakpoints
    You can set up to 30 dynamic breakpoints without changing the program code. Dynamic breakpoints can be set either in the ABAP Editor or directly in the Debugger.
    Setting Dynamic Breakpoints in the ABAP Editor
    You can set dynamic breakpoints in the ABAP Editor regardless of whether you are in display or change mode. You can also set breakpoints directly from within the Debugger at runtime. To set a dynamic breakpoint in the ABAP Editor:
    Position the cursor on the line of the source code at which you want to set the breakpoint.
    Choose Utilities ® Breakpoints ® Set or the Stop icon. The system confirms that the breakpoint has been set.
    To display a list of all dynamic breakpoints in a program, choose Utilities ® Breakpoints ® Display. You can use this list to navigate to a particular breakpoint or to delete one or more breakpoints from the program.
    Setting Dynamic Breakpoints in Debugging Mode
    To set a dynamic breakpoint in the Debugger:
    Position the cursor on the line in which you want to set the breakpoint.
    Select the line by double-clicking it or choosing Breakpoint ® Set/delete.
    The system sets the breakpoint, and displays a small stop sign to the left of the relevant line. If the line already contained a breakpoint, it is deleted.
    When you finish your debugging session, the breakpoint is automatically deleted unless you have explicitly saved it.
    Saving Breakpoints
    If you want to leave the Debugger temporarily, you can save your dynamic breakpoints so that they are still active when you return to the Debugger within the same terminal session.
    To save the breakpoints that you have set in the Debugger:
    Choose Breakpoint ® Save.
    The system saves all of the breakpoints that you have set in the current program. These breakpoints will remain active until you either explicitly delete them or log off from the system.
    You can also delete breakpoints that you have saved:
    By deleting individual breakpoints from the display and then saving again. In this case, only your selected breakpoints will be deleted.
    By choosing Breakpoint ® Delete all. In this case, the system deletes all dynamic breakpoints.
    Managing Dynamic Breakpoints
    The ABAP Debugger provides a convenient user interface for managing breakpoints. To open the breakpoint display, choose Breakpoints, or, from the menu, Goto ® Control debugging ® Breakpoints.
    Example
    Functions
    This display mode contains the following functions for breakpoints:
    Breakpoint Display
    The scrollable breakpoint display contains up to 30 dynamic breakpoints. For breakpoints that you set directly, the program name and line number at which the breakpoint occurs are displayed. For special breakpoint forms, the list displays the statements, events, subroutines, and module calls at which the relevant breakpoints are set.
    Counter
    In the breakpoint display, you can specify a counter. When you use a counter, the breakpoint is not activated until it has been reached a specified number of times. For example, if you enter 5 for the counter, the breakpoint is not activated until it is reached for the fifth time. After the breakpoint has been activated, it remains so, and the counter no longer appears in the breakpoint display.
    Deleting Breakpoints
    Position the cursor on the breakpoint that you want to delete, and either double-click the line or choose Breakpoint ® Set/delete. To delete all breakpoints, choose Breakpoint ® Delete all.
    Activating and Deactivating Breakpoints
    Position the cursor on the breakpoint that you want to activate or deactivate and choose Breakpoint ® Activate/deactivate.
    Regards
    karthik

  • Need advice/idea about Image gallery

    Hello to ALL!!!
    I'm trying to make an dynamic image gallery WITH!!! some
    active buttons above (for example: BUTTON1 with function "delete"
    and BUTTON2 with function "update") a picture and some "dataoutput"
    below (for example:Price). So, separate cell must look like:
    BUTTON1 BUTTON2
    <Image>
    PRICE
    For implementation this task I have:
    1) mySQL database "gallery" with table "test" and columns
    "Id", "path to image", "Price"
    2) 2 gifs: BUTTON1, BUTTON2
    Before my first trying I thought that it's simple, and I've
    tried:
    <!---action page---->
    <cfquery name="qTest" datasource="gallery">
    SELECT * FROM test
    </cfquery>
    <div id=imagecont>
    <cfoutput>
    <cfloop query="qTest">
    <img src="../Button1.gif />
    <img src="../Button2.gif /><br>
    <img src="#qTest.path to image#" />
    <p>#qTest.Price#</p>
    </cfloop>
    </cfoutput>
    </div>
    And it worked normal. BUT!!! Looping had a vertical
    direction! And any CSS rules that I've applied to DIV "imagecont"
    (weight, height) hadn't any effect.
    So, what I've get:
    I see all necessary information (on browser), but I don't
    know, how to format it with my dreaweawer cs3 and CSS.
    And I afraid that I've chosen a "wrong method" (I mean my
    code above)
    Please, give me some recommendations or advices.
    How can i archive my needs?
    How to use CSS in div tag, which includes <cfloop>
    code. I've also tried to use CSS with structure like:
    <div id=a>
    <cfoutput>
    <cfloop >
    <div id=b>
    DATA
    </div>
    </cfloop>
    </cfoutput>
    </div>
    But (div a)'s CSS rule HEIGHT take's no effect on <div
    id=b> :(
    And what about useful technique for displaying " action
    buttons" above each image in dynamic image gallery???
    Great THANKS for your answers/comments!!!!

    the css attribute you are looking for is FLOAT.
    see if something like
    http://www.photos-of-laos.org/top-rated.cfm
    is
    what you are after in general images layout terms. feel free
    to check
    the generated html :).
    re general css knowledge i highly recommend the book
    "Bulletproof CSS"
    by Mark Grabinski.
    re the 2 buttons above the image: consider turning them into
    css image
    overlays instead (when the buttons appear OVER [not above]
    the image
    only when a user mouses over) - it looks much better that
    way.
    hth
    Azadi Saryev
    Sabai-dee.com
    http://www.sabai-dee.com/

  • Sorting technique used by oracle for "order by" clause.

    Hi All,
    it could be very help to me if you provide some information about sorting technique used by oracle engine for order by clause.
    Issue i am facing :
    Table : xx
    Line Date
    1 05-06-2013 00:00:00
    2 05-06-2013 00:00:00
    when we query above table using order by date, it is returning line 2 prior to line 1. we would like to know why it is returning line 2 first?
    Regards,
    Ram

    >
    it could be very help to me if you provide some information about sorting technique used by oracle engine for order by clause.
    >
    Well ok - but be warned that many people wind up being sorry they ask that question. Hopefully Hemant's answer is what you really wanted.
    See 'Linguistic Sorting and String Searching' in the Oracle® Database Globalization Support Guide
    http://docs.oracle.com/cd/B28359_01/server.111/b28298/ch5lingsort.htm
    Sorting will be controlled by the settings of NLS_LANGUAGE, NLS_SORT and NLS_COMP.
    Here is the doc page for NLS_SORT
    http://docs.oracle.com/cd/B28359_01/server.111/b28298/ch3globenv.htm#i1008393
    >
    NLS_SORT specifies the type of sort for character data. It overrides the default value that is derived from NLS_LANGUAGE.
    NLS_SORT contains either of the following values:
    NLS_SORT = BINARY | sort_name
    BINARY specifies a binary sort. sort_name specifies a linguistic sort sequence.
    >
    And the one for NLS_COMP
    http://docs.oracle.com/cd/B28359_01/server.111/b28298/ch3globenv.htm#i1008458
    >
    The value of NLS_COMP affects the comparison behavior of SQL operations.
    You can use NLS_COMP to avoid the cumbersome process of using the NLSSORT function in SQL statements when you want to perform a linguistic comparison instead of a binary comparison. When NLS_COMP is set to LINGUISTIC, SQL operations perform a linguistic comparison based on the value of NLS_SORT. A setting of ANSI is for backward compatibility; in general, you should set NLS_COMP to LINGUISTIC when you want to perform a linguistic comparison.

  • Editing techniques podcast

    I watched an interesting MacBreak Studio podcast recently in which Billy Fox talks about his techniques using Final Cut's timeline. You might pick up some project organization ideas.
    Here's a link to MacBreak Studio in iTunes http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=287113664 Look for "The Art of Editing Part 4 - The Feature Editor's Timeline".
    There's a list of Billy Fox's work on IMDB http://www.imdb.com/name/nm0288886/
    Ross Hunter
    Orange, VA

    Ian,
    When the window opens in iTunes you can either highlight the subject podcast and click the 'play' arrow at the top left of the screen (I don't listen to/watch podcasts without downloading, so I just assume it works that way.), or click the 'subscribe' button in the upper part of the window to the right of the "MacBreak Studio" logo. Once you've subscribed, iTunes will download the latest podcast and give you the opportunity to download older ones.
    Choose "Podcasts" in the LIBRARY list at the left side of your screen and you can "get episode" for the timeline editing podcast. Once it downloads, you can "unsubscribe" if you don't want any more episodes.
    The timeline editing episode is 49.4 megs.
    Ross Hunter
    Orange, VA

  • ABAP CERTIFICATION

    Hi
    can any one give me the certification questions on abap
    thanks,
    kiran

    Hi
    Pls go through the following link hope it will help u out
    http://www.sap-img.com/abap/important-abap-faq.htm
    http://www.sap-basis-abap.com/
    http://www.sap-img.com/bdc.htm
    http://sapdomain.com/certification.php
    http://www.techinterviews.com/?p=198
    ABAP Workbench Fundamentals (For course BC400)
    Create ABAP programs and the most important Repository objects using appropriate ABAP Workbench tools
    Navigate in the Workbench and use the syntax help
    Process source text with the ABAP Editor
    Test programs using the Debugger
    Define elementary and structured data objects
    Overview of important ABAP statements
    Use internal tables (introduction)
    Use modularization techniques local in the program
    Database dialogs: information about database tables in the ABAP Dictionary, read database tables
    User dialogs: list, selection screen, screens
    Overview of ABAP Web Dynpro (from SAP NetWeaver 2004s)
    Use function groups and function modules, classes and methods, BAPIs
    Project-oriented development using the Transport Organizer
    Overview of the different options for adapting software
    Advanced ABAP (For course BC402)
    ABAP runtime environment
    ABAP types and data objects
    Unicode
    Analysis tools for programs
    Work with internal tables
    Program modularization with function modules
    Performance of complex Open SQL statements
    Dynamic programming with field symbols and references
    Runtime type information, runtime type creation
    Program calls and memory management
    ABAP Objects : Object Oriented Programming in R/3 (For BC404)
    Introduction
    Analysis and Design
    Principles
    Generalization/Specialization
    Events
    Global Classes/Interfaces
    Summary and Outlook
    Developing User Dialogs (For BC410)
    Course Overview
    Basics for Interactive Lists
    The Program Interface
    Interactive List Techniques
    Introduction to Screen Programming
    Screen Elements for Output
    Screen Elements for Input/Output
    Screen Elements: Subscreens and Tabstrip Controls
    Screen Elements: Table Controls
    Context Menus
    Lists in Screen Programming
    Preview: Control Framework
    Enhancements and Modification (For course BC425)
    Overview of the options for making customer-specific adjustments to the SAP standard system
    Personalization (transaction variants)
    Enhancements to:
    - Elements of the ABAP Dictionary
    - SAP programs
    - SAP screen menus
    - SAP screens
    Enhancement techniques:
    - Enhancements to elements of the Dictionary
    - Enhancements via customer exits
    - Business Transaction Events (BTEs)
    - Business Add Ins (BAdIs)
    - User Exits
    Modifications:
    - Procedure
    - Utilities (Modification Assistant, Modification Browser)
    - Modification adjustment
    SAP Note Assistant (tool for SAP Note implementation)
    ABAP Dictionary (For course BC430)
    Introduction
    Tables in the ABAP Dictionary
    Performance in Table Accesses
    Consistency through Input Checks
    Dependencies of ABAP Dictionary Objects
    Changes to Tables
    Views
    Search Helps
    Developing Internet Application Components (For course BC440)
    Course Overview
    Introduction
    Internet,Intranet & WWW
    HTML,CSS and JavaScript
    Internet Transaction Server
    ABAP Workbench Basics
    SAP GUI for HTML
    Easy Web Transactions
    ITS Flow Logic
    HTML Business
    Summary and Outlook
    Form Printing Using SAPSmart Forms (for course BC470)
    Overview of SAP Smart Forms
    General concepts in form printing
    - Windows and pages, main and secondary windows, text and data
    Creating and adjusting an SAP Smart Form
    - Form Builder, Form Painter, form logic, node types (texts, graphics, addresses, and so on), text modules
    Variables
    - Form interface, global data
    Tables
    - Table Painter, dynamic tables, headers and footers
    Smart Styles
    - Style Builder, paragraph formats, and character formats
    Including graphics
    Change forms and application programs
    Developing BAPI enabled Web Applications with Java (For course CA926)
    For course TABC41, 42 and 43
    Basis technology overview
    ABAP Workbench
    ABAP Dictionary
    ABAP Development Projects
    Advanced Programming in ABAP Development Workbench (week 3 - 4 „TABC42")
    Techniques of List Processing
    Transaction Programming
    Database Updates
    Enhancements and Modifications
    Interfaces for Data Transfer

Maybe you are looking for

  • Spool Problem

    Hi Guys, I'm running a report in background. Basically I have scheduled this report, it mails the report in PDF format. My problem is with the print parameters, the format which i define while scheduling this report, changes when it is run. When I ch

  • Problem making playlist ipod nano first generation

    I have an ipod nano first generation, version 1.1.3, and after it crashed it went back to the original settings, but now I can't seem to make playlists anymore, in addition to the standard 'favorites', 'recently played', etc.. Can somebody tell me to

  • Material qty different from Sales Order to Invoice ex. qty 1 to qty 5

    Dear, Gurus I have 2 material types 98% are trading goods and 2%Service Material When I create invoice document with this order reference trading good materials are copying without a problem except the service material it is coming as qty 5 with the

  • Need Help with viewing sync re Bold 9700

    I have a Bold 9700. I cannot seem to view on the PC the memo data that I sync from the Bold? HELP!!!

  • HOW TO FILTER DIM VALUES USING LEVEL PARAMETER SCREEN BEFORE PRESENTATION

    hello, sorry but i did not understand your question - i don't know which objects is the "Descriptor". Let me try to update you with some facts and a better example of the situation - i will be also uploading some screen shots. from the jdeveloper hel