Why Obsolete Statements

Hi,
        What are the problems we need to face while using obsolete statements in a program.
Is there any other options insted of Import and export of memory ids comes under the obsolute statements?
  DATA:lv_run_id TYPE XXXX_run_id,
       lv_memrunid TYPE c LENGTH 11 VALUE 'XXXX_RUNID'.
  GET PARAMETER ID 'ACC_SYSTEM' FIELD lv_accsys.
*--- For RunId we use a memory ID
  IMPORT lv_run_id FROM MEMORY ID lv_memrunid.
  Last statement is an obsolete statement . is there any  other way ? for getting the parameter id.
                                 .........Gopeekrishnan

Hi,
  Your last statement is obsolete.
IMPORT lv_run_id FROM MEMORY ID lv_memrunid.
correct is:
IMPORT lv_run_id = lv_run_id FROM MEMORY ID lv_memrunid.
implicit field names are no more allowed.
From F1 help:
Reason:
The use of implicit names may lead to errors. The specified names are to be understood as field identifications in the cluster. With the implicit method, the specified identifications are used literally when data clusters are exported, i.e., including offset/length specifications or preceding selectors. When clusters are imported in a different context, these identifications must be known and must be specified identically. Because of the similarity to method and function module calls, the use of the equals sign (=) emphasizes that formal parameters appear on the left and actual parameters on the right. The expressions FROM and TO are also additionally used to specify where data is stored.
Regards, Manuel

