Dynamically Create Test Step

I want a TestStand sequence to dynamically create multiple copies of a test step (with different parameters).  We are currently looping on the test step, but this doesn't provide a clear indication to the operator what test steps have been and will be executed.  I tried to do a SetNumElements(RunState.Sequence.Main, numElements) and an InsertElements(RunState.Sequence.Main, index, numElements), but they both made the new steps of type "Container" instead of type "Step" and when I tried to copy the test step it gave me an Error: "-17321; Variable or property types do not match or are not compatible."
Has anyone successfully done this?  Thank you in advance.

Thank everyone for your help.  I have successfully copied test steps.  I have had one difficulty though.  If the step I copy is a function call with a relative path to the DLL and the DLL is located in the same directory as the test sequence, the copies are not able to find the DLL (the original step is able to do so).  I have "Current Sequence File Directory" selected in the search directory list.  I checked and it seems as though the paths to all of the pre-defined directories (including "Current Sequence File Directory") are empty ("") at run-time.  I don't want to add the path in the directory search list, nor do I want to hard code the path in the sequence file. 
Does anyone have a solution to this problem?  Optimally I would like to dynamically specify the absolute path to the DLL, but I couldn't find a property or process to do this.  Thank you in advance for your help.

Similar Messages

  • Load "Selected" in a Property Loader test step from file

    Hi,
    The Import/Export tool stores its selected properties in the file �PLPropertyLoader.ini�. Is it possible to use this file to specify which properties a �Property Loader Test Step� should load? How? Then the information about what to export and load dynamically later is stored in the same location and the risk possibilities is reduced to one place.
    Best regards,
    Morten Pedersen
    CIM Industrial Systems A/S
    Denmark

    Morten -
    By default, the Property Loader step type stores its selected property list in the step's property "Step.PropertyList". The Edit Property Loader dialog box has the "Property List Source" expression control that specifies this as its value.
    If you created a Station Globals array property of type "DatabasePropertyMapping", you could specify that the steps use this property. You might have to set to show hidden properties to find the "DatabasePropertyMapping" type in the insert menu. Note that when you do this when you edit the selected list in a step you are editing the selected list stored in the station global array property.
    Scott Richardson (NI)
    Scott Richardson
    National Instruments

  • How to load properties from csv file directly into a .dll parameter in a test step

    Hi,
    I would like to take values from a property file  and plug them directly into parameter used to invoke dll calls.
    I have looked at examples on how to use the property loader to input test limits, but I cannot figure out how to pipe into the params.
    I have tried. <step name>.Module.<param name>
    step.propertieslist[0].
    Any ideas?
    Thanks,
    m
    Solved!
    Go to Solution.

    I agree that it would be nice.  The difference between limits and parameters though is that parameters are set dynamically.  What I mean by that is you never know how many parameters a step will have until you define the module. Whereas the Limits are always set in stone.  The only difference is the MultiNumeric Limit Test which is just an array that get's appended too with the same datatype.  And the only acess to a parameters value is through the API unless it is a variable.
    The other hard part is that you don't know the datatype of parameters.  Any step can have any number of parameters as well as any datatype being passed to each individual parameter. 
    I think if you are set on NOT creating Locals or FileGlobals then you would need to create custom step types with subproperties that get assigned to the parameters.  This could be even more painful though because now you have to maintain and support the custom step types.
    The other option would be to create your own property loader step that could call in and set things in the API.  HMMM now that would be an interesting project...
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Dynamically creating XML using Sap-xMII Colum and Row Action Block

    Hi,
    I am trying to create a xMII-format XML using IlluminatorDocument Action Block.
    My problem statement is during run time I am required to create columns on the fly.which I have done using xMII Colum Action block.but now I am required to assing values to these dynamically created columns.I have tried using Data Item and Row action block but am not sucessful in doing so.Can anyone help in creating this xml Dynamically.
    The steps that I have followed is
    defined
    tagquery action block and defined tagquery
    blank Illuminator Document Action block
    put a repeater on result of tag query
    set a counter
    updated the counter
    used column action block and mapped the column name i.e IlluminatorColumn_0.Name------"test"&Local.count
    my column output looks like
    Rowsets DateCreated="2007-03-27T12:59:39" EndDate="2007-03-27T11:42:40" StartDate="2007-03-27T11:42:40" Version="11.5.0">
         <Rowset>
              <Columns>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test1" SQLDataType="1" SourceColumn="test1"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test2" SQLDataType="1" SourceColumn="test2"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test3" SQLDataType="1" SourceColumn="test3"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test4" SQLDataType="1" SourceColumn="test4"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test5" SQLDataType="1" SourceColumn="test5"/>
              </Columns>
    </Rowset>
    </Rowsets>
    after this action block i want to assign values to each column i.e
         <Row/>
              <Row/>
              <Row/>
              <Row/>
              <Row/>
    i.e erach row tags should be filled with columntag and value
    but i am not able to achieve the same
    Can anyone help me doing this

    After adding IllumColum Action block I have created 5 columns dynamically
    but now I am unable to add row.
    currently for everycolumn created it is giving one row  without any column node
    the configurations that I have done in Data Item Action Block is
    In My Link Editor
    IlluminatorColumn_0.Name----
    >IlluminatorDataItem_0.Name
    hardcoded the value i.e 20----
    >IlluminatorDataItem_0.Value
    IlluminatorDocument_0.Output----
    >IlluminatorDataItem_0.IlluminatorDocument
    current resultset I am getting is
    <?xml version="1.0" encoding="UTF-8"?>
    <Rowsets DateCreated="2007-03-27T12:59:39" EndDate="2007-03-27T11:42:40" StartDate="2007-03-27T11:42:40" Version="11.5.0">
         <Rowset>
              <Columns>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test1" SQLDataType="1" SourceColumn="test1"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test2" SQLDataType="1" SourceColumn="test2"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test3" SQLDataType="1" SourceColumn="test3"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test4" SQLDataType="1" SourceColumn="test4"/>
                   <Column Description="" MaxRange="100" MinRange="0" Name="test5" SQLDataType="1" SourceColumn="test5"/>
              </Columns>
              <Row/>
              <Row/>
              <Row/>
              <Row/>
              <Row/>
         </Rowset>
    </Rowsets>

  • How can i create a Step in OBBH

    Hi.
    I want to use a exit with " exits-param = C_EXIT_PARAM_CLASS." in T-code "OBBH' to change the test of doc item.
    I create the form and append this form into exits.
    But now I find  i can't create a step in "complete document".
    Message:
    You may not substitute any fields for this Event
    Message no. GB175
    Diagnosis
    Although substitutions are permitted  for the boolesche class 15 (application area FI, Event 0003), the application did not release any field for substitution.
    System response
    Processing is terminated. You cannot change any field for this Event (even within a substitution exit). Defining a substitute therefore makes no sense.
    But my friend can create the Step in Complete document.
    Please help me how can i create it ...

    Hi,
    SAP limits the number of fields that you can use for substitution. If you want to use a field that SAP does not make available for substitution, you have to modify table GB01.
    Regards,
    Sridevi
    <i>* Assign points, if useful</i>

  • Uploading data from excel file to a dynamically created internal table

    Hi,
    I have a requirement where i have to upload data from an excel file into a database table. I would be able to determine the structure of the table only at runtime based on the user input.. so i have created an internal table dynamically.
    Could you please tell me if its possible to upload data from an excel file to the dynamically created internal table using any function modules?
    I thought of doing this by declaring a generic internal table of one field and then uploading the *.csv file into it and then splitting it based on "," and then assigning it to the field symbol referencing the internal table.. but my file length exceeds 132 characters and i'm only able to get data of lenght 132 char's in my internal table ( generic one).
    Could anyone please show me a way around this.
    Thanks in advance,
    Harsha

    Sure, check this out.
    report zrich_0002.
    type-pools: slis.
    field-symbols: <dyn_table> type standard table,
                   <dyn_wa>,
                   <dyn_field>.
    data: it_fldcat type lvc_t_fcat,
          wa_it_fldcat type lvc_s_fcat.
    type-pools : abap.
    data: new_table type ref to data,
          new_line  type ref to data.
    data: iflat type table of string.
    data: xflat type string.
      data: irec type table of string with header line.
      data: tabix type sy-tabix.
    data: file type string.
    selection-screen begin of block b1 with frame title text .
    parameters: p_file type  rlgrap-filename default 'c:Test.csv'.
    parameters: p_flds type i.
    selection-screen end of block b1.
    start-of-selection.
    * Add X number of fields to the dynamic itab cataelog
      do p_flds times.
        clear wa_it_fldcat.
        wa_it_fldcat-fieldname = sy-index.
        wa_it_fldcat-datatype = 'C'.
        wa_it_fldcat-inttype = 'C'.
        wa_it_fldcat-intlen = 10.
        append wa_it_fldcat to it_fldcat .
      enddo.
    * Create dynamic internal table and assign to FS
      call method cl_alv_table_create=>create_dynamic_table
                   exporting
                      it_fieldcatalog = it_fldcat
                   importing
                      ep_table        = new_table.
      assign new_table->* to <dyn_table>.
    * Create dynamic work area and assign to FS
      create data new_line like line of <dyn_table>.
      assign new_line->* to <dyn_wa>.
      file = p_file.
      call method cl_gui_frontend_services=>gui_upload
        exporting
          filename                = file
        changing
          data_tab                = iflat
        exceptions
          file_open_error         = 1
          file_read_error         = 2
          no_batch                = 3
          gui_refuse_filetransfer = 4
          invalid_type            = 5
          no_authority            = 6
          unknown_error           = 7
          bad_data_format         = 8
          header_not_allowed      = 9
          separator_not_allowed   = 10
          header_too_long         = 11
          unknown_dp_error        = 12
          access_denied           = 13
          dp_out_of_memory        = 14
          disk_full               = 15
          dp_timeout              = 16
          others                  = 17.
      loop at iflat into xflat.
        clear irec. refresh irec.
        split xflat at ',' into table irec.
        loop at irec.
          tabix = sy-tabix.
          assign component tabix of structure <dyn_wa> to <dyn_field>.
          <dyn_field> = irec.
        endloop.
        append <dyn_wa> to <dyn_table>.
      endloop.
    * Write out data from table.
      loop at <dyn_table> into <dyn_wa>.
        do.
          assign component  sy-index  of structure <dyn_wa> to <dyn_field>.
          if sy-subrc <> 0.
            exit.
          endif.
          if sy-index = 1.
            write:/ <dyn_field>.
          else.
            write: <dyn_field>.
          endif.
        enddo.
      endloop.
    Regards,
    Rich Heilman

  • How to set a value to a dynamically created node/attribute?

    Hi,
    I dynamically created attributes using the following method,
    IWDNodeInfo cbOptions = wdContext.getNodeInfo().addChild("cbOpt"+count, null, true, true, false, false, false, true, null, null, null);
    cbOptions.addAttribute("opt"+critEle.getQuest_Critid(), "ddic:com.sap.dictionary.string");
    How do i assign a  value to it now, since the node/attribute cannot be accessed via wdcontext?
    On a side note, it seems really troublesome if i need to use a checkbox grp(s) dynamically. I actually need to dynamically create a seperate node + attribute for each checkbox grp i have. Is there any better way to do this?
    Thanx in advance

    Hi
    Steps:
    1) Create the  action click is done statically (you cannot create action dyanmically)
    2) binding the  action click to checkbox dynamically 
    code
    public static void wdDoModifyView(IPrivateDynamicProgrammingView wdThis, IPrivateDynamicProgrammingView.IContextNode wdContext, com.sap.tc.webdynpro.progmodel.api.IWDView view, boolean firstTime)
        //@@begin wdDoModifyView
         if(firstTime){
                      IWDTransparentContainer con=(IWDTransparentContainer)view.getElement("RootUIElementContainer");
              IWDCheckBox checkBox=(IWDCheckBox)view.createElement(IWDCheckBox.class,"ck");
              IWDAction act=wdThis.wdCreateAction(IPrivateDynamicProgrammingView.WDActionEventHandler.CLICK,"");
              checkBox.setOnToggle(act);
              con.addChild(checkBox);
        //@@end
    Thanks and Regards,
    Arun

  • Create test sequence from lab view - add it to the .seq file

    Hello All,
                   I have a query. consider an test sequence that has already stored in "Test.seq" format. let us say we have 5 test steps.
    now is it possible to add a new test step to this existing test sequence using Lab VIEW. I mean if we enter a new test step this has to reflect in the existing test sequence "Test.seq".  i.e in the "Test.seq" we must have 6 test steps.
      If this is possible let me know how this can be done. 

    Michels,
    Guenter mande a very good point.  Make sure to take a look at the forum thread he linked to see the licensing implications of creating your own Sequences.
    There is a very good forum thread that discusses how to create steps programmatically.  You can find the forum here:
    http://forums.ni.com/ni/board/message?board.id=330&message.id=7785&requireLogin=False
    Regards,
    Santiago D

  • Where the string "failed" is created in steps in the main sequence to fill into Parameter.Result PostUUT in the NI teststand II courese example 4-1 Modifying callback.seq

    For PostUUT in  the NI teststand II  courese example 4-1 Modifying callback.seq, there are two steps, one is Test Passed,
    the other is Test Failed, both set each preconditions, for example, Parameters.Result.Status == "Failed"  in the test failed step, if the step failed in the main sequence,the string "failed " is filled into Parameters.Result.Status
     but I can't find where the string "failed" is created in steps in the main sequence. 
     Because I can't find any expression in any steps  to fill into Parameters.Result of  the test failed step in the PostUUT. 
    In fact, when running if step fails, the string "failed " is filled into Parameters.Result.Status 
     Would you please  explain for it ? 
    thanks,

    Hi,
    Look at the Sequential Model Sequence File, and either the sequence SinglePass of Test UUTs for the step that invokes the step Post UUT.
    Then look at the Parameter List for the SequenceCall for that step. you will find your answer.
    Regards
    Ray Farmer

  • Create Index Step taking long time

    I have a create index step in process chain for a infocube. The Create Index step is takes more time. The requests in this cube are rolled up and compressed. The batch process are also avaliable. But still the create index step takes more time. Any suggestions to reduce the time of create index step?

    Hi,
    If you have more Data in Cube then it will take some time..check any Dumps in ST22 and SM21. Ask Basis Team any Error messages in DB02 and check.
    Else goto to RSRV
    Tests in Transaction RSRV --> Database --> Database Indices of an InfoCube and Its Aggregates
    Give Cube name and execute it and see the errors then if any RED color, ckick on Repaire Icon and see.
    Thanks
    Reddy

  • Create test env from production system

    Hi,
    Please sorry,
    I am new in this area of Oracle Applications 11.5.10 and I need help in couple of questions.
    We have production system with Oracle Applications 11.5.10, APPS tier on 32bit Red Hat Linux EE 4 server, and 10.2.0.3 DB tier on 64bit Red Hat Linux EE 4 server.
    We get the 2 new servers for test Oracle Applications 11.5.10 environment with same versions of OS like production.
    First test 32bit for APPS,
    Second test 64bit for DB tier.
    Now we need to create test environment, same like production.
    Questions>
    1) What is the best way to create same env in this situation (32bit app tier, 64bit database tier). I suppose that cloning using rapid clone procedure isn't possible on this clear machines.
    2) If I need to install Oracle Applications 11.5.10 software first on both machines, is it possible to use 32bit rapidwiz installer (existing in stage) to create test db tier on this 64bit node, or not.
    I have read in the document Oracle Applications 11.5.10 - Installation Update Notes for Linux x86
    You can only install Oracle Applications on an x86-64 architecture server if the operating system is 32-bit Linux or Windows. If your operating system is 64-bit, contact your operating system vendor to obtain a 32-bit operating system before installing Oracle Applications.
    3) How to now from which stage production is created. When I try to create the stage for my test environment using perl command perl /mnt/cdrom/Disk1/rapidwiz/adautostg.pl
    I get these options:
    1 - to choose Oracle Applications
    2 - to choose Oracle Applications with NLS
    3 - to choose Oracle Database technology stack (RDBMS)
    4 - to choose Oracle Applications database (Databases)
    5 - to choose Oracle Applications technology stack (Tools)
    6 - to choose APPL_TOP
    7 - to choose National Language Support (NLS) Languages
    Because I haven't seen directory oraNLS is this 1 good choose for stage.
    Thanks, and sorry because I am new in this area.
    Regards
    Edited by: user12009428 on Sep 30, 2010 12:12 PM

    Hi,
    1) What is the best way to create same env in this situation (32bit app tier, 64bit database tier). I suppose that cloning using rapid clone procedure isn't possible on this clear machines. Use Rapid Clone.
    Rapid Clone Documentation Resources, Release 11i and 12 [ID 799735.1]
    FAQ: Cloning Oracle Applications Release 11i [ID 216664.1]
    2) If I need to install Oracle Applications 11.5.10 software first on both machines, is it possible to use 32bit rapidwiz installer (existing in stage) to create test db tier on this 64bit node, or not.Type "linux32 bash" -- See this thread for details.
    How to install 11i on Red Hat Linux 64 bit
    Re: How to install 11i on Red Hat Linux 64 bit
    You can only install Oracle Applications on an x86-64 architecture server if the operating system is 32-bit Linux or Windows. If your operating system is 64-bit, contact your operating system vendor to obtain a 32-bit operating system before installing Oracle Applications. What is the database version?
    To migrate the database from 32-bit to 64-bit you need to follow the steps in these docs (depends on your version).
    Using Oracle Applications with a Split Configuration Database Tier on Oracle 9i Release 2 [ID 304489.1]
    Using Oracle Applications with a Split Configuration Database Tier on Oracle 10g Release 2 [ID 369693.1]
    Using Oracle EBS with a Split Configuration Database Tier on 11gR2 [ID 946413.1]
    3) How to now from which stage production is created. When I try to create the stage for my test environment using perl command perl /mnt/cdrom/Disk1/rapidwiz/adautostg.pl
    I get these options:
    1 - to choose Oracle Applications
    2 - to choose Oracle Applications with NLS
    3 - to choose Oracle Database technology stack (RDBMS)
    4 - to choose Oracle Applications database (Databases)
    5 - to choose Oracle Applications technology stack (Tools)
    6 - to choose APPL_TOP
    7 - to choose National Language Support (NLS) Languages
    Because I haven't seen directory oraNLS is this 1 good choose for stage.oraNLS is only required when you want to install additional languages in addition the base English one. If you have no installed languages you can skip this one.
    Please run md5sum as per (MD5 Checksums for 11i10.2 Rapid Install Media [ID 316843.1]) to verify the integrity of the stage area directory before you run Rapid Install.
    Thanks,
    Hussein

  • How to add a table (dynamic created) into a model attribute

    i have dynamically created an internal table. Generally i use model-binding in a stateful MVC-Application.
    Is there a possibiltity to transfer the dynamic table to a model. As far as i know generic attributes are not allowed in the modell class.
    Every hint welcome
    thx in advance

    By some miracle I do have this finally working.  I will warn you up front that the code is not the cleanest (I have stuff copied in from all over the place.  I probably have lots of unused variable references - but I am running out of time to clean it up further).  Also I don't have all the logic to support all your different possible dynamic structure types.  I always use SFLIGHT as my dyanmic structure.  Therefore you will have to adapt the coding to lookup the actual structure type in use.
    So I have a model that has an structure ITAB type ref to data.  In my Model initialization I go ahead and dynamically redfine this to my specific type:
    METHOD init.
      SELECT SINGLE * FROM sflight INTO CORRESPONDING FIELDS OF isflight.
      DATA: struct_type TYPE REF TO cl_abap_structdescr,
        tabletype TYPE REF TO cl_abap_tabledescr.
      struct_type ?= cl_abap_structdescr=>describe_by_name( 'SFLIGHT' ).
      CREATE DATA me->itab TYPE HANDLE struct_type.
    ENDMETHOD.
    Then in my View I have the following:
    <%@page language="abap" %>
    <%@extension name="htmlb" prefix="htmlb" %>
    <%@extension name="phtmlb" prefix="phtmlb" %>
    <%@extension name="bsp" prefix="bsp" %>
    <htmlb:content design="design2003" >
      <htmlb:page title=" " >
        <htmlb:form>
          <phtmlb:matrix width="100%" >
            <%
      field-symbols: <wa> type any.
      assign model->itab->* to <wa>.
    *  append initial line to <wa_itab> assigning <Wa>.
      data: descriptor type ref to CL_ABAP_STRUCTDESCR.
      descriptor ?= CL_ABAP_STRUCTDESCR=>describe_by_data( <wa> ).
      data: flddescr type DDFIELDS.
      flddescr = descriptor->GET_DDIC_FIELD_LIST( ).
      field-symbols: <wa_field> like line of flddescr.
      data: label type ref to cl_htmlb_label.
      data: input type ref to CL_HTMLB_INPUTFIELD.
      data: binding_string type string.
      "Loop through each field in the structure Definition
      loop at flddescr assigning <Wa_field>.
      clear label.
      clear input.
      concatenate '//model/itab.'
      <wa_field>-FIELDNAME
      into binding_string.
      label ?= cl_htmlb_label=>factory( _for = binding_string ).
      input ?= cl_htmlb_inputfield=>factory( _value = binding_string ).
            %>
            <phtmlb:matrixCell row    = "+1"
                               vAlign = "TOP" />
            <bsp:bee bee="<%= label %>" />
            <phtmlb:matrixCell col    = "+1"
                               vAlign = "TOP" />
            <bsp:bee bee="<%= input %>" />
            <%
      endloop.
            %>
          </phtmlb:matrix>
         <htmlb:button  id="Test" onClick="Test" text="Submit"/>
        </htmlb:form>
      </htmlb:page>
    The key to making this work are custom getter/setters.  In your model class, you can copy from the template methods (Like GETM_S_XYZ for the metadata structure method).  Copy them and remove the _ on the front of the name.  Then change XYZ to the name of the attribute you are binding for.  The following are my custom methods. 
    method get_m_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * method is supposed to return either info about a specific component
    * of a structure (component is not initial -> return ref to
    * if_bsp_metadata_simple) or the complete structure
    * (component is initial -> return ref to if_bsp_metadata_struct)
      data: l_attribute_ref type ref to data,
               l_attr_ref  type ref to data,
               l_exception     type ref to cx_root,
               l_ex            type ref to cx_sy_conversion_error,
               l_ex_bsp        type ref to cx_bsp_conversion_exception,
               l_ex2           type ref to cx_bsp_t100_exception,
               l_type          type i,
               l_index         type i,
               l_name          type string,
               l_component     type string,
               l_getter        type string.
      data: l_field_ref     type ref to data,
            l_dfies_wa      type dfies,
            rtti            type ref to cl_abap_elemdescr.
      data: crap type string,
              rest type string,
              t_index(10) type c.
      split attribute_path at '[' into crap rest.
      split rest           at ']' into t_index crap.
    ****Dummy Object to avoid dumps
      create object metadata type cl_bsp_metadata_simple
        exporting info = l_dfies_wa.
      call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
      data: l_dataref type string.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      rtti ?= cl_abap_typedescr=>describe_by_data_ref( field ).
      l_dfies_wa = rtti->get_ddic_field( ).
      clear metadata.
      create object metadata type cl_bsp_metadata_simple
        exporting info = l_dfies_wa.
    endmethod.
    method get_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * get the given value of the component of the struct, e.g.
    *  field-symbols: <l_comp> type any.
    *  assign component component of structure XYZ to <l_comp>.
    *  value = <l_comp>.
      data: l_attr_ref  type ref to data,
              l_field_ref type ref to data.
      data: l_attribute_ref type ref to data,
            l_exception     type ref to cx_root,
            l_ex            type ref to cx_sy_conversion_error,
            l_ex2           type ref to cx_bsp_t100_exception,
            l_type          type i,
            l_index         type i,
            l_name          type string,
            l_component     type string,
            l_getter        type string,
            rtti            type ref to cl_abap_elemdescr.
      field-symbols: <o_data> type any,
                     <n_data> type any.
    *Test
    call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
    * get a field reference for the assignment
      field-symbols: <wa> type any,
                     <l_comp> type any.
      assign me->itab->* to <wa>.
      assign component l_component of structure <wa> to <l_comp>.
      get reference of <l_comp> into l_field_ref.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      data: l_dataref type string.
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      assign l_field_ref->* to <o_data>.
      assign field->*       to <n_data>.
      move <o_data> to <n_data>.
    * call conversion routine
      try.
          value = if_bsp_model_util~convert_to_string(
            data_ref           = field
            attribute_path     = attribute_path
            no_conversion_exit = 0 ).
        catch cx_sy_conversion_error into l_ex.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex
              dummy     = value ).
        catch cx_bsp_t100_exception into l_ex2.
          me->errors->add_message_from_t100(
            condition = attribute_path
            msgid     = l_ex2->msgid
            msgno     = l_ex2->msgno
            msgty     = l_ex2->msgty
            p1        = l_ex2->msgv1
            p2        = l_ex2->msgv2
            p3        = l_ex2->msgv3
            p4        = l_ex2->msgv4
            dummy     = value ).
      endtry.
    endmethod.
    method set_s_itab .
    * uses ****************************************************************
    * data ****************************************************************
    * code ****************************************************************
    * assign the given value to the component of the struct, e.g.
    *  field-symbols: <l_comp> type any.
    *  assign component component of structure XYZ to <l_comp>.
    *  <l_comp> = value.
      data: l_attr_ref  type ref to data,
               l_field_ref type ref to data.
      data: l_attribute_ref type ref to data,
            l_exception     type ref to cx_root,
            l_ex            type ref to cx_sy_conversion_error,
            l_ex_bsp        type ref to cx_bsp_conversion_exception,
            l_ex2           type ref to cx_bsp_t100_exception,
            l_type          type i,
            l_index         type i,
            l_name          type string,
            l_component     type string,
            l_getter        type string,
            rtti            type ref to cl_abap_elemdescr.
      field-symbols: <o_data> type any,
                     <n_data> type any.
    *Test
      call method if_bsp_model_util~disassemble_path
        exporting
          path      = attribute_path
        importing
          name      = l_name
          index     = l_index
          component = l_component
          type      = l_type.
    * get a field reference for the assignment
      field-symbols: <wa> type any,
                     <l_comp> type any.
      assign me->itab->* to <wa>.
      assign component l_component of structure <wa> to <l_comp>.
      get reference of <l_comp> into l_field_ref.
    ****Dynamically determine your actual structure - for this demo
    ****I just hardcode SFLIGHT
      data: l_dataref type string.
      concatenate 'SFLIGHT-' l_component into l_dataref.
      data: field type ref to data.
    ****Create a data object of the specified type
      try.
          create data field type (l_dataref).
        catch cx_sy_create_data_error.
          exit.
      endtry.
      assign field->*       to <n_data>.
      move <l_comp> to <n_data>.
    * call conversion routine
      try.
          if_bsp_model_util~convert_from_string(
                               data_ref           = field
                               value              = value
                               attribute_path     = attribute_path
                               use_bsp_exceptions = abap_true
                               no_conversion_exit = 0 ).
        catch cx_sy_conversion_error into l_ex.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex
              dummy     = value ).
        catch cx_bsp_conversion_exception into l_ex_bsp.
          me->errors->add_message_from_exception(
              condition = attribute_path
              exception = l_ex_bsp
              dummy     = value ).
        catch cx_bsp_t100_exception into l_ex2.
          me->errors->add_message_from_t100(
            condition = attribute_path
            msgid     = l_ex2->msgid
            msgno     = l_ex2->msgno
            msgty     = l_ex2->msgty
            p1        = l_ex2->msgv1
            p2        = l_ex2->msgv2
            p3        = l_ex2->msgv3
            p4        = l_ex2->msgv4
            dummy     = value ).
      endtry.
      if <n_data> is initial.
        clear <l_comp>.
      else.
        move <n_data> to <l_comp>.
      endif.
    endmethod.
    I know that is a LOT of nasty code without too much explanation.  I'm afriad there isn't time right now to expand on how it works too much.  Between my day job and trying to finish the BSP book, there just isn't much time left.  Like I said before there is a very large section in the book on this topic that hopefully explains it.  The book will be out in December or early January - but perhaps I will get some time before then to write up something on SDN about this.

  • Dynamically create TRAY view element.

    I am trying to create a little menu using a stack of trays with related buttons under each tray.
    I cannot find an example of a dynamically created tray.  Every instance of NEW_TRAY in my NW07 system is generated and the system won't show it to me so I can't see how to use it.
    The problem that I get is an assertion failure after a test 'IF VIEW_ELEMENT IS NOT BOUND.'  Obviously I have a null reference somewhere, but with no documentation (that I can find) I need an example. 
    I would settle for any container-like object at all.  Doesn't have to be a tray.  I cannot even get it to work with a transparent container.  You can't even see it - so how can it be complicated?
    Please form an orderly line, and no fighting to be first with the solution!
    Russ.

    Hello Russ,
    I have used a container in the message area. Have a look at CL_WDR_MESSAGE_AREA~CREATE_MSG_LIST for example.
    Regards,
    Rainer

  • Dynamic Dialog Praticipant step

    Hello experts,
               The OOTB cq comes with a "dialog participant step" and "dynamic participant step". I am looking for "dynamic dialog participant step". Any ideas of how to implement it ?
    Rama.

    I tried to customize this new component by combining the functionality of Dynamic Participant and Dialog Participant. I was able to customize the dialog (which shows up when I drag and drop the customized dynamic Dialog Participant Step) to refer to a dialog path ( as is OOTB Participant Step) and choose which  script to resolve the dynamic participant step. But at the run time had this issue where it was not assigning to the right group though the script returns correct value. I dont see any errors. But the major issue was I could not see the custom dialog. So took a new approch to resolve this.
    1. Create a new model
    2. Drag and drop the dialog Participant step and DONOT choose the group. Choose title and description, and also choose the custom dialog.
    3. Create a new java process step which would assign the a value to the property called PARTIPANT to the next step (combination of workflow transition objects and routes objects) in the workflow ( which in this case the dialog Participant).
    4. Code the logic in such a way that it returns the correct user group.
    5. Drag and drop a java process step on to the model prioor to the dialog Participant Step and choose the newly created java process.
    6. execute the workflow.
    7. Once the java process executes it would assign to the right group for the dialog Participant (  which we did not choose while we modelled it - Step 2)
    Hope this helps.
    Rama.

  • How to change Id of a dynamically created child element?

    Hi,
    I would like to change the id of the dynamically created elements in order to work easily with their later. Currently, edge automatically generate an random id like "eid_1376057792551" for each element.
    There is my code :
             sym.setVariable("labels", {
                       content2: "Visiteur",
                       content3: "Exposant",
                       content4: "Organisateur",
                       content5: "Contact",
                       content6: "Connexion"
             // Clear initial state
                                  sym.getSymbol("tab").deleteSymbol();
                                  // Find all large symbols in the library
                                  var prefix = "content"; // content1, content2 ... content99
                                  var allTabs = [];
                                  var symbolDefns = sym.getComposition().symbolDefns;
                                  for (var key in symbolDefns) {
                                    if (symbolDefns.hasOwnProperty(key) && key.search(new RegExp(prefix+"[0-9]{1,2}"))!=-1 ) {
                                             var tab = sym.createChildSymbol( "tab", "navigation" );
                                             tab.setVariable("contentId", key);
                                             allTabs.push(tab);
                                             tab.$("btnLabel").html( sym.getVariable("labels")[key] || "" );
                                             $tabEl = tab.getSymbolElement();
                                             $tabEl.data("sym", tab);
                                             $tabEl.css({float: "left", margin: "0 -1px 15px 0"});
                                             $tabEl.click(function(evt){
                                                      var tabSym = $(evt.currentTarget).data("sym");
                                                      $.each(allTabs, function(index,item) {
                                                                if (item != tabSym) { item.stop("normal"); item.setVariable("active", false); }
                                                      var $content = sym.$("content").empty();
                                                      sym.createChildSymbol(tabSym.getVariable("contentId"), "content");
    Thank you .

    hi -  trying to get this to work with no luck.
    a simple example as i understand it:
    var test = sym.createChildSymbol("rect", "Stage");
    test.attr("id","test2");
    would that work in changing the id of the newly created symbol to test2?
    thanks!

Maybe you are looking for

  • Mac Mini behaves poorly through DVI at 1920x1080 on HDTV displays

    I recently purchased a Samsung LN-S4695D - a 46" LCD TV capable of 1080p with HDMI and VGA inputs. I've had been using my 23" Cinema Display + a Mac Mini G4 + Rotel Amp as the centerpieces of my Home Theater, and decided to change out the display to

  • Acrobat Reader DC - auto defaults to .PDF viewer

    I work in an enterprise environment that supports around 1200 computers.  I have about 80 users that have various versions of Adobe Acrobat Pro installed on their office computers. When we upgraded our reader product to DC and deployed it, all of the

  • HOW DO YOU CLAME ON THE PRODUCT WARRENTY ON A CRAKED IPOD SCREEN

    how do you clame on the product warrenty on a cracked ipod 4g screen 9 months old?

  • Vendorwise certificates

    Hi all,              Can me maintain incoming certificates verdorwise ? for ex. material 123 is supplied by 2 vendors (A and B) A has to submit chemical test and risk annalysis B has to submit material test report In material master I can only enter

  • Applications opening blank?

    Hey, So a lot of my applications are opening like this... Minesweeper, League of Legends, Spotify, uTorrent... loads! Can anybody help?