IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.



#Automation


#Applicationintegration
#webMethods
#Integration
 View Only
Expand all | Collapse all

modifying a tiny node

  • 1.  modifying a tiny node

    Posted 02/18/02 06:57 PM

    Today I installed nodelevelupdate.dll and entered the 2 ISAPI filters for IIS. Reboot. I’m not sure whether the installation succeeded. :expressionless:

    I don’t know how to use InoReplaceChild. It doesn’t work. Are there any examples?

    I really wonder why it is SO HARD to modify a single tiny node (in a huge document). :frowning:

    Marcus
    [Windows 2000, IIS, XML Starter Kit Newbie, Test-XML-DB: RealEstate]


    #API-Management
    #webMethods-Tamino-XML-Server-APIs
    #webMethods


  • 2.  RE: modifying a tiny node

    Posted 02/19/02 09:12 AM

    Make sure your database URL goes via IIS rather than Apache.

    say the DB URL is “http://localhost:8080/tamino/db
    and relUrl is “collection/doc/@10
    then tam.InoReplaceChild(relUrl, “//elem[10]”, newElement) should replace the specified elem with the newElement.


    #webMethods
    #webMethods-Tamino-XML-Server-APIs
    #API-Management


  • 3.  RE: modifying a tiny node

    Posted 03/07/02 02:55 PM

    Hi,
    is this dll part of a official patch? We got the same problem that we’d like to update a single node within a document.
    As far as I know the Tamino storage unit is still a document, and thus the entire document must be replaced. Is that correct?
    Or are there any new releases out?

    Thanks for support, ren


    #webMethods-Tamino-XML-Server-APIs
    #API-Management
    #webMethods


  • 4.  RE: modifying a tiny node

    Posted 03/07/02 03:36 PM

    Hi,

    I have schema/data that looks something like this:




    Tamino Lane


    The general idea is that I would like to change the “active” attribute on “John”.

    When I query using a string like “/AddressList/Name@[id=“John”]”, the result portion of the response is similar to the following:

    xql:result


    Tamino Lane


    </xql:result>

    If I modify the “active” attribute of the Address node and then use the Active X “process” function passing in the “Name” node, I receive an error like the following:

    INOXRE8814: Element/attribute name not found;Line 1, Column 1: Element name = Name

    If I do the query like this “/AddressList/Name[@id=“John”]/…” and get the root of the document (“AddressList”), modify the same attribute, and then put the “AddressList” node back, it works fine.

    My questions are the following:

    - Can I put back the node “Name” and its modified subnode “Address” without querying for the entire document?

    - If so, what do I need to pass as the parameters to the ActiveX API’s Process method?

    Thanks,

    Quinn Howard


    #API-Management
    #webMethods
    #webMethods-Tamino-XML-Server-APIs


  • 5.  RE: modifying a tiny node



  • 6.  RE: modifying a tiny node

    Posted 03/18/02 12:41 PM

    Hi,

    I installed IIS instead of Apache and then NodeLevelUpdate.dll according to the description.
    I made sure that msxml3.dll is being used as Microsoft.XMLDOM.

    I queried for a node and tried to append a sibling by cloning the result node. Did not work!

    The following command with a realtive URL which is correct as I understand the API, returns nothing.

    xDoc = tx.InoAppendChild(“/BKP/@1”, /BKP/BKPHauptGruppe/BKPGruppe/BKPUnterGruppe[@BKP_ID="131"], cloneNode);

    If I provide null as a relative URL, I receive the following error message:

    xDoc = tx.InoAppendChild (null, /BKP/BKPHauptGruppe/BKPGruppe/BKPUnterGruppe[@BKP_ID="131"], cloneNode);


    strXML "<?xml version="1.0"?>
    <ino:response xmlns:ino=“http://namespaces.softwareag.com/tamino/response”>
    <ino:message ino:returnvalue=“8814”>
    ino:messagelineHAAXJE8400 HTTP Error 404 Not Found</ino:messageline>
    </ino:message>
    ino:messagetextGenerated by NodeLevelUpdate Filter Version 3.1.1.1</ino:messagetext>
    ino:messagetextCurrent Date: 03/18/02 Time: 12:58.40</ino:messagetext>
    </ino:response>


    Does anybody know what this error message (HAAXJE8400) means?


    #API-Management
    #webMethods
    #webMethods-Tamino-XML-Server-APIs


  • 7.  RE: modifying a tiny node

    Posted 03/18/02 05:44 PM

    From a quick search of the Tamino documentation for “8400” - the JScript API documentation says:
    “…the numerical HTTP error status if any. This would be interrogated if an error 8400 was reported by the Tamino Result.”

    So it seems likely that error 8400 just means “HTTP error” and the error in question is “404 - Not Found”. This would be a reasonable consequence of null in the document’s relative URL.

    Did your other attempt (the first one, with no response) work?

    [This message was edited by Bill Leeney on 18 Mar 2002 at 17:25.]


    #webMethods-Tamino-XML-Server-APIs
    #webMethods
    #API-Management


  • 8.  RE: modifying a tiny node

    Posted 03/19/02 12:54 PM

    Bill,

    unfortunately the Tamino API does not give back any usable error code, my xDoc is null after calling:

    xDoc = tx.InoReplaceChild (“/BKP/@1”, “/BKP/BKPMainGroup[@ID="12"]”, xNode);

    I tried to modify the element and also just the ID, either failed.
    How can I find out what went wrong? Are any good working examples around?

    Btw: What makes me curious is the fact, that in your document is stated, that msxml3.dll is required. But at the other hand, what does the Tamino API call UseServerHTTP() exactly mean? There’s no parameter for XMLDOM3. Could this cause the problem?

    Any suggestions are welcome, rene


    #webMethods-Tamino-XML-Server-APIs
    #webMethods
    #API-Management


  • 9.  RE: modifying a tiny node

    Posted 03/19/02 01:36 PM

    Hi Rene,
    Regarding MSXML3, it is definitely needed. The registry entries it creates during registration include a VersionIndependentProgID of “MSXML2.ServerXMLHTTP”, which has a corresponding InProcServer32 of “……msxml3.dll”. So, despite its appearance, this ProgID is really an MSXML3 “feature”.

    I have an example but it’s in java (attached). After compiling it, you can execute it with command:
    java AppendChild ino:id
    where is the URL to your RealEstate database and ino:id is the ino:id (number) of an xml instance in that database, collection “Property”, doctype “Property”. The example will just append a new Price node, value “9999”, to the end of that xml instance.

    Does it work for you?
    HTH
    AppendChild.java (2.11 KB)


    #webMethods
    #API-Management
    #webMethods-Tamino-XML-Server-APIs


  • 10.  RE: modifying a tiny node

    Posted 03/19/02 03:40 PM

    Bill,
    where do I get the RealEstate database, is it part of the XMLStarter Kit? I’m using V3.1.1.1 (licensed version) and I did not found the RealEstate database.
    The example in Java is fine, but since I’m using the ActiveX API I think it does not help a lot. I think the problem is more related to the ActiveX implementation of the Tamino API.
    For example, I don’t have such nice helpful functions like setTrace().

    Concerning the msxml3.dll, I think that I’m using the right version, but i could be that there is a typical dll versioning problem.

    anyway thanks for your help, I’m working on it.
    rene


    #webMethods-Tamino-XML-Server-APIs
    #webMethods
    #API-Management


  • 11.  RE: modifying a tiny node

    Posted 03/19/02 05:25 PM

    Hi,
    Yes RealEstate is part of the original XML Starter Kit.


    #API-Management
    #webMethods
    #webMethods-Tamino-XML-Server-APIs


  • 12.  RE: modifying a tiny node

    Posted 03/20/02 04:03 PM

    Hi Rene.

    Sorry about the previous examples.
    Here is a more general example that uses the demo data provided with Tamino 3111. In the zipped file attached there is a modified Telephone schema. This will allow you to add unbounded instances of a new element type, “Append”, to a Telephone element.

    Two examples are provided, both are asp’s but one is in javascript and the other vbscript. Both use the Tamino ActiveX API.

    Before running the examples, define the modified schema (attached). The default collection name is “NodeLevelUpdate” and the doctype is “Telephone”. Then “process” (load) some instances (for example, using the Tamino-supplied examples in /examples/data/phone1k.xml), using the Interactive Interface. Be careful to specify collection “NodeLevelUpdate” when processing the xml.

    Now set the URL to your database in the asp source code and try the pages.
    HTH
    NodeLevelUpdate.zip (1.9 KB)


    #webMethods
    #API-Management
    #webMethods-Tamino-XML-Server-APIs


  • 13.  RE: modifying a tiny node

    Posted 03/21/02 01:55 PM

    Hi Bill,
    thanks for your example, but unfortunately it does not work either on my installation. I tried it out also on another client machine.
    The problem has been posted to the SAG customer support center, they take care now about the problem.
    You’ll find attached my VB example, which I slightly changed in order to run it on my box. I still receive the following error, when trying to append a child element.

    <?xml version="1.0"?>
    <ino:response xmlns:ino=“http://namespaces.softwareag.com/tamino/response”>
    <ino:message ino:returnvalue=“8814”>
    ino:messagelineHAAXJE8400 HTTP Error 404 Not Found</ino:messageline>
    </ino:message>ino:messagetextGenerated by NodeLevelUpdate Filter Version 3.1.1.1</ino:messagetext>
    ino:messagetextCurrent Date: 03/21/02 Time: 14:08.09</ino:messagetext>
    </ino:response>

    So, thanks anyway for your help. ren
    NodeLevelUpdate_vb.txt (1.86 KB)


    #webMethods
    #API-Management
    #webMethods-Tamino-XML-Server-APIs


  • 14.  RE: modifying a tiny node

    Posted 03/21/02 02:35 PM

    NodeLevelUpdate builds the complete docURL from the databaseURL plus the relURL parameter.

    If you change your code from:
    Set inoResponse = tamino.InoAppendChild(“Telephone/@1”, “Telephone”, element)
    to:
    Set inoResponse = tamino.InoAppendChild(“/Telephone/@1”, “Telephone”, element)
    (add the extra slash to make the doc URL complete)it should work.


    #webMethods-Tamino-XML-Server-APIs
    #webMethods
    #API-Management


  • 15.  RE: modifying a tiny node

    Posted 03/21/02 04:40 PM

    Bill,
    infact, the wrong relative URL caused this 404 page error. Inserting and replacing a document works now.
    For example replacing the password looks as follows:

    newElement.loadXML = “tiger”
    resp = tx.InoReplaceChild (“/Telephone/@1”, “Telephone/PassWord”, newElement)

    But how do I have to formulate the query when I want to remove an node?
    I tried several different ways, all failed, e.g:

    resp = tx.InoRemoveChild (“/Telephone/@1”, “Telephone/Append”)
    resp = tx.InoRemoveChild (“/Telephone/@1”, “./Append”)
    resp = tx.InoRemoveChild (“/Telephone/@1”, “Append”)

    What XPath query do I have to provide when I’d like to remove the first element of my element?

    Thanks, ren


    #webMethods
    #webMethods-Tamino-XML-Server-APIs
    #API-Management


  • 16.  RE: modifying a tiny node

    Posted 03/21/02 05:04 PM

    This works for me:
    inoResponse = tamino.InoRemoveChild(“/Telephone/@1”,“Telephone/Append[1]”);
    where [1] is the instance number of the Append child node you want to remove. If it doesn’t exist you get an “XPath not found” error. If it’s not unique you get an “XPath not unique” error.

    HTH
    Bill


    #webMethods
    #webMethods-Tamino-XML-Server-APIs
    #API-Management