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
  • 1.  hybrid document mapped to SQL database with no INO:ID

    Posted 09/09/02 03:49 PM

    X-Application Version: 3.1.2
    Tamino Version : 3.1.1.4
    Platform : NT
    WebContainer : Tomcat 3.3, TOMCAT 4.0.3
    JDK Version : 1.3.1

    problem: a tamino doc is mapped to sql database. as long as no data are insert via tamino, no INO:ID is generated.

    now using X-application the list/search function works fine, but if i try to get detailed information by executing the b><bdm:action type=“read”><bdm:display select=“$POS”/></bdm:action>
    i get the execption
    ApplicationException: 999: Application Error! Please contact the X-Application-Team.
    com.softwareag.xtools.xapplication.common.PreconditionViolation
    parameter ‘docId’ must not be null,
    which is correct as this doc does not have a INO:ID(docId).

    any way possible to overcome this issue.

    regards

    MichaelK


    #API-Management
    #Tamino
    #webMethods


  • 2.  RE: hybrid document mapped to SQL database with no INO:ID

    Posted 09/10/02 08:47 AM

    Hello,

    did you try the suggestion posted by Christian on your previous request (see topic X_Application and hybrid XML_Documents)?

    Regards, Harald


    #Tamino
    #API-Management
    #webMethods


  • 3.  RE: hybrid document mapped to SQL database with no INO:ID

    Posted 09/10/02 12:06 PM

    hello,

    i haven’t tried this one. i have to be honest:
    1. i don’t know how to do.
    2. this application was generated using the X-application generator, so i don’t know if this will work or solve this issue.

    regards

    Michaelk


    #API-Management
    #Tamino
    #webMethods


  • 4.  RE: hybrid document mapped to SQL database with no INO:ID

    Posted 09/10/02 02:25 PM

    Hi,

    The suggestion of Christian is the key to find a solution.

    Imagine. Each document contains an unique identifier not equal to ino:id, e.g. the primary key (pk) of your relational data source.
    Example:
    This table will be the RDBMS data source:

    PK |Name |First name | City |Zip | State
    ===================================================
    1 | Schmitt | Michael |Mannheim |68000 | Germany
    2 | Meier | Klaus |Kaiserslautern|67655 | Germany
    3 | Schmitt | Heike |Mainz |55130 |Germany


    A possible transformation to XML could look like (For each record set one document):

    <BR><person pk=?1?><BR>	<name>Schmitt</name><BR>	<firstname>Michael</firstname><BR>	<city>Mannheim</city><BR>	<zip>68000</zip><BR>	<state>Germany><BR></person><BR><person pk=?2?><BR>	<name>Meier</name><BR>	<firstname>Klaus</firstname><BR>	<city>Kaiserslauten</city><BR>	<zip>67655</zip><BR>	<state>Germany><BR></person><BR><person pk=?3?><BR>	<name>Schmitt</name><BR>	<firstname>Heike</firstname><BR>	<city>Mainz</city><BR>	<zip>55130</zip><BR>	<state>Germany><BR></person><BR>?<BR></pre><BR><BR>Back to the suggestion:<BR>Now, you have to use ?pk? instead of ?ino:id? in order to reference the documents correctly. Therefore you need to modify the to methods of the class TaminoStore.java (see: <yourXapplicationFolder/ src\com\softwareag\xtools\xapplication\store\TaminoStore.java) as Christian suggested:<BR><BR><pre class="ip-ubbcode-code-pre"><BR>    public String getIdQuery(Element elem) {<BR>        String id = getId(elem);<BR>        if (id != null) {<BR>            // replace the original line with your adapted code<BR>//ORIGINAL:  return "/" + elem.getName() + "[@ino:id='" + id + "']";<BR>//a suggestion for the former example:<BR>return ?/person[@pk=?? + id + ??]?;<BR>        }<BR>        return null;<BR>    }<BR>    <BR>    public String getId(Element elem) {<BR>            // replace the original line with your adapted code<BR>        	//ORIGINAL: Attribute attr = elem.getAttribute(ID, INO_NS);<BR>       	Attribute attr = elem.getAttribute(?pk?);<BR>        if (attr != null) {<BR>            return attr.getValue();<BR>        }<BR>        return null;<BR>    }<BR>



    After finishing the modifications you need to build a new xapplication.jar file.
    Go to your xapplication folder on command line and call ?build quick?.
    Then copy the file /lib/debug/xapplication.jar to the place of your generated application, e.g.: /WEB-INF/lib.


    Now it should be possible to use the modifications.

    Bye Thorsten


    #webMethods
    #Tamino
    #API-Management