Similar Messages

  • ABAP Objects - Obsolete Statements

    How to get the list of obsolete statements in ABAP Objects?
    Moderator message: please search for available information/documentation before asking.
    locked by: Thomas Zloch on Oct 6, 2010 1:08 PM

    hi
    Check table RODIR
    and pass field name obselete ='X' and check data in table
    it wil give all details..
    it will help you out.
    ankit
    Moderator message: do not copy other peoples replies, whether in the same thread or not!
    Edited by: Thomas Zloch on Oct 6, 2010 1:09 PM

  • Better replacement for Obsolete statement

    Hi ,
    During upgradation to ECC 6.0 , at many places in order to correct the Unicode error we need to use the Move statement. Since the Move-Corresponding is an obsolete statement now , so we can't use it any more. It is  very difficult and highly time consuming to move huge structures and internal tables field by field . Is there any alternative to this ?

    Move-Corresponding is an obsolete statement now
    Who said ????
    at many places in order to correct the Unicode error we need to use the Move statement
    What type of error ?

  • PNPCE - Obsolete Statements

    Hi,
    I am using PNPCE logical data base in my prog.
    For this I defined the following.
    Nodes: Peras.
    Tables: Pernr.
    Infotypes: 0002.
    Is it mandatory to use Tables: Pernr. (Without this selection-screen is not coming)?
    Also the statement Infotypes is Obsolete. Any alternate for this?
    This statement creates infotype internal tables with header line which is not supported in OO context.
    So what is the alternate for this?
    Still lot of obsolete statements are shown in extended check even if I use PNPCE.
    How to replace them?

    hi read this ..will use ful for you.......
    Purpose
    The PNPCE logical database supports the evaluation of HR master data. It includes the functions of the PNP logical database and offers additional evaluation options. Therefore, you should use the PNPCE logical database instead of the PNP logical database for all new developments.
    The enhanced functionality of PNPCE in comparison to PNP essentially concerns the evaluation of Concurrent Employment, that is the possibility to group evaluate several assignments/personnel numbers of a person. The new events 'GET PERSON' and 'GET GROUP' as well as an enhanced syntax for the INFOTYPES statement (addition AS PERSON TABLE) for the procurement of infotype data enable you to use the new functionality. The use of these new functions is optional. You can run a PNPCE report that does not use the new events and the addition for the INFOTYPES statement in a PNP-compatible session. Since the PNPCE also has an improved selection screen, each report benefits from this even if the report does not use the functions for evaluating Concurrent Employment.
    Prerequisites
    A report that wants to use the PNPCE must enter this in its report attributes under Logical database.
    In addition, the PERNR structure must be declared in the report using the 'TABLES PERNR' statement. You can only use the PERNR structure again in certain circumstances. The use of the 'GET PERNR' event is therefore forbidden. Instead, use the 'GET PERAS' event. Except for the PERNR-PERNR component, all other components of the PERNR structure are no longer filled and have initial values. This kind of programming (with the exception of PERNR-PERNR) therefore not permitted.
    In addition to the 'GET PERAS' event, you can also use the GET PERSON' and 'GET GROUP' events. To be able to use these events, you must declare them using the NODES statement (NODES PERSON', 'NODES GROUP', or. NODES PERAS').
    Explanation of Terms
    If the 'GET PERSON' and 'GET GROUP events and the 'AS PERSON TABLE' addition for the INFOTYPES statement are not used, the report indicates that it does not require the functionality for evaluating Concurrent Employment. In this case, the report runs in a PNP-compatible session. This is referred to as PNP mode in the following documentation. On the other hand, if the report uses the functionality for evaluating Concurrent Employment we refer to CE mode.
    Features
    Process of an Evaluation
    The PNPCE selection screen offers you as standard a range of functions that you can use to restrict the personnel number and person selection. These are discussed in more detail in the following sections. The process is initially as follows regardless of whether the report runs in CE or PNP mode. All available functions and selection conditions leads to the selection of personnel numbers. If you use the sorting function, this set of personnel numbers is then sorted according to the sort criteria you selected. In PNP mode, the GET PERAS event is triggered as a result for each personnel number.
    In CE mode, the persons belonging to the personnel numbers are determined first for all personnel numbers selected. The GET PERSON event is then triggered for each person. The person ID is specified in the OBJID component of the PERSON structure. PERNR_NUM contains the total number of personnel assignments (= personnel numbers) that this person has and the ALL_PERNRS table, which contains a list of these personnel numbers regardless of whether they were actually selected or not. The SELECTED flag is set to X for the personnel numbers selected. The flag is initial for all personnel numbers that are not selected. The PROCESS flag specifies whether the personnel number should be processed in the rest of the process. This flag is set to X by default for the personnel numbers selected. However, the report can set or delete this flag at the GET PERSON event for all personnel numbers. In this way, report and logical database communicate with each other which enables the report to control the rest of the process.
    In the next step, the logical database groups all personnel numbers of a person that are to be processed (that is, all personnel numbers that have the PROCESS flag set). The report can control the type of grouping using the PNPCE_GROUPING_FROM_PAYROLL flag (normal or payroll grouping) and using the PNPGPRSN (grouping reason) and PNPGPVAL (grouping value) parameters of the selection screen. The GET GROUP event is triggered for each group of personnel numbers determined. The GROUPING_REASON and GROUPING_VALUE components contain the grouping reason and grouping value of this group. The number of personnel numbers that belong to this group and that are processed subsequently is in PERNR_NUM. The included ALL_PERNR table contains a list of these personnel numbers with additional information. The SELECTED flag specifies whether the current personnel number was originally selected (flag is set) or was marked by the report as to be processed. GROUPING_BEGDA and GROUPING_ENDDA contain the validity period that the personnel number has for this grouping. The NO_AUTHORITY flag is set if there is insufficient authorization for a personnel number. This personnel number is not processed further. The SORT component defines a standard sort order for the personnel numbers of a group. The report can change this by overwriting the values. In this way, report and logical database communicate with each other, which controls the further processing sequence of the personnel numbers.
    The GET PERAS event is then triggered for all personnel numbers of the group (with the exception of the personnel numbers for which no authorization exists) in the sequence defined by the SORT component (see above). The SELECTED, GROUPING_BEGDA, and GROUPING_ENDDA components have the same meaning here as with the GET GROUP event. The PROCESSED_BEFORE flag specifies whether the personnel number has already been processed once before (it is possible that the personnel number belongs to several groupings and has been therefore been processed several times).

  • Obsolete statement

    Hi friends,
    I have used the statement:
    "ON CHANGE OF........ENDON." in my program.
    during extended check in program.... this satement is showing as obsolete statement error.
    The error is as follows:
    " The current ABAP command is obsolete and problematic, especially so in ABAP
    Objects
    "ON CHANGE OF ... ENDON" is not supported in the OO context."
    Can you give any way to get rid of this? What can i use instead of this statement?
    As this is very necessary in my program. I am not finding any solution.
    Please help me out....
    Thanks,
    Chinmay

    on change of is obsolete statement so u r getting this message,
    use at new to get rid of this.
    or else if at new doesnot solve ur problem,
    see the following
    The pseudo control structure ON CHANGE OF - ENDON is not allowed in ABAP Objects.
    Error message in ABAP Objects if the following syntax is used:
    ON CHANGE OF f.
    ENDON.
    Correct syntax:
    DATA g LIKE f.
    IF f <> g.
      g = f.
    ENDIF.
    Reason:
    A global invisible work field over which the program has no control is created internally. A separate work field should be declared and processed using the IF control structure.

  • Obsolete statements

    Hi,
    I am the beginner of ABAP Programming.I want to know the detail description of the Obsolete statements(Like 46c to ECC6.0) with examples.
    (For Example:In 46c Ranges but Ecc6.0 Type/Like range of ).
    Thanks
    Chandramohan.

    - Look at sap documentation, in [ABAP Statements - Overview |http://help.sap.com/abapdocu_70/en/ABENABAP_STATEMENTS_OVERVIEW.htm] look for [Obsolete Statements |http://help.sap.com/abapdocu_70/en/ABENABAP_OBSOLETE.htm]
    - Search at sdn, there are many threads and some wikis like [Obsolete FM and Statement replacements|http://wiki.sdn.sap.com/wiki/display/ABAP/ObsoleteFMandStatementreplacements]
    Regards,
    Raymond

  • 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.

  • Hi removing the obsolete statements.....

    Hi all
    when i am running the EPC i am gettting obsolete statements for these statements
    here is the code where it was showing the obsolete status
    can any body help me in correcting this:
    FORM alv_init_report_events TABLES ot_events TYPE slis_t_event.
      CLEAR   ot_events.
      REFRESH ot_events.
      ot_events-name = slis_ev_user_command.
      ot_events-form = 'USER_COMMAND'.
      APPEND ot_events.
      ot_events-name = slis_ev_pf_status_set.
      ot_events-form = ''.                 "'PF_STATUS_SET'.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_list.
      ot_events-form = 'TOP_OF_LIST'.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_list.
      ot_events-form = 'END_OF_LIST'.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_page.
      ot_events-form = 'TOP_OF_PAGE'.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_page.
      ot_events-form = 'END_OF_PAGE'.
      APPEND ot_events.
      ot_events-name = slis_ev_foreign_top_of_page.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_foreign_end_of_page.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_top_of_coverpage.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_end_of_coverpage.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_before_line_output.
      ot_events-form = 'BEFORE_LINE_OUTPUT'.
      APPEND ot_events.
      ot_events-name = slis_ev_after_line_output.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_caller_exit_at_start.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_list_modify.
      ot_events-form = ''.
      APPEND ot_events.
      ot_events-name = slis_ev_subtotal_text.
      ot_events-form = ''.
      APPEND ot_events.
    ENDFORM.                    "ALV_INIT_REPORT_EVENTS
    i am getting this error
    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 OT_EVENTS
    [SORTED BY]".
    (The message can be hidden with "#EC *)
          Program:  ZF_NOTA_FISCAL_REPORT_BRZL  Row:   1242
    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 OT_EVENTS
    [SORTED BY]".
    (The message can be hidden with "#EC *)

    Hi,
    declare ot_events as below
    Data: ot_event type table of slis_alv_event,
             wa_event type slis_alv_event.
    CLEAR wa_events.
    REFRESH wa_events.
    wa_events-name = slis_ev_user_command.
    wa_events-form = 'USER_COMMAND'.
    APPEND wa_events to ot_events.
    <b>Reward Points if this helps,</b>
    Satish

  • Obsolete statements in ecc and higher

    can anybody tell me about the obsolete statements that are caught by transaction code uccheck<i><b>(such as open data set,concordinate,translate)function modules ws_upload ws_download</b></i>)

    Hi,
    Check these links,
    Hope this helps,
    http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb33cc358411d1829f0000e829fbfe/content.htm
    http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb3294358411d1829f0000e829fbfe/content.htm
    Regards,
    Pritha.
    Reward points if helpful.

  • Obsolete statements while using LDB PNP

    Hi,
    I am using LDB PNP, while extended program check it is showing  many obsolete statements like-
    tables : PERNR.
    infotypes
    RP_PROVIDE_FROM_LAST.
    What is the alternate to all these above statements.
    I searched the forum, but could not found anything. Please provide example.
    Thanks,

    That will bevary from system settings, In the standard reports, it will never give you the error/warning/informaton messages. But custom programs it will give as a absolete, But i can see many experts will use the these Macro's, We are doing world largest HR implemetation, Still we are using the same, Not a problem, you can avoid those messages.
    Only one way of avoiding is Using Provide statements.
    Regards,
    Mallikarjuna

  • Obsolete Statements / FMs in EhP5

    Hi Experts,
    Please let me know if any obsolete statemetns would be available in any enhancement packs, including EhP5.
    I would like to confirm apart from the functional enhancement any tecnical enhancements would be available in any of the enhancement packages provided by SAP.
    Thanks,
    Nanda

    no, obsolete statements remain the same

  • Obsolete statements in ECC with respect to 4.5b

    Hi Gurus,
    This is really very urgent.i need an information on Obsolete Statements in ECC 6.0 with respect to 4.5B R/3 Version.please help me..
    Full marks would be rewarded 100%
    regards
    Sahil

    Hi
    check the table PRGN_CORR2 which gives the list of transactions that were changed from different versions from 3.1G to 4.70 and also above versions
    Pls check this
    https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/5ac31178-0701-0010-469a-b4d7fa2721ca
    Reward if useful
    Regards
    Raghav T

  • Replace the obsolete statement STOP

    Hi expert ,
    I am working for a upgrade project fron 4.7 to ECC. We need to replace the obsolete statement STOP. Which is the best statement to replace STOP(RETURN or  EXIT)
    Thanks and Regards
    Joby Jacob

    HI STOP leaves the current event block and trigger END-OF-SELECTION.
    SAP recommend using EXIT only within loops (see EXIT - loops ). Instead, use RETURN to leave processing blocks.
    So RETURN seems to be better option.
    Edited by: Anurag_n on Apr 14, 2010 8:31 AM

  • Why Oracle9i statement can not add " ; " in java  ?

    Hi,
    I have a following java programme:
    import java.sql.*;
    public class Result1 {
    public static void main(String args[]) {
    Connection con = null;
    try {
         Class.forName("oracle.jdbc.driver.OracleDriver").newInstance();
    System.out.println("JDBC driver loaded");
    con = DriverManager.getConnection
    ("jdbc:oracle:oci:@xxxxxx","xxx","xxx");
    System.out.println("Database connection established");
    ResultSet rs=null;
    String user_id1="user101";
    String queryString = ("SELECT * FROM fixed_asset;");
    PreparedStatement stmt = con.prepareStatement(queryString);
    rs = stmt.executeQuery();
    while (rs.next()) {
    String s2 = rs.getString("db_id");
    System.out.println(s2);
    catch (ClassNotFoundException cnfe) {
    System.out.println("ClassNotFoundException: Could not locate driver");
    } catch (SQLException cnfe) {
    System.out.println("SQLException: Could not connect to database");
    } catch (Exception e) {
    System.out.println
    ("An unknown error occurred while connecting to database");
    } finally {
    try {
    if (con != null) {
    con.close();
    } catch(SQLException sqle) {
    System.out.println("Unable to close database connection.");
    This prog can be compiled, but when it run it show can't not connect to database.
    But when i remove the ; in the queryString such that
    String queryString = ("SELECT * FROM fixed_asset");
    It can complete show the result i want .
    Why it can not support ";" and how can i add two execute statements at the same time?
    Thx ,
    Ricky

    When you include the semicolon, the error is generated when you execute the statement and probably indicates an invalid character error. Your error handler is assuming that any SQLException indicates that the program was unable to connect to the database, which is an incorrect assumption. Including a semicolon in a standalone SQL statement is invalid syntax.
    In Oracle, you cannot pass a semicolon separated list of SQL statements to the database to be processed. If the statements are related, however, you can use an anonymous PL/SQL block to achieve the same result, i.e.
    BEGIN
      <<statement 1>>;
      <<statement 2>>;
      <<statement 3>>;
    END;Justin
    Distributed Database Consulting, Inc.
    http://www.ddbcinc.com/askDDBC

  • Why the statement: "IF SFSY-PAGE EQ SFSY-FORMPAGES" do not work?

    Hi gurus,
    I want to check if the current page is the last page and use this statement in Code Node:
    IF SFSY-PAGE EQ SFSY-FORMPAGES.
        V_G_SHOW = 'X'.
    ELSE.
    But when I try to debug this part of code, I find   SFSY-PAGE  and SFSY-FORMPAGES always have same value.
    Why?
    thanks

    Smartforms evaluate &SFSY-FORMPAGES& during the execution of the form.
    If you want to know the final number of pages, you have to execute the Windows at the end of the form. Look at OSS [Note 588352 - '*' when you output the total number of pages |https://service.sap.com/sap/support/notes/588352] so the window will be "late" executed and the data of &SFSY-FORMPAGES& and &SFSY-PAGE& may be different. (the note relates to "final" window)
    Regards

Maybe you are looking for

  • ABAP Proxy Generation on Interfaces with GDTs

    Hi all, I created an aggregated data type with references to data types listed under the SAP GLOBAL SWCV within the namespace for the GDTs. When I now try to generate an ABAP proxy in my backend system, I always get an error that these types cannot b

  • Printing odd lines in bold!? - HPM1522

    Hi all, Im having a problem printing hires PDF files of a document on a HPM1522. My file uses Arial narrow (we've also tried verdana) which are standard Mac/PC fonts and yet everytime we print it off we get this happening throughout the document....

  • Scrolling of screen using proximity sensor

    Does anyone know how I can switch off the function that allows me to scroll and select using a finger placed close (but not touching) the screen?<br>Thanks

  • Is there a manual for the latest pages version?

    I can only find manuals for the older version.  /A

  • How do I stop MacMail defaulting to Yahoo in OS Mavericks?

    I can no longer access BT mail accounts through MacMail on a Macbook with OS 10.9.4, Mavericks. Until now BT mail was linked to Yahoo, and when this MacMail was first set up our mail accounts (2 POP accounts) obviously went through Yahoo. This link h