Workflow '399538': No successor exists node 27 with value '8994'

Hai All,
I created a Workflow with 2 steps... (1 Activity for Approve/Reject and Second Activity - Send corresponding Mail)
When Executing first step, a mail has to be sent to the WorkflowInitiator...stating the status (whether approved or Rejected)  and I am facing a problem in this phase.
When executing Step-1, the mail is not Sent and when I take the Log... it shows the error... Workflow '399538': No successor exists node 27 with value '8994' ...
What could be the reason??? I would appreciate your suggestions...
Thanks & Regards.
Jubish

Hi All,
I am having the similar problem. This was a workflow developed in 4.7 and upgraded to ERP2005 and this is a Personnel Requisition workflow.  Client developed a custom WD application for approval process and when the agent processes the form and approve/reject, am updating the workflow container(SAP_WAPI_WRITE_CONTAINER) to approved which is one of the outcome of the task and also return parameter from task to workflow container. After updating the container i am completing the workitem manually with the function SAP_WAPI_WORKITEM_COMPLETE. But thr workflow is not going forward instead i am seeing the error "Error when defining the successor for node &1".
When i looked at the template the node numbers are not in sequence, is this a cause of the issue???
Any help is appriciated.
Thanks and Regards,
Sunil

Similar Messages

  • How to populate value node with values?

    Hi Experts,
    I have created a new view with a vlaue node of table type.
    How can I populate values into the value node?
    Which method will be useful?
    Is there any material for Web UI Programing?
    Please help me in this.
    Thanks,
    Adi.

    Hi Adi
    If ZVal is your value node then,
      DATA: lref_entity    TYPE REF TO cl_bsp_wd_value_node,
            lref_bo_coll   TYPE REF TO if_bol_bo_col,
            lref_data TYPE REF TO <<your ZStructure>>,
             ls_data type <<your ZStructure>>.
    ls_data-<<field1>> = 'XYZ'
    ls_data-<<field2>> = 'XYZ'
         CREATE OBJECT lref_bo_coll TYPE cl_crm_bol_bo_col.
          CREATE DATA lref_data.
          CREATE OBJECT lref_entity
            EXPORTING
              iv_data_ref = lref_data.
          lref_entity->set_properties( ls_data ).
          lref_bo_coll->add( lref_entity ).
          typed_context->ZVal->set_collection( lref_bo_coll ).
    Hope this was helpful.
    Best Regards,
    Lakshminarayana

  • Map Drop down to Context node with value and ID

    I want to map a drop down to dynamic data.  I have a table that is populated at runtime after a BAPI call.  The structure is the same as if you used a simple type. i.e. Value and ID.

    Hi Gordon,
    Try out this
    ISimpleTypeModifiable myType=wdThis.wdGetAPI().getContext().getModifiableTypeOf("MonthName");
    //Set allowed values for this data type
    IModifiableSimpleValueSet values=myType.getSVServices().getModifiableSimpleValueSet();
    values.put("0","January");
    values.put("1","February");
    values.put("2","March");
    values.put("3","April");
    values.put("4","May");
    values.put("5","June");
    values.put("6","July");
    values.put("7","August");
    values.put("8","September");
    values.put("9","October");
    values.put("10","November");
    values.put("11","December");
    where MonthName is a value attribute of type string.
    Regards
    Sid

  • How to search for a text node with a particular value in an xml document with labview

    supposing i have the following xml document:
    <head>
    <book>
    <bookname>zio</bookname>
    <author>dan</author>
    </book>
    <book>
    <bookname>the spear warrior</bookname>
    <author>britney</author>
    </book>
    <book>
    <bookname>the beard</bookname>
    <author>derrick</author>
    </book>
    </head>
    i want to search for the author of the book "the beard" using for example the V.I Get first match  of labview to access the the node with value "the beard" and then use Get next sibling  V.I  and Get node text content to get get the author of this book..so my question is how do i write the xpath expression for Get first match so as to access the node with bookname "the beard" instantyly?  am trying to minimise the use of loops because they increase the time duration,..thank you (NB:i dont want to use Get all Matched V.I because it obliges me to use a loop in order to access the name derrick and this increases the time duration for my v.i)
    Solved!
    Go to Solution.

    Since it's all text, why not use a real quick Match Pattern (or Regular Expression, but you don't need that much power here), see attached.
    Cameron
    To err is human, but to really foul it up requires a computer.
    The optimist believes we are in the best of all possible worlds - the pessimist fears this is true.
    Profanity is the one language all programmers know best.
    An expert is someone who has made all the possible mistakes.
    To learn something about LabVIEW at no extra cost, work the online LabVIEW tutorial(s):
    LabVIEW Unit 1 - Getting Started
    Learn to Use LabVIEW with MyDAQ
    Attachments:
    Two-stage match demo.vi ‏8 KB

  • Create xml file with values from context

    Hi experts!
    I am trying to implement a WD application that will have some input fields, the value of those input fields will be used to create an xml file with a certain format and then sent to a certain application.
    Apart from this i want to read an xml file back from the application and then fill some other context nodes with values from the xml file.
    Is there any standard used code to do this??
    If not how can i do this???
    Thanx in advance!!!
    P.S. Points will be rewarded to all usefull answers.
    Edited by: Armin Reichert on Jun 30, 2008 6:12 PM
    Please stop this P.S. nonsense!

    Hi,
    you need to create three util class for that:-
    XMLHandler
    XMLParser
    XMLBuilder
    for example in my XML two tag item will be there e.g. Title and Organizer,and from ur WebDynpro view you need to pass value for the XML tag.
    And u need to call buildXML()function of builder class to generate XML, in that i have passed bean object to get the values of tags. you need to set the value in bean from the view ui context.
    Code for XMLBuilder:-
    Created on Apr 4, 2006
    Author-Anish
    This class is to created for having function for to build XML
    and to get EncodedXML
      and to get formated date
    package com.idb.events.util;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import com.idb.events.Event;
    public class XMLBuilder {
    This attribute represents the XML version
         private static final double VERSION_NUMBER = 1.0;
    This attribute represents the encoding
         private static final String ENCODING_TYPE = "UTF-16";
         /*Begin of Function to buildXML
    return: String
    input: Event
         public String buildXML(Event event) {
              StringBuffer xmlBuilder = new StringBuffer("<?xml version=\"");
              xmlBuilder.append(VERSION_NUMBER);
              xmlBuilder.append("\" encoding=\"");
              xmlBuilder.append(ENCODING_TYPE);
              xmlBuilder.append("\" ?>");
              xmlBuilder.append("<event>");
              xmlBuilder.append(getEncodedXML(event.getTitle(), "title"));
              xmlBuilder.append(getEncodedXML(event.getOrganizer(), "organizer"));
              xmlBuilder.append("</event>");
              return xmlBuilder.toString();
         /End of Function to buildXML/
         /*Begin of Function to get EncodedXML
    return: String
    input: String,String
         public String getEncodedXML(String xmlString, String tag) {
              StringBuffer begin = new StringBuffer("");
              if ((tag != null) || (!tag.equalsIgnoreCase("null"))) {
                   begin.append("<").append(tag).append(">");
                   begin.append("<![CDATA[");
                   begin.append(xmlString).append("]]>").append("</").append(
                        tag).append(
                        ">");
              return begin.toString();
         /End of Function to get EncodedXML/
         /*Begin of Function to get formated date
    return: String
    input: Date
         private final String formatDate(Date inputDateStr) {
              String date;
              try {
                   SimpleDateFormat simpleDateFormat =
                        new SimpleDateFormat("yyyy-MM-dd");
                   date = simpleDateFormat.format(inputDateStr);
              } catch (Exception e) {
                   return "";
              return date;
         /End of Function to get formated date/
    Code for XMLParser:-
    Created on Apr 12, 2006
    Author-Anish
    This is a parser class
    package com.idb.events.util;
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    import org.xml.sax.XMLReader;
    import com.idb.events.Event;
    import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
    public class XMLParser {
    Enables namespace functionality in parser
         private final boolean isNameSpaceAware = true;
    Enables validation in parser
         private final boolean isValidating = true;
    The SAX parser used to parse the xml
         private SAXParser parser;
    The XML reader used by the SAX parser
         private XMLReader reader;
    This method creates the parser to parse the user details xml.
         private void createParser()
              throws SAXException, ParserConfigurationException {
              // Create a JAXP SAXParserFactory and configure it
              SAXParserFactory saxFactory = SAXParserFactory.newInstance();
              saxFactory.setNamespaceAware(isNameSpaceAware);
              saxFactory.setValidating(isValidating);
              // Create a JAXP SAXParser
              parser = saxFactory.newSAXParser();
              // Get the encapsulated SAX XMLReader
              reader = parser.getXMLReader();
              // Set the ErrorHandler
    This method is used to collect the user details.
         public Event getEvent(
              String newsXML,
              XMLHandler xmlHandler,
              IWDMessageManager mgr)
              throws SAXException, ParserConfigurationException, IOException {
              //create the parser, if not already done
              if (parser == null) {
                   this.createParser();
              //set the parser handler to extract the
              reader.setErrorHandler(xmlHandler);
              reader.setContentHandler(xmlHandler);
              InputSource source =
                   new InputSource(new ByteArrayInputStream(newsXML.getBytes()));
              reader.parse(source);
              //return the results of the parse           
              return xmlHandler.getEvent(mgr);
    Code for XMLHandler:-
    Created on Apr 12, 2006
    Author-Anish
    This is a parser class
    package com.idb.events.util;
    import java.io.ByteArrayInputStream;
    import java.io.IOException;
    import javax.xml.parsers.ParserConfigurationException;
    import javax.xml.parsers.SAXParser;
    import javax.xml.parsers.SAXParserFactory;
    import org.xml.sax.InputSource;
    import org.xml.sax.SAXException;
    import org.xml.sax.XMLReader;
    import com.idb.events.Event;
    Created on Apr 12, 2006
    Author-Anish
    *This handler class is created to have constant value for variables and function for get events,
        character values for bean variable,
        parsing thr date ......etc
    package com.idb.events.util;
    import java.sql.Timestamp;
    import java.text.SimpleDateFormat;
    import java.util.Date;
    import java.util.Locale;
    import org.xml.sax.Attributes;
    import org.xml.sax.SAXException;
    import org.xml.sax.SAXParseException;
    import org.xml.sax.helpers.DefaultHandler;
    import java.util.*;
    import com.idb.events.Event;
    import com.sap.tc.webdynpro.progmodel.api.IWDMessageManager;
    public class XMLHandler extends DefaultHandler {
         private static final String TITLE = "title";
         private static final String ORGANIZER = "organizer";
         IWDMessageManager manager;
         private Event events;
         private String tagName;
         public void setManager(IWDMessageManager mgr) {
              manager = mgr;
    This function is created to get events
         public Event getEvent(IWDMessageManager mgr) {
              manager = mgr;
              return this.events;
    This function is created to get character for setting values through event's bean setter method
         public void characters(char[] charArray, int startVal, int length)
              throws SAXException {
              String tagValue = new String(charArray, startVal, length);
              if (TITLE.equals(this.tagName)) {
                   this.events.setTitle(tagValue);
              if (ORGANIZER.equals(this.tagName)) {
                   String orgName = tagValue;
                   try {
                        orgName = getOrgName(orgName);
                   } catch (Exception ex) {
                   this.events.setOrganizer(orgName);
    This function is created to parse boolean.
         private final boolean parseBoolean(String inputBooleanStr) {
              boolean b;
              if (inputBooleanStr.equals("true")) {
                   b = true;
              } else {
                   b = false;
              return b;
    This function is used to call the super constructor.
         public void endElement(String uri, String localName, String qName)
              throws SAXException {
              super.endElement(uri, localName, qName);
         /* (non-Javadoc)
    @see org.xml.sax.ErrorHandler#fatalError(org.xml.sax.SAXParseException)
    This function is used to call the super constructor.
         public void fatalError(SAXParseException e) throws SAXException {
              super.fatalError(e);
    This function is created to set the elements base on the tag name.
         public void startElement(
              String uri,
              String localName,
              String qName,
              Attributes attributes)
              throws SAXException {
              this.tagName = localName;
              if (ROOT.equals(tagName)) {
                   this.events = new Event();
         public static void main(String a[]) {
              String cntry = "Nigeria";
              XMLHandler xml = new XMLHandler();
              ArrayList engList = new ArrayList();
              engList = xml.getCountries();
              ArrayList arList = xml.getArabicCountries();
              int engIndex = engList.indexOf(cntry);
              System.out.println("engIndex  :: " + engIndex);
              String arCntryName = (String) arList.get(engIndex);
              System.out.println(
                   ">>>>>>>>>>>>>>>>>>>>" + xml.getArabicCountryName(cntry));
    Hope that may help you.
    If need any help , you are most welcome.
    Regards,
    Deepak

  • Error when defining successor of node in workflows

    Hi Experts,
    I am receiving an error which says "error when defining successor of node XYZ". However in my workflow template, this particular XYZ node does not exists.
    Also I found one entry in SWP_SUSPEN table for the main workflow. I tried to execute the report manually RSWWERRE. Still it did not work out.
    I also tried to use transaction SWF_ADM_SUSPEND. However my workitem is not showing in the list.
    Kindly help me in this issue.
    Thanks
    Gopal

    Hi,
    This problem occurs because the nodes system table with respect to workflow is not updated properly. I hope you might have deleted or changed the workflow design after this you need to update the index of the workflow template too.
    Follow the below steps
    1. Execute PFTC choose task type as Workflow template and open in change mode.
    2. On menu goto Addtional Data ---> Agent Assignment ---> Maintain
    3. Choose the workflow template ID and click on the icon on the application tool bar with Red and white colur (Football ) i am not sure I think you can try with CTRL + F11 but you hvae to update the index.
    After doing this Execute SWUD txn Check for the consistencies of the workflow template. if you do not find any error refresh the buffer and org environment.
    Even after doing all this stuff you still face the issue then generate a version  just simply insert a dummy step in the workflow activate and then delete the dummy step activate and refresh the buffer and org environment and try to execute.
    This error ususally occurs (upto my knowledge) if the nodes table of the workflow is not updated properly, So the above mentioned  ways are to deal with it.
    Regards
    Pavan

  • Using XSLT to extract value of a XML node with namespace

    I have a XML source code here.
    <?xml version="1.0" encoding="utf-8" ?>
    <rss version="2.0" xmlns:job="http://www.pageuppeople.com">
      <channel>
        <title>SMH Jobs</title>
        <link>internalrecruitment.smhgroup.com.au/jobsrss.ashx?stp=di</link>
        <description>A listing of jobs available here</description>
        <item>
          <title>eCommerce Optimisation Advisor</title>
          <description>A new and exciting opportunity exists for an experienced eCommerce Advisor to join</description>
          <job:location PUReferenceID="3711">Sydney - Inner Suburbs & CBD</job:location>
        </item>
      </channel>
    </rss>
    I want to use XSLT to extract value of a XML node with namespace <job:location>, and the returned value should be string 'Sydney - Inner Suburbs & CBD'. I tried a few XSL code below, but failed with error or nothing was returned.
    <xsl:value-of select="job:location" disable-output-escaping="yes"/>
    <xsl:value-of select="job/location" disable-output-escaping="yes"/>
    <xsl:value-of select="job\location" disable-output-escaping="yes"/>
    <xsl:value-of select="location" disable-output-escaping="yes"/>
    This might be an easy question for you, but I would appreciate if anyone can help.

    Hi Suncorp IT Learner,
    We need to tell the XSLT that some elements are in another namespace. Copy the xmls declarations for the prefixes you need to use. Then use the xsl format as:
    <xsl: value-of select=”job:location/@PUReferenceID”/>
    In following issue, Chriztian has a good explanation:
    http://our.umbraco.org/forum/developers/xslt/33353-XSLT-reading-XML-attribute-value
    Thanks,
    Qiao Wei
    TechNet Community Support

  • Value nodes with depth in Context - programmatically binding.

    I am resonably new to Java Webdynpro and have been unable to solve this issue so far if someone has a link to a implementation (pseudo code) it would be greatly appreciated.
    I have a context supplied from an interface that is not flat.
    With data in the context it may look something like this with value attributes in each Node
    Context -
    -Node A1
               --- Node B1
               --- Node B2
    - Node A2
               --- Node B3
               --- Node B4
    If the A nodes where only nodes I could loop through the number of Nodes I wanted to create, something like;
       INodeAElement tempNode = wdContext.createNodeAElement();
       tempNode.setAttributes ..........
       wdContext.NodeNodeA.bind(tempNode).
    or build and arraylist and bind that ...but when it comes to a Node with daughter Nodes I havent the slight idea of how to build the structure. I'm sure its a very simple answer but I have no idea how to do it, and I havent been able to find any reference on how to do it.
    Can anyone point me in the right direction ..
    thanks in advance.

    Context -
    -Node A1
    --- Node B1
    --- Node B2
    - Node A2
    --- Node B3
    --- Node B4
    It depends on if the B-nodes are singleton or non-singleton child nodes.
    For non-singleton child nodes there exists one B-node for each A-node-element.
    In that case the context can be filled like this:
    IA1Element a1 = wdContext.nodeA1().createAndAddA1Element();
    for (int i = 0; i < some_number; ++i)
      IB1Element b1 = a1.nodeB1().createAndAddB1Element();
    for (int i = 0; i < some_number; ++i)
      IB2Element b2 = a1.nodeB2().createAndAddB2Element();
    And so on.
    Armin

  • HI Can I add a child node to an Element Node with a name that  exists

    HI,
    Can I add a child node to an Element Node with a name that is already existing in the Element Node.
    Let me explain what I need exactly.
    My Existing element Node looks like this:
    <form>
    <name>
    <FirstName></FirstName>
    <LastName></LastName>
    </name>
    </form>
    Can I add another child node with hte name 'FirstName' to the 'name' node ..?
    I want to put a attribute rvsn with a value 1 for the original 'FirstName' element Node.
    so the new Element Node should look like the foloowing:
    <form>
    <name>
    <FirstName rvsn="1"></FirstName>
    <FirstName></FirstName>
    <LastName></LastName>
    </name>
    </form>
    Hopefully this is valid XML !!
    when I tried to use appendChild, it removed the previous node and put the new one. Thats what is the documentation also said.. I read it after I tried it :(
    Anyway, ther should be another way to add a node like that.
    Any hints, ideas will be of great help.
    -Thanks in advance !!
    Murthy

    // this method will start marking the old values with a revision number.
         private void saveNodeDetails (Node node) {
    String Content = "";
    String nodeName = "";
    int rvsn = getRvsn();
    int type = node.getNodeType();
    int tempRvsn = 0;
    String tempNodeName = "";
    String tempParentNodeName = "";
    Node tempParentNode = null;
    // check if element
    if (type == Node.ELEMENT_NODE) {
    Node traverseNode = node;
    nodeName = getNodeName(traverseNode);
    if (nodeName != null && nodeName.trim().length() > 1)
    nodeName = nodeName.substring(0, nodeName.length() - 1);
    if (_debug)
    System.out.print("2. ELEMENT_NODE name## " + nodeName);
    // if the element has no children, its leaf node.
    // if its there in the Hashtble, then update the value from the hashtable.
    if (reqParams.containsKey(nodeName)) {
    if (_debug) System.out.println("3. Hash Value = " + reqParams.get(nodeName).toString());
    if (traverseNode == null)
    if (_debug) System.out.println("3A. traverseNode == null ");
    if (node == null)
    if (_debug) System.out.println("3B. node == null ::(((((");
    // get the node children
    NodeList children = node.getChildNodes();
    // end of getting children for the Node.
    if (_debug) System.out.println("4. Got ChildNodes ");
    if (children != null) {
    int length = 0;
    length = children.getLength();
    if (_debug) System.out.println("5. Got children Length = " + length);
    if( ((Element) node).hasAttribute("rvsn") ){
    System.out.println(" node has Attribute(rvsn) ");
    tempRvsn = Integer.parseInt( ((Element) node).getAttribute("rvsn") );
    if( tempRvsn == rvsn){
    // user is changing the same data again and again.
    // so remove the text node and append the new value as text node finally
    for (int index = 0; index < length; index++) {
    if (_debug) System.out.println("6. index = " + index);
    if (_debug) System.out.println(index + ": children.item( index )@saveNodeDetails@ContainerDoc = " + children.item(index).getNodeType() + " -- " + children.item(index).getNodeValue());
    if (children.item(index).getNodeType() == Node.TEXT_NODE)
    node.removeChild(children.item(index));
    }else{
    int l= 0; // do not do any thing if the current node rvsn is different from the rvsn of the DOM
    // programme logic could enter this part when ther are multiple revisions of the NODe in the DOM,
    // and we are traversing through the previous versions of it.
    } else{
    System.out.println(" node has no Attribute(rvsn) ");
    // the node has no rvsn attribute.
    // it is the initial version of the dom.
    // add the rvsn from the DOM to this NODE for the first time.
    ((Element) node).setAttribute("rvsn", (new Integer(rvsn)).toString() );
    // get parent node and add a new child node with the same name as current node.
    // so parent node will have the previous node with a rvsn and a new node without the rvsn !!
    tempNodeName = node.getNodeName();
    tempParentNode = node.getParentNode();
    tempParentNodeName = tempParentNode.getNodeName();
    System.out.println(" adding node: " + tempNodeName + " to : " + tempParentNodeName);
    node = addNode(tempParentNode, tempNodeName, "");
    getNodeName(node); // print the name of the node after modifying it !!!
    printSiblings(node);
    //System.out.println(" After adding the node : " + getNodeName(node));
    } else if (_debug) {
    System.out.println("7. Node name exist in the Hash but has no children to be removed..!!:: @saveNodeDetails ");
    if (_debug) System.out.println("7B. Update the dom from the hash value " + nodeName + ", " + reqParams.get(nodeName).toString());
    node.appendChild(document.createTextNode(reqParams.get(nodeName).toString()));
    if (node != null) {
    if ( ( (Element) node).hasAttribute("rvw"))
    ( (Element) node).removeAttribute("rvw");
    if ( ( (Element) node).hasAttribute("msg"))
    ( (Element) node).removeAttribute("msg");
    if ( ( (Element) node).hasAttribute("dor"))
    ( (Element) node).removeAttribute("dor");
    }// end of if (type == Node.ELEMENT_NODE)
    NodeList children = node.getChildNodes();
    if (children != null) {
    for (int i = 0; i < children.getLength(); i++) {
    saveNodeDetails(children.item(i));
         } // end of saveNodeDetails method
    public Node addNode(Node parentNode, String nodeName, String value){
    Node newNode = null;
    try{
    newNode = parentNode.appendChild( document.createElement(nodeName) );
    newNode.appendChild( document.createTextNode( value ) );
    }catch(Exception Ex){
    System.out.println("2. Exception@addNode@ContainerDoc = " + Ex);
    return newNode ;
    } // end of addNode method

  • Problem replacing Null nodes with real values in XML documents...

    Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
    Our friends in Java land are insisting on passing data between Java and PL/SQL using fairly small XML documents (don't ask). I then need to extract the input parameter values and pass them, on to the stored procedures that actually do the work. These return a result which needs to be returned to the java layer in the output XML document.
    Here is a cut down version of the input XML...
    <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    <Result xsi:nil="true"/>
    </Parameter>
    <Parameter>
    <Id>2</Id>
    <Result xsi:nil="true"/>
    </Parameter>
    </ParameterList>
    and this is an example of what I am expected to return...
    <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    *<Result>SUCCESS</Result>*
    </Parameter>
    <Parameter>
    <Id>2</Id>
    *<Result>WARNING</Result>*
    </Parameter>
    </ParameterList>
    i.e. I am expected to replace the value of the Result node with a string indicating the succes or otherwise of the underlying PL/SQL process.
    I am extracting the input values using the DBMS_XMLDOM functions and naively assumed that DBMS_XMLDOM.SETNODEVALUE could be used to update the value in the Result node - It didn't work so I resorted to reading the documentation which revealed that it will not work for a null node.
    Am I going to have to use XSLT to generate the output XML from the Input and incorprate the result? Or is there a simpler way?
    I have used XSLT in Oracle before and still have the nervous tick...

    Thanks A Non,
    With your suggestion and a bit of help from the w3schools.com xml dom tutorial I eventually managed to work out how to do this.
    Here is the code (with all my debug stuff in so it looks worse than it is...)
    create or replace
    PROCEDURE ExtractXMLValues (p_inXml IN CLOB ) IS
    l_string VARCHAR2(4000);
    l_value VARCHAR2(4000);
    l_DOM_doc dbms_xmldom.DOMDocument;
    l_DOM_node dbms_xmldom.DOMNode;
    l_new_DOM_node dbms_xmldom.DOMNode;
    l_new_element dbms_xmldom.DOMElement;
    l_new_DOM_nodevalue dbms_xmldom.DOMNode;
    l_value_Node dbms_xmldom.DOMNode;
    l_parameter_Node dbms_xmldom.DOMNode;
    --l_DOM_nodelist    dbms_xmldom.DOMNodeList;
    l_Result_DOM_node dbms_xmldom.DOMNode;
    BEGIN
    l_DOM_doc := dbms_xmldom.newDomDocument(p_inXml);
    l_DOM_node := dbms_xmldom.makeNode(l_DOM_doc);
    dbms_xmldom.writeToBuffer(l_DOM_node, l_string);
    dbms_output.put_line('1 ' || l_string);
    l_parameter_node := dbms_xslprocessor.selectSingleNode(l_DOM_node,'//Parameter');
    -- get the current values in the XML document for Id and Result
    l_Result_DOM_node := dbms_xslprocessor.selectSingleNode(l_DOM_node,'//Id');
    l_value_Node := dbms_xmldom.getFirstChild(l_Result_DOM_node);
    l_value := dbms_xmldom.getnodevalue(l_value_Node);
    dbms_xmldom.writeToBuffer(l_Result_DOM_node, l_string);
    dbms_output.put_line('2 ' || l_string || ' : ' || l_value);
    l_Result_DOM_node := dbms_xslprocessor.selectSingleNode(l_DOM_node,'//Result');
    l_value_Node := dbms_xmldom.getFirstChild(l_Result_DOM_node);
    l_value := dbms_xmldom.getnodevalue(l_value_Node);
    dbms_xmldom.writeToBuffer(l_Result_DOM_node, l_string);
    dbms_output.put_line('3 ' || l_string || ' : ' || l_value);
    -- create new Result node
    l_new_DOM_node      := dbms_xmldom.makenode(dbms_xmldom.createElement(l_DOM_doc, 'Result'));
    dbms_xmldom.writeToBuffer(l_new_DOM_node, l_string);
    dbms_output.put_line('4 New node : ' || l_string);
    -- create a value for it
    l_new_DOM_nodevalue := dbms_xmldom.makenode(dbms_xmldom.createtextnode(l_DOM_doc, 'SUCCESS'));
    dbms_xmldom.writeToBuffer(l_new_DOM_nodevalue, l_string);
    dbms_output.put_line('5 New node value : ' || l_string);
    -- add the value to the new Result node
    l_new_DOM_nodevalue := dbms_xmldom.appendchild(l_new_DOM_node,  l_new_DOM_nodevalue);
    dbms_xmldom.writeToBuffer(l_new_DOM_node, l_string);
    dbms_output.put_line('6 New node : ' || l_string);
    -- replace the old node with the new one
    l_Result_DOM_node := dbms_xmldom.replaceChild(l_parameter_node, l_new_DOM_node, l_Result_DOM_node);
    dbms_xmldom.writeToBuffer(l_parameter_node, l_string);
    dbms_output.put_line('6 parameter node : ' || l_string);
    dbms_xmldom.writeToBuffer(l_DOM_node, l_string);
    dbms_output.put_line('7 Updated document ' || l_string);
    dbms_xmldom.freeDocument(l_DOM_doc);
    END ExtractXMLValues;
    and the output...
    1 <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    <Result xsi:nil="true"/>
    </Parameter>
    </ParameterList>
    2 <Id>1</Id> : 1
    3 <Result xsi:nil="true"/> :
    4 New node : <Result/>
    5 New node value : SUCCESS
    6 New node : <Result>SUCCESS</Result>
    6 parameter node : <Parameter>
    <Id>1</Id>
    <Result>SUCCESS</Result>
    </Parameter>
    7 Updated document <ParameterList xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <Parameter>
    <Id>1</Id>
    *<Result>SUCCESS</Result>*
    </Parameter>
    </ParameterList>
    One question, why do the dbms_xmldom functions return the Old value? I was expecting the returned value to be the updated node.
    Edited by: Lone voice on May 14, 2009 11:24 AM

  • Unable to add value to model node with cardinality 0..n

    Hi All,
       Im working with Webdynpro Java.i have an issue here.i have a input field item named customer and a drop down box item location.when i give customer and location as inputs,a WSDL (named Equipment WSDL) is called.the result is a  drop down list containing equipments id
    i took a custom node location with cardinaliy 0..n.i gave static values as input for location.i need to set the location values to model node location.when i m giving a single value to custom node location,that static value is not accepted by model node location(in WSDL) whose cardinality is 0..n.
    Please suugest a solution for this issue
    With Regards,
    Ushasri.

    HI Ushashri,
    What do you mean by 'static value is not accepted by model node location'
    how you have done the mapping
    send me the hierarchy of rfc and ur value node
    With Regards
    Naidu

  • Replacing a value of a node with CDATA (as is)

    Hi All,
    How do I replace the value of a node such that it's CDATA format is preserved and not re-encoded. Currently, when I do similar to the following:
    replace value of node doc(doc_name)/parent/node with "<![CDATA[[the data]]]>"
    the less than and greater than signs are replaced with &lt ; and &gt ; respectively, losing its CDATA section status.
    How do I replace the value such that within the resulting XML it is exactly "<![CDATA[[the data]]]>" and not "&lt ;[CDATA[]the data]]&gt ;" ?
    Thanks in advance
    Cecil
    Edited by: user5969022 on Jan 8, 2009 9:41 PM
    Edited by: user5969022 on Jan 8, 2009 9:42 PM
    Edited by: user5969022 on Jan 8, 2009 9:44 PM
    Edited by: user5969022 on Jan 8, 2009 9:45 PM

    John,
    I am aware that it's synatic sugar. However, I actually need it to look that way. Thing is after edits, the resulting XML will be read by a component (that I have no access to change) which requires that node to have CDATA (as is) as it's value.
    Anymore ideas; Anyone?
    Instead of replacing the value (ie. replace value of node doc()...), I replaced the node (ie. replace node doc()...) with something similar to: <node>CDATA-section</node>. However, as expected only the data within the CDATA section gets persisted.
    In this case could I turn something off or on such that xmldb leaves the CDATA-section as is? e.g. http://www.xquery.com/tips_and_tricks/including_CDATA_in_results.html
    Thanks,
    Cecil

  • Hardcode values of the node with cardinality 0..n

    Good day!
    I need to hardcode a list of element to the node with cardinality 0..n.
    Node has two attributes.
    How can I fill the node with a few element in the input mapping? I know I can do it with a single element by separating values by comma. Is it possible to fill the node?

    Hello.
    I've the same problem. Can you say how to set list of values for a structure?
    For example, we've node FIELD containing two attributes:  ID and NAME.
    FIELD is a node with cardinality 0..*. How to set at least two elements to the node?
    Your example works only for simple attributes with cardinality 0..*, but it doesn't work for structures.
    Best Regards,
    Timur Semenchuk.

  • How to set values to the structure containing a node with cardinality 0..n

    Hello.
    I 'm trying to set values for the node with cardinality 0..n. The node type is "Fields".
    <xsd:complexType name="Field">
       <xsd:sequence>
          <xsd:element name="fieldCode" type="xsd:string"></xsd:element>
          <xsd:element name="displayValue" type="xsd:string" minOccurs="0"></xsd:element>
       </xsd:sequence>
    </xsd:complexType>
    <xsd:complexType name="Fields">
       <xsd:sequence>
          <xsd:element name="field" type="tns:Field" minOccurs="0" maxOccurs="unbounded"></xsd:element>
       </xsd:sequence>
    </xsd:complexType>
    I  need to set several values for the element "fieldCode" but it has cardinality 0..1 and BPM does not allow it but I did not find any option about how to set values for the structure of type "Fields". Could you help me?
    Best regards,
    Timur Semenchuk

    Hi Marcus,
    If there is no way you could change the cardinality of the node, and thus it can contain 0..n items, I think you should create-and-add a new element programmatically.
    Since the collection can contain zero elements, I would add a 'new' button, which upon clicking adds one new element via:
    IYourNodeElement yourNodeElem = wdContext.nodeYourNode().createYourNodeElement();
    wdContext.nodeYourNode().addElement(yourNodeElem);
    Hope this explains a bit!
    Best,
    Robin van het Hof

  • Navigate between View with Value Node.

    Dear Expert,
        I would like to know the best way to carrying data in Webdynpro between View.
       For example, I have a Quiz applcation with 10 pages (View) of question.  I would like to submit the answer at the end of the page (10th View).   So, at the end of the page, I need the to retreive the answer from page 1 to 10 and submit it.
    1.   I am using copyToLocal.  What that does it when the application fire Next event plug.  it will
    Quiz.<b>set</b>QuizAns1(Quiz.<b>get</b>QuizAns1)
    and do the same thing for next 9 pages in order to bring the answer from page 1 to the end.
    To simplfied, I am considering.
    2.  Model Beans
    /people/valery.silaev/blog/2005/06/29/apojo--almostplain-old-java-objects-as-model
    3.  Session Beans.
         Is any concern that I shouldn't use session bean in webdynpro??
    Or any other way to make the Code more organize?
    Thanks all.

    Hi,
    The best way to carry data in WebDynpro views is through context attributes.
    Create a context as below in component controller
    Context
    +Questions (node:cardinality 0..n,selection 0..n)
    ---Question
    +Answers
    ---Ans (node:cardinality 0..n,selection 0..n)
    Map the above context to all the views.
    In the wdDoInit() of component controller create Ans elements under Answers node equal to question node.
    for(int i=0;i<wdContext.nodeQuestions.size();i++)
    wdContext.nodeAnswers().addElement(wdContext.nodeAnswers().createAnswersElement());
    // This way we need not create the elements in each view before going to the next view.
    Populate the Question attribute with Questions.
    Through indexing show the question corresponding to views as
    In first view (index 0)
    wdContext.nodeQuestions.getQuestionsElementAt(<b>0</b>).getQuestion();
    In second view (index 1)
    wdContext.nodeQuestions.getQuestionsElementAt(<b>1</b>).getQuestion();
    and so on..
    // Note: The Answer node will not be populated intially with values as your answer might be multiple choice.
    After the user gives answer store the answer in the corresponding index of Ans attribute under node Answers as
    For the answer in first view
    wdContext.nodeAnswers.getAnswersElementAt(<b>0</b>).setAns(<get the answer from the view>);
    For the answer in second view
    wdContext.nodeAnswers.getAnswersElementAt(<b>1</b>).getAns(<get the answer from the view>);
    In your last view you can get the Questions and Answers by looping through the Questions and Answers node.
    This way you will need only one attribute for Question and Answer respectively.

Maybe you are looking for

  • How do I stop edge animate from looping in muse

    I have an edge animation set to switch frames every px in muse but want it to stop playing at the last frame. How do I do this? it continuously loops..

  • Issue while Running Page from PC

    Hello friends, I am trying to run iexpense homepage through my pc. For that I have moved the entiire AP folder from JAVA_TOP to myclasses and MDS folder from APPL_TOP/Ap to myprojects folder. I am using the usrename/responsibility key which can acces

  • HT4993 lost iphone 5 sprint

    today i lost my iphone 5 how can i get a new one dose apple care cover i paid 100 dollars for it when i bought it from sprint

  • Auto Select Available Shipping Options

    After a user enters a zip code they must choose an Available Shipping Options. In my case I am only offering one shipping option and would prefer this to be auto-selected for them to ease the process. I have attempted the following code but it did no

  • Password protect Mail on iPad

    Just got a brand new iPad.  Is there a way natively or via another app to password protect the Mail application?  I'd love to be able to let others use the iPad for internet browsing or games, but with Mail if you click it you can get right into all