How to go over a Context node

Hello,
I have a Context Node myNode which contains many attributes: first_name, last_name, phone ect.
How do I go over the Node in a while/for loop and query each attribute for it's value for example?

Hi,
try something like this:
public static void iterateThroughAttributes(final IWDNode node)
     final int size = node.size();
     final IWDNodeInfo nodeInfo = node.getNodeInfo();
     for (int i = 0; i< size; i++)
          final IWDNodeElement element = node.getElementAt( i );
          for (final Iterator it = nodeInfo.iterateAttributes(); it.hasNext(); )
               final IWDAttributeInfo attributeInfo = (IWDAttributeInfo)it.next();
               element.getAttributeValue( attributeInfo.getName() );
Regards, Maxim R.
Message was edited by: Armin Reichert
corrected code

Similar Messages

  • How to update a webdynpro context node from flex ?

    Hi
    I have an table in webdynpro and a datagrid in flex, both getting the value from the same context node. My requirement is to make the table fields editable and when I make changes in the datagrid, it should get reflected back in the webdynpro table.
    So how can I access the internal table's context node from flex ?
    Can anyone help me with this.

    Hi,
    As you are using a datasource, i assume you have set method in flex to read the datasource(context node). What you need to do is store the reference to this datasource in a local flex variable. Have a look at the below code:
    private var refreshFlexUINode:ArrayCollection;
    public function set refreshFlexUI(datasource:ArrayCollection):void
        refreshFlexUINode=datasource;
    and say you want to edit one row of the table, get that row from ArrayCollection and assign the new value.
    it would be like, if you want to save second row of the datagrid
    Object obj = refreshFlexUI.getItemAt(1)
    obj[<CONTEXT_ATTR_NAME>]=<new value>
    Hope this helps!
    Best Regards,
    Srilatha
    Edited by: Srilatha M on Jun 28, 2011 6:34 AM
    Edited by: Srilatha M on Jun 28, 2011 6:35 AM

  • How to map when the Context node has more than one element

    Dear SDN Community,
      I am develping a WebDynpro java application with Adobe forms. My goal is to present a user a screen with 10 records of customer details and submit. I have created a context element for the customer(Cust#, address details etc) and mentioned the cardinality as 1..n. Now How do I bind these 10 records in my data view to first element, second element... 10th element of the context. Once the user submits, I need to write the 10 record values to Z table. Can you please advice me here.
    Thanks!
    Surya.

    solved this problem by going through the Interactive forms tutorial.

  • How to create a context node for "IBHeader" at the view "BuPaIBaseDetail"?

    hi, experts
    for the requirement, i have to get data from a root BO-IBHeader in the view of "BuPaIBaseDetail".But the view already has IBHeader's child object-"IBComponent", whose controller class is "CL_CRM_IC_BUPACONTROLLER_CN08", how can i create the context node for "IBHeader"?
    angerly wait for the answer. thanks a lot

    If you right click on an empty container or a container with an object in it, it has the same available choices to select. However, if you create a blank property node on the block diagram, and wire up the .net object to it, you will see a much different list of properties.
    So, the property node created from right clicking a .NET container will be for that container, even if there is an object inside. To create a property node for the object, you must wire the .NET object to an empty property node on the block diagram.
    Chris Van Horn
    Applications Engineer

  • How to read the value from one context node in other in the same view.

    Hi,
    I am working on enhanced component ICCMP_BP_CP/BuPaContactPersonCreate ,  i need to read the partner_guid from Customer context node in  contactpersonaddress context node.
    Could you please guid me how to achieve this? if possible, please explain me with some sample code.
    i am trying this code in GET_FAXFAX method of contactpersonaddress-faxfax, but it is throwing me the type cast exception.
    data: lr_entity type ref to cl_crm_bol_entity.
    data: lv_test type string.
    lr_entity ?= collection_wrapper->get_current( ).
    lr_entity = lr_entity->get_related_entity( 'BuilContactPersonAddressRel' ).
    Thanks in advance.
    Regards,
    Kamesh Bathla
    Edited by: Kamesh Bathla on Jun 25, 2009 7:46 PM

    problem solved by writing the code in context node class CREATE_CONTPERSADDRESSVALNODE method
      coll_wrapper = customer->get_collection_wrapper( ).
      TRY.
          entity ?= coll_wrapper->get_current( ).
        CATCH cx_sy_move_cast_error.
      ENDTRY.
      IF entity IS BOUND.
    CONTPERSADDRESSVALNODE->on_new_focus( focus_bo = entity ).
        DATA: lr_collection TYPE REF TO cl_crm_bol_entity,
              lv_fax TYPE string,
              lv_fax_ext TYPE string,
              lv_tel TYPE string,
              lv_tel_ext TYPE string,
              entity_addr TYPE REF TO if_bol_bo_property_access, "#EC *
              coll_wrapper1 TYPE REF TO cl_bsp_wd_collection_wrapper.
         lr_parrent type
        lr_collection = entity->get_related_entity( 'BuilStandardAddressRel' )."'BuilContactPersonAddressRel' ).
        IF lr_collection IS BOUND.
          coll_wrapper1 = contpersaddressvalnode->get_collection_wrapper( ).
          TRY.
              entity_addr ?= coll_wrapper1->get_current( ).
            CATCH cx_sy_move_cast_error.
          ENDTRY.
    getting fax number
          CALL METHOD lr_collection->if_bol_bo_property_access~get_property_as_value
            EXPORTING
              iv_attr_name = 'FAXFAX'
            IMPORTING
              ev_result    = lv_fax.
    ***setting fax number
          CALL METHOD entity_addr->set_property
            EXPORTING
              iv_attr_name = 'FAXFAX'
              iv_value     = lv_fax.

  • How to read the details in the context node of the custom controller

    Hi friends,
        My requirement is i enhanced the component ICCMP_BP_DETAILS , now on EH_ONSAVE i want to read the details of the Context node in the Custom COntroller .
    In custom controller from ICCMP_BP_DETAIL/CuCoBPDuplicate  From this in context node CUSTOMER is there in that attributes first name last name is there i want to read those details
    so can u pls provide the logic for this how can i get the values.
      am very new to the BSP programming
    Regards
    Yogesh

    Hi Suchitha,
    when i am following the above code the lr_entity is not Bound, so can u pls suggest is there any thing is missing
    i used the below mention code but lr_entity is not bound
    DATA: lr_cuco type ref to CL_ICCMP_BP_CUCOBPDUPLICA_IMPL.
                lr_entity type ref to cl_crm_bol_entity.
    lr_cuco ?= me->get_custom_controller( 'ICCMP_BP_DETAIL/CuCoBPDuplicate') .
    CHECK lr_cuco IS BOUND.
    lr_entity ?= lr_cuco->typed_context->customer->collection_wrapper->get_current( ) .
    CHECK lr_entity IS BOUND .
    lr_entityIF_BOL_BO_PROPERTY_ACCESSGET_PROPERTY_AS_VALUE( iv_attibute =  'FIRST_NAME' ev_attribute = lv_firstname ) .
    Please correct the code if any thing is missing
    Regards,
    Yogesh

  • How to delete the context node in BSP Component?

    Hi,
    I have created a custom context node in one of the components : BP_BPBT.
    Now, I want to delete the context node..
    Could you please tel me, how can I do that?
    Thanks,
    Sandeep

    Hi Sandeep,
      Please check the below link.
    [How to delete Context Node;
    Regards,
    Lakshmi.Y

  • How to add a field in the view not in context node

    Hi All,
            I want to add a new field in one of my views. The problem is that the field does not exist in the context node. I have checked in the BOL model there it comes under another root object. I would  like to know whether it is possible to add the field from another root object.
    can you please help to me to solve this issue.
    Advance Thanks & Regards
    Sujith

    Hi Ashish,
                  I will give a detailed explanation of my requirement. I am working in ICWEB client for utility services, In this case for a particular view in the bsp application CRM_IUFCS_IC/View1.htm i want to add a field but the field is not the context nodes, or any of the related entities in the BOl Model. But its in  another root object in the BOL Model. So i would like to know how can i add this field into my layout.
    e.g.:let context node in view to be modified is buag and the field to be added is under BuilHeader object. This is the scenario.
    Advance Thanks,
    Sujith

  • How to populate a context node on the basis of the values in another node?

    Hi,
    I have a Webdynpro application which has to run on Portal as well as BlackBerry.
    In this application I have a scenario where I need to have a sub node inside a node but as Blackberry doesn't support sub nodes with Singleton value false, I have to use another node for storing the values which earlier wre present in the sub node.
    The actual scenario here is that we have two tables A & B. For each row of table A we have a no of rows in table B. This can be easily accomplished for Web Browser but we need to do this for Blackberry.
    My question here is that how can i populate the data in table B at runtime using the concept of onLeadSelect. I am not able to fully undersans this concept.
    According to my approach I have two a while loop which generates data for  table A and inside this while loop I have another while which generates data for table B corresponding to each iteration of the outer while loop. I create the node elements for the rows of the table B and store them in a list and then store this list in a HashMap corresponding to a key formed by combining the values of all the elements of the row of table A.
    Now I am not able to understand how can I display this data into table on user slecting a particular row.
    Please guide ASAP.
    It wille quite useful if you can provide me with some code snippets for the same.
    Thanks in advance!
    Manish

    Hi Manish,
             In WebDynpro u can use the onLeadSelect event of table A and do all the processing in that method.Like u can use this method to fill ur context node,which will be the source node for table B. So this way u need not to use any hash map.Fill the source node of table B with data corresponding to ur selected data of table A.
      I hope this solution wud help u in solving ur problem.
    Reena

  • How to search data from a context node.

    Hi Friends,
    Thanks for ur help for previous problem . I am facing some other problem i.e how to
    search data from a context node.
    i have a context node :-
    Car(main node) which consist of details, owners, engine and Brand  as its sub node.
    the value attibutes of difft nodes are:-
    Car-  category
    Details-  Mileage, Price, registration_no, miles_used
    owner -  name, phnno,addrs
    Brand -  main_brand, co_brand
    Engine- Bhp,Rpm
    Now i have to apply a search criteria on the basis of price, miles_used .
    pls help to implement that .
    Thanks & regards
    Pravin jha

    Hi PRAVIN,
                       What I can understand from your problem is that, you have a list with various properties and you want to display them and search them in your WD App. If I am correct, use the following approach:
    Instead of using "details, owners, engine and Brand" Nodes, use the attributes inside the parent node. i.e in the node Car, add all the attributes viz. Mileage, Price, registration_no, miles_used, name, phnno,addr etc.
    Now you can create a table of this node "Car" and can easily search on the basis of any criteria.
    I hope this solves your issue. If you are looking for something else, please revert, I'll be happy to help you.
    Cheers!!!
    Umang

  • How to bind UI Element with Context Node Attribute Element

    Hi,
    I'm building my view dynamically in the wdDoModifyView method.
    Is it possible to bind a "TextView" element to a specific element of an attribute node?
    Scenario:
    Node_Employees
    |
    +- Attribute_Code
    |
    +- Attribute_Name
    Node Contents:
    Employees
    |
    +- Code: 1, Name: Employee 1
    |
    +- Code: 2, Name: Employee 2
    |
    +- Code: 3, Name: Employee 3
    I need to do something like binding a TextView UI element to the "Name" attribute of the element #2, what would result to show "Employee 2" on my view.
    How can I do this?
    Thanks in advance,
    Geraldo.

    Hi Saravanan,
    First I populate the context node and it won't change during view's lifecycle.  After that, I build my view and bind the TextView UI elements to the node context attributes elements.
    If the node has 10 elements, I will build 10 TextView UI elements and bind them to each attribute element.
    Regards,
    Geraldo Brígido.

  • How to read context node/attribute data of diff UI component of same screen

    Hi,
    I am new to CRM and as well as BSP, Now the requirement is, at the time of Lead creation, when the end user enters customer code and sales area i need to fetch and display the customer group 1 value( VIP,KAM etc) based on the customer's sales area, ( these are sales area specific values).
    but the problem is Customer code is in diff UI component and sales area data is in diff UI component .
    1) customer code attribute is in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTPARTNERPROSPECT.
    2) sales area fields are in the UI component BTORGSET, View BTORGSET\OrgSetData, Context node is BTORGSET.
    3) I have created new field(customer type to display the customer group 1 value "VIP") in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTLEADH.    
    To display the value in the context node BTLEADH, i need to know the sales area data which is entered in BTORGSET.
    Kindly let me know how to read the data which is in diff UI component of the same Lead creation screen.
    i written following code in context node BTLEADH, atttribute New Zfield, in get method, but not able solve, please guide me.
      DATA: LR_ENT TYPE REF TO CL_CRM_BOL_ENTITY,
                 LR_COL TYPE REF TO IF_BOL_ENTITY_COL.
      LR_ENT ?= ME->TYPED_CONTEXT->BuilHeader->COLLECTION_WRAPPER->GET_CURRENT( ).
      LR_COL = LR_ENT->GET_RELATED_ENTITIES( IV_RELATION_NAME = 'BuilSalesArrangementRel' ).
      LR_ENT ?= LR_COL->GET_FIRST( ).
      IF LR_ENT IS BOUND.
        LR_ENT->GET_PROPERTY_AS_VALUE( EXPORTING IV_ATTR_NAME = 'DIVISION'  IMPORTING EV_RESULT =  LV_DIVISION  ).
      ENDIF.
    I'll appreciate if you can provide me some documents to refer.
    awaiting for your responses.
    Thanks
    Bhanu

    Hi Gangadhar,
    I think i have not clearly explained my requirement, let me put it once again. My requirement is, I have to read two UI component data, validate and display some value in one new zfield which is in one of the UI components.
    I need to display customer's sales area specific data like customer group 1 value in that new zfield. for that i need Customer code and as well as sales area data from the screen.
    1) customer code attribute is in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTPARTNERPROSPECT.
    2) sales area fields are in the UI component BTORGSET, View BTORGSET\OrgSetData, Context node is BTORGSET.
    3) I have created new field(customer type to display the customer group 1 value "VIP") in UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTLEADH.
    As per my understanding, in the context node BTLEADH, GET_METHOD of atttribute New Zfield, i have to read customer code from UI component BT108H_LEA, View BT108H_LEA\Detail, Context node is BTPARTNERPROSPECT and Sales area data from UI component BTORGSET, View BTORGSET\OrgSetData, Context node is BTORGSET based on the values, validate and display the data.
    But as per your recent reply you are asking me to write the code in get_property_attribute---division. so i didnt understand.
    Kindly clarify if i am wrong.
    awaiting for your response.
    Thanks
    BHanu

  • How to populate the context nodes based on an event

    Hi All,
    I am having a basic problem. I have created a new Webdynpro Abap application. Here, in the main view, i have define a text view as well as a table. I have created context nodes A and B in component controller. The attributes under A are A1 and the attributes of B are B1,B2, and B3. I have also created an action button C in the same view. These have been mapped to the context nodes in the main view. A1 is mapped to the text view and B1, B2 and B3 are mapped to the table.
    My requirement is as follows. When user Clicks on execute, i want to use the value A1 from the text view in a function module and return the values to B1, B2 and B3. B1, B2 and B3 are multiple values mind you.
    I have successfully executed the function module within the WDONACTIONC method. How to i accomplish this Basic Task. Please Help
    Best Regards
    Mazin

    Hi Mazin,
    Step 3 is as follows...
    Say you have a context node, you have to bind this node with table UI element, now this node must contain some context attribute which you have to bind with your columns of table. now say name of context node is cn_table. now what you have to do is get data from FM in the internal table..........
    now move data by using move corresponding or by looping depending on requirement to an internal table which has fields with the same name as that of name of your attributes... this is imp to display the data...... now you can bind this internal table with context node using code below.......
    data lo_nd_cn_table type ref to if_wd_context_node.
      data lo_el_cn_table type ref to if_wd_context_element.
      data ls_cn_table type wd_this->element_cn_table.
      data it_table type wd_this->elements_cn_table.
      data wa_table type wd_this->element_cn_table.
      data it type standard table of t005t.
      data wa type t005t.
    **   navigate from <CONTEXT> to <CN_TABLE> via lead selection
    select * from t005t into TABLE it.
      loop at it into wa.
        wa_table-ca_one = wa-land1.
        wa_table-ca_two = wa-landx.
        wa_table-ca_three = wa-natio.
        wa_table-ca_enable = abap_true.
       append wa_table to it_table.
        endloop.
    lo_nd_cn_table = wd_context->get_child_node( name =
    wd_this->wdctx_cn_table ).
    *   get element via lead selection
        lo_el_cn_table = lo_nd_cn_table->get_element(  ).
    lo_nd_cn_table->bind_table( it_table ).
    ca-one, ca_two, ca_three and ca_enable are name of my context attribute......
    regards
    Pranav
    Edited by: Pranav Nagpal on Dec 22, 2008 10:08 AM

  • How can i loop over treeview selected nodes and then to delete each node if it's a directory or a file ?

    I have this code:
    if (s == "file")
    file = false;
    for (int i = 0; i < treeViewMS1.SelectedNodes.Count; i++)
    DeleteFile(treeViewMS1.SelectedNode.FullPath, file);
    I know it's a file and it is working if it's a single file.
    On the treeView i click on a file right click in the menu i select delete and it's doing the line:
    DeleteFile(treeViewMS1.SelectedNode.FullPath, file);
    And it's working no problems.
    But i want to do that if i selected some files togeather multiple selection then to delete each file.
    So i added the FOR loop but then how do i delete from the SelectedNodes each node ?
    The treeView SelectedNodes dosen't have FullPath like SelectedNode also doing SelectedNodes[i] dosen't have the FullPath property.
    Same as for if i want to delete a single directory or multiple selected directories:
    This is the continue of the code if it"s not a "file" (else) it's null i know it's a directory and doing:
    else
    file = true;
    RemoveDirectoriesRecursive(treeViewMS1.SelectedNode, treeViewMS1.SelectedNode.FullPath);
    Also here i'm using SelectedNode but if i marked multiple directories then i how do i loop over the SelectedNodes and send each SelectedNode to the RemoveDirectoriesRecrusive method ?
    My problem is how to loop over SelectedNode(multiple selection of files/directories) and send each selected file/directory to it's method like i'm doing now ?

    foreach (TreeNode n in treeViewMS1.SelectedNodes)
    // Remove everything associated with TreeNode n here
    I don't think it's any harder than that, is it?
    If you can multi-select both an item and one of its descendents in the tree, then you'll have the situation that you may have deleted the parent folder and all of its children by the time you get around to deleting the descendent.  But that's not such
    a big deal.  A file can get deleted externally to your program too - so you'll just have to deal with it having been deleted already (or externally) when you get around to deleting it yourself.

  • How to map XML to Web Dynpro context nodes?

    Hi All,
    Could anyone tell how xml string can be bound to context nodes ? In my requirement i need to serialize context nodes value to string and deserialize it back to nodes for implementing back naviagtion between views.
    I didnt see much threads achieving this giving details on class cl_wdr_xml_convert_util and methods if_wd_client_conversion_util~string_to_struct.
    I am using wd_context->to_xml to convert into xml.
    From this format, i want to bind it back to context  node.
    When i use this below approch i get short dumb.
    Serialization to xml:
    lv_data_string = wd_context->to_xml( ).
    Deserialization:
      DATA lv_typedescr           TYPE REF TO cl_abap_typedescr.
      FIELD-SYMBOLS:
                     <fs_data>    TYPE ANY TABLE.
      CALL METHOD cl_abap_typedescr=>describe_by_object_ref
        EXPORTING
          p_object_ref         = wd_context
        RECEIVING
          p_descr_ref          = lv_typedescr
        EXCEPTIONS
          reference_is_initial = 1
          OTHERS               = 2.
       try.
      CALL METHOD cl_wdr_xml_convert_util=>if_wd_client_conversion_util~string_to_struct
        EXPORTING
          in            = lv_data_string
          typedescr = lv_typedescr
        IMPORTING
          data      =  <fs_data>
      CATCH cx_wdr_conversion_exception into lo_err .
      lv_exp = lo_err->get_text( ).
    ENDTRY.
      wd_context->bind_table( values = <fs-data>.
    Using this way, i get a short dumb as assert statement is failed as value for  typedescr->type_kind is '*'.
    method if_wd_client_conversion_util~string_to_struct.
      assert typedescr->type_kind = cl_abap_typedescr=>typekind_struct1
          or typedescr->type_kind = cl_abap_typedescr=>typekind_struct2.
      raise exception type cx_wdr_conversion_exception
        exporting textid = cx_wdr_conversion_exception=>illegal_type.
    On debugging changing this value to required also made no difference, as no value could be assigned to the field symbol.
    Suggest a soution to do this.

    Hi Thomas,
    Thanks for your replies.
    I have corrected it, but the field symbol is empty and while debugging it says data type is incorrect.
    code:
      FIELD-SYMBOLS:
                     <fs_data>    TYPE ANY TABLE.
    data:       lsbp type ZXBPCENTRAL,
                   go_ref type ref to data.
    CALL METHOD cl_abap_typedescr=>describe_by_data " ( before it was describe_by_object_ref)
    EXPORTING
    p_data = lsbp
    receiving
    p_descr_ref = lv_typedescr.
    try.
    CALL METHOD cl_wdr_xml_convert_util=>if_wd_client_conversion_util~string_to_struct
    EXPORTING
    in = lv_data_string
    typedescr = lv_typedescr
    IMPORTING
    data = go_ref "<fs_data>
    CATCH cx_wdr_conversion_exception into lo_err .
    lv_exp = lo_err->get_text( ).------> Here the error says " Invalid data type and hence, there is no data.
    ENDTRY.
    assign go_ref->* to <fs_data>.
    I am still looking for solution and thanks a lot ....

Maybe you are looking for