Skip to Content
author's profile photo Former Member
Former Member

difference between types and like

hi gurus,

i'm not getting a clear idea of difference between these statements.please help me out..

data : begin of itab,

field1,

field2,

end of itab.

types : begin of itab,

field1,

field2,

end of itab.

data : wa like mara.

data : t_ekbe TYPE TABLE OF ty_ekbe.

Add a comment
10|10000 characters needed characters exceeded

Related questions

3 Answers

  • Best Answer
    author's profile photo Former Member
    Former Member
    Posted on Dec 05, 2007 at 10:20 AM

    <b>The main difference between TYPE and LIKE parameter when defining or declaring the object is that TYPE is used to refer existing DATA TYPE (elementary or structured or user defined) while LIKE is used to declare data objects with reference to existing DATA OBJECTS.</b>

    For all practical purposes there are the same. The only additional advantage with types is that you can define your own types(including complex ones) in the data dictionary and reuse them accross various programs.

    But within a program if two variables are defined one using LIKE and another using TYPE, both referring to the same field, then there is no difference.

    If I include a type pool within a program, then I can define my variables only using TYPE to refer to any type defined in that pool. I cannot use LIKE in this scenario. Also, if I want to use native types like C, N, etc, I cannot use LIKE there either. I can use LIKE ABC only if ABC is in the database or if ABC is defined previously in the same program.

    I can use TYPE ABC, if ABC is defined in database as a TYPE and included in the program with the statement TYPE-POOLS. I can use it, if it is the native types. I can use it, if it is already defined in the dictionary as a structure/table or structure/table field, or even if it is defined as a data element or a domain. So I can declare a variable V_BUKRS TYPE BUKRS, but I cannot define a variable V_BUKRS LIKE BUKRS.

    But if I intend to use V_BUKRS to store company code, I will prefer to declare it as V_BUKRS LIKE T001-BUKRS, only because if tomorrow for some reason, the definition of T001-BUKRS changes to a data element for example, BUKRS_N(say DEC 4) instead of the data element BUKRS(CHAR 4) that it refers to now, I don't have to change my programs because I am referring to the table field and inhereting its properties. Whereas, had I declared my V_BUKRS TYPE BUKRS and the table now changed to BUKRS_N, I will be forced to change my program as there will be a type incompatability.

    Refer the links -

    difference-between-type-and-like-statements

    what-is-the-difference-between-type-and-like

    what-is-the-difference-between-type-and-like

    http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb2ff3358411d1829f0000e829fbfe/content.htm

    http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb2ff3358411d1829f0000e829fbfe/content.htm

    LIKE is used inorder to refer to a present object and to have the semantic definition of that object that is being refered to.

    TYPE is used in declaring the object using an elementary data type or a data element which has the same semantic definition that is required.

    It is good practice to use TYPE as much as possible when there is a possibility to avoid LIKE.

    <b>TYPE

    You use the TYPE addition in various ABAP statements for defining data types and specifying the types of interface parameters or field symbols. The TYPE addition can have various meanings depending on the syntax and context</b>.

    <b>LIKE

    You use the LIKE addition, similarly to the TYPE addition , in various ABAP statements for defining data types and specifying the types of interface parameters or field symbols.

    it can be used in the same ABAP statements as the TYPE addition to refer to any data object <obj> that is already visible at that point in the program. The expression <obj> is either the name of the data object or the expression.</b>You use LIKE to make the new object or type inherit the technical attributes of an existing data object.

    The LIKE Addition:

    You use the LIKE addition, similarly to the TYPE addition, in various ABAP statements for defining data types and specifying the types of interface parameters or field symbols. The addition

    LIKE <obj>

    can be used in the same ABAP statements as the TYPE addition to refer to any data object <obj> that is already visible at that point in the program. The expression <obj> is either the name of the data object or the expression

    LINE OF <table-object>

    In this case, the LIKE addition describes the line type of a table object that is visible at that point in the program.

    You use LIKE to make the new object or type inherit the technical attributes of an existing data object.

    The TYPE Addition:

    You use the TYPE addition in various ABAP statements for defining data types and specifying the types of interface parameters or field symbols. The TYPE addition can have various meanings depending on the syntax and context.

    Referring to Known Data Types You can use the addition

    TYPE <type> to refer to any data type <type> that is already known at this point in the program. It can be used in any of the statements listed below. The expression <obj> is either the name of the data object or the expression

    LINE OF <table-type> In this case, the TYPE addition describes the line type of a table type <table-type> that is visible at that point in the program.

    difference

    use this links...

    http://help.sap.com/saphelp_nw2004s/helpdata/en/fc/eb2ff3358411d1829f0000e829fbfe/content.htm

    for like....

    http://help.sap.com/saphelp_nw04/helpdata/en/9b/239fa610de11d295390000e8353423/content.htm

    Add a comment
    10|10000 characters needed characters exceeded

  • Posted on Dec 05, 2007 at 09:07 AM

    Hi Gourav,

    When you are declaraing a varibale with DATA Memory will allocate for this,but when you are using TYPE statement only one type will create memory will not allocate for the type.

    Hop dis is clear

    Message Edited

    shibu

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Dec 05, 2007 at 10:17 AM

    If you define with TYPE it wonÂ’t have memory allocated. But define with data it will occupy some memory.

    Type is just like structure

    Data is just like table

    Thanks

    Siva Kumar

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.