Using my objects as keys in a hash map

I need the following type of code to work (ClDate is my own class):
            var testDic:Dictionary = new Dictionary();
            var key1:ClDate = new ClDate(10000);
            var key2:ClDate = new ClDate(20000);
            var key3:ClDate = new ClDate(30000);
            var key4:ClDate = new ClDate(40000);
            testDic[key1] = 1;
            testDic[key2] = 2;
            testDic[key3] = 3;
            testDic[key4] = 4;
            var key:ClDate = new ClDate(20000);
            var retNum:Number = testDic[key];
The current Dictionary or Array does not work since they do not enable passing a comparison function that will enable comparing my own objects. Is there any existing implementation that works?
-Sam.

Object (when acting as a map) uses toString() as a poor man's hashcode implementation, so you can get more-or-less the behavior you want by implementing the toString() method in your CIDate class and then storing the instances in an Object (rather than a Dictionary).
E.g., say your CIDate looks like this:
          public class CIDate {
            public var num:Number
            public function CIDate(num:Number) { this.num = num }
            public function toString():String { return num.toString(); }
You can use toString() as a comparison operator by keeping things in an Object instead of a Dictionary:
            var testDic:Object = {};
            var key1:ClDate = new ClDate(10000);
            var key2:ClDate = new ClDate(20000);
            var key3:ClDate = new ClDate(30000);
            var key4:ClDate = new ClDate(40000);
            testDic[key1] = 1;
            testDic[key2] = 2;
            testDic[key3] = 3;
            testDic[key4] = 4;
            var key:ClDate = new ClDate(20000);
            var retNum:Number = testDic[key];
Then retNum should be '2', as expected. This is sort of a hack, but it might work for what you're doing.

Similar Messages

  • To get the Workflow status using the Object Key

    Hi Experts,
    Do we have any transaction code or a Standard table where I can see the status of the Workflow using the Object Key.
    For example I have an Invoice Document number for which a Workflow has been triggered and now I want to see the which workflow has been triggered and what is the status for the same. I have only the Invoice Document Number.
    I think I can use the SWI1, SWEL etc but I don't have Object key as Input field.
    Thanks in advance.
    Regards,
    SRinivas

    Hi,
    You can find the workitem id in table SWW_WI2OBJ.
    Here you need to pass the invoice number in "Instacne ID" with leading zeros, business object in Object type.
    This may take little bit longer time.
    After getting the workitem number then look into table SWWWIHEAD for the workitem status.
    Thanks and regards,
    SNJY

  • How to use a object for both key figure and as a charcteristc

    Dear all,
    we have a requirement where in we have to use Version Field as a key figure and as well as a charecteristc.
    Regards
    venu

    Dear Mayank Gupta
    Thxs for ur reply
    We are creating a EBIDTA Report which is already developed in R/3 and these result will be stored in Z table.
    we have created a DSO which will store this Z table data.
    Now the req is we have a created a field called ZVersion which is there in the Key fields of DSO. ok
    But in report we want to use the condition TOP1 on the version. as the version is a not a key figure we cant create the Conditon on the characteristc.
    If we use version as a key figure then the records are summurised in DSO as u have to insert it in Data Field.
    we want to use version as a primary key.
    so how to go abt it?
    regards.
    venu

  • Error while releasing PO :  System error: block object EKKO, Key PO Number.

    Dear All,
    I am getting error while releasing PO :  System error: block object EKKO, Key PO Number.
    Please help to resolve.

    Hi Friend,
    How the issue is resolved, because i am facing the same issue, while positing Service entry sheet.
    If you can give us solution, it will be more useful and more appreciated
    REgards
    RS

  • I can't seem to get individual elements when comparing 2 arrays using Compare-Object

    My backup software keeps track of servers with issues using a 30 day rolling log, which it emails to me once a week in CSV format. What I want to do is create a master list of servers, then compare that master list against the new weekly lists to identify
    servers that are not in the master list, and vice versa. That way I know what servers are new problem and which ones are pre-existing and which ones dropped off the master list. At the bottom is the entire code for the project. I know it's a bit much
    but I want to provide all the information, hopefully making it easier for you to help me :)
    Right now the part I am working on is in the Compare-NewAgainstMaster function, beginning on line 93. After putting one more (fake) server in the master file, the output I get looks like this
    Total entries (arrMasterServers): 245
    Total entries (arrNewServers): 244
    Comparing new against master
    There are 1 differences.
    InputObject SideIndicator
    @{Agent= Virtual Server in vCenterServer; Backupse... <=
    What I am trying to get is just the name of the server, which should be $arrDifferent[0] or possibly $arrDifferent.Client. Once I have the name(s) of the servers that are different, then I can do stuff with that. So either I am not accessing the array
    right, building the array right, or using Compare-Object correctly.
    Thank you!
    Sample opening lines from the report
    " CommCells > myComCellServer (Reports) >"
    " myComCellServer -"
    " 30 day SLA"
    CommCell Details
    " Client"," Agent"," Instance"," Backupset"," Subclient"," Reason"," Last Job Id"," Last Job End"," Last Job Status"
    " myServerA"," vCenterServer"," VMware"," defaultBackupSet"," default"," No Job within SLA Period"," 496223"," Nov 17, 2014"," Killed"
    " myServerB"," Oracle Database"," myDataBase"," default"," default"," No Job within SLA Period"," 0"," N/A"," N/A"
    Entire script
    # things to add
    # what date was server entered in list
    # how many days has server been on list
    # add temp.status = pre-existing, new, removed from list
    # copy sla_master before making changes. Copy to archive folder, automate rolling 90 days?
    ## 20150114 Created script ##
    #declare global variables
    $global:arrNewServers = @()
    $global:arrMasterServers = @()
    $global:countNewServers = 1
    function Get-NewServers
    Param($path)
    Write-Host "Since we're skipping the 1st 6 lines, create test to check for opening lines of report from CommVault."
    write-host "If not original report, break out of script"
    Write-Host ""
    #skip 5 to include headers, 6 for no headers
    (Get-Content -path $path | Select-Object -Skip 6) | Set-Content $path
    $sourceNewServers = get-content -path $path
    $global:countNewServers = 1
    foreach ($line in $sourceNewServers)
    #declare array to hold object temporarily
    $temp = @{}
    $tempLine = $line.Split(",")
    #get and assign values
    $temp.Client = $tempLine[0].Substring(2, $tempLine[0].Length-3)
    $temp.Agent = $tempLine[1].Substring(2, $tempLine[1].Length-3)
    $temp.Backupset = $tempLine[3].Substring(2, $tempLine[3].Length-3)
    $temp.Reason = $tempLine[5].Substring(2, $tempLine[5].Length-3)
    #write temp object to array
    $global:arrNewServers += New-Object -TypeName psobject -Property $temp
    #increment counter
    $global:countNewServers ++
    Write-Host ""
    $exportYN = Read-Host "Do you want to export new servers to new master list?"
    $exportYN = $exportYN.ToUpper()
    if ($exportYN -eq "Y")
    $exportPath = Read-Host "Enter full path to export to"
    Write-Host "Exporting to $($exportPath)"
    foreach ($server in $arrNewServers)
    $newtext = $Server.Client + ", " + $Server.Agent + ", " + $Server.Backupset + ", " + $Server.Reason
    Add-Content -Path $exportPath -Value $newtext
    function Get-MasterServers
    Param($path)
    $sourceMaster = get-content -path $path
    $global:countMasterServers = 1
    foreach ($line in $sourceMaster)
    #declare array to hold object temporarily
    $temp = @{}
    $tempLine = $line.Split(",")
    #get and assign values
    $temp.Client = $tempLine[0]
    $temp.Agent = $tempLine[1]
    $temp.Backupset = $tempLine[2]
    $temp.Reason = $tempLine[3]
    #write temp object to array
    $global:arrMasterServers += New-Object -TypeName psobject -Property $temp
    #increment counter
    $global:countMasterServers ++
    function Compare-NewAgainstMaster
    Write-Host "Total entries (arrMasterServers): $($countMasterServers)"
    Write-Host "Total entries (arrNewServers): $($countNewServers)"
    Write-Host "Comparing new against master"
    #Compare-Object $arrMasterServers $arrNewServers
    $arrDifferent = @(Compare-Object $arrMasterServers $arrNewServers)
    Write-Host "There are $($arrDifferent.Count) differences."
    foreach ($item in $arrDifferent)
    $item
    ## BEGIN CODE ##
    cls
    $getMasterServersYN = Read-Host "Do you want to get master servers?"
    $getMasterServersYN = $getMasterServersYN.ToUpper()
    if ($getMasterServersYN -eq "Y")
    $filePathMaster = Read-Host "Enter full path and file name to master server list"
    $temp = Test-Path $filePathMaster
    if ($temp -eq $false)
    Read-Host "File not found ($($filePathMaster)), press any key to exit script"
    exit
    Get-MasterServers -path $filePathMaster
    $getNewServersYN = Read-Host "Do you want to get new servers?"
    $getNewServersYN = $getNewServersYN.ToUpper()
    if ($getNewServersYN -eq "Y")
    $filePathNewServers = Read-Host "Enter full path and file name to new server list"
    $temp = Test-Path $filePathNewServers
    if ($temp -eq $false)
    Read-Host "File not found ($($filePath)), press any key to exit script"
    exit
    Get-NewServers -path $filePathNewServers
    #$global:arrNewServers | format-table client, agent, backupset, reason -AutoSize
    #Write-Host ""
    #Write-Host "Total entries (arrNewServers): $($countNewServers)"
    #Write-Host ""
    #$global:arrMasterServers | format-table client, agent, backupset, reason -AutoSize
    #Write-Host ""
    #Write-Host "Total entries (arrMasterServers): $($countMasterServers)"
    #Write-Host ""
    Compare-NewAgainstMaster

    do not do this:
    $arrDifferent = @(Compare-Object $arrMasterServers $arrNewServers)
    Try this:
    $arrDifferent = Compare-Object $arrMasterServers $arrNewServers -PassThru
    ¯\_(ツ)_/¯
    This is what made the difference. I guess you don't have to declare arrDifferent as an array, it is automatically created as an array when Compare-Object runs and fills it with the results of the compare operation. I'll look at that "pass thru" option
    in a little more detail. Thank you very much!
    Yes - this is the way PowerShell works.  You do not need to write so much code once you understand what PS can and is doing.
    ¯\_(ツ)_/¯

  • How to use Generic Object Services(GOS) for each table control record.

    Dear Expert,
                       I am using generic object services for document attachment but i am facing a problem while attaching document to a table control row. my requirement is to attach separate document for each and every row of table control but  i am unable to attach document row wise of the table control.for each row GOS should display corresponding attached document not all the attached document.
    Thanks in Advanced
    Bhuwan Tiwari
    Edited by: BHUWAN TIWARI on Feb 8, 2011 4:16 PM
    Edited by: BHUWAN TIWARI on Feb 8, 2011 4:16 PM

    You haven't explained what object and object key you're using, nor have you provided any indication of how you implemented the GOS attachment functionality.  You need to provide more information to resolve an issue like this.

  • Urgent!! Issue in using Generic Object Services (GOS)

    Hello Friends,
    I have created a GOS Business object and i am using this to attach documents at the selection screen of my programs.
    The implementation is successfull and working fine. When i execute my program, i can see the GOS Toolbar, i am able to upload document from my PC and view in the attachment list too.
    But the issue is, when i end my session, and try to see attachment list by executing the program again, it comes blank with no documents. This means, once i end the session, i am not able to see the attachments that i have created earlier.
    Any helpful input will be appreciated and rewarded.
    Thanks and Regards,
    Vikas Bittera.

    Hello Vikas
    The document has to be uploaded to the <b>BDS </b>(Business Document Service).
    I will give you an example how I did this:
    1. Create business object 'ZREPORT'.  " for attaching documents to reports
    2. Call transaction <b>OAER </b>(Business Document Service) with the following parameters:
        - Class name = 'ZREPORT' (my business object)
        - Class type  = 'BO' (business object)
        - Objekt key  = leave empty or enter name of report (if empty, a popup appears)
        - Storage system = 'BDS_DB' (seemed a good choice to me)
    3. Execute
    4. In the BDS choose tabstrip "<b>Create</b>" (lower left part of screen). Right-click on the <i>Word document icon </i>and choose<i> Import File</i> from the context menu.
    As soon as you have uploaded your Word document it is visible in your business object (attachment list). When you display the attachment list and right-click on the document you can directly open it in the BDS.
    Regards
      Uwe

  • RFC to HTTP Interface - Access using NULL object reference is not possible

    Hi All,
    I am working on a Interface RFC to HTTP where in I am sending the data to a third party system.
    Using PI 7.3 and Adapter type XI to send this data.
    I am getitng an error Short dump occured when executing message in qRFC queue <Queuename>: Date/time 02.12.2011 08:44:57, user XXXXX, runtime error: Access using NULL object reference is not possible.
    <SAP:Code area="INTERNAL">QRFC_SYSTEM_DUMP</SAP:Code>
    I am entering the parameters such as target host,service number,path correctly with addrseing type as URL.
    The message is failing in the call adapter step with the above error.
    There are no messages stuck in SMQ2 as well.
    Now on the other if I use the  adapter type HTTP_AAE the messages is getting successfully delivered with the same parameters mentioned above.But as we know it is a plain adapter and will not have the SOAP envelope.
    We would want to send the data using the XI adapter.
    Any idea as why this issue is happening?
    Helpful answers will be rewarded points.
    Thanks & Regards,
    RK

    Hi,
    please go through below threads,
    Error for all the interfaces
    Access via NULL object reference not possible., error key: RFC_ERROR_SYSTEM
    hope it will help you
    regards,
    ganesh

  • OIM - Task Assignment Adapter - How to get the object instance key?

    Hello experts,
    I'm trying to use a task assignment adapter to assign an approval task dynamically. Basically, the user can request a resource like "CustomApp Profiles" and we create an object form to let them choose the profile that he needs. Each profile has an owner, which is populate in a Lookup (Owner is the code and Profile is the decode).
    So, in the approval task, I need to get the profile selected by user in the object form and search into the lookup who is the owner of that profile. But I don't know how can I get the object instance key using the parameters that can be mapped to a task assignment adapter.
    Looking into the OIM documents, I believe that the easier way is using the request key, because the REQ_KEY is a foreign key in OBI table.
    Did anyone knows how can I get the object instance key using the request key? Can I use some API or should I execute a SQL statement directly in OIM database?
    Best Regards,
    Nitto

    To retry a task that is in a rejected state, you use the SCH_KEY which is the task key.  In OIM, all rejected tasks are listed in the OTI table.  It contains all the important information about a rejected or pending task.
    You can use the APIs found in the tcProvisioningOperationsIntf class to retrieve open tasks.
    -Kevin

  • Attaching URL using GOS with 2 key fields

    I found a program to attach URL using GOS. I tried the program using his sample Business object (BUS2012) and supplied a valid PO and the program works.
    When I use the program using business object BUS1505 (Real Estate Contract) and put a valid contract number, the program didn't attached the URL. When I check the business object, I found out that the key fields are 2, Company Code and Contract Number. With this, how can attach it to the program.
    Please help me on this. Thanks in advance.
    Report  Z_RMTIWARI_ATTACH_DOC_TO_BO
    Written By : Ram Manohar Tiwari
    Function   : We need to maintain links between Business Object and
                 the attachment.Attachment document is basiclally a
                 business object of type 'MESSAGE'.In order to maintain
                 links, first the attachment will be crated as Business
                 Object of type 'MESSAGE' using Message.Create method.
                 Need to check if we can also use FM
                 'SO_DOC_INSERT_WITH_ORIG_API1' or SO_OBJECT_INSERT rather
                 than using Message.Create method.
    REPORT  Z_RMTIWARI_ATTACH_DOC_TO_BO             .
    Include for BO macros
      INCLUDE : <cntn01>.
    Load class.
      CLASS CL_BINARY_RELATION definition load.
      CLASS CL_OBL_OBJECT      definition load.
    PARAMETERS:
    Object_a
       P_BOTYPE LIKE obl_s_pbor-typeid DEFAULT 'BUS1505', " e.g. 'BUS2012'
       P_BO_ID  LIKE OBL_S_PBOR-INSTID DEFAULT '0000010000273',    " Key e.g. PO No.
    Object_b
       P_DOCTY  LIKE obl_s_pbor-typeid DEFAULT 'MESSAGE' NO-DISPLAY,
       P_MSGTYP LIKE SOFM-DOCTP        DEFAULT 'URL'     NO-DISPLAY,
    Relationship
       P_RELTYP  LIKE mdoblrel-reltype DEFAULT 'URL'.
      types: BEGIN OF TY_MESSAGE_KEY,
              FOLTP   TYPE SO_FOL_TP,
              FOLYR   TYPE SO_FOL_YR,
              FOLNO   TYPE SO_FOL_NO,
              DOCTP   TYPE SO_DOC_TP,
              DOCYR   TYPE SO_DOC_YR,
              DOCNO   TYPE SO_DOC_NO,
              FORTP   TYPE SO_FOR_TP,
              FORYR   TYPE SO_FOR_YR,
              FORNO   TYPE SO_FOR_NO,
             END OF TY_MESSAGE_KEY.
      DATA : LV_MESSAGE_KEY type TY_MESSAGE_KEY.
      DATA : LO_MESSAGE type SWC_OBJECT.
      DATA : LT_DOC_CONTENT type standard table of SOLI-LINE with header
    line.
    First derive the Attachment's ( MESSAGE )document type.
      P_DOCTY = 'MESSAGE'.
      CASE P_RELTYP.
      In case of URls
        WHEN 'URL'.
           P_MSGTYP = 'URL'.
      In case of Notes / Private Notes
        WHEN 'NOTE' OR 'PNOT'.
           P_MSGTYP = 'RAW'.
        WHEN 'ATTA'.
           P_MSGTYP = 'EXT'.
      Not implemented as yet...exit
         EXIT.
        WHEN OTHERS.
       ....exit
         EXIT.
        ENDCASE.
    Create an initial instance of BO 'MESSAGE' - to call the
    instance-independent method 'Create'.
      swc_create_object LO_MESSAGE 'MESSAGE' LV_MESSAGE_KEY.
    define container to pass the parameter values to the method call
    in next step.
      swc_container LT_MESSAGE_CONTAINER.
    Populate container with parameters for method
      swc_set_element LT_MESSAGE_CONTAINER 'DOCUMENTTITLE' 'Title'.
      swc_set_element LT_MESSAGE_CONTAINER 'DOCUMENTLANGU' 'E'.
      swc_set_element LT_MESSAGE_CONTAINER 'NO_DIALOG'     'X'.
      swc_set_element LT_MESSAGE_CONTAINER 'DOCUMENTNAME' P_DOCTY.
      swc_set_element LT_MESSAGE_CONTAINER 'DOCUMENTTYPE'   P_MSGTYP.
    'DocumentContent' is a multi-line element ( itab ).
    In case of URLs..it should be concatenated with &KEY& in the begining.
      CASE P_MSGTYP.
        WHEN 'URL'.
          LT_DOC_CONTENT = '&KEY&http://intranet.corpoff' .
          append LT_DOC_CONTENT.
    In case of Notes or Private Notes, get the data from files on appl
    server or from wherever(? - remember background).
         WHEN 'RAW'.
           LT_DOC_CONTENT = 'Hi How r u?' .
           append LT_DOC_CONTENT.
    In case of File attachments
         WHEN 'EXT'.
          Upload the file contents using open dataset in lt_doc_content .
          Some conversion ( Compress ) might be required.
          Not sure at this point
      ENDCASE.
      swc_set_element LT_MESSAGE_CONTAINER 'DocumentContent' LT_DOC_CONTENT.
      swc_call_method LO_MESSAGE 'CREATE' LT_MESSAGE_CONTAINER.
    Refresh to get the reference of create 'MESSAGE' object for attachment
      swc_refresh_object LO_MESSAGE.
    Get Key of new object
      swc_get_object_key LO_MESSAGE LV_MESSAGE_KEY.
    Now we have attachment as a business object instance. We can now
    attach it to our main business object instance.
    Create main BO object_a
      data: LO_IS_OBJECT_A type SIBFLPORB.
      LO_IS_OBJECT_A-INSTID = P_BO_ID.
      LO_IS_OBJECT_A-TYPEID = P_BOTYPE.
      LO_IS_OBJECT_A-CATID  = 'BO'.
    Create attachment BO object_b
      data: LO_IS_OBJECT_B type SIBFLPORB.
      LO_IS_OBJECT_B-INSTID = LV_MESSAGE_KEY.
      LO_IS_OBJECT_B-TYPEID = P_DOCTY.
      LO_IS_OBJECT_B-CATID  = 'BO'.
    *TRY.
    CALL METHOD CL_BINARY_RELATION=>CREATE_LINK
      EXPORTING
        IS_OBJECT_A            = LO_IS_OBJECT_A
       IP_LOGSYS_A            =
        IS_OBJECT_B            = LO_IS_OBJECT_B
       IP_LOGSYS_B            =
        IP_RELTYPE             = P_RELTYP
       IP_PROPNAM             =
       I_PROPERTY             =
    IMPORTING
       EP_LINK_ID             =
       EO_PROPERTY            =
    *CATCH CX_OBL_PARAMETER_ERROR .
    *CATCH CX_OBL_MODEL_ERROR .
    *CATCH CX_OBL_INTERNAL_ERROR .
    *ENDTRY.
    Check if everything OK...who cares!!
      commit work.

    HI
    You can look at object VBAP as an example.  It'sthe sales order item and has two keys - sales order number and item number. 
    the key was created:
    BEGIN OF KEY,
         SALESDOCUMENTNO LIKE VBAP-VBELN,
         ITEMNO LIKE VBAP-POSNR,
    END OF KEY,
         MATERIAL TYPE SWC_OBJECT,
         SALESDOCUMENT TYPE SWC_OBJECT,
         _VBAP LIKE VBAP.
    ND_DATA OBJECT. " Do not change.. DATA is generated
    Here is a object instantiation - just build the key with the two fields - then when you call the macro - you pass the one field that already has both keys in it.
    GET_PROPERTY SALESDOCUMENT CHANGING CONTAINER.
      SWC_CREATE_OBJECT
        OBJECT-SALESDOCUMENT 'VBAK' OBJECT-KEY-SALESDOCUMENTNO.
      SWC_SET_ELEMENT CONTAINER 'SalesDocument' OBJECT-SALESDOCUMENT.
    END_PROPERTY.

  • Using httprequest object

    I'm a struts frame work developer and I'm trying to populate combobox using httprequest object. The code seems working( I debugged it) don't populate the combo. My code is as follows.
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
    <%@ taglib uri="/WEB-INF/salIncrement.tld" prefix="salIncrement" %>
    <%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
    <%@ taglib uri="/WEB-INF/emplContext.tld" prefix="emplContext" %>
    <html:html>
    <HEAD>
    <%@ page
    language="java" pageEncoding="utf-8"
    contentType="text/html; charset=utf-8"
    errorPage="error.jsp"
    isErrorPage="false"
    %>
    <META http-equiv="Content-Type" content="text/html; charset=utf-8">
    <META name="GENERATOR" content="IBM WebSphere Studio">
    <META http-equiv="Content-Style-Type" content="text/css">
    <LINK href="theme/Master.css" rel="stylesheet" type="text/css">
    <TITLE>salaryIncrement.jsp</TITLE>
    <script language="JavaScript">
    function up(cd){
    var code=cd.value;
         var request = null;
         request =new ActiveXObject("Msxml2.XMLHTTP");
    request.open("GET","emplSalaryIncrement.jsp?structureCode="+code);          
         request.send(null);
    </script>
    </HEAD>
    <BODY>
    <html:javascript formName="salaryIncrementForm"/>
    <html:form action="/newSalaryIncrement.do" onsubmit=" return validateSalaryIncrementForm(this);">
    <TABLE width="100%">
         <TR>
         <TD class="formheader">
              <bean:message key="SalaryIncrement.Title"/>
         </TD>
         </TR>
    </TABLE>
    <TABLE>
    <TR>     
         <TH><bean:message key="SalaryIncrement.SalaryStructure" /> </TH>
         <TD width="50%">
    <select size='1' name='salaryStructure' style='width: 99%' style='font-size: 8pt;font-family: visual GeezUnicode'      onchange='up(this)'>
         <option value="001">one </option>
         <option value="002">two</option>
    </select>
              </TD>
    </TR>
    <TR>     
         <TH><bean:message key="SalaryIncrement.Grade" /> </TH>
         <TD>
         <%
         String salaryStructure="";
         salaryStructure=request.getParameter("structureCode");
              String language=locale.getLanguage();
              int count=0,i=0;
              HashMap param=new HashMap();
         if(!salaryStructure.equals(null)&&!salaryStructure.equals("")){
              param.put("Code",salaryStructure);
              param.put("locale",language);
              ResultSet rs= DataSourceFactory.instance().getDataSource().select("getServiceType",param);%>
              <select size='1' name='jobGrade' style='width: 99%' style='font-size: 8pt;font-family: visual Geez Unicode'>     
              <%while(rs.next()){%>
    <option value="<%=rs.getString("Code"));%>"><%=rs.getString("Description"));%> </option>
              <% }%>
         <%}else{%>
         <select size='1' name='jobGrade' style='width: 99%' style='font-size: 8pt;font-family: visual Geez Unicode'>     
    <option value=""></option>
         <%}%>
         </select>
    </TD>
    </TR>
    </TABLE>
    </html:form>
    </BODY>
    </html:html>

    You're in the wrong forum, try: http://forum.java.sun.com/forum.jspa?forumID=45

  • ALV Tree Report without using ABAP Objects

    Hi all,
    I want to know the name of a function module to create ALV Tree in SE38 as a report. I am required to create this ALV Tree Report without using ABAP OBJECTS. Can u pls help me as early as possible.

    Hi
    see this link
    http://www.sapdev.co.uk/reporting/alv/alvtree.htm
    *& Report  ZBCALV_TREE
    REPORT  ZBCALV_TREE.
    class cl_gui_column_tree definition load.
    class cl_gui_cfw definition load.
    data tree1  type ref to cl_gui_alv_tree.
    data mr_toolbar type ref to cl_gui_toolbar.
    include <icon>.
    include bcalv_toolbar_event_receiver.
    include bcalv_tree_event_receiver.
    data: toolbar_event_receiver type ref to lcl_toolbar_event_receiver.
    data: gt_VBAK  type VBAK occurs 0,      "Output-Table
          gt_fieldcatalog type lvc_t_fcat, "Fieldcatalog
          ok_code like sy-ucomm.           "OK-Code
    start-of-selection.
    end-of-selection.
      call screen 100.
    *&      Module  STATUS_0100  OUTPUT
          text
    module STATUS_0100 output.
      SET PF-STATUS 'MAIN'.
    if tree1 is initial.
        perform Zinit_tree.
      endif.
      call method cl_gui_cfw=>flush.
    endmodule.                 " STATUS_0100  OUTPUT
    *&      Form  Zinit_tree
          text
    -->  p1        text
    <--  p2        text
    form Zinit_tree .
    perform Zbuild_fieldcatalog.
    create container for alv-tree
    data: l_tree_container_name(30) type c,
            l_custom_container type ref to cl_gui_custom_container.
      l_tree_container_name = 'TREE1'.
    if sy-batch is initial.
        create object l_custom_container
          exporting
                container_name = l_tree_container_name
          exceptions
                cntl_error                  = 1
                cntl_system_error           = 2
                create_error                = 3
                lifetime_error              = 4
                lifetime_dynpro_dynpro_link = 5.
        if sy-subrc <> 0.
          message x208(00) with 'ERROR'.                        "#EC NOTEXT
        endif.
      endif.
    create tree control
      create object tree1
        exporting
            parent              = l_custom_container
            node_selection_mode = cl_gui_column_tree=>node_sel_mode_single
            item_selection      = 'X'
            no_html_header      = ''
            no_toolbar          = ''
        exceptions
            cntl_error                   = 1
            cntl_system_error            = 2
            create_error                 = 3
            lifetime_error               = 4
            illegal_node_selection_mode  = 5
            failed                       = 6
            illegal_column_name          = 7.
      if sy-subrc <> 0.
        message x208(00) with 'ERROR'.                          "#EC NOTEXT
      endif.
    create Hierarchy-header
      data l_hierarchy_header type treev_hhdr.
      perform zbuild_hierarchy_header changing l_hierarchy_header.
    create info-table for html-header
      data: lt_list_commentary type slis_t_listheader,
            l_logo             type sdydo_value.
      perform Zbuild_comment using
                     lt_list_commentary
                     l_logo.
    repid for saving variants
      data: ls_variant type disvariant.
      ls_variant-report = sy-repid.
    create emty tree-control
      call method tree1->set_table_for_first_display
        exporting
          is_hierarchy_header = l_hierarchy_header
          it_list_commentary  = lt_list_commentary
          i_logo              = l_logo
          i_background_id     = 'ALV_BACKGROUND'
          i_save              = 'A'
          is_variant          = ls_variant
        changing
          it_outtab           = gt_VBAK "table must be emty !!
          it_fieldcatalog     = gt_fieldcatalog.
    create hierarchy
      perform Zcreate_hierarchy.
    add own functioncodes to the toolbar
      perform zchange_toolbar.
    register events
      perform zregister_events.
    endform.                    " Zinit_tree
    *&      Form  Zbuild_fieldcatalog
          text
    -->  p1        text
    <--  p2        text
    form Zbuild_fieldcatalog .
    get fieldcatalog
      call function 'LVC_FIELDCATALOG_MERGE'
        exporting
          i_structure_name = 'VBAK'
        changing
          ct_fieldcat      = gt_fieldcatalog.
      sort gt_fieldcatalog by scrtext_l.
    change fieldcatalog
      data: ls_fieldcatalog type lvc_s_fcat.
      loop at gt_fieldcatalog into ls_fieldcatalog.
        case ls_fieldcatalog-fieldname.
          when 'AUART' .
            ls_fieldcatalog-no_out = 'X'.
            ls_fieldcatalog-key    = ''.
        endcase.
        modify gt_fieldcatalog from ls_fieldcatalog.
      endloop.
    endform.                    " Zbuild_fieldcatalog
    *&      Form  zbuild_hierarchy_header
          text
         <--P_L_HIERARCHY_HEADER  text
    form zbuild_hierarchy_header changing
                                   p_hierarchy_header type treev_hhdr.
      p_hierarchy_header-heading = 'Hierarchy Header'.          "#EC NOTEXT
      p_hierarchy_header-tooltip =
                             'This is the Hierarchy Header !'.  "#EC NOTEXT
      p_hierarchy_header-width = 30.
      p_hierarchy_header-width_pix = ''.
    endform.                    " zbuild_hierarchy_header
    *&      Form  Zbuild_comment
          text
         -->P_LT_LIST_COMMENTARY  text
         -->P_L_LOGO  text
    form Zbuild_comment   using
                           pt_list_commentary type slis_t_listheader
                           p_logo             type sdydo_value.
    data: ls_line type slis_listheader.
    LIST HEADING LINE: TYPE H
      clear ls_line.
      ls_line-typ  = 'H'.
    LS_LINE-KEY:  NOT USED FOR THIS TYPE
      ls_line-info = 'ALV-tree-demo: flight-overview'.          "#EC NOTEXT
      append ls_line to pt_list_commentary.
    STATUS LINE: TYPE S
      clear ls_line.
      ls_line-typ  = 'S'.
      ls_line-key  = 'valid until'.                             "#EC NOTEXT
      ls_line-info = 'January 29 1999'.                         "#EC NOTEXT
      append ls_line to pt_list_commentary.
      ls_line-key  = 'time'.
      ls_line-info = '2.00 pm'.                                 "#EC NOTEXT
      append ls_line to pt_list_commentary.
    ACTION LINE: TYPE A
      clear ls_line.
      ls_line-typ  = 'A'.
    LS_LINE-KEY:  NOT USED FOR THIS TYPE
      ls_line-info = 'actual data'.                             "#EC NOTEXT
      append ls_line to pt_list_commentary.
      p_logo = 'ENJOYSAP_LOGO'.
    endform.                    " Zbuild_comment
    *&      Form  Zcreate_hierarchy
          text
    -->  p1        text
    <--  p2        text
    form Zcreate_hierarchy .
    data: ls_vbak type vbak,
          lt_vbak  type vbak occurs 0.
    get data
      select * from vbak into table lt_vbak
                            up to 200 rows .                "#EC CI_NOWHERE
      sort lt_vbak by AUART.
    add data to tree
      data: l_AUART_key type lvc_nkey.
    loop at lt_vbak into ls_vbak.
        on change of ls_vbak-AUART.
          perform Zadd_AUART_line using   ls_vbak
                                  changing l_AUART_key.
        endon.
      endloop.
    calculate totals
      call method tree1->update_calculations.
    this method must be called to send the data to the frontend
      call method tree1->frontend_update.
    endform.                    " Zcreate_hierarchy
    *&      Form  Zadd_AUART_line
          text
         -->P_LS_vbak  text
         -->P_0379   text
         <--P_L_AUART_KEY  text
    form Zadd_AUART_line  using    p_ls_vbak type vbak
                                   p_relat_key type lvc_nkey
                         changing  p_node_key type lvc_nkey.
      data: l_node_text type lvc_value,
            ls_vbak type vbak.
    set item-layout
      data: lt_item_layout type lvc_t_layi,
            ls_item_layout type lvc_s_layi.
      ls_item_layout-t_image = '@3P@'.
      ls_item_layout-fieldname = tree1->c_hierarchy_column_name.
      ls_item_layout-style   =
                            cl_gui_column_tree=>style_intensifd_critical.
      append ls_item_layout to lt_item_layout.
    add node
      l_node_text =  p_ls_vbak-AUART.
      data: ls_node type lvc_s_layn.
      ls_node-n_image   = space.
      ls_node-exp_image = space.
      call method tree1->add_node
        exporting
          i_relat_node_key = p_relat_key
          i_relationship   = cl_gui_column_tree=>relat_last_child
          i_node_text      = l_node_text
          is_outtab_line   = ls_vbak
          is_node_layout   = ls_node
          it_item_layout   = lt_item_layout
        importing
          e_new_node_key   = p_node_key .
    endform.                    " Zadd_AUART_line
    *&      Form  zchange_toolbar
          text
    -->  p1        text
    <--  p2        text
    form zchange_toolbar .
    get toolbar control
      call method tree1->get_toolbar_object
        importing
          er_toolbar = mr_toolbar.
      check not mr_toolbar is initial.
    add seperator to toolbar
      call method mr_toolbar->add_button
        exporting
          fcode     = ''
          icon      = ''
          butn_type = cntb_btype_sep
          text      = ''
          quickinfo = 'This is a Seperator'.                    "#EC NOTEXT
    add Standard Button to toolbar (for Delete Subtree)
      call method mr_toolbar->add_button
        exporting
          fcode     = 'DELETE'
          icon      = '@18@'
          butn_type = cntb_btype_button
          text      = ''
          quickinfo = 'Delete subtree'.                         "#EC NOTEXT
    add Dropdown Button to toolbar (for Insert Line)
      call method mr_toolbar->add_button
        exporting
          fcode     = 'INSERT_LC'
          icon      = '@17@'
          butn_type = cntb_btype_dropdown
          text      = ''
          quickinfo = 'Insert Line'.                            "#EC NOTEXT
    set event-handler for toolbar-control
      create object toolbar_event_receiver.
      set handler toolbar_event_receiver->on_function_selected
                                                          for mr_toolbar.
      set handler toolbar_event_receiver->on_toolbar_dropdown
                                                          for mr_toolbar.
    endform.                    " zchange_toolbar
    *&      Form  zregister_events
          text
    -->  p1        text
    <--  p2        text
    form zregister_events .
    define the events which will be passed to the backend
      data: lt_events type cntl_simple_events,
              l_event type cntl_simple_event.
    define the events which will be passed to the backend
      l_event-eventid = cl_gui_column_tree=>eventid_expand_no_children.
      append l_event to lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_checkbox_change.
      append l_event to lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_header_context_men_req.
      append l_event to lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_node_context_menu_req.
      append l_event to lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_item_context_menu_req.
      append l_event to lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_header_click.
      append l_event to lt_events.
      l_event-eventid = cl_gui_column_tree=>eventid_item_keypress.
      append l_event to lt_events.
      call method tree1->set_registered_events
        exporting
          events                    = lt_events
        exceptions
          cntl_error                = 1
          cntl_system_error         = 2
          illegal_event_combination = 3.
      if sy-subrc <> 0.
        message x208(00) with 'ERROR'.                          "#EC NOTEXT
      endif.
    set Handler
      data: l_event_receiver type ref to lcl_tree_event_receiver.
      create object l_event_receiver.
      set handler l_event_receiver->handle_node_ctmenu_request
                                                            for tree1.
      set handler l_event_receiver->handle_node_ctmenu_selected
                                                            for tree1.
      set handler l_event_receiver->handle_item_ctmenu_request
                                                            for tree1.
      set handler l_event_receiver->handle_item_ctmenu_selected
                                                            for tree1.
    endform.                    " zregister_events
    *&      Module  USER_COMMAND_0100  INPUT
          text
    module USER_COMMAND_0100 input.
    ok_code  = sy-ucomm.
    clear sy-ucomm.
    case ok_code.
        when 'EXIT' or 'BACK' or 'CANC'.
          perform Zexit_program.
        when others.
          call method cl_gui_cfw=>dispatch.
      endcase.
      clear ok_code.
      call method cl_gui_cfw=>flush.
    endmodule.                 " USER_COMMAND_0100  INPUT
    *&      Form  Zexit_program
          text
    -->  p1        text
    <--  p2        text
    form Zexit_program .
      call method tree1->free.
      leave program.
    endform.                    " Zexit_program
    <b>Reward if usefull</b>

  • Getting the Object Access key

    This weird question,
    But does any one know how to get the object access key for Standard SAP object is changed..
    Normally when we try to do any modification on Standard SaP object it asks for and access key.. We need to enter it once, after which the object is open for editing.
    I have an SAP object which as been modified .
    I want to know that number?? Is it possible..
    Any help will be highly appreciated..
    Regards,
    Samir.

    Hi Samir,
    You have to contact SAP Support to obtain the access key for a Standard SAP Object. The correct channel for that is the OSS, where yo can raise a message requesting the same.
    But you are saying that there's one object that has already been modified. Who has done the modification ? When they have done it, they must have specified the access key. If you want to modify the same object, then the best thing for you to do is to contact the person who has changed it.
    By the way, have the modifications been done using the Modififcation Assistant?
    Regards,
    Anand Mandalika.

  • Using Explorer with Calculated Key Figures from BEx (BW 7.31 / BI 4.1)

    I'm looking for suggestions on how to leverage data from calculated and restricted key figures in BEx (from a BW 7.31 system) with Business Objects Explorer (from a BI 4.1 system).  Our current process involves some complicated workarounds and with the implementation of BI 4.1 and I'm hoping to streamline things a bit.
    Here is what I had in mind...
    An information space (indexed daily) sitting on a universe (hopefully UNX) that referred to a BEx query on a multiprovider in BW.  My understanding was that universes would be able to consume BEx queries (including their restricted and calculated key figures) in 4.1.  Based on a recent post (http://scn.sap.com/thread/3417905), it appears that the feature that I was hoping for may have not made it into the GA release.  Obviously, I could move the calculations and restrictions into BW ETL or maybe into the universe, but since that work has already been done and lives in the queries, I'm hoping to use them!  Also, we could use a different tool such as WebI, but at this point the user base is comfortable with Explorer and we would like to continue to use it.
    Suggestions? 
    Thanks!
    -S

    Hi McDowell,
    Regarding to the BEx connection in Explorer, SAP provide two solution
    1. BWA connection
    2. Unv on top of connection
    For the UNV situation, you could use the calculated / restricted key figure in the system but please assgin the aggregation level for them (Database delegate is not supported if I am not wrong)
    Also plese consider two points
    1. Data size (UNV cannot support large data size)
    2. Scheduling (Explorer does not support event trigger? correct me if I am wrong)
    Best regards
    Alex yang

  • Using an array list as a hash map value

    Hi,
    I have an object which has a "properties" field, which contains certain data for that object.
    Most of the time the key/values are both Strings, but in at least one instance, the key is a string, the value needs to be an array list.
    The Map is declared as HashMap<String, Object>
    when I populate the map, and then attempt to retrieve its value, it seems to work correctly.
    But when I try to retrieve the arrayList from another object, using its getter, it doesn't work,
    IOW, if I have code like this:
    // object created from outside the class where the map is populated
    ExampleObject eo = new exampleObject();
    eo.getProperties.get("string value that is a key for the map. ");
    // if I try to determine the class the value is,
    System.out.println("class: " + eo.getProperties,get("string value that is a key for the map. ").getClass());
    // the code above indicates the object is a string. I googled and found a suggestion on this forum, that instead of making the map value an arrayList, I should create an object that contains an array list as a field, and then use that new object as the map value. I tried that and had the same problem.
    any idea what I'm doing wrong? Hope that's clear...
    thanks!!
    bp
    Edited by: badperson on Aug 13, 2008 9:38 AM

    threw this together and it worked fine, so something else is screwed up in my code.
    import java.util.*;
    public class MapTester {
         private HashMap<String, Object> testMap;
         private ArrayList testList;
         public ArrayList<String> createList(String listName){
              System.out.println("creating list");
              testList = new ArrayList<String>();
              testList.add(listName + " line one");
              testList.add(listName + " line two");
              testList.add(listName + " line three");
              return testList;
         public HashMap<String, Object> createMap(String key, Object value){
              System.out.println("populating map");
              testMap = new HashMap<String, Object>();
              testMap.put(key, value);
              return testMap;
         public static void main(String[] args){
              MapTester mapTester = new MapTester();
              mapTester.createList("List 1");
              mapTester.createMap("listKey", mapTester.getTestList());
              System.out.println("retrieving arrayList");
              System.out.println("map value is type: " + mapTester.getTestMap().get("listKey").getClass());
         public ArrayList getTestList() {
              return testList;
         public HashMap<String, Object> getTestMap() {
              return testMap;
    }thanks for the replies
    bp

Maybe you are looking for

  • 2 Column Page Layout

    I'm wondering if there is any way to have two-columns set up in one section of a document and then one column in another. I'm working on taking notes for my biology class and am trying to separate the vocabulary words from the notes themselves, and w

  • Expression pedal not working in Logic after upgrading to Lion

    I'm having a problem where Logic 9 isn't recognizing the expression pedal (CC#11) MIDI messages coming from my M-Audio Axiom 61 keyboard after I upgraded to Lion.  I've reset the settings on the Axiom, made sure the pedal was set properly and plugged

  • What is the OITW / consig  "Consignment goods warehouse" field?

    Does anyone know how the OITW / consig  "Consignment goods warehouse" field gets updated?   It holds quantities.   It is used on the Missing Items screen of the Open Items List enquiry?

  • Output type works different when VF01 and VF02 ,why?

    For Invoices related to a B2B order the output type ZB01 does not always come up during invoice creation time. If we go into the invoice via VF02 it will pop up immediate. But invoices are created by batch jobs and then not 100% of the ZB01 get creat

  • Application's main window is not repainted

    Hello everybody. The system I am using Product Version: NetBeans IDE 6.5 (Build 200811100001) Java: 1.6.0_12; Java HotSpot(TM) Client VM 11.2-b01 System: Windows Vista version 6.0 running on x86; Cp1251; ru_RU (nb)I created Java Desktop application (