Forte to Java Help

Hello All,
I am new to this forum and new to Forte (working with it for about a year). I wanted to know the benefits of moving from Forte to Java. I am suppose to list all the benefits- pros & cons. I am reading on the subject but any help or advice from your end will also help.
thanks.

As one of the engineers supporting Fort� and IS EAI, I would like to add to the solid comments from "fortever" -- which I basically agree with. These are my personal comments, and do not represent any offical position by Sun. (I also really love the product, and worked for Fort� before the acquisition in 1999.)
The fact is, computer science students and professional software developers have been focusing on Java for much more than a decade, and the pool of trained talent is thousands of times greater for Java, and growing. Fort� is written in C++, and as a computer science student, I welcome and honor the migration to languages that have a garbage-collected runtime, like Java, TOOL, and Objective-C. As stable as Fort� is, Java is refining and progressing the state of the art.
I also believe that the open source model for Java is a good thing, long term. Yes, products that are tightly integrated, like Fort�, are wonderful. But I've been a software engineer for nearly 30 years, and I've lost count of the number of proprietary, tightly-integrated products that have fallen by the wayside. (I've been a part of companies that have wasted tens of millions of dollars on proprietary technology, and struggled to keep them alive for decades.) We are in the middle of a paradigm shift for large IT organizations. Once upon a time, you could not go wrong by recommending IBM and their proprietary technologies. Now, we have studies by the European Economic Community and governments in South America and Asia that are recommending open source products as a long-term, strategic solution -- BECAUSE they won't fall by the wayside in the same way.
New service-oriented architecture technologies are being support in the Java world, but not in Fort�. For example, our Java CAPS development environment makes it easy to build very sophisticated applications and integration solutions using the latest WSDL, BPEL, etc. standards. Support for these standards are very basic and rather out-of-date in Fort� UDS and IS EAI, and unlikely to improve as the product moves towards end of life.
Quite honestly, I don't believe you or your organization have a choice about moving from Fort�. As flawed as Java is, it's getting better and better, and it's the only non-proprietary solution I know of that supports industrial sized, scalable, distributed, manageable, heterogeneous applications on all kinds of hardware.

Similar Messages

  • Help with (forte for Java CE) please

    I had installed forte for Java CE and had recieved some problems. After I installed the program and tried to run it it said this error.
    Cannot load c:\j2sdk1~1.1_0\jre\bin\classic\jvm.dll
    Bacicly why I installed forte was for the debugger part. Jedit doesn't seem to work for me. I'm using windows xp home edition.
    Any help would be great
    Thanks in advance
    George

    Try downloading a newer SDK and getting
    c:\j2sdk1~1.1_0\jre\bin
    out of the path

  • Forte For Java GUI Editor

    Hi everyone,
    I've been trying to switch usage between Forte for Java running on 2 platforms (Win NT and Solaris 8). For this reason, I want to try to use the GUI Editor in each. But when I tried copying the same .class file from one platform to another and running opening the file under Forte for Java, the GUI Editor doesn't show up the form and Component Editor. Is there a way to make Forte for Java able to recognize the GUI components in a class file not creatd in Forte or not in that version of Forte? Thank you for any help!
    Bob

    Hi,
    this happens not just with class file but also with .java
    file. I created a GUI with Forte ( on windows ) and because I did not jave runtime setup on windows, I copied, java file that was created to the unix env. Then added some code to it and copied back to the windows.
    After that, GUI editor never came up. I lost all that I did
    to create a GUI. Now I can modify GUI only manually.
    I you have found answer to this, please let meknow
    at [email protected]
    rgds,
    sam

  • About Forte for java

    I'm a really beginner on Java.
    I don't the guru use what kind of java developing tools.
    There's only one I can use is "Forte for java".
    Dose anyone there who familiar to it and can help me?

    I'm a really beginner on Java.
    I don't the guru use what kind of java developing
    tools.
    There's only one I can use is "Forte for java".
    Dose anyone there who familiar to it and can help me?I used Forte for Java when I was really really new to Java too. I liked it.
    I liked the way different words in the Java program were shown in different colors. It helped me to understand the language. I thought it was a nice tool.
    But unfortunately, I only learned Java with Forte. I associated all my work with Forte. I was thinking much about Forte. I didn't learn about directory structures in an application or how Java uses a classpath until I stopped using Forte.
    So yawmark is right. If you use Mac OSX try using BBEdit as an editor. It will color your code. And outside of an IDE you will be aware of the basics of Java. If you use another Operating System, there are other text editors available that can color your code and that can be helpful.

  • Forte to Java Migration Forum

    AGILE IT PARTNERS ANNOUNCES "FORTE TO JAVA MIGRATION" DISCUSSION FORUM
    In response to the Forte community's request for a forum to discuss Forte to Java migration topics, Agile IT Partners has responded by hosting a forum on their website. The forum can be visited at http://www.agileitpartners.com/forum. A link has also been created on our home-page at http://www.agileitpartners.com
    Please use this forum to discuss topics related to Forte/Java migration. Don't hesitate to post any questions you may have or problems you have encountered. The Forte user community has, over the years, provided invaluable support to it's members. Agile IT Partners also commits to being an interactive partner in this forum - we will make every attempt to answer your question and also post topics of interest.
    Forum URL: http://www.agileitpartners.com/forum

    In my view, GUI has to be rewritten in JAVA, I do not think any tool can change that or should be used.
    I would think it will be good to re-do again keeping in view of new concepts, rather than using tool and implement your old code.
    Since most of the forte application are build long back and if you reuse the same code again, you are not doing good. I think we should used the latest concepts of SWT framework for windows or JSF and tiles for Web pages.
    I can only think of using tool may be in business layer if business has not changed much and your framework is still good enough.
    There are no white papers or articles to convert to VB.NET, it would be better if you can convert first each of loosely coupled Forte components to VB.NET (Rather I would prefer using C#) and build a framework to connect to existing forte application using Geneva. This step by step approach may help you to use the existing application and also deliver something to client timely, rather than completely whole application one time for long period of time.
    Srikanth

  • PetStore running in Forte for Java 4 - Part 1

    I am hoping to get the PetStore (1.3.1_01) running under Forte for Java 4 EE. If I succeed I will be posting this up to the web-site so that it is publicly available. However I am very new to Forte for Java (FFJ) [I ran it for the first time six days ago]. As a concequence I may not understand the best way of configuring projects or web modules etc, associating the J2EE, implementing ANT files etc etc etc. So what I thought I would do is (briefly) explain what I am doing so that if I am doing stupid things or there are better ways of doing things you guys can shout (ie get some peer review as I proceed).
    The overall approach I am taking is:
    + The project is stored in the standard \forte4j-userdir\system\Projects directory.
    + the source currently is stored separately (ie the directory I unzipped the perstore to).
    + I am building the project in the same sequence that the main build.xml files specifies (ie components / waf / apps).
    + I expose parts of the PetStore project to FFJ by mounting local directories from the unzipped PetStore directory.
    + As long as the j2ee.home is defined in build.properties the ANT build processes work. However a compile under FFJ will not work as it does not know where the j2ee.jar file is. Therefore I have mounted the j2ee.jar and added this to the project. [IS THERE A BETTER WAY OF DOING THIS?]
    Each of the COMPONENTS (asyncsender, encodingfilter, purchaseorder etc) are held in separate java packages. Each of these have been mounted separately and then arranged in the same order as they appear in components/build.xml. Each of these can then be compiled, or, built using the ANT files successfully. Finally for the COMPONENTS I wanted to make the components/build.xml known to FFJ. Unfortunately you can't just mount the components directory (see problem below). So I have created a new directory at the petstore/src level called build and mounted this directory. The components build.xml file has been copied into this directory and renamed to components.xml. Finally the base directory in components.xml has been changed from (.) to (../components). Double clicking on this now builds all of the COMPONENTS without errors.
    I have taken this approach rather than just mounting the components directory as when you do a build you get the following error:
    "java.lang.ClassNotFoundException: Mount/org-openide-filesystems-LocalFileSystem_1.settings: missing 'class' attribute in 'instance' element". [WHAT IS THIS AND IS THERE A SOLUTION?]
    Hopefully I will get some more time tomorrow to start work on the waf part of PetStore.
    Cheers
    Paul

    Before starting on the waf import to Forte for Java (FFJ) I did a quick review. And found an issue. FFJ was not recognising the EJB components as EJBs.
    When creating a new EJB FFJ will store the following "special" files:
    + <ejb name>.ejbdd containing the <ejb-jar> definition
    + <ejb name>.ejbj2eeri containing the <j2ee-ri-specific-information> [AM I CORRECT IN SAYING THIS IS THE CONTAINER SPECIFC DEPLOYMENT INFORMATION? ]
    + <ejb name>.sesejb or .entejb or .mesejb - depending on whether the bean is an session / entity / message bean
    The PetStore project contains <ejb-jar> definitions in ejb-jar.xml files. These files were therefore copied out to the appropriate location for FFJ and renamed to <ejb name>.ejbdd. On opening the project FFJ now recognises the EJBs correctly (signified by the FFJ bean icon). The build.xml files were then changed to copy the new <ejb name>.ejbdd files to the META-INF directory. The project both compiles and can be built from the ANT files successfully.
    So far I have not done anything about the ejbj2eeri files [CAN ANYONE PROVIDE ME WITH ANY INFO ABOUT THESE? FOR EXAMPLE DOES FFJ HAVE ANY SPECIFIC VALUES STORED IN HERE OR WILL THE CURRENT VALUES DEFINED FOR THE J2EE REFERENCE IMPLEMENTATION BE OK].
    Neither have I done anything about the .sesejb / .entejb / .mesejb files. They contain the following information:
    <?xml version="1.0" encoding="UTF-8"?>
    <fjee-ejb>
    <file-version>1.0</file-version>
    <ejb-version>2.0</ejb-version>
    </fjee-ejb>
    [AGAIN CAN ANYONE PROVIDE ANY INFORMATION ABOUT THESE? ARE THEY NECESSARY OR IMPORANT]
    Thanks for any help that can be provided.
    Paul

  • Sunsofts Forte for Java & SQLJ - anyone?

    Hi,
    we would like to use Sunsofts Forte for Java as an IDE to work with SQLJ sources.
    Since currently no other tool besides Oracles JDeveloper seems to contain direct support for SQLJ we run into the need to give up SQLJ and use plain JDBC instead because we favorize Forte so much over JDeveloper. (Note: please don't discuss the pros and cons of JDeveloper vs. Forte!)
    Does anybody use SQLJ inside Forte an can supply us with some guidance/help etc.?
    Do any of you know if Sun ore some other vendor will supply SQLJ modules for Suns Forte?
    Any help will be greatly appreciated.
    Regards,
    Robert.

    BINGO !
    Thanks Roxie!
    Roxi suggested looking for a log file possibly in .../bin
    found log files in:
    C|/forte_jdk/forte4j/bin
    and,
    C|/forte_jdk/forte4j/bin/hs_err_pid1704.log
    contained
    at sun.awt.font.NativeFontWrapper.registerFonts(Native Method)
    which I recognized from having previously encountered
    Unexpected exception from NativeFontWrapper.registerFonts(Native Method)
    http://developer.java.sun.com/developer/bugParade/bugs/4482430.html
    and previously fixed code to deal with that bug by adding
    set JAVA_FONTS=C:\home\rholder\sandbox\msda\jre\lib\fonts
    to the .bat file that launched the java program,
    sooooooooo,
    by going to ControlPannel|System|Advanced|EnvironMentVariables
    and adding
    JAVA_FONTS=C:\home\rholder\sandbox\msda\jre\lib\fonts
    forte for java 4 ce now performs mount|Filesystem, etc
    and, debugging of java code is now in progress!!!
    thanks again Roxie,
    [email protected]

  • XSLT mapping with Java helper classes

    Hi,
    I'm trying to implement a XSLT mapping to convert my request to a specific soap request message format for this I'm calling some methods from a java helper class. I have imported the jar file into the archives. When I tried to test the interface it keeps complaing there is some exception but doesn't give me the exact error. Has any one called any java helper classes with in XSLT mapping, if so I would appreciate if you could help me with this. Here is the code from xsl.
    <wsse:Security soapenv:actor="http://schemas.xmlsoap.org/soap/actor/next" soapenv:mustUnderstand="0" xmlns:wsse="http://schemas.xmlsoap.org/ws/2002/07/secext"   xmlns:UserToken="java:com.company.test.mapping.UserTokenMap">
    <wsse:UsernameToken>
        <wsse:Username xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
          <xsl:value-of select="UserToken:getUsername()"/>
        </wsse:Username>
        <wsse:Password wsse:Type="wsse:PasswordDigest" xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getPasswordDigest()"/>
        </wsse:Password>
        <wsse:Nonce xsi:type="soapenc:string" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getNonce()"/>
        </wsse:Nonce>
        <wsu:Created xsi:type="soapenc:string" xmlns:wsu="http://schemas.xmlsoap.org/ws/2002/07/utility" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
        <xsl:value-of select="UserToken:getCreateDate()"/>
    </wsu:Created>
    </wsse:UsernameToken>
    </wsse:Security>
    Thanks,
    Joe

    Hi,
    I'm getting following exception when I refer to the java class with in my XSLT mapping. Any one encountered the same problem.
    com.sap.engine.services.ejb.exceptions.BaseRemoteException:
    Exception in method transform.
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:218)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104)
         at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320)
         at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198)
         at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129)
         at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
         at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native
    Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
    Caused by: java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)
         at java.lang.ClassLoader.defineClass0(Native
    Method)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
         at java.lang.ClassLoader.defineClass(ClassLoader.java:448)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingLoader.findClass(RepMappingLoader.java:175)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
         at com.sap.engine.lib.xsl.xpath.JLBLibrary.<init>(JLBLibrary.java:33)
         at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:69)
         at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.innerProcess(XPathProcessor.java:56)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:43)
         at com.sap.engine.lib.xsl.xpath.XPathProcessor.process(XPathProcessor.java:51)
         at com.sap.engine.lib.xsl.xslt.XSLValueOf.process(XSLValueOf.java:76)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLElement.process(XSLElement.java:248)
         at com.sap.engine.lib.xsl.xslt.XSLNode.processFromFirst(XSLNode.java:296)
         at com.sap.engine.lib.xsl.xslt.XSLTemplate.process(XSLTemplate.java:272)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:463)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:431)
         at com.sap.engine.lib.xsl.xslt.XSLStylesheet.process(XSLStylesheet.java:394)
         at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:398)
         at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:240)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepSequenceMapping.execute(RepSequenceMapping.java:54)
         at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80)
         at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127)
         at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40)
         at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:167)
         ... 10 more
    ; nested exception is:
         java.lang.UnsupportedClassVersionError:
    com/earthlink/xi/mapping/UserTokenMap (Unsupported
    major.minor version 49.0)

  • How to bundle java help class into jar file ?

    Hi, all,
    I have some package in my project, with which I have a java help jar file as classpath, when I run my project, I need the jh.jar file in directory /jar/jh.jar.
    Now, I bundled all my class packages into a jar file, my.jar, together with the /jar directory. When i run my jar file with command:
    java -jar my.jar
    It tells me couldn't find javahelp class.
    What shall I do? How can I create my jar file with the jh.jar?
    Thanks in advance.

    I think you'd be better off just adding the jh.jar as
    a classpath argument and running it like that:
    java -classpath /myjavalibdir/jh.jar -jar myjar.jar
    ...otherwise you're stepping into redistribution of
    binary issues licensing-wise. That won't work either; when you run java with the -jar option, it ignores both the -classpath option and the CLASSPATH environment variable. However, it will see jh.jar automatically if you put it in the <path-to-java>/jre/lib/ext directory. But for distribution purposes, it might be simpler just to combime the contents of jh.jar into myjar.jar (if you use Ant, its <jar> task makes that very easy). Or, you can just run it this way:java -classpath myjar.jar;jar/jh.jar MyMainClassBTW, I don't think redistribution is a problem; otherwise how anyone even use JavaHelp?

  • XSLT Mapping : RFC Lookup using java helper class

    Hi All,
    I am doing RFC Lookup in xslt mapping using java helper class. I have found blog for the same (http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/05a3d62e-0a01-0010-14bc-adc8efd4ee14) However this blog is very advanced.
    Can anybody help me with step by step approach for the same?
    My basic questions are not answered in the blog as:
    1) where to add the jar file of the java class used in xslt mapping.
    I have added zip file of XSLT mapping in imported archived and using that in mapping.
    Thanks in advace.
    Regards,
    Rohan

    Hi,
    Can u please have look at this in detail , u can easily point out yourself the problem...
    http://help.sap.com/saphelp_nw04/helpdata/en/55/7ef3003fc411d6b1f700508b5d5211/content.htm
    Please observe the line,
    xmlns:javamap="java:com.company.group.MappingClass
    in XSLT mapping..
    The packagename of class and class name and XSLT namespace should be matching...
    Babu
    Edited by: hlbabu123 on Sep 29, 2010 6:04 PM

  • Java Error in RFC Lookup in XSLT Mapping usinf Java helper class

    Hi All,
    I am doing RFC Lookup in XSLT Mapping using Java Helper class.
    The Lookup works fine when called one RFC at a time However my requirement is I want to do 2 Lookups.
    Both Lookups works when done individually however when I call both lookups in one mapping I get following error "javax.xml.transform.TransformerException: DOMSource whose Node is null."
    Following is the code I have written in XSLT for the lookup:
         <xsl:template name="Lookup_1">
              <xsl:param name="STDPN"/>
                   <rfc:RFC_READ_TABLE>
                        <QUERY_TABLE>KNA1</QUERY_TABLE>
                        <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$STDPN"/>
                             </TEXT></item>
                        </OPTIONS>
                        <FIELDS>
                             <item>
                                  <FIELDNAME>KUNNR</FIELDNAME>
                             </item>
                        </FIELDS>
                   </rfc:RFC_READ_TABLE>
              </xsl:variable>
              <xsl:variable name="response" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request, 'BS_D, 'cc_RfcLookup', $inputparam)"/>
              <xsl:element name="STDPN">
                   <xsl:value-of select="$response//DATA/item/WA"/>
              </xsl:element>
         </xsl:template>
         <xsl:template name="Lookup_2">
              <xsl:param name="BELNR"/>
                   <xsl:variable name="Query">AGMNT = '<xsl:value-of select="$BELNR"/>'</xsl:variable>
                   <xsl:variable name="request1">
                        <rfc:RFC_READ_TABLE>
                             <QUERY_TABLE>ZTABLE</QUERY_TABLE>
                             <OPTIONS><item><TEXT>
                                  <xsl:value-of select="$Query"/>
                                  </TEXT></item>
                             </OPTIONS>
                             <FIELDS>
                                  <item>
                                       <FIELDNAME>KUNAG</FIELDNAME>
                                  </item>
                             </FIELDS>
                        </rfc:RFC_READ_TABLE>
                   </xsl:variable>
                   <xsl:variable name="response1" xmlns:lookup="java:urn.mt.pi" select="lookup:execute($request1, 'BS_D','cc_RfcLookup', $inputparam)"/>
                   <xsl:element name="BELNR">
                        <xsl:value-of select="$response1//DATA/item/WA"/>
                   </xsl:element>
         </xsl:template>
    My Question: Am I doing anything wrong? Or Is it possible to call multiple lookups in one XSLT?
    Thanks and Regards,
    Atul

    Hi Atul,
    I had the same problem like you had.
    The main Problem is that with the example code the request variable is created as NodeList object. In XSLT a variable is somekind of a constant and can't be changed. As the request object is empty after the first request the programm fails at the following line:
    Source source = new DOMSource(request.item(0));
    So I've created a workaround for this problem.
    In the call of the template I've put the request as a parameter object at the template call:
    <xsl:with-param name="req">
    <rfc:PLM_EXPLORE_BILL_OF_MATERIAL xmlns:rfc="urn:sap-com:document:sap:rfc:functions">
      <APPLICATION>Z001</APPLICATION>
      <FLAG_NEW_EXPLOSION>X</FLAG_NEW_EXPLOSION>
      <MATERIALNUMBER><xsl:value-of select="value"/></MATERIALNUMBER>
      <PLANT>FSD0</PLANT>
      <VALIDFROM><xsl:value-of select="//Recordset/Row[name='DTM-031']/value"/></VALIDFROM>
      <BOMITEM_DATA/>
    </rfc:PLM_EXPLORE_BILL_OF_MATERIAL>
    </xsl:with-param>
    With this change the request will be provided as a String object and not as a NodeList object.
    Afterwards the RfcLookup.java has to be changed to the following:
    package com.franke.mappings;
    import java.io.ByteArrayInputStream;
    import java.io.ByteArrayOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.PrintWriter;
    import java.io.StringWriter;
    import java.util.Map;
    import javax.xml.parsers.DocumentBuilder;
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.transform.Source;
    import javax.xml.transform.Transformer;
    import javax.xml.transform.TransformerFactory;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamResult;
    import org.w3c.dom.Document;
    import org.w3c.dom.Node;
    import org.w3c.dom.NodeList;
    import com.sap.aii.mapping.lookup.Channel;
    import com.sap.aii.mapping.api.StreamTransformationConstants;
    import com.sap.aii.mapping.api.AbstractTrace;
    import com.sap.aii.mapping.lookup.RfcAccessor;
    import com.sap.aii.mapping.lookup.LookupService;
    import com.sap.aii.mapping.lookup.XmlPayload;
    * @author Thorsten Nordholm Søbirk, AppliCon A/S
    * Helper class for using the XI Lookup API with XSLT mappings for calling RFCs.
    * The class is generic in that it can be used to call any remote-enabled
    * function module in R/3. Generation of the XML request document and parsing of
    * the XML response is left to the stylesheet, where this can be done in a very
    * natural manner.
    * TD:
    * Changed the class that request is sent as String, because of IndexOutOfBound-exception
    * When sending multiple requests in one XSLT mapping.
    public class RfcLookup {
         * Execute RFC lookup.
         * @param request RFC request - TD: changed to String
         * @param service name of service
         * @param channelName name of communication channel
         * @param inputParam mapping parameters
         * @return Node containing RFC response
         public static Node execute( String request,
                 String service,
                 String channelName,
                 Map inputParam)
              AbstractTrace trace = (AbstractTrace) inputParam.get(StreamTransformationConstants.MAPPING_TRACE);
              Node responseNode = null;
              try {
                  // Get channel and accessor
                  Channel channel = LookupService.getChannel(service, channelName);
                  RfcAccessor accessor = LookupService.getRfcAccessor(channel);
                   // Serialise request NodeList - TD: Not needed anymore as request is String
                   /*TransformerFactory factory = TransformerFactory.newInstance();
                   Transformer transformer = factory.newTransformer();
                   Source source = new DOMSource(request.item(0));
                   ByteArrayOutputStream baos = new ByteArrayOutputStream();
                   StreamResult streamResult = new StreamResult(baos);
                   transformer.transform(source, streamResult);*/
                    // TD: Add xml header and remove linefeeds for the request string
                    request = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>"+request.replaceAll("[\r\n]+", ""); 
                    // TD: Get byte Array from request String to send afterwards
                    byte[] requestBytes = request.getBytes();
                   // TD: Not used anymore as request is String
                    //byte[] requestBytes = baos.toByteArray();
                    trace.addDebugMessage("RFC Request: " + new String(requestBytes));
                    // Create input stream representing the function module request message
                    InputStream inputStream = new ByteArrayInputStream(requestBytes);
                    // Create XmlPayload
                    XmlPayload requestPayload =LookupService.getXmlPayload(inputStream);
                    // Execute lookup
                    XmlPayload responsePayload = accessor.call(requestPayload);
                    InputStream responseStream = responsePayload.getContent();
                    TeeInputStream tee = new TeeInputStream(responseStream);
                    // Create DOM tree for response
                    DocumentBuilder docBuilder =DocumentBuilderFactory.newInstance().newDocumentBuilder();
                    Document document = docBuilder.parse(tee);
                    trace.addDebugMessage("RFC Response: " + tee.getStringContent());
                    responseNode = document.getFirstChild();
              } catch (Throwable t) {
                   StringWriter sw = new StringWriter();
                   t.printStackTrace(new PrintWriter(sw));
                   trace.addWarning(sw.toString());
              return responseNode;
         * Helper class which collects stream input while reading.
         static class TeeInputStream extends InputStream {
               private ByteArrayOutputStream baos;
               private InputStream wrappedInputStream;
               TeeInputStream(InputStream inputStream) {
                    baos = new ByteArrayOutputStream();
                    wrappedInputStream = inputStream;
               * @return stream content as String
               String getStringContent() {
                    return baos.toString();
              /* (non-Javadoc)
              * @see java.io.InputStream#read()
              public int read() throws IOException {
                   int r = wrappedInputStream.read();
                   baos.write(r);
                   return r;
    Then you need to compile and upload this class and it should work.
    I hope that this helps you.
    Best regards
    Till

  • Code Sample: Easy RFC Lookup From XSLT Mappings Using a Java Helper Class

    Hi everyone,
    This is just a shameless plug for my article: <a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/05a3d62e-0a01-0010-14bc-adc8efd4ee14">Easy RFC Lookup From XSLT Mappings Using a Java Helper Class</a>. I hope you're interested in reading it, and I welcome your comments in this thread.
    Kind regards,
    Thorsten

    Hi Stefan. Thanks for your post. I have already done that. It still does not work. As a base for my java helper class I have usesd Thorstens code.
    The problem is quite confusing. I will try to ouline both issues here.
    First of all, when try to test from within the Operation Mapping, I always get a java error saying it cannot find the communication channel (it is there and working because I have tested it with the RFCLookup in graphical mapping). I have found a way to work around this, and that is to uncheck the "Use SAP XMLToolkit" checkbox --> switch to test tab, enter my ReceiverService in the parameter tab (header parameter) --> switch back to Definition tab, check the "Use SAP XMLToolkit" checkbox --> switch to Test tab and run the test. Then the XSLT and call to java helper class will work. Of course this is not really something you want to do all the time. Maybe there is a bug.
    Secondly, it never works when I try to do it "live". I am using a file adapter to pick up one file, convert it and a file adapter to drop the converted file. I get the following error code in SXMB_MONI.
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    <!--  Request Message Mapping   -->
    <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30" xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/" SOAP:mustUnderstand="">
      <SAP:Category>Application</SAP:Category>
      <SAP:Code area="MAPPING">TRANSFORMER_CONF_EX</SAP:Code>
      <SAP:P1>ATJ_Accounting2XML_Accounting.xsl</SAP:P1>
      <SAP:P2>http://rd.accounting.logica.com</SAP:P2>
      <SAP:P3>fd552c30-bad9-11dd-9761-c21dac1b818c</SAP:P3>
      <SAP:P4>-1</SAP:P4>
      <SAP:AdditionalText />
      <SAP:Stack>TransformerConfigurationException triggered while loading XSLT mapping ATJ_Accounting2XML_Accounting.xsl; http://rd.accounting.logica.comfd552c30-bad9-11dd-9761-c21dac1b818c-1</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Using an XSLT without a call to a java helper class, works just fine.
    I am totally at a loss here. Any more input would be much appreciated.
    /Patrik

  • The Sun is down and I can't get Forte for Java (?)

    What's up here. I REQUIRE the newest version of Forte for Java as an IDE for JDK 1.4. The version that I have currently is over a year old. Everytime I select it from the "Products & APIs", I get a message:
    Portions of sun.com are temporarily undergoing maintenance.
    How long is this going to last? It's been unavailable for the last 10 hours (from my standpoint) and my project is at a screeching halt because of it (and since Borland has decided to soak me dry if I want a 'good' version of JBuilder that supports 1.4).
    Not only is the project being squeezed inbetween an old version of the JDK and a just-released version, which not only will require uninstallation of the old and installation of the new, but will hopefully not break the project, requiring code changes.
    Robert Templeton

    Okay, I finally found it. Java.sun.com needs to update its product link to "SUN ONE" since it no longer goes by "Forte for Java". Talk about a lack of internal communication.
    Robert Templeton

  • Open Forte for java project in Sun java studio enterprise

    Hi Everyone, I am new to Java development. I have a java application developed in Forte for java 4 and I need to open and compile it in Sun java studio enterprise. Could anybody tell me how to do that? Thank you very much.

    The recent versions of the IDE (starting with NetBeans 4.1 and JSE 8) are based on a more-robust project system that is ant based. Projects from Forte for Java 4, unfortunately, cannot be directly opened in JSE8, NB4.1 and later.
    If you do have access to the original source code, pl. try the following in the latest version of JSE or NetBeans:
    - Create a fresh project in jse using File | New Project. (For a java standalone app, you would choose General | Java Application from the dialog).
    - Add the existing files to the empty project. You can do so by right-clicking on the project, selecting properties and adding the existing source directories under 'Source Packages' in 'Sources' category.
    Or from the new project dialog, you could select 'General | Java Project with existing sources' option.

  • Forte for Java and webLogic

    How do I integrate WebLogic 6.1 and Forte for Java?

    Hi.
    You might check with Sun/Forte for info on how to do this.
    Regards,
    Michael
    Stjepan Maric wrote:
    How do I integrate WebLogic 6.1 and Forte for Java?--
    Michael Young
    Developer Relations Engineer
    BEA Support

Maybe you are looking for

  • Windows not opening Adobe programs

    Can anyone please help Today my laptop stopped opening Adobe programs, all Adobe programs! When I click a desktop shortcut for, say READER it get a dialogue box with the following message: C:\Program Files\Adobe\Reader 11.0\Reader\AcroRd32.exe then u

  • Scheduling can not be carried out

    Hi Gurus, i am facing some problem in scheduling of production orders,during creation of production order system gives an error message "No reqmts/caps exists or not relevant scheduling". I have already defined the capacities in capacity header tab p

  • ChageGrep Script Not Working in IDCS3

    I have a simple snippet that should do a GrepChange but it seems that it fails to find the target text. Also, when I try to do the search via the UI, it also fails to find the target text. Is there a documented bug about grep searching in InDesign CS

  • How do i sort photos by rating stars in bridge?

    ow

  • 2.0 - Can you play Music Videos in a playlist one after another

    I'm at work and unable to test. Does the "new" Take2 finally allow users to create their own MTV?