Regarding SLIN

hey guys,
I have below 3 doubts.
<b>1-What should be the input value  for this below FM to execute SLIN and return the result. I want to check all the option in FM to check error and execute.
FM : EXTENDED_PROGRAM_CHECK.
2- Will the above FM execution and SCI execution results will be same?
3-Apart from EPC and SCI check, Is there any check need to be done to find Upgrade errors.</b>
Thanks
Kumar.

hi,
1> the input to the FM will be the Program name
2> in SCI you need to select on which all you need to check oerformance whereas SLIN provides the list of performance issues it will check for
3> ya just go to se38 type in your program name then in the menu program->check->code inspector
--> also type i program anme in se38 then enter the program in display/change mode then go to in menu environment->examples
Message was edited by:
        Navneeth Bothra

Similar Messages

  • Regarding SLIN scope

    hi guys,
    Do SLIN/SCI programs check for below errors too?
    1-BAPI related errors
    2-ABAP Query related errors
    3-SAPSCRIPT/SMARTFORMS errors
    4-IDOC related errors.
    Please suggest if any alternatives to find the upgrade error exist in programs using above.
    Thanks.
    Ambichan.

    Hi,
    You use this function to perform static checks, which are too time consuming for the normal syntax check. The extended program check returns both errors and warnings and it is possible to run either individual specialized tests or one whole standard check.
    It check only for Reports, Module Pools, Class & Interfce.
    Regards,
    Amit
    Reward all helpful replies.

  • Regarding Warning in SLIN

    Hi
    Thankx for your response. i found one more probelm in slin.
    SELECT SINGLE KBETR KWERT FROM KONV INTO (GV_KBETR, GV_KWERT)
    WHERE KSCHL = C_DTYPE AND KNUMV = LV_KNUMV.
    i'm using above select but in slin i'm getting warning message saying that
    in "select single......." the where condition for the key filed "nation" does not test for equality. there fore the sigle record in question may not be unique.
    internal message code : MESSAGE GSB
    Regards
    Munna

    syed
    nation is probably a part of the composite primary key.
    So the warning comes up. If u want it to go away put it in the
    select query in the order the fields  appear in the table

  • Warning Message In SLIN

    Hi Folks,
                 I Have Encountered A Strange Warning Message In SLIN With The Field
    AUSP-ATWRT.
    " The field "ATWRT" used in the WHERE condition may contain NULL values.
    Internal Message Code: MESSAGE GYT
    (The message cannot be hidden using pseudo-comment "#EC .., bzw. durch SET
    EXTENDED CHECK OFF/ON) "
    This Field IS NOT Null Since In the where clause I have Written Where ATWRT IN S_PCODE & S_PCODE HAS DEFAULT Values Of NLZ 14 09 TO NLZ 14 11 .
    ATWRT IS NOT NULL IN AUSP .
    CAN YOU GUYS RESOLVE THIS PROBLEM .
    Regards,
    RAJIV KAUSHAL

    Hello Rajiv,
    do not use in where clause ,if you use then you will get warning message ..
    tables : ausp.
    select-options : s_atwrt for ausp-atwrt.
    data i_ausp like ausp occurs 0 with header line.
    start-of-selection.
    select * from ausp into table i_ausp.
                      where atwrt in s_atwrt.
    loop at i_ausp.
    <b>if i_ausp-atwrt = 'NA'.
    endif.</b>
    endloop.

  • Regarding types statement in ECC 6.0...plz reply..urgent

    Hi,
    I am copying a program which is in<b> 4.7 to ECC 6.0,</b>i am facing error regarding <b>structures with types<b>...
    The following code in<b> 4.7</b>
    <b>DATA:BEGIN OF W_BMM00.
            INCLUDE STRUCTURE BMM00.
    DATA:END OF W_BMM00.
    DATA:BEGIN OF W_BMMH1.
            INCLUDE STRUCTURE BMMH1.
    DATA:END OF W_BMMH1.
    DATA:BEGIN OF W_BMMH7.
            INCLUDE STRUCTURE BMMH7.
    DATA:END OF W_BMMH7.
    DATA : BEGIN OF TAB_TLINE OCCURS 0.
            INCLUDE STRUCTURE TLINE.
    DATA : END OF TAB_TLINE.</b>
    i have written the same in <b>ECC6.0</b> as below
    <b>TYPES:BEGIN OF tw_bmm00.
            INCLUDE STRUCTURE bmm00.
    TYPES:END OF tw_bmm00 ,
          tt_bmm00 TYPE STANDARD TABLE OF tw_bmm00.
    TYPES:BEGIN OF tw_bmmh1.
            INCLUDE STRUCTURE bmmh1.
    TYPES:END OF tw_bmmh1 ,
              tt_bmmh1 TYPE STANDARD TABLE OF tw_bmmh1.
    TYPES:BEGIN OF tw_bmmh7.
            INCLUDE STRUCTURE bmmh7.
    TYPES:END OF tw_bmmh7 ,
          tt_bmmh7  TYPE STANDARD TABLE OF tw_bmmh7.
    TYPES:BEGIN OF tw_TAB_TLINE.
            INCLUDE STRUCTURE TLINE.
    TYPES:END OF tw_TAB_TLINE,
          tt_tab_tline TYPE STANDARD TABLE OF tw_tab_tline.
    lw_bmm00 TYPE tw_bmm00,
          lt_bmm00 TYPE tt_bmm00,
          lw_bmmh1 TYPE tw_bmmh1,
          lt_bmmh1 TYPE tt_bmmh1,
          lw_bmmh7 TYPE tw_bmmh7,
          lt_bmmh7 TYPE tt_bmmh7,
          lw_tab_thead TYPE tw_tab_thead,
          lt_tab_thead TYPE tt_tab_thead,</b>....
    when i check SLIN errors i am getting the following errors<b>...plz resolve</b>..
    <b>The current ABAP command is obsolete
    <b>Within classes and interfaces, you can only use "TYPE" to refer to ABAP Dictionary
    types (not "LIKE" or "STRUCTURE").</b></b>
    <b></b>

    include strture not allowed.
    rules.
    ABAP Development under Unicode
    Prior to Unicode the length of a character was exactly one byte, allowing implicit typecasts or memory-layout oriented programming. With Unicode this situation has changed: One character is no longer one byte, so that additional specifications have to be added to define the unit of measure for implicit or explicit references to (the length of) characters.
    Character-like data in ABAP are always represented with the UTF-16 - standard (also used in Java or other development tools like Microsoft's Visual Basic); but this format is not related to the encoding of the underlying database.
    A Unicode-enabled ABAP program (UP) is a program in which all Unicode checks are effective. Such a program returns the same results in a non-Unicode system (NUS) as in a Unicode system (US). In order to perform the relevant syntax checks, you must activate the Unicode flag in the screens of the program and class attributes.
    In a US, you can only execute programs for which the Unicode flag is set. In future, the Unicode flag must be set for all SAP programs to enable them to run on a US. If the Unicode flag is set for a program, the syntax is checked and the program executed according to the rules described in this document, regardless of whether the system is a US or a NUS. From now on, the Unicode flag must be set for all new programs and classes that are created.
    If the Unicode flag is not set, a program can only be executed in an NUS. The syntactical and semantic changes described below do not apply to such programs. However, you can use all language extensions that have been introduced in the process of the conversion to Unicode.
    As a result of the modifications and restrictions associated with the Unicode flag, programs are executed in both Unicode and non-Unicode systems with the same semantics to a large degree. In rare cases, however, differences may occur. Programs that are designed to run on both systems therefore need to be tested on both platforms.
    Other Changes
    1. Bit Statements
    2. Adding Field Sequences
    3. Loops with VARY and VARYING
    4. Creating Subroutines
    5. Saving Programs
    6. Assigning Types for GET/SET PARAMETER
    7. Unreachable Statements
    8. Function Modules with Incorrect Parameter Names
    1. Bit Statements
    Previously, the system checked for the bit statements SET BIT i OF f [TO g] and GET BIT i OF f [INTO g]whether the field f is character-type; X fields, X strings, and flat structures are usually regarded as character-type. For Unicode programs this is no longer useful, because the types X and XSTRING no longer count as character-type and the bit by bit access to character-type fields or structures is no longer platform-independent. Therefore, with these operations in Unicode programs, the field f must be type X or XSTRING.
    For the bit mask operations f O x, f Z x, and f M x you could previously use all number-type and hence all character-type types for the left operand f. In Unicode programs, the f operand must now be type X or XSTRING.
    2. Adding Field Sequences
    When adding field sequences, restrictions apply to the following statements in Unicode:
    ADD n1 THEN n2 UNTIL nz [ ACCORDING TO sel ] GIVING m ...
    ADD n1 THEN n2 UNTIL nz TO m [ RANGE str ].
    1. The operands n1, n2, and nz must be type-compatible with one another.
    2. The distance between nz and n1 must be an integral multiple of the distance between n2 and n1.
    3. A syntax or runtime error occurs if the fields n1, n2, and nz are not in a structure. This structure must be recognizable statically or its valid area must be marked explicitly using the RANGE addition.
    4. At runtime, the system ensures that the RANGE area is not left.
    ADD n1 FROM i1 GIVING m [ RANGE str ].
    1. Field n1 must be within the structure. The structure must be explicitly defined using the RANGE addition if it is not recognizable statically.
    2. For this variant, the system also checks at runtime whether n1 and the addressed values are within the structure.
    3. Loops
    Loops with the VARY or VARYING addition are also problematic in Unicode, since a type-a access to memory contents cannot be ensured and memory can be overwritten inadvertently.
    DO ... VARYING f FROM f1 NEXT f2.
    For this statement, the fields f, f1, and f2 must be type-compatible with each other. To prevent memory contents being overwritten, a RANGE for valid accesses is introduced implicitly or explicitly for the following statements:
    DO ... TIMES VARYING f FROM f1 NEXT f2 [ RANGE f3 ].
    WHILE ... VARY f FROM f1 NEXT f2 [ RANGE f3 ].
    A syntax or runtime error is caused if f1 or f2 are not included in f3. If the RANGE addition is missing, it is defined implicitly from FROM f1 NEXT f2 as follows:
    1. If both f1 and f2 are statically recognizable components of the same structure, the valid RANGE area is defined from the smallest structure that comprises f1 and f2.
    2. A syntax error is triggered if it is recognizable statically that f1 and f2 are not part of the same structure.
    3. A valid area must be defined explicitly using the RANGE addition if the connection between f1 and f2 is not recognizable statically.
    If you specify a deep structure as the RANGE addition, the system checks for every loop pass that there are no field references, object references, tables, or strings in the area read.
    4. Creating Subroutines
    When automatically generating subroutines using the statement GENERATE SUBROUTINE POOL itab NAME name, the generated program inherits the content of the Unicode flag of the generating program.
    5. Saving Programs
    When automatically generating programs using the statement INSERT REPORT prog FROM itab, default values are set for the TRDIR entry as before. Amongst other things, this statement has the new addition UNICODE ENABLING uc, with which the Unicode flag of the inserted report receives the value of uc. If this addition is missing, the following applies:
    1. A Unicode program creates a Unicode program.
    2. A non-Unicode program in turn creates a non-Unicode program.
    3. A non-Unicode program becomes a Unicode program if it is overwritten by a Unicode program.
    4. A Unicode program remains a Unicode program if it is overwritten by a non-Unicode program.
    6. Assigning Types for GET/SET PARAMETER
    For the statements GET PARAMETER ID pid FIELD f and GET PARAMETER ID pid FIELD f, f must be character-type. You can use the EXPORT and IMPORT statements for storing non-character-type fields and structures.
    7. Unreachable Statements
    In Unicode programs, unreachable statements cause a syntax error. In non-Unicode programs, there was previously only a syntax warning.
    8. Function Modules with Incorrect Parameter Names
    In Unicode programs, calling a function module, whose parameter names are specified statically as a literal or constant, causes an exception that can be handled if an incorrect parameter name was specified. This only applies to function modules that are not called via Remote Function Call. In non-Unicode programs, an incorrect name was previously ignored.
    http://service.sap.com/instguides
    --> SAP Business Suite Applications
    --> SAP ERP
    --> mySAP ERP 2005
    --> Upgrade
    --> Upgrade Documentation - mySAP ERP 2005 SR2
    There choose your database and operating system.
    If you're looking for functional details check
    http://service.sap.com/releasenotes

  • Regarding obselete statements in ECC 6.0 ...plz help uregent

    Hi guys...
    I am importing a program from <b>4.7 to ECC 6.0.</b>
    When i am checking <b>SLIN errors</b> i am getting followin error..
    <b>The current ABAP command is obsolete
    Field groups cannot be created in the OO context.
    Internal Message Code: FIELD-GROUPS 000</b>
    The 4.7 program uses the follwing code where i am getting the error
    <b>FIELD-GROUPS: HEADER, ITEMS.</b>So plz find a solution for this...
    thank u.
    madhavi

    Hi Madhavi,
    There is no other solution than rewriting the program, e.q. by creating internal tables for the fields now defined with FIELD-GROUPS in  HEADER and ITEMS and looping over these tables.
    Regards,
    John.

  • Regarding Performance tunning...

    HI Experts,
    can you suggest me, how exactly performance is checked.
    what is the measure we considered for performance check.
    what are ideals status of the performance check for a certain program.
    that is, how much should be database use, abap use and the system
    use in the program.
    i checked my program in t-code SE30, and it is showing almost
    above 90% use of database and very less use of abap and
    almost no use of system.
    so please tell me exactly how much it should be...
    Thanks in advance.
    Regard,
    vijay chavan

    Hi
    these are the ways of checking performance of a report
    Tools for Performance Analysis
    Run time analysis transaction SE30
    SQL Trace transaction ST05
    Extended Program Check (SLIN)
    Code Inspector ( SCI)
    <b>Run time analysis transaction SE30</b> :This transaction gives all the analysis of an ABAP program with respect to the database and the non-database processing.
    <b>SQL Trace transaction ST05</b>: The trace list has many lines that are not related to the SELECT statement in the ABAP program. This is because the execution of any ABAP program requires additional administrative SQL calls. To restrict the list output, use the filter introducing the trace list.
    The trace list contains different SQL statements simultaneously related to the one SELECT statement in the ABAP program. This is because the R/3 Database Interface - a sophisticated component of the R/3 Application Server - maps every Open SQL statement to one or a series of physical database calls and brings it to execution. This mapping, crucial to R/3s performance, depends on the particular call and database system. For example, the SELECT-ENDSELECT loop on a particular database table of the ABAP program would be mapped to a sequence PREPARE-OPEN-FETCH of physical calls in an Oracle environment.
    The WHERE clause in the trace list's SQL statement is different from the WHERE clause in the ABAP statement. This is because in an R/3 system, a client is a self-contained unit with separate master records and its own set of table data (in commercial, organizational, and technical terms). With ABAP, every Open SQL statement automatically executes within the correct client environment. For this reason, a condition with the actual client code is added to every WHERE clause if a client field is a component of the searched table.
    To see a statement's execution plan, just position the cursor on the PREPARE statement and choose Explain SQL. A detailed explanation of the execution plan depends on the database system in use.
    <b>Extended Program Check</b>
    This can be called in through transaction SE38 or through transaction SLIN. This indicates possible problems that may cause performance problems.
    <b>Code Inspector (SCI)</b>
    You can call the Code Inspector from the ABAP Editor (SE38), the Function Builder (SE37), the Class Builder (SE24), or as a separate transaction (SCI).
    The Code Inspector indicates possible problems. However, note that, especially with performance issues: There is no rule without exception. If a program passes an inspection, it does not necessarily mean that this program will have no performance problems.
    <b>Run time analysis transaction SE30</b>
    <b>steps</b>
    In Transaction SE30, fill in the transaction name or the program name which needs to be analyzed for performance tuning.
    For our case, let this be “ZABAP_PERF_TUNING”
    Run time analysis transaction SE30
    After giving the required inputs to the program, execute it. After the final output list has been displayed, PRESS the “BACK” button.
    On the original SE30 screen, now click on “ANALYZE” button.
    The percentage across each of the areas ABAP/ Database/System shows the percentage of total time used for those areas and load on these areas while running the program . The lesser the database load faster the program runs.
    <b>SQL Trace – ST05</b>
    <b>steps</b>
    <u>Starting the Trace:</u>
    To analyze a trace file, do the following:
    Choose the menu path Test &#61614; Performance Trace in the ABAP Workbench or go to Transaction ST05. The initial screen of the test tool appears. In the lower part of the screen, the status of the Performance Trace is displayed. This provides you with information as to whether any of the Performance Traces are switched on and the users for which they are enabled. It also tells you which user has switched the trace on.
    Using the selection buttons provided, set which trace functions you wish to have switched on (SWL trace, enqueue trace, RFC trace, table buffer trace).
    If you want to switch on the trace under your user name, choose Trace on. If you want to pass on values for one or several filter criteria, choose Trace with Filter. Typical filter criteria are: the name of the user, transaction name, process name, and program name.
    Now run the program to be analyzed.
    Stopping the Trace:
    To deactivate the trace:
    Choose Test &#61614;Performance Trace in the ABAP Workbench. The initial screen of the test tool appears. It contains a status line displaying the traces that are active, the users for whom they are active, and the user who activated them.
    Select the trace functions that you want to switch off.
    Choose Deactivate Trace. If you started the trace yourself, you can now switch it off immediately. If the performance trace was started by a different user, a confirmation prompt appears before deactivation-
    <u>Analyzing a Sample trace data:</u>
    PREPARE: Prepares the OPEN statement for use and determines the access method.
    OPEN: Opens the cursor and specifies the selection result by filling the selection fields with concrete values.
    FETCH: Moves the cursor through the dataset created by the OPEN operation. The array size displayed beside the fetch data means that the system can transfer a maximum package size of 392 records at one time into the buffered area.
    <b>Reward if useful</b>

  • Absolete Statements SLIN Error

    Dear Experts,
                         I am using the following statement .it is giving the SLIN Error.
        IMPORT it_node FROM MEMORY ID 'QWERT'.
                         Could you please tell met how to avoid the SLIN Error ?
    Thanks in Advance.
    Regards,
    Sivakumar.A

    Hi,
    Use as below:
    IMPORT name_1 TO var_1 ... name_n TO var_n FROM MEMORY ...<ID>
    IMPORT it_node TO ITAB FROM MEMORY ID 'QWERT'
    ITAB can be of the same type as IT_NODE...
    Regards
    Shiva

  • Differences between SLIN and Code Inspector

    Hi,
    Can anyone tell me the differences between SLIN and Code Inspector(SCI)..?
    and in which cases we use SLIN and  SCI..?
    and as an ABAPer, which one should we prefer..?
    Thanks,
    Pradeep.

    Hi
    Extended syntax check or SLIN is used to check the program in all aspects for the different syntaxes like
    When you use select single whether you have passed all the key fields or not>
    whether you have maintained the text elements texts or not,
    Have you used UNIT...CURRENCY along with the QTY and AMOUNT fields when displayed using the WRITE statement
    and check for all the varities of statements used in the code, and if there is some problem with that statement/command, it will display as error or warning.
    Check following links -
    slin
    can any one tell me abt SLIN T-CODE
    Reward points if useful
    Regards
    Anji

  • HOW TO HIDE THE SLIN ERRORS

    how to hide the slin errors

    Hi Shilpa.
    I would like to suggest my opinion,
    Refered from,
    [SAP HELP Library - Standard Reference for Errors and Warnings|http://help.sap.com/saphelp_nw04s/helpdata/en/43/00c5b7daf15166e10000000a1553f6/content.htm]
    SLIN Infos point to possible (semantic) program errors. According to the situation, the program should be changed or the messages should be switched off.+
    +Only the SLIN messages of this category can be switched off by means of special comments
    Reference,
    Use u201C#EC * to hide warnings from places that cannot be removed by proper typing.
    [SDN Library - Standard Reference - PDF - Make ABAP code unicode enabled - Hide SLIN Error Messages|https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c031aa90-0201-0010-b69d-88a278e158c8]
    Hope that's usefull.
    Good Luck & Regards.
    Harsh Dave

  • SLIN For 'Z' Program

    Hi,
    I have created a custom Z program by copying the standard program RIMPOS00. When I executed the SLIN (Extended Program Check) for this new Z program, I find many errors, warnings and messages being displayed even though these DO NOT display when I run the SLIN for the standard program RIMPOS00.
    Any inputs on why these actually show up and how could these be resolved / avoided would be of immense help.
    Regards,
    Ravi Krishna

    All,
    I did follow the steps (as suggested by you) before like choosing all the includes, documentation etc. for copying but I am still faced with the same issue. It certainly has come as a surprise to me that at times the code in the include gets copied but at times, it doesn't. I am working on an ECC 6.0 system.
    Any thoughts on if I am missing out on any of the steps or if something additional needs to be done.
    Regards,
    Ravi Krishna

  • SLIN warning message need to rectify

    Hi All,
          TRY.
              CREATE OBJECT LR_0014
                EXPORTING
                  TCLAS = 'A'
                  INFTY = '0014'.
            CATCH CX_HRPA_VIOLATED_ASSERTION .
          ENDTRY.
    for this code in SLIN it is showing warning message as
    No Exception Handling After the CATCH Statement
    Please suggest the Solution.

    Hi Kumar,
    check this link:
    Re: Extended program check error for cl_salv_table=>factory
    Regards,
    Swarna Munukoti.

  • REG: Obsolete statements in SLIN ecc 5.0

    Hi all,
    When i am executing the ABAP EPC for obsolete statements.(with Also display Hidden Messages)
    I get the 2 Obsolete statements and as following :
          Program:  ZXXXXX     Row:    652                                                                               
    The current ABAP command is obsolete and problematic, especially so in ABAP                                                        
    Objects                                                                               
    An explicit work area is necessary in the OO context. Use "APPEND wa TO S_WERKS                                                    
    [SORTED BY]".                                                                               
    (The message can be hidden with "#EC *)                                                                               
    Program:  ZXXXXX     Row:   2558                                                                               
    The current ABAP command is obsolete and problematic, especially so in ABAP                                                        
    Objects                                                                               
    At "LOOP AT itab", one of the additions "INTO", "ASSIGNING", or "TRANSPORTING NO                                                   
    FIELDS" is required. in the OO context.                                                                               
    (The message can be hidden with "#EC *)                                                                               
    Though i put the  "#EC after above variable still i can see it in the SLIN overview.
    Pls help me to hide these Obsolete statements.
    Thanks and Regards
    Srikanth.P

    Lest you find yourself labelled as "out of date" or "obsolete", perhaps you could spend a little time to bring your coding practices up to the state of the product.  A LOT of things used in ABAP within my 12 years are now obsolete.  For instance, the "Official ABAP Programming Guidelines" by SAP Press, written by Drs. Thummel and Keller, describes FORM....ENDFORM and REFRESH as obsolete.
    In current versions, we loop at ...assgining <Field-symbol> or into structure.... 
    We do read table into structure or assigning <field-symbol> or (where possible) transporting no fields.
    We don't have tables with header rows, since those can't be used in OO.
    We don't use REFRESH, we use CLEAR tabname[].
    In OO, we use the SoC, software layering concepts, with GUI, Application and Persistence level Class definitions and implementations.
    We used class-based exception handling where possible to avoid abends which are, of course, detrimental to our users' experiences.
    etc.

  • Working of SLIN in abap

    Hi,
    Can anyone please tell me how does the SLIN work in ABAP.
    I am using a code which involves the use of SLIN in ecc 6.0 system. When I use the same code in 4.7 system, it is giving errors.
    Can I copy-paste the code of the SLIN Type Pool from 6.0 system to 4.7 system ? What will be the effects of it ?

    Hi Nikhil,
          SLIN is nothing but the extended program check. This not only involves the SLIN type pool but there are many classes and objects involved in checking the programs. If you have written a program in ECC 6.0 nod and if you are just trying to copy paste the code in ECC4.7 there will be few errors. This cannot be avoided unless you change the code. Copying SLIN type pool is not a solution for this.
    Please let me know for more details.
    Regards,
    Praveenkumar T.

  • Regarding syntax errors

    Hi guys,
    Above 46C system, Can we use SLIN or FM 'Extended program check' instead of SCI.
    Both outputs are same with respect listing Syntax errors/Warnings/Messages? please confirm.
    Regards
    Ambichan

    Both the Outputs are not same.
    SLIN is an extended syntax check.
    SCI is Code inspector,  a tool for checking Repository objects regarding performance, security, syntax, and adherence to name conventions and other formats that you set in.You can also determine statistical information or search for certain ABAP words (tokens). In the Code Inspector, you can define inspections that, with the help of check variants, examine certain sets of objects. As the result of an inspection, you receive information messages, warning messages, or error messages on different properties of the examined objects.
    SLIN
    Many checks are excluded from the standard syntax check for performance reasons. The extended program check performs a complete check that includes the interfaces of external procedures called from your program.
    Errors in the extended program check cause exceptions, which in turn cause runtime errors when you run the program. You must correct them. The exception to this is coding that cannot be reached. However, you should delete this to minimize the size of your program and make the source code easier to understand.
    Warnings in the extended program check should also be corrected. If your program contains statements that are definitely correct but still produce warnings in the extended program check, you can exclude them from the check using pseudocomments ( "#EC… ).
    You should always run the extended program check on a new program. You have not finished developing a new program until you can run the extended program check on it without any errors or warnings. Messages are permissible, since they are generally not critical.
    The extended program check is also only a static check. It cannot eliminate all of the circumstances that could lead to exception situations or runtime errors. For example, any statements in which you specify arguments dynamically as the contents of fields, or in which you call procedures dynamically, cannot be checked statically.
    SCI
    It helps developers to adhere to programming standards and guidelines by creating messages on less-than-optimal coding. The Code Inspector offers various possibilities to define object sets and to combine multiple single checks in so-called "check variants". These functions, and the tool's parallel processing framework, make the Code Inspector a flexible and effective development assistant.
    The Code Inspector can be used in various scenarios with different types of checks, thus providing insights into the code quality from various angles.
    Usage scenarios
    1. Single object checks from the Development Workbench
    You can check a single object with the Code Inspector from the ABAP Editor (transaction SE38), the Function Builder (transaction SE37), the Class Builder (transaction SE24), or the ABAP Data Dictionary (transaction SE16). To do this, choose object Check Code Inspector from the menu, where object can be a program, function module, class, or table. The respective single objects are then checked with a default check variant.
    2. Checks on transport objects from the Transport Organizer
    You can invoke the Code Inspector from within the Transport Organizer (transaction SE09) to check objects in a transport request. To do this, choose Request/Task > Complete Check > Objects (Syntax Check).
    3. Checks on sets of objects from transaction SCI
    The Code Inspector (transaction SCI) itself enables you to create a wide range of object sets using standard selections via package, software and application component, source system, transport layer, responsible, object type, object name and so on.
    In addition, special object collectors are available that allow you to read objects from a file, for example.
    An object set can be combined with a check variant to a so-called "inspection" that can be executed in a single process or in parallel.
    Types of checks and check variants
    Below is a short extract of the types of checks and functions that are offered by Code Inspector. New checks can be implemented if required, see for example Code Inspector - How to create a new check .
    • Syntax
    Syntax check; extended program check
    • Performance
    Analysis of WHERE clauses for SELECT, UPDATE and DELETE ; SELECT statements that bypass the table buffer , low-performance operations on internal tables; table attributes check
    • Security
    Usage of critical statements; dynamic and cross-client database accesses; use of ADBC-interface
    • Robustness
    Check of SY-SUBRC handling; suspect conversions; activation check for DDIC objects
    • Programming Conventions
    Naming conventions
    • Search Functions
    Search of ABAP tokens; search ABAP statement patterns; search for ABAP statements with regular expressions
    • Metrics and Statistics
    Program complexity test; statement statistics
    You can combine any of these single checks into so-called "check variants", for example to check for the adherence to given programming guidelines.
    Best Practices
    Developers can use the Code Inspector to support their everyday work. For example, the search functions or metric checks of the tool can be a great help when restructuring the code.
    The Code Inspector allows developers to define which objects are to be checked and which quality aspect of the code is to be inspected (e.g. performance, security).
    It is also possible to define global check variants as general programming guidelines, to ensure standardized programming within a development community.
    Check variants can prescribe for example naming conventions or other rules. The global check variants 'DEFAULT' and 'TRANSPORT' inspect objects in the development workbench and in transport requests, respectively. These check variants contain SAP-defined settings, but can be modified as needed.
    Another global check variant delivered with every SAP system is 'PERFORMANCE_CHECKLIST' which helps to detect less-than-optimal coding with regard to application performance.
    Hope this Helps.
    Vinodh Balakrishnan

Maybe you are looking for

  • Calling an abap proxy on PI itself

    We have a situation where we maintain tables in PI for logging etc... and we want to be able to update these from an inbound message. My plan was to create a proxy on PI itself map to it and call it via the XI adapter, but I get Loop in message flow

  • Structure of the queue MCEX11

    Hello Experts, May I know the structure of the queue MCEX11? The reason behind this question is..MCEX11 supplies data to all '11' related extractors, for ex: 2LIS_11_VAHDR and 2LIS_11_VAITM. Each of these extractors have their own structures (MC11VA0

  • ICH8-M AHCI Macbook Pro 4,1 : Firmware Update ????

    Why Apple has not updated the firmware of the chipset ICH8-M (Macbook Pro 2008 Penryn). What interest to buy an SSD, if only to be reining in advance with the SATA 1.5Gbps so it can support the SATA 3Gbps without problem! We hope that Apple does not

  • Macbook freezes upon wakeup after extended sleep

    I have been having an issue with my Macbook that just started occurring within the last month or so. I am unable to relate it to any specific software update that I might have done, but in my trouble-shooting I have a strong hunch that it is a prefer

  • Peri6 Conversion routine error

    Hi All, I am tring to load data from application server which is in the ASCII format. For the field 0CALMONTH I am getting the error: CONVERSION_EXIT_PERI6_INPUT. The input format for this field was mm.yyyy. I tried to change the input format to yyyy