VarArg parameters and its outcome

Hi,
just to be sure about continuity. At the moment, if you have a method like
void myMethod(Object ... objects);The following calls will result in the respective objects value:
myMethod()results to
objects == Object[]{}and
myMethod(null)results to
objects == nullWill this be the result in future releases, too? I could not find a definition of assignments to objects in the Language Specification for this issue either.
Thanks
Stefan

I believe you are looking for:
http://java.sun.com/docs/books/jls/third_edition/html/expressions.html#45449
If you notice, calling
myMethod(null);gives you a warning as it is ambiguous as to the meaning of null, i.e. are you saying use a null array or an array of length 1 with a null entry at 0.
The observed behavior preserves backwards compatability, but introduces the annoying edge case where if you want to pass a single null, you must do:
myMethod(new Object[] {null});

Similar Messages

  • How to find custom parameters and its values?

    Hi,
    Please let me know how to find the list of custom parameters with its possible values and its use in programs?
    Thanks.

    There is no validation for the values that can be input so you can put anything in the value field. For example, try "BUK" and
    then a value for a company code you know does not exist.
    When you run a transaction with that it will default that value.

  • Using SET GET parameters in ITS

    Hi All,
    Is it possible to use set get parameters in ITS. We want to set some parameters in a BADI and read the value in ITS Template .
    Or is there any other method to do this?
    Thanks,
    Anubhav

    Sure. In your abap program use the following code
    *  ITS macros
    INCLUDE avwrtcxm.
    GET PARAMETER ID 'YOUR_PARAMETER' FIELD SAVE_PARAMETER.
    field-set u2018~YOUR_PARAMETERu2019 1 SAVE_PARAMETER.
    field-transport.
    in the template you can now use ~YOUR_PARAMETER.
    regards,
    Klaus
    Edited by: Klaus Layer on Feb 3, 2009 5:05 PM

  • Having issues viewing interactive parameters and group tree in Visual Studio 2013 design view.

    Hey Guys,
    I'm a web developer (front end and back end, kind of a one man army sort of deal) and my current employer wishes to use crystal reports to display the results of the online survey apps/tools I have been working on for the last few months. However, I have been having trouble getting the reports to render in browser, and a lot of the ui components of the browser based report viewer (the interactive parameters and group tree) will not render properly in the design view of visual studio (ive attached a screen cap of what I'm talking about) or in the browser itself.
    I am new to crystal reports and its community and if I am leaving out any critical details or have posted in the incorrect section please inform me and I will make changes as necessary.
    Additional info:
    Visual studio version: 2013 professional (trial)
    Plugin version (exe file name): CRforVS_13_0_9.exe (I also installed the 64 bit run-time from this)
    Server and OS versions: IIS 7.5 on Microsoft Windows Server 2008 R2
    Any help you guys could provide would be greatly appreciated.
    Cheers,
    -Mike

    Hi Mike
    First thing you want to do is uninstall CRVS SP 9 and install CRVS SP 10. SP 10 is the first SP to support VS 2013.
    Once that is done, let us know if that helped any.
    - Ludek
    Senior Support Engineer AGS Product Support, Global Support Center Canada
    Follow us on Twitter

  • Hiding a table column and its contents yet reading the values

    Hi all,
    hope someone can help as i urgently need a solution for this although its probably more of a javascript and html forms question than a JSP - but i couldnt find a good javascript forum - if any one has come across a good JS and HTML - i would appreciate if you would let me have a url for it - in the meantime as i need this urgentely and most JS sites that i have visted and posted on seem to be useless, i havent got a reply back yet , and since i've always found java sun forum good and helpful thought would post it here - hope no one minds it too much . Thanks in advance for any help with resolving my urgent problem.
    overview of question:
    I need to, using an onclick() event read the contents of the 4th cell in the clicked row and set the value of a hidden element � (not sure what element to use here attribute tag? Or some other - but basically, this needs to also be hidden, as I�m going to use this as one of the parameters to send through as part of the form - )
    explanation of question
    So when I do :-
    <td><netui:label value="{container.item.TELECARERID}"/></td> And using javascript :-
    row.cells[4].innerText;I can read the value and print it to screen as :-
    alert('row.cells[4].innerText)) = ' + row.cells[4].innerText);although at this stage I�m not sure how to now set this value to an element in the form so that I can include this value as part of the submit action of the form.
    However when I do the following, which is closer to what I�m trying to achieve (ie hide the 4th column of the table and its values � but when I just hide the value as in:-
    <td><netui:hidden dataInput="{container.item.TELECARERID}" dataSource="" /></td> I can�t use the above (row.cells[4].innerText;), javascript syntax to get to the value although the value is still in the viewsource of the html page.
    How can I hide this forth column of the table yet get the values of the 4th column and also set it to some element of the form so that it can be submitted with the date range as part of a criteria to search against by the backend server.
    the full code (well... relevant parts)
    Here is all the code:
    <table id="table1" class="tablebody" border="1">
            <tbody>
             <tr>
               <th><rpb:columnHeader field="FIRSTNAME"><i18n:getMessage messageName="first_name"/></rpb:columnHeader></th>
               <th><rpb:columnHeader field="LASTNAME"><i18n:getMessage messageName="last_name"/></rpb:columnHeader></th>
              <th><rpb:columnHeader field="LOGONNAME"><i18n:getMessage messageName="logon_name"/></rpb:columnHeader></th>
              <th><rpb:columnHeader field="TEAM"><i18n:getMessage messageName="team"/></rpb:columnHeader></th>
               <th><rpb:columnHeader field="TELECARERID"><i18n:getMessage messageName="telecarer_id"/></rpb:columnHeader></th>
            </tr>
           </netui-data:repeaterHeader>
           <netui-data:repeaterItem>
            <tr bgcolor="#FFFFFF" onMouseOver="this.bgColor='gold';" onMouseOut="this.bgColor='#FFFFFF';" onclick="selectTeleCarer(this)">
            <td><netui:label  value="{container.item.FIRSTNAME}"/></td>
              <td><netui:label value="{container.item.LASTNAME}"/></td>
             <td><netui:label  value="{container.item.LOGONNAME}"/></td>
           <td><netui:label  value="{container.item.TEAM}"/></td> 
            <td><netui:label value="{container.item.TELECARERID}"/></td>
           </tr>
          </tbody>///////and then I�m trying to using the below sepertaely printed javascript set it to the below hidden attribute so that it can be submitted as part of the form
    <netui:hidden tagId="teleCarerId" dataSource="{actionForm.teleCarerId}" dataInput=""/>
                                 <div>
                             <i18n:getMessage messageName="created_between"/>
                                <netui:textBox tagId="data" dataSource="{actionForm.fromDate}"/>
                                <button id="trigger" onclick="jscalendar/calendar.js">...</button>
                               <i18n:getMessage messageName="and"/>
                                <netui:textBox tagId="data1" dataSource="{actionForm.toDate}"/>
                                <button id="trigger2" onclick="jscalendar/calendar.js">...</button>
                            </div>
                    <br />
                    <netui:button value="Submit" type="submit"/>
                </netui:form>/// the java script is :-
    function selectTeleCarer(row)
        if ( row.style ) {
    row.style.backgroundColor = ('gold' == row.style.backgroundColor)?
    'white' : 'gold';
    //document.form.teleCarerId.value = row.cells[4].innerText;
    alert('row.cells[4].innerText)) = ' + row.cells[4].innerText);
    }

    thanks for the reply,
    but i cant use just html like <input type hidden > as i'm using the struts like framework with the netui tags in weblogic where i need to link the tag value to the form bean to be passed to the server . thus i need to use the netui tag , which doesnt have a name but a tagId instead, so i'm using it like this :
    <netui:hidden tagId="teleCarerId" dataSource="{actionForm.teleCarerId}" dataInput=""/>and then in javascrpit doing:
    //document.form.teleCarerId.value = row.cells[4].innerText;but thats not my problem ()as it probably will work and its only an issue after i resolve the first part of my question:-
    which is how do i hide a cloumn in a table and its values so that when the user selects a row i can pass the hidden value of row as part of my form .
    as i mentioned before when i make the cloumn visible as in
      <th><rpb:columnHeader field="TELECARERID"><i18n:getMessage messageName="telecarer_id"/></rpb:columnHeader></th>and give it a visible value:
      <td><netui:label value="{container.item.TELECARERID}"/></td>
           </tr>i can pick up the value fine using the javascript syntax:
    row.cells[4].innerText;however when i hide only the value - which is only part of what i want to do as i want to also hide the column heading so that this part of the table isnt seen- as in:-
    <td><netui:hidden dataInput="{container.item.TELECARERID}" dataSource="" /></td>then i cant use
    row.cells[4].innerText;to pick up the value although it does hide the value and in viewsourec the value is there - is there some other syntax that i should be using here - and also how can i hide the cloumn heading so that the table looks asthtically good on the browser?
    ie. what should i change this line of code to?
      <th><rpb:columnHeader field="TELECARERID"><i18n:getMessage messageName="telecarer_id"/></rpb:columnHeader></th>thanks in advance for any help.

  • Partner Profile and its configuration.

    Hi all,
    I am creating an SD IDoc using EDI and send it between two servers.
    I need to know what is a partner profile and why should we create it.
    what are the steps to be followed in maintaining a partner profile and its configuration.
    Any pointers will be highly apppreciated.
    Thanks in advance,
    Regards,
    Jose
    Edited by: Jose Anthony Reddy on Dec 17, 2007 11:23 PM

    Hi Jose,
    Below is a material you can go through .
    Creating an Outbound Partner Profile
    Here you must enter the data manually. Alternatively, you can also transfer the default values from Customizing.
    If you are not yet on the change screen of your desired partner, choose SAP Menu ® Tools ® IDoc Interface/ALE ® Administration ® Runtime Settings ® Partner Agreement (WE20).
    1. Position the mouse on your partner in the required partner type node. Choose in the Outbound Parameter table.
    Key Fields
    2. You have already determined partner number and partner type in general partner processing. The partner function from the master data defines the addressee, that is, it is used for further classification purposes. If you have selected outbound processing under Message Control (MC), the function must be identical to the corresponding Message Control field. Otherwise, it is optional.
    Partner A (customer 1110) wants to order a material from partner B (vendor 1014). Partner B is of the partner type “LI” (vendor) and must choose the Message Control value “VD” (vendor) as the partner function because orders must always be processed using Message Control.
    3. Specify the business process with the “logical” message, within which the IDoc type is used. The logical message is described by three parameters: The message type is based on EDIFACT message types: For example, a purchase order is of type “ORDERS”. You can further divide the message type with the optional fields message code and message function.
    4. Configure the test indicator if you want to send the message as a test.
    Message, partner and test indicator are the seven key fields of the outbound partner profiles (the client comes in addition to these). Also see the graphic at the end of this section.
    Other Fields
    5. In the Outbound options tab page, you can determine whether IDocs are forwarded immediately to the receiving system. You should ensure that your entries are compatible with the Message Control priorities, if you have chosen outbound processing under Message Control. A list of recommended combinations is provided in the section Outbound Processing Under MC: Procedure.
    6. You have already defined the Recipient port in Port definition.
    7. If a port of type TRFC is used, the Queue Processing field is visible. You can use the indicator to specify whether IDocs are to be sent with qRFC. This sending technique is only possible for recipient SAP systems as of SAP Web AS 6.20.
    You should only set this flag if it is really necessary that the IDocs sent are received in the receiving system in the same sequence as they were sent by the sender system. Queuing can cause posting delays in the receiving system, because an IDoc in the queue cannot be posted. In this case, the following IDocs in the queue cannot be posted until the error is resolved.
    8. If you have set the Queue Processing indicator, the Rule Name field, which you must then also maintain, appears as well. The rule name defines the rules for queue names. You can specify these rules in the transaction qRFC IDoc Queue Name Rules (WE85).
    9. Specify the IDoc type as the Basic type with or without extension. If you want to use a view of your IDoc type (for example, to improve the performance), specify this here.
    The figure below shows the m-to-n relationship between logical messages (business meaning) and IDoc types (technical format). Message 1, for example, is always assigned to one IDoc type, while message 3 is assigned to two IDoc types. IDoc type 2, in turn, is also assigned to 2 logical messages.
    10. The segment release specifies the release from which the segment definitions (not the IDoc type definition) originates. We recommend that you leave this field blank so that the most recent segment definition is used.
    11. You can propose an EDI standard, version and EDI message type for the receiving system in the tab page EDI Standard. Most subsystems, however, should be able to determine these EDI settings themselves (from the logical message).
    12. You can define permitted agents for cases in which exceptions occur. This entry overrides the entry in the general partner profiles. Depending on the message, therefore, the exception can be handled by different agents of the same partner.
    13. You can specify whether syntax errors are to be ignored or are to lead to a processing error (Cancel Processing flag under syntax check in the tab page outbound options). For more information about exception handling and permitted agents, refer to the following section: Exception Handling
    14. If your hardware supports it, create partner and message specific telephony data for outbound IDocs. For more information, see General Partner Profile.
    Graphic: Outbound partner profile fields (general)
    Key fields are shown in gray. The values for partner, message and test indicator (and client) therefore provide a unique ID for the IDoc type in outbound processing.
    Regards,
    Praveen

  • Getting the UPDATEd value and its primary key

    I have two procedures, proc1 and proc2.
    In proc1 there is an update happening like
    CREATE OR REPLACE procedure proc1
    as
    TYPE NumList IS TABLE OF employees.employee_id%TYPE;
    enums NumList;
    TYPE NameList IS TABLE OF employees.last_name%TYPE;
    names NameList;
    BEGIN
    UPDATE emp set sal=900 WHERE department_id = 30
    RETURNING employee_id, last_name BULK COLLECT INTO enums, names;
    DBMS_OUTPUT.PUT_LINE('Updated ' || SQL%ROWCOUNT || ' rows:');
    FOR i IN enums.FIRST .. enums.LAST
    LOOP
    DBMS_OUTPUT.PUT_LINE('Employee #' || enums(i) || ': ' || names(i));
    END LOOP;
    END;
    /In proc2 which is getting executed just after proc2 i want to SELECT the sal column values and its primary keys(employee_id) which got updated in proc 1.
    How can i achieve this?

    add two out parameters from proc1 so that you can pass them into proc2 (obv. you'd need to add two in parameters to proc2 if they aren't there already)

  • Is there any function module to get vc characteristics and its value using material number?

    Hi Experts,
    I am using BAPI_CLASS_GET_CHARACTERISTICS, BAPI_OBJCL_GETCLASSES to get characteristics description and its values.
    Is there any other Function module to pull this values using material number?
    Thanks in Advance.
    Ramkumar

    Have you tried this BAPI_OBJCL_GETDETAIL
    Import parameters
    MATNR value in the OBJECTKEY
    MARA in OBJECTTABLE
    Class name in CLASSNUM
    '001' in CLASSTYPE
    You will get the Class Characteristics data into these tables:
    ALLOCVALUESNUM
    ALLOCVALUESCHAR
    Jogeswara Rao K

  • How to get selection screen elements and its table reference of a report ?

    halo experts
    How can I get selection screen elements and its table reference of a report ? . I tried rs_refresh_from_select_options. But I am unable to get the table and field it is referring to
    For eg if my selection screen 1000 is
    parameters: p_carrid type spfli-carrid,
    select-options :s-_connid type sflight-connid.
    is there any Fm or method which gives me what are the screen elements( p_carrid and s_connid ) and what table( splfi and sflight ) and field ( carrid and conid )it is referring to ?

    The following code is an example of how you might dynamically determine all your PARAMETERS and SELECT-OPTIONS variables at run time.  The PARAMETERS and SELECT-OPTIONS only point to a dictionary element--not a specific table.  Even though you may say "spfli-carrid" or "sflight-connid", the data type really references the dictionary type and not a specific table/structure.
    REPORT  ZTEST_PROG.
    TABLES sflight.
    DATA:
           screen_tab TYPE STANDARD TABLE OF screen,
           wa_screen TYPE screen,
           scrn_nm TYPE string,
           scrn_leftover TYPE string,
           l_type TYPE REF TO cl_abap_typedescr,
           typ_nm TYPE string,
           typ_pre TYPE string.
    FIELD-SYMBOLS <fs_data> TYPE ANY.
    PARAMETERS p_carrid TYPE spfli-carrid.
    SELECT-OPTIONS s_connid FOR sflight-connid.
    INITIALIZATION.
      LOOP AT SCREEN.
        IF screen-group3 = 'PAR'
          OR screen-group3 = 'LOW'.
            APPEND screen TO screen_tab.
        ENDIF.
      ENDLOOP.
    START-OF-SELECTION.
      LOOP AT screen_tab INTO wa_screen.
        ASSIGN (wa_screen-name) TO <fs_data>.
        l_type = cl_abap_typedescr=>describe_by_data( <fs_data> ).
        IF wa_screen-group3 = 'LOW'.
          SPLIT wa_screen-name AT '-' INTO scrn_nm scrn_leftover.
          TRANSLATE scrn_nm TO UPPER CASE.
        ELSE.
          scrn_nm = wa_screen-name.
        ENDIF.
        SPLIT l_type->absolute_name AT '=' INTO typ_pre typ_nm.
        WRITE:
                 / 'Screen Name:  ', scrn_nm,
                 / 'DDIC Type:    ', typ_nm.
      ENDLOOP.
    When you get into defining internal tables you can determine those at run time with cl_abap_structdescr.  The following is an example of how you might do that.  You can loop through the "components_table" and evaluate each field of the structure in this way.
    DATA: structure_reference TYPE REF TO cl_abap_structdescr,
          components_table TYPE abap_compdescr_tab,
          components_structure LIKE LINE OF components_table.
    structure_reference ?= cl_abap_structdescr=>describe_by_data( any_structure ).
    components_table = structure_reference->components.
    I don't know if this answers any of your questions but I hope that some of it is useful.

  • Unable to select the SSRS report parameters and execute the reports.

    Hi All,
    We have set of SSRS reports and are been published to SharePoint 2010.After that I have enabled Anonymous user access at SharPoint side,after enabling Anonymous user access no one is able to access the reports so I have removed Anonymous user access
    and the reports are working as normal in IE (internet explorer) but not working thorugh CITRIX (before Anonymous user access provided reports are working normal in CITRIX too), able to open welcome page of sharepoint and unable to select any parameters and
    unable to execute the rpeorts.
    Could you please suggest if you have any solutio as it is very urgent for me.
    Regards,
    Santosh
    Santosh

    Have you tried the basics, such as clearing the browser cache? Note that depending on the version of SSRS in use, Anonymous is not supported with SSRS.
    Trevor Seward
    Follow or contact me at...
    This post is my own opinion and does not necessarily reflect the opinion or view of Microsoft, its employees, or other MVPs.

  • What are function modules used in alv,and its explanation

    what are function modules used in alv,and its explanation

    hi..
    The important function modules are
    Reuse_alv_fieldcatalog_merge
    Reuse_alv_list_display
    Reuse_alv_events_get
    Reuse_alv_grid_display
    Reuse_alv_commentary_write.
    <b>REUSE_ALV_FIELDCATALOG_MERGE</b>
          This function module is used to populate a field catalog which is essential to display the data in ALV.
          If the output data is from a single dictionary table and all the columns are selected, then we need not exclusively create the field catalog. Its enough to mention the table name as a parameter (I_structure_name) in the REUSE_ALV_LIST_DISPLAY. But in other cases we need to create it.
    Note : Fieldcatalog can be filled manually also by filling up all the required details into the internal table     
    The important parameters are:
       1. Export:
            a. I_program_name     : report id
            b. I_internal_tabname     : the internal output table     
            c. I_inclname     : include or the report name where all  
                                                 the dynamic forms are handled.
        2. Changing
           ct_fieldcat     :    an internal table with the type 
                                      SLIS_T_FIELDCAT_ALV which is declared in the
                                      type pool SLIS.
    <b>REUSE_ALV_LIST_DISPLAY</b>
    This is the function module which prints the data.
    The important parameters are:
    1. Export:
          I_callback_program            : report id
          I_bypassing_buffer             : ‘X’
          I_buffer_active                    : ‘ ‘
          I_callback_pf_status_set     : routine where a user can set
                                                             his own pf status or change the
                                                             functionality of the existing pf status.
          I_callback_user_command : routine where the function codes are
                                                               handled.
          I_structure name     : name of the dictionary table
          Is_Layout          : structure to set the layout of the report
          It_fieldcat          : internal table with the list of all fields and their
                                                 attributes which are to be printed (this table
                                                 can be populated automatically by the function
                                                 REUSE_ALV_FIELDCATALOG_MERGE
          It_events          : internal table with a list of all possible events
                                                 of ALV and their corresponding form names.
    2.  Tables:
         a. t_outtab     : internal table with the data to be output
    <b>REUSE_ALV_EVENTS_GET: </b>
          Returns table of possible events for a a list type
    1. Import:
          Et_Events      :
          The event table is returned with all possible CALLBACK events for the specified list type (column ‘NAME’). For events to be processed by the Callback, their ‘FORM’ field must be filled. If the field is initialized, the event is ignored. The entry can be read from the event table, the field ‘FORM’ filled and the entry modified using constants from the type pool SLIS.
    2. Export:
        I_list_type:
              0 = simple list REUSE_ALV_LIST_DISPLAY
              1 = hierarchical-sequential list                                           
                    REUSE_ALV_HIERSEQ_LIST_DISPLAY
              2 = simple block list                                                        REUSE_ALV_BLOCK_LIST_APPEND
              3 = hierarchical-sequential block list
                    REUSE_ALV_BLOCK_LIST_HS_APPEND
    <b>REUSE_ALV_GRID_DISPLAY</b>
      A new function from 4.6 version, to display the results in grid rather than a
      preview.
      Parameters : same as reuse_alv_list_display
    <b>REUSE_ALV_COMMENTARY_WRITE</b>
    This is used in the Top-of-page event  to print the headings and other
    comments for the list.
    It_list_commentary : Internal table with the headings of the type
                                             slis_t_listheader.
        This internal table has three fields:
        Typ : ‘H’ - header, ‘S’ - selection, ‘A’ - action
        Key : only when typ is ‘S’.
        Info : the text to be printed
    <b>plz reward pts if helpful.</b>
    regards
    vijay.

  • I want the Definitaion fo  Class and its Components  in ABAP . With Example

    Gowri

    <b>Classes</b>
    Classes are templates for objects. Conversely, you can say that the type of
    an object is the same as its class. A class is an abstract description of an object. You could say that it is a set of instructions for building an object. The attributes
    of objects are defined by the components of the class, which describe the
    state and behavior of objects.
    <b>
    Local and Global Classes</b>
    Classes in ABAP Objects can be declared either globally or locally. You define global classes and interfaces in the Class Builder (Transaction SE24) in the
    ABAP Workbench. They are stored centrally in class pools in the class library
    in the R/3 Repository. All of the ABAP programs in an R/3 System can access the global classes. Local classes are defined within an ABAP program. Local classes and interfaces can only be used in the program in which they are defined. When you use a class in an ABAP program, the system first searches for a local class with the specified name. If it does not find one, it then looks for a global class. Apart from the visibility question, there is no difference between using a global class and using a local class.
    There is, however, a significant difference in the way that local and global classes are designed. If you are defining a local class that is only used in a single program, it is usually sufficient to define the outwardly visible components so that it fits into that program. Global classes, on the other hand, must be able to be used anywhere. This means that certain restrictions apply when you define the interface of a global class, since the system must be able to guarantee that any program using an object of a global class can recognize the data type of each interface parameter.
    The following sections describe how to define local classes and interfaces in an ABAP program. For information about how to define local classes and interfaces, refer to the  Class Builder section of the ABAP Workbench Tools documentation.
    <b>Defining Local Classes</b>
    Local classes consist of ABAP source code, enclosed in the ABAP statements CLASS ... ENDCLASS. A complete class definition consists of a declaration part and, if required, an implementation part. The declaration part of a class <class> is a statement block:
    CLASS <class> DEFINITION.
    ENDCLASS.
    It contains the declaration for all components (attributes, methods, events) of the class. When you define local classes, the declaration part belongs to the global program data. You should therefore place it at the beginning of the program.
    If you declare methods in the declaration part of a class, you must also write an implementation part for it. This consists of a further statement block:
    CLASS <class> IMPLEMENTATION.
    ENDCLASS.
    The implementation part of a class contains the implementation of all methods of the class. The implementation part of a local class is a processing block. Subsequent coding that is not itself part of a processing block is therefore not accessible.
    <b>Structure of a Class</b>
    <u>The following statements define the structure of a class:</u>
    A class contains components
    Each component is assigned to a visibility section
    Classes implement methods
    The following sections describe the structure of classes in more detail.
    <b>Class Components</b>
    The components of a class make up its contents. All components are declared in the declaration part of the class. The components define the attributes of the objects in a class. When you define the class, each component is assigned to one of the three visibility sections, which define the external interface of the class. All of the components of a class are visible within the class. All components are in the same namespace. This means that all components of the class must have names that are unique within the class.
    There are two kinds of components in a class - those that exist separately for each object in the class, and those that exist only once for the whole class, regardless of the number of instances. Instance-specific components are known as instance components. Components that are not instance-specific are called static components.
    In ABAP Objects, classes can define the following components. Since all components that you can declare in classes can also be declared in interfaces, the following descriptions apply equally to interfaces.
    <b>Attributes</b>
    Attributes are internal data fields within a class that can have any ABAP data type. The state of an object is determined by the contents of its attributes. One kind of attribute is the reference variable. Reference variables allow you to create and address objects. Reference variables can be defined in classes, allowing you to access objects from within a class.
    <b>Instance Attributes</b>
    The contents of instance attributes define the instance-specific state of an object. You declare them using the DATA statement.
    <b>Static Attributes</b>
    The contents of static attributes define the state of the class that is valid for all instances of the class. Static attributes exist once for each class. You declare them using the CLASS-DATA statement. They are accessible for the entire runtime of the class.
    All of the objects in a class can access its static attributes. If you change a static attribute in an object, the change is visible in all other objects in the class.
    <b>Methods</b>
    Methods are internal procedures in a class that define the behavior of an object. They can access all of the attributes of a class. This allows them to change the data content of an object. They also have a parameter interface, with which users can supply them with values when calling them, and receive values back from them The private attributes of a class can only be changed by methods in the same class.
    The definition and parameter interface of a method is similar to that of function modules. You define a method <met> in the definition part of a class and implement it in the implementation part using the following processing block:
    METHOD <meth>.
    ENDMETHOD.
    You can declare local data types and objects in methods in the same way as in other ABAP procedures (subroutines and function modules). You call methods using the CALL METHOD statement.
    <b>Instance Methods</b>
    You declare instance methods using the METHODS statement. They can access all of the attributes of a class, and can trigger all of the events of the class.
    <b>Static Methods</b>
    You declare static methods using the CLASS-METHODS statement. They can only access static attributes and trigger static events.
    <b>Special Methods</b>
    As well as normal methods, which you call using CALL METHOD, there are two special methods called CONSTRUCTOR and CLASS_CONSTRUCTOR, which are automatically called when you create an object (CONSTRUCTOR) or when you first access the components of a class (CLASS_CONSTRUCTOR).
    <b>Events</b>
    Objects or classes can use events to trigger event handler methods in other objects or classes. In a normal method call, one method can be called by any number of users. When an event is triggered, any number of event handler methods can be called. The link between the trigger and the handler is not established until runtime. In a normal method call, the calling program determines the methods that it wants to call. These methods must exist. With events, the handler determines the events to which it wants to react. There does not have to be a handler method registered for every event.
    The events of a class can be triggered in the methods of the same class using the RAISE EVENT statement. You can declare a method of the same or a different class as an event handler method for the event <evt> of class <class> using the addition FOR EVENT <evt> OF <class>.
    Events have a similar parameter interface to methods, but only have output parameters. These parameters are passed by the trigger (RAISE EVENT statement) to the event handler method, which receives them as input parameters.
    The link between trigger and handler is established dynamically in a program using the SET HANDLER statement. The trigger and handlers can be objects or classes, depending on whether you have instance or static events and event handler methods. When an event is triggered, the corresponding event handler methods are executed in all registered handling classes.
    <b>Instance Events</b>
    You declare instance events using the EVENTS statement. An instance event can only be triggered in an instance method.
    <b>Static Events</b>
    You declare static events using the CLASS-EVENTS statement. All methods (instance and static methods) can trigger static events. Static events are the only type of event that can be triggered in a static method.
    <u>See also Triggering and Handling Events.</u>
    <b>Types</b>
    You can define your own ABAP data types within a class using the TYPES statement. Types are not instance-specific, and exist once only for all of the objects in a class.
    <b>Constants</b>
    Constants are special static attributes. You set their values when you declare them, and they can then no longer be changed. You declare them using the CONSTANTS statement. Constants are not instance-specific, and exist once only for all of the objects in a class.
    <b>Visibility Sections</b>
    You can divide the declaration part of a class into up to three visibility areas:
    CLASS <class> DEFINITION.
      PUBLIC SECTION.
      PROTECTED SECTION.
      PRIVATE SECTION.
    ENDCLASS.
    These areas define the external visibility of the class components, that is, the interface between the class and its users. Each component of a class must be assigned to one of the visibility sections.
    <b>Public Section</b>
    All of the components declared in the public section are accessible to all users of the class, and to the methods of the class and any classes that inherit from it. The public components of the class form the interface between the class and its users.
    <b>
    Protected Section</b>
    All of the components declared in the protected section are accessible to all methods of the class and of classes that inherit from it. Protected components form a special interface between a class and its subclasses. Since inheritance is not active in Release 4.5B, the protected section currently has the same effect as the private section.
    <b>Private Section</b>
    Components that you declare in the private section are only visible in the methods of the same class. The private components are not part of the external interface of the class.
    <b>Encapsulation</b>
    The three visibility areas are the basis for one of the important features of object orientation - encapsulation. When you define a class, you should take great care in designing the public components, and try to declare as few public components as possible. The public components of global classes may not be changed once you have released the class.
    For example, public attributes are visible externally, and form a part of the interface between an object and its users. If you want to encapsulate the state of an object fully, you cannot declare any public attributes. As well as defining the visibility of an attribute, you can also protect it from changes using the READ-ONLY addition.
    "Example  :
    CLASS C_COUNTER DEFINITION.
      PUBLIC SECTION.
        METHODS: SET_COUNTER IMPORTING VALUE(SET_VALUE) TYPE I,
                 INCREMENT_COUNTER,
                 GET_COUNTER EXPORTING VALUE(GET_VALUE) TYPE I.
      PRIVATE SECTION.
        DATA COUNT TYPE I.
    ENDCLASS.
    CLASS C_COUNTER IMPLEMENTATION.
      METHOD SET_COUNTER.
        COUNT = SET_VALUE.
      ENDMETHOD.
      METHOD INCREMENT_COUNTER.
        ADD 1 TO COUNT.
      ENDMETHOD.
      METHOD GET_COUNTER.
        GET_VALUE = COUNT.
      ENDMETHOD.
    ENDCLASS.
    The class C_COUNTER contains three public methods - SET_COUNTER, INCREMENT_COUNTER, and GET_COUNTER. Each of these works with the private integer field COUNT. Two of the methods have input and output parameters. These form the data interface of the class. The field COUNT is not outwardly visible.
    Reward   points  if it is usefull...
    Girish

  • REG: ESS WAS AND ITS properties for EHP4

    Dear All,
            We are using Business Package ESS SP6 with EHP4.
    My question is which type of Applications are used in this EHP4. (ie., BSP or ABAPwebdynpro or JavaWebDynPro )
    If the application types are of JAVA WEBDYNPRO how should we assign the WAS and ITS parameters for SystemObjects like
    SAP_BSP_EREC
    SAP_R3
    SAP_R3_Financials
    SAP_ITS_XSS
    SAP_WebDynpro_XSS(mainly regarding this system object WAS and ITS properties.)
    Please suggest on this.
    Regards,
    kishore.
    Edited by: kishore kumar on Dec 16, 2010 12:18 PM

    Hi,
    We are facing a patch level miss match, as we are unable to see the new patches in the given list, as we are following the below link
    http://wiki.sdn.sap.com/wiki/display/ERPHCM/HOWTOGETRIDOFSPSTACKMISMATCHISSUES
    Currently ABAP patches like.,
    EHP4 STACK 8(SAP_APPL 604 PATCH 8). for this level above link was not updated,
    can you please guide us, what are the relevant JAVA COMPONENTS need to be upgrade.
    We will be waiting for your reply.,
    Thanks in advance,
    Regards,
    kishore.

  • There is a difference between the document total and its components

    Hi!
    I have an error message "There is a difference between the document total and its components" when I want to create an InventoryGenEntry
    the problem arises from time to time and my customer must do the document two or three times before it is created.
    I have seen in this forum and in notes that this is probably being caused by a Rounding.
    I am using 2 digits for amounts, 4 digits for prices, 6 digits for rates and 3 digits for quantities.
    For information my customer use SAP 2005 and the patch level 46.
    This problem happened only in InventoryGenEntry. how can I modifiy parameters to resolve this problem?
    thank you for your help.
    Best Regards
    Séverine

    Hi Séverine,
    Do you find any additional code added to SBO_SP_Transaction stored procedure. A similar issue with stock transfer fixed in later patch. Please test in latest patch.
    Regards,
    Vijay kumar
    SAP Business One Forums Team

  • MDX: Selecting specific dimension member and its descendants from parent child dimension where dimension member names can be same in dimension hierarchy

    I'm creating a SSRS report using SSAS cube as a source.
    When creating a dataset for the report, I'm having trouble with MDX to select a specific dimension member and its descendants from parent child dimension where dimension member names can be same in dimension hierarchy.
    Lets say for example that I have an account dimension where,
    In level 02 I have company ID:s 101, 102, 103 and so on...
    In level 03 I have Balance sheet
    In level 04 I have some account groups, Assets, Liabilities and so on... and In level 05 I have individual accounts
    How can I select for example company 102:s Assets from level 04 and its descendants?
    Normally in adventure works I would do this if I've wanted Current Assets and its descendants:
    SELECT NON EMPTY { [Measures].[Amount] } ON COLUMNS, NON EMPTY
    { (DESCENDANTS([Account].[Accounts].[Account Level 03].[Current Assets]) ) } ON ROWS
    FROM [Adventure Works]
    But in my Account dimension at level 04 I have Assets member as many times as I have companies in level 02.
    Tuomo

    Hi Tuomo Helminen,
    To this requirement of yours, I would recommend you use Cascading Parameters in Reporting services, you can refer to this FAQ How do I create cascading parameters when using cube database in Reporting Services at this link
    http://blogs.msdn.com/b/sqlforum/archive/2011/04/11/forum-faq-how-do-i-create-cascading-parameters-when-using-cube-database-in-reporting-services.aspx 
    Thanks,
    Challen Fu
    TechNet
    Subscriber Supportinforum
    If you have any feedback on our support, please [email protected]
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

Maybe you are looking for