What is the use of  keyword SCAN ABAP-SOURCE

Hello experts,
what is the use of scan abap-source. please explain. what is tokens, statements, levels in that.

Hi
<b>SCAN</b>
This statement is for internal use only.
It cannot be used in application programs.
<b>SCAN ABAP-SOURCE itab1 ...TOKENS INTO itab2
                       ...STATEMENTS INTO itab3.</b>
Parts marked with " ..." are interchangeable
<b>Addition 1</b>
... FROM n1
<b>Addition 2</b>
... TO   n2
Breaks down the source code table itab1 into tokens not from start to finish, but only from line n1 to line n2.
The additions FROM n1 and TO n2 must, in this order, follow the specification of the source code table itab1.
When using the start specification n1, use the addition WITHOUT TRMAC to ensure that there are no unnecessary database accesses to the table TRMAC.
The end specification n2 is treated as "soft", i.e. a statement that begins on a line <= n2, but ends only on a line > n2, is returned completely.
If the end specification n2 is split in a chain statement, only the split part up to the next comma is returned completely, not the entire chain statement up to the next period.
Negative line specifications are not allowed and result in a runtime error.
A line specification of 0 amounts essentially to no specification.
If n1 number of lines in source code table, the scanner is not called (SY-SUBRC = 2).
If n1 > n2 and n2 > 0, the scanner is not called (SY-SUBRC = 2).
<b>
Addition 3</b>
... KEYWORDS FROM itab4
Does not return all statements, only those specified in the key word table itab4.
If the key word table is empty (i.e. it contains 0 lines), all the statements are selected.
The lines of the key word table are treated as a character field.
To select a Native-SQL-statement or a macro definition, you can specify the pseudo key words EXEC_SQL or DEFINE_MACRO. It makes no difference whether the statements EXEC or DEFINE occur as well. Native SQL statements and macro definitions are returned as one statement (of type E or M even if the expansion of a macro definition results in more than one statement.
If the key word table contains a blank line, blank statements are also selected.
<b>Addition 4</b>
... LEVELS INTO itab5
Stores details about each edited source code unit (source code table itab1 itself, expanded include-programs, expanded macro definitions) in the level table itab5.
Specification of a level table makes sense only with the addition WITH INCLUDES.
The level table itab5 must have the structure SLEVEL.
The fields of the structure SLEVEL - and consequently the columns of the level table itab5 have the following meaning:
TYPE
Type of source code unit with the following possible values:
P (Program)
D (Internal DEFINE macro)
R (Macro from table TRMAC)
NAME
Name of source code unit (name of include program, macro name)
DEPTH
Current nesting depth of source code unit (>= 1)
LEVEL
Index of superior (i.e. including or calling) source code unit in the level table (>= 1, if DEPTH >= 2, otherwise 0)
STMNT
Index of superior (i.e. including or calling) statement in the statement table (>= 1, if DEPTH >= 2, otherwise 0)
FROM
Index of first statement of source code unit in the statement table (>= 1)
TO
Index of last statement of source code unit in the statement table (>= 1)
If the source code unit contains include programs or macro calls, the line range [ FROM, TO] in the statement table also covers the statements in subordinate source code units.
<b>Addition 5</b>
...  STRUCTURES INTO itab6
Details of the construction of the source text table are given in the structure table itab6.
The structure table itab6 must have the structure SSTRUC.
The fields in SSTRUC (which are also the columns of structure table itab6) have the following meanings:
TYPE
Type of the structure with possible values:
P (Beginning of the source code)
R (Subroutine)
M (Macro, EXEC SQL)
I (Loop)
A (Case distinction)
C (Condition in a case distinction)
J (Goto command)
D (Structured declaration)
E (Event)
S (Follow-on from simple structured statement)
STMNT_TYPE
The statement type of the beginning of the structure. The values are listed in the type pool SCAN in structure SCAN_STRUC_STMNT_TYPE.
KEY_START
Flags whether the start of the structure is described semantically ('X' if there is a special statement, otherwise ' ').
KEY_END
Flags whether the end of the structure is described semantically ('X' if there is a special statement, otherwise blank).
STMNT_FROM
Index of the first statement of the structure in the statement table itab3.
STMNT_TO
Index of the last statement of the structure in the statement table itab3.
Index of the first substructure of the structure in structure table itab6.
STRUC_TO
Index of the last substructure of the structure in structure table itab6.
BACK
Index of the structure in the structure table itab6 that contains the structure as a substructure (0 if the structure is the root structure of a structure tree).
<b>Addition 6</b>
... OVERFLOW INTO c1
The addition is only allowed and required if the token table itab2 has the structure STOKEN or STOKEX.
If a token is too large to be stored in the token table in the field STR, it is placed in the overflow area c1. The offset of the token in the overflow area then lies in the token table in the field OFF1.
<b>Addition 7</b>
... WITH ANALYSIS
Breaks down each token t = a+b(c) according to the logic of the RSYN key word >ANALY into its three components a, b and c.
Offset and length of components a, b and c are stored in the fields LEN1, OFF2, LEN2, OFF3, and LEN3 in the token table. (The offset of OFF1 is always 0 and therefore not required.)
If you specify the addition WITH ANALYSIS, the token table itab2 must have the structure STOKESX, so that the fields LEN1, OFF2, LEN2, OFF3 and LEN3 are available.
If the token table has the structure STOKEX, you must consider the following:
If the whole token exists in the token table, the offset specifications are relative to the token start. If the token is in the overflow area c1, the offset specifications are relative to the start of the overflow area.
<b>Addition 8</b>
... WITH COMMENTS
Returns comments also, with each individual comment representing a token. The system additionally stores entries for each full block of comments in the table itab3, differentiating between comments that occur within statements and those that occur at program level. In itab3, an entry for a comment within a statement always comes before the statement containing the comment.
<b>Example</b>
Look at the following program fragment. The preceding numbers are the indexes of the tokens.
1    * An example  *
2    * with scattered comments
6    MOVE
3    * Inserted comment 1
7    X
4    *  Inserted comment 2
8    TO
9    Y
5    * Inserted comment 3
SCAN then enters the following values for the components TYPE, FROM and TO (in this order from left to right) into itab3.
'P' 1 2
  'S' 3 5
  'K' 6 9
If the addition ... WITH COMMENTS is used, the table itab2 must have the line type STOKES or STOKESX.
<b>Addition 9</b>
... WITH INCLUDES
Also breaks down subordinate source code units (included programs, called macros) into tokens.
You should normally combine the addition WITH INCLUDES with the addition LEVELS INTO itab5.
If (at least) one included program does not exist, SY-SUBRC is set to 1 and the relevant INCLUDE statement is flagged in the statement table itab3 by the statement type J (instead of I), but the breakdown process continues. The level table itab5 contains no entry for include-programs that do not exist.
If you combine WITH INCLUDES with WITHOUT TRMAC , TRMAC-Macros are not expanded because the system does not recognize them as subordinate source code units.
When macro calls are expanded, no position specifications are available. The corresponding fields in the token table itab2 and the statement table itab3 are then set to 0.
<b>Addition 10</b>
... WITH TYPE-POOLS
This addition has the same effect as the WITH INCLUDES addition, except that with the former include programs belonging to type groups are broken down into tokens.
<b>Addition 11</b>
.. WITH LIST TOKENIZATION
Tokens of the form (a1, a2, a3) are not returned as tokens but broken down into the elementary components.
<b>Addition 12</b>
... WITHOUT TRMAC
If a statement begins neither with an ABAP/4 key word nor with a DEFINE macro, the system does not check whether this is a TRMAC macro, but assumes an unknown statement. (Unknown statements are flagged in the statement table itab3 with a U in the field TYPE.)
To avoid unnecessary database accesses to the table TRMAC, you should use the addition WITHOUT TRMAC whenever you assume that the source code to be scanned contains unknown statements. Unknown statements are particularly likely to occur if you use the addition FROM n1, because the scanner does not start at the beginning of the source code, but from a specified point.
If you use WITHOUT TRMAC with WITH INCLUDES, TRMAC macros are not expanded because the system does not recognize them as subordinate source code units.
<b>Addition 13</b>
... PROGRAM FROM c2
<b>Addition 14</b>
... INCLUDE INTO c3
<b>Addition 15</b>
... MESSAGE INTO c4
<b>Addition 16</b>
... WORD    INTO c5
<b>Addition 17</b>
... LINE    INTO n3
<b>Addition 18</b>
... OFFSET  INTO n4
The above additions have the same meaning as those for the
SYNTAX-CHECK: statement: c2 is an input field for a program name to be assigned to the source code, while the fields c3, c4, c5, n3 and n4 are output fields in case an error occurs.
To be able to analyze errors without modifying programs, use the additions INCLUDE, MESSAGE, WORD, LINE and OFFSET. These provide information about the errors which have occurred.
<b>Variant 2</b>
SCAN AND CHECK ABAP-SOURCE itab1 ...RESULT INTO itab2.
Parts marked with " ..." are interchangeable
<b>Extras:</b>
1. ... PROGRAM FROM c1 2. ... INCLUDE INTO c2
3. ... MESSAGE INTO c3
4. ... WORD    INTO c4
5. ... LINE    INTO n1
6. ... OFFSET  INTO n2
The syntax of the program in table itab1 is checked. During the check, all of the information from the program, such as statement structures, statements, tokens, data objects, types and do on are placed into the result field. This field must have the type SYSCH_RESULT, which is defined in type group SYSCH. You must therefore declare type group SYSCH in your ABAP-program using a TYPE-POOLS statement.
&ABAP_ADDITION _1&
... PROGRAM FROM c1
&ABAP_ADDITION _2&
... INCLUDE INTO c1
&ABAP_ADDITION _3&
... MESSAGE INTO c3
&ABAP_ADDITION _4&
... WORD    INTO c4
&ABAP_ADDITION _5&
... LINE    INTO n1
&ABAP_ADDITION _6&
... OFFSET  INTO n2
The above additions have the same effect as the corresponding additions in the statement SYNTAX-CHECK: c1 is an input field for a program name to be assigned to the source code, the fields c2, c3, c4, n1 and n2 are output fields, used when errors occur.
To enable you to analyze errors without having to modify the program, you should specify the INCLUDE, MESSAGE, WORD, LINE and OFFSET additions for the information about the error that occurred.
<b>Reward if usefull</b>

Similar Messages

  • Using SCAN ABAP-SOURCE keyword

    Hi,
    My requirement is to get a report program name from the user, drill down the report to see how many Includes and subroutines are there in the report and in which level.
    I was able to drill down the report for finding the Includes with their level using this key word SCAN ABAP-SOURCE.
    Can someone provide me with a code to find the number of subroutines along with the subroutine name and which level they are present.
    Thanks in advance.
    Harini

    Hi,
    I have already drilled down the report to find out thenumber of includes and their levels.
    By using CALL FUNCTION 'GET_GLOBAL_SYMBOLS'
    it accepts to search only for a character in the program.
    I require it to search for the keyword 'PERFORM' and also find in which level it is defined.
    Please let me know how to achieve this.

  • Why class builder allows to develop abstract final class ? What is the use of such class in ABAP?

    I am new to ABAP. I tried creating abstract class and found that class builder allows development of abstract final class. What is the use of such class in ABAP?

    Hi,
    Does not compile:
    This one do:
    Inheritance:
    Regards.

  • What is the use of the ABAP PI connection?

    Hi Experts,
    can any one tell me,what is the use of ABAP PI connection,how will we use in we20?
    Thanks
    Narendra

    Hi Narendra,
    did you check the below wiki
    Connection Settings between ECC and PI system - Process Integration - SCN Wiki
    regards,
    Harish

  • What is the use P type variable in ABAP?

    ex:
    data <variable name > type p decimals 2.
    here what is the use of declaring it to p type.
    what is the difference between p type and float type.

    Hi,
    using packed variable we can decide the length of number and  number of decimals we want in o/p which is not possible with other types
    Packed numbers - type P
    Type P data allows digits after the decimal point. The number of decimal places is generic, and is determined in the program. The value range of type P data depends on its size and the number of digits after the decimal point. The valid size can be any value from 1 to 16 bytes. Two decimal digits are packed into one byte, while the last byte contains one digit and the sign. Up to 14 digits are allowed after the decimal point. The initial value is zero. When working with type P data, it is a good idea to set the program attribute Fixed point arithmetic.Otherwise, type P numbers are treated as integers.
    You can use type P data for such values as distances, weights, amounts of money, and so on.
    Floating point numbers - type F
    The value range of type F numbers is 1x10*-307 to 1x10*308 for positive and negative numbers, including 0 (zero). The accuracy range is approximately 15 decimals, depending on the floating point arithmetic of the hardware platform. Since type F data is internally converted to a binary system, rounding errors can occur. Although the ABAP processor tries to minimize these effects, you should not use type F data if high accuracy is required. Instead, use type P data.
    You use type F fields when you need to cope with very large value ranges and rounding errors are not critical.
    Using I and F fields for calculations is quicker than using P fields. Arithmetic operations using I and F fields are very similar to the actual machine code operations, while P fields require more support from the software. Nevertheless, you have to use type P data to meet accuracy or value range requirements.

  • What is the use of REUSE_ALV_FIELDCATALOG_MERGE

    Hi
    in alv's what is the use of REUSE_ALV_FIELDCATALOG_MERGE OTHER THAN ADDING FIELD HEADINGS
    Title Edited by: Alvaro Tejada Galindo on Jan 11, 2008 4:20 PM

    Hi,
    This is the functionality of that FM,
    Supports the creation of the field catalog for the ALV function modules
    based either on a structure or table defined in the ABAP Data
    Dictionary, or a program-internal table.
    The program-internal table must either be in a TOP Include or its
    Include must be specified explicitly in the interface.
    The variant based on a program-internal table should only be used for
    rapid prototyping since the following restrictions apply:
    o   Performance is affected since the code of the table definition must
        always be read and interpreted at runtime.
    o   Dictionary references are only considered if the keywords LIKE or
        INCLUDE STRUCTURE (not TYPE) are used.
    If the field catalog contains more than 90 fields, the first 90 fields
    are output in the list by default whereas the remaining fields are only
    available in the field selection.
    If the field catalog is passed with values, they are merged with the
    'automatically' found information.
    reward points if useful,
    seshu.

  • What is the best way to scan and sort old photos in iPhoto

    What is the best way to scan and sort old photos in iPhoto?  They do not have digital dates.

    Hey Chicago Sue,
    Once you scan them and have them on your desktop. You should use Automator and assign the common IPTC tags to the images, so that when you do import them into iPhoto, they get recorded.
    Here is an example of an action in Automator:

  • What is the use of Host in Technical system

    Hi experts,
    While creating Technical sytem what is the use of creating Host.
    while creating Business System we create Logical System.When we are creating for Sap system then there we give client logical sytem name,but while creating for third party systems what is the use of it.....
    while creating Technical system and Business system v have 4 radio buttons
    Web As ABAP
    Web as Java
    Standalone
    thirdParty
    what is the use of Standalone when and in which senario we use this Standalone.
    Note:valuable anser will be rewarded.
    Regards,
    Phani

    Hi
    1. Third Party: Can be any Tech System. For example you want to send a xml message from a file adapter residing on your PC. You can define your PC as a 3rd party Tech/Business System.
    2. StandAlone Java: WEBAS640 has got Basis and Java Stacks. If you installed <b>only the standalone java Stack on a server</b>, then you define a standalone java tech system.
    Regards
    krishna

  • What is the use of initial value in a database table?

    Hi can anyone help me in knowing what is the use of initial value which is present besides primary key while creating a table?

    Initial Value:
    Indicator that NOT NULL is forced for this field
    Use
    Select this flag if a field to be inserted in the database is to be filled with initial values. The initial value used depends on the data type of the field.
    Please note that fields in the database for which the this flag is not set can also be filled with initial values.
    When you create a table, all fields of the table can be defined as NOT NULL and filled with an initial value. The same applies when converting the table. Only when new fields are added or inserted, are these filled with initial values. An exception is key fields. These are always filled automatically with initial values.
    Restrictions and notes:
    The initial value cannot be set for fields of data types LCHR, LRAW, and RAW. If the field length is greater than 32, the initial flag cannot be set for fields of data type NUMC.
    If a new field is inserted in the table and the initial flag is set, the complete table is scanned on activation and an UPDATE is made to the new field. This can be very time-consuming.
    If the initial flag is set for an included structure, this means that the attributes from the structure are transferred. That is, exactly those fields which are marked as initial in the definition have this attribute in the table as well.
    hope it helps,
    Saipriya

  • What is the use of Tcode: SM35

    Hi Experts,
    What is the use of Tcode: SM35
    If some one can brief me in detail it would be great help.
    Appreciate your early response.
    Regards
    Rajesh

    Hi Rajesh,
    SM35 is used to run Batch input sessions.
    These sessions can be created via LSMW or any batch-input ABAP program.
    To run a session, select the session and press "Process".
    You can either process foreground (as if you are entering the data), display errors only (runs in background as far as there is no error), background (you need to check the errors when the session is over).
    Regards,
    Dilek
    Edited by: Dilek Ersoz Adak on Dec 16, 2009 4:19 PM

  • What is the use of  fox formula in integrated planning

    what is the use of  fox formula in integrated planning

    Hi,
    just as a follow up - the FOX Extension Formula capability of the IP in BW is as others have mentioned - to help develop formulas to execute calculations during planning, forecasting, budgeting, etc. - it allows consultants, like myself, to develop these formulas without the help of an ABAP consultant - but creates ABAP programs behind the scenes.
    You can also use these ABAP programs separate from the IP component - once you create a FOX formula you can retrieve the ABAP program and then use it for other activities.
    With the FOX you can use variables in a formula, call another ABAP program, generate loops of data both master and transactional, allows IF, THEN statements, and a number of other activiities. There is a limit to the usefulness of the FOX formula process - you may find if the FOX formula is too complex or long that your process will run slowly during the calculations. If this is occurring you will need to debug your ABAP program to see if you can increaase the performance.
    Thanks and hope this helps, Pete

  • What is the use of CTU_PRAMS in bdc programming?

    what is the use of CTU_PRAMS in bdc programming?
    can any explain wit a sample code.

    Hi,
    Hi,
    If u write table control bdc program in 14'' monitor screen, then if the same program u run at different monitor size, then the screen resolution problem comes in to the picture,
    like, u get 5 records in table control in one screen, and some other records in other screen, to avoid this screen resolution problem we use CTU-PARAMS Structure.
    In ur program u have to set
    defsize type ctu_params-defsize value 'X',
    Then u will be free of screen resolution problem.
    Fill the str CTU_PARAMS-defsize = 'X' and pass in CTU stmnt as
    call transaction 'XXX' options using t_bdcdata ctu_params.
    Analysing :
    1. If nothing works, then we have to
    some ifs & buts.
    2. There shall be normally
    2-4 different kinds of resolution
    on various users comptuers.
    3. Based on this,
    we have to know beforehand,
    what will be the number of rows
    in the table control.
    4. The user can be given
    a selection/paraemter
    for resolution
    eg. 800x600
    1024x100
    axb
    etc.
    5. Based on this, we will hardcode
    in the program (based upon our knowledge/recording
    which we have seen and done)
    we will hardcode
    the number of lines
    in the VARIBLE.
    6. Then we can simply use this variable
    for our LOOP and logic purpose.
    7. It will be the responsibiltiy of the
    use to CHOOSE THE CORRECT resolution,
    on the selection-screen.
    For screen resolution use ctu_params, with default size
    Data : f_option type ctu_params,
    f_option-updmode = 'S'.
    f_option-defsize = 'X'.
    f_option-dismode = 'N'.
    call transaction 'VA01' using bdcdata options from f_option messages into bdcerror.
    CALL TRANSACTION tcode... OPTIONS FROM opt
    ... OPTIONS FROM opt
    Effect
    Allows you to control processing using the values of the componetns of the structure opt, which must have the ABAP Dictionary type CTU_PARAMS. The components have the following meanings:
    DISMODE
    Display mode (like the MODE addition)
    UPDMODE
    Update mode (like the UPDATE addition)
    CATTMODE
    CATT mode (controls a CATT)
    CATT mode can have the following values:
    ' ' No CATT active
    'N' CATT without single-screen control
    'A' CATT with single-screen control
    DEFSIZE
    Use default window size
    RACOMMIT
    Do not end transaction at COMMIT WORK
    NOBINPT
    No batch input mode (that is, SY-BINPT = SPACE)
    NOBIEND
    No batch input mode after the end of BDC data.
    The components DEFSIZE , RACOMMIT, NOBINPT, and NOBIEND always take the following values:
    'X' Yes
    ' ' No
    If you do not use the OPTIONS FROM addition, the following control parameter settings apply:
    DISMODE
    From addition MODE
    UPDMODE
    From addition UPDATE
    CATTMODE
    No CATT active
    DEFSIZE
    Do not use default window size
    RACOMMIT
    Successful end on COMMIT WORK
    NOBINPT
    Batch input mode active ( SY-BINPT = X
    NOBIEND
    Batch input mode remains active after the BDC data

  • What is the use of FOLDER NODE in SMARTFORMS?

    what is the use of FOLDER NODE in SMARTFORMS?
    please explain.

    Hi,
    By using a folder node and checking the 'protect' checkbox, everything in that folder will be page protected.
    How to create a New smartfrom, it is having step by step procedure
    http://sap.niraj.tripod.com/id67.html
    Here is the procedure
    1. Create a new smartforms
    Transaction code SMARTFORMS
    Create new smartforms call ZSMART
    2. Define looping process for internal table
    Pages and windows
    First Page -> Header Window (Cursor at First Page then click Edit -> Node -> Create)
    Here, you can specify your title and page numbering
    &SFSY-PAGE& (Page 1) of &SFSY-FORMPAGES(Z4.0)& (Total Page)
    Main windows -> TABLE -> DATA
    In the Loop section, tick Internal table and fill in
    ITAB1 (table in ABAP SMARTFORM calling function) INTO ITAB2
    3. Define table in smartforms
    Global settings :
    Form interface
    Variable name Type assignment Reference type
    ITAB1 TYPE Table Structure
    Global definitions
    Variable name Type assignment Reference type
    ITAB2 TYPE Table Structure
    4. To display the data in the form
    Make used of the Table Painter and declare the Line Type in Tabstrips Table
    e.g. HD_GEN for printing header details,
    IT_GEN for printing data details.
    You have to specify the Line Type in your Text elements in the Tabstrips Output options.
    Tick the New Line and specify the Line Type for outputting the data.
    Declare your output fields in Text elements
    Tabstrips - Output Options
    For different fonts use this Style : IDWTCERTSTYLE
    For Quantity or Amout you can used this variable &GS_ITAB-AMOUNT(12.2)&
    5. Calling SMARTFORMS from your ABAP program
    REPORT ZSMARTFORM.
    Calling SMARTFORMS from your ABAP program.
    Collecting all the table data in your program, and pass once to SMARTFORMS
    SMARTFORMS
    Declare your table type in :-
    Global Settings -> Form Interface
    Global Definintions -> Global Data
    Main Window -> Table -> DATA
    Written by : SAP Hints and Tips on Configuration and ABAP/4 Programming
    http://sapr3.tripod.com
    TABLES: MKPF.
    DATA: FM_NAME TYPE RS38L_FNAM.
    DATA: BEGIN OF INT_MKPF OCCURS 0.
    INCLUDE STRUCTURE MKPF.
    DATA: END OF INT_MKPF.
    SELECT-OPTIONS S_MBLNR FOR MKPF-MBLNR MEMORY ID 001.
    SELECT * FROM MKPF WHERE MBLNR IN S_MBLNR.
    MOVE-CORRESPONDING MKPF TO INT_MKPF.
    APPEND INT_MKPF.
    ENDSELECT.
    At the end of your program.
    Passing data to SMARTFORMS
    call function 'SSF_FUNCTION_MODULE_NAME'
    exporting
    formname = 'ZSMARTFORM'
    VARIANT = ' '
    DIRECT_CALL = ' '
    IMPORTING
    FM_NAME = FM_NAME
    EXCEPTIONS
    NO_FORM = 1
    NO_FUNCTION_MODULE = 2
    OTHERS = 3.
    if sy-subrc <> 0.
    WRITE: / 'ERROR 1'.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    call function FM_NAME
    EXPORTING
    ARCHIVE_INDEX =
    ARCHIVE_INDEX_TAB =
    ARCHIVE_PARAMETERS =
    CONTROL_PARAMETERS =
    MAIL_APPL_OBJ =
    MAIL_RECIPIENT =
    MAIL_SENDER =
    OUTPUT_OPTIONS =
    USER_SETTINGS = 'X'
    IMPORTING
    DOCUMENT_OUTPUT_INFO =
    JOB_OUTPUT_INFO =
    JOB_OUTPUT_OPTIONS =
    TABLES
    GS_MKPF = INT_MKPF
    EXCEPTIONS
    FORMATTING_ERROR = 1
    INTERNAL_ERROR = 2
    SEND_ERROR = 3
    USER_CANCELED = 4
    OTHERS = 5.
    if sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    endif.
    for Smartforms material
    http://www.sap-basis-abap.com/sapsf001.htm
    http://www.sap-press.com/downloads/h955_preview.pdf
    http://www.ossincorp.com/Black_Box/Black_Box_2.htm
    http://www.sap-img.com/smartforms/sap-smart-forms.htm
    http://www.sap-img.com/smartforms/smartform-tutorial.htm
    http://www.sapgenie.com/abap/smartforms.htm
    How to trace smartform
    http://help.sap.com/saphelp_47x200/helpdata/en/49/c3d8a4a05b11d5b6ef006094192fe3/frameset.htm
    http://www.help.sap.com/bp_presmartformsv1500/DOCU/OVIEW_EN.PDF
    http://www.sap-img.com/smartforms/smart-006.htm
    http://www.sap-img.com/smartforms/smartforms-faq-part-two.htm
    Re: Need FAQ's
    check most imp link
    http://www.sapbrain.com/ARTICLES/TECHNICAL/SMARTFORMS/smartforms.html
    step by step good ex link is....
    http://smoschid.tripod.com/How_to_do_things_in_SAP/How_To_Build_SMARTFORMS/How_To_Build_SMARTFORMS.html
    Reward all helpfull answers
    Regards
    Omkar

  • What is the use of t-rfc in ALE? compared to t-rfc, Qrfc is better and effi

    what is the use of t-rfc in ALE? compared to t-rfc, Qrfc is better and efficient?

    Hi Sunil,
    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.
    Hope this resolves your query.
    Reward all the helpful answers.
    Regards

  • What is the use of OTYPE_REF in Add method

    what is the use of OTYPE_REF in Add method

    class A
    static public void m(){}
    class B extends A
    static public void m(){}
    }is this over riding? well static methods are bind at
    compile time then there shouldnt be any over riding
    in case of static methods but when we use final
    keyword in the method of class A it makes an error.
    when static methods are bind at compile time then
    what is the use of final keyword with static methods?there is none, since static methods cannot be overridden and final prevents them from being overridden

Maybe you are looking for

  • CS6 adobe bridge stuck on building criteria!!

    can anyone tell me why bridge is permanently stuck on building criteria on my CS6 Adobe bridge - on my Mac I never had this problem on my CS5 version. I never ever changed any of the default settings so something is seriously wrong with the default s

  • How does clamshell mode work when connected to monitor?

    I have connected my MacBook via the external port to an HD TV and can 'mirror' the screen image. I want to close the lid and continue to use the TV monitor but the MacBook insists in going to sleep...  What can I do or is this not possible?  Ideas an

  • Can I make a photo out of a still frame in iMovie?

    I would like to make a photo out of some of my still frames from video in my iMovie.  Can this be done? Thanks.

  • Imac will not boot past Apple Logo

    My imac will not boot after the good chime and apple logo (i don't even get a spinning wheel).  I have held the option key down and selected the OS 10.6 disk with the same result.   I was able to erase the drive and reinstall OS 10.6 using target mod

  • Problems uninstalling Oracle Warehouse Builder 10g

    When we go into the OUI we select deinstall option on the intial screen. The deinstaller sits there and does nothing. Any suggestions.