Error using XSLt Transformation

Hi,
I am using a servlet to get some results from the web which will be a XML file pass it to a XSLT Processor to covert it into a html doc .The code is compiling but when I run the servlet,i am getting following error.
Can anybody tell me how to solve it .its very urgent
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Servlet execution threw an exception
root cause
java.lang.NoSuchMethodError: org.apache.xerces.framework.XMLParser.setSendCharDataAsCharArray(Z)V
     org.apache.xalan.xpath.dtm.DTM.<init>(DTM.java:222)
     org.apache.xalan.xpath.dtm.DTMLiaison.parse(DTMLiaison.java:197)
     org.apache.xalan.xslt.XSLTEngineImpl.getSourceTreeFromInput(XSLTEngineImpl.java:838)
     org.apache.xalan.xslt.XSLTEngineImpl.process(XSLTEngineImpl.java:552)
     SearchServlet.doGet(SearchServlet.java:90)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
     javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
note The full stack trace of the root cause is available in the Apache Tomcat/5.5.7 logs.
Following is the code I am using
// importing
import java.net.*;
import java.io.*;
import java.net.URLEncoder;
import java.util.Enumeration;
import java.util.*;
import java.net.MalformedURLException;
import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.http.HttpServletRequest.*;
import javax.servlet.http.HttpServletResponse.*;
import java.io.OutputStream;
import org.xml.sax.InputSource;
import org.apache.xalan.xslt.XSLTProcessorFactory;
import org.apache.xalan.xslt.XSLTInputSource;
import org.apache.xalan.xslt.XSLTResultTarget;
import org.apache.xalan.xslt.XSLTProcessor;
import org.apache.xml.serialize.BaseMarkupSerializer.*;
import org.apache.xerces.xni.QName;
import org.apache.xerces.xni.XMLAttributes;
import org.apache.xerces.xni.XMLDocumentHandler;
import org.apache.xerces.xni.XMLLocator;
import org.apache.xerces.xni.XMLString;
import org.apache.xerces.xni.XNIException;
import org.apache.xerces.xni.XMLResourceIdentifier;
import org.apache.xerces.xni.Augmentations;
public class SearchServlet extends HttpServlet
//Class SearchServlet
//doGet Method
public void doGet(HttpServletRequest request,HttpServletResponse response) throws
IOException,ServletException,MalformedURLException
//try
          try
String resultHere=new PageRequestor().sendGETMessageThroughSocket();
File testFile = new File("C:\\Program Files\\Apache Software Foundation\\Tomcat 5.5\\webapps\\MyApp\\WEB-INF\\classes\\hoz.xsl");
ReadMyFile obj=new ReadMyFile();
String xslResult=obj.getContents(testFile);
     OutputStream outcome=response.getOutputStream();
     String xmlSystemId = new File(resultHere).toURL().toExternalForm();
String xsltSystemId = new File(xslResult).toURL().toExternalForm();
XSLTProcessor processor =XSLTProcessorFactory.getProcessor();
     XSLTInputSource xmlInputSource =new      XSLTInputSource(xmlSystemId);
     XSLTInputSource xsltInputSource =new XSLTInputSource(xsltSystemId);
     XSLTResultTarget resultTree =new XSLTResultTarget(outcome);
processor.process(xmlInputSource, xsltInputSource, resultTree);
          PrintWriter out=response.getWriter();
          response.setContentType("text/HTML");
          out.println("<html>");
          out.println("<title>SearchServlet</title>");
          out.println("<body>");
          out.println("<p>"+resultHere+"</p>");
          out.print("<p>"+"AFTER RESULT"+outcome+"</p>");
          out.println("</body>");     
          out.flush();
//try end
          catch (Exception e)
//catch
     e.printStackTrace();
// catch end
//doGet Method ends
// class SearchServlet ends

You will need Xalan (from xml.apache.org) for this to work properly, and to create an instance of TransformationException and ConfigurationException:
static public void serialize(Document document, OutputStream target, boolean indent)
          throws IOException, ConfigurationException, TransformationException {
          try {
               Transformer transformer = TransformerFactory.newInstance().newTransformer();
               if (indent)
                    transformer.setOutputProperty(OutputKeys.INDENT, "yes");
               transformer.transform(new DOMSource(document), new StreamResult(target));
          catch (TransformerConfigurationException configure) {
               throw new ConfigurationException("Error instantiating XML transformer", configure);
          catch (TransformerException transform) {
               /** @todo Need to write a generic transformation or serialization exception */
               throw new TransformationException("Error transforming XML", transform);
     }- Saish

Similar Messages

  • Error using Message Transform Bean in SimplePlain2XML in file sender

    Hi guys.
    Im using  Message Transform Bean to convert from file to xml in file sender.
    My structure look like this:
    ROW (1..n)
    >TRANSPORTES (1)
    >ENTREGAS (1..n)
    And I have configured the module like this:
    AF_Modules/MessageTransformBean - transform
    transform - Transform.Class - com.sap.aii.messaging.adapter.Conversion
    transform - xml.ENTREGAS.endSeparator - 'nl'
    transform - xml.ENTREGAS.fieldFixedLengths - 1,30
    transform - xml.ENTREGAS.fieldNames - TIPO,NUM_ENTREGA
    transform - xml.ENTREGAS.keyFieldValue - E
    transform - xml.TRANSPORTES.endSeparator - 'nl'
    transform - xml.TRANSPORTES.fieldFixedLengths - 1,30
    transform - xml.TRANSPORTES.fieldNames - TIPO,NUM_TRANSPORTE
    transform - xml.TRANSPORTES.keyFieldValue - T
    transform - xml.conversionType - SimplePlain2XML
    transform - xml.documentName - MPrueba_Zip
    transform - xml.documentNamespace - http:/XXXXXX.es/XXXX/sap/prueba
    transform - xml.keyFieldName - TIPO
    transform - xml.processFieldNames - fromConfiguration
    transform - xml.recordsetName - row
    transform - xml.recordsetStructure - TRANSPORTES,1,ENTREGAS,*
    Im getting this error and I don´t know why:
    Error: com.sap.aii.messaging.adapter.trans.TransformException: Transformer Conversion3.0.5227 Error initializing Class: java.lang.Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: (4408) Parameter 'xml.fieldFixedLengths' or 'xml.fieldSeparator' is missing (4409) Parameter 'xml.fieldNames' is missing (4403) ; nested exception caused by: java.lang.Exception: java.lang.Exception: java.lang.Exception: Error(s) in XML conversion parameters found: (4408) Parameter 'xml.fieldFixedLengths' or 'xml.fieldSeparator' is missing (4409) Parameter 'xml.fieldNames' is missing (4403)
    Why am i doing wrong?????
    Thanks a lot!!!

    Hi
    For Complex conversion you have to use xml.conversionType as "StructPlain2XML"
    http://help.sap.com/saphelp_nw04/helpdata/en/24/4cad3baabd4737bab64d0201bc0c6c/content.htm
    Regards
    Ramg

  • Error on XSLT transforming a SOAP response

    Hello,
    I am getting error ABAP XML formatting error in XML node of type "element", name: "abap" using my XSLT program.    
    Here is the XML response (SOURCE) as string.
    b60##<?xml version="1.0" encoding="utf-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><ns1:execResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://webservice.hostname.com/"><execReturn xsi:type="xsd:string"><?xml version="1.0" encoding="Shift_JIS" ?><Report><Header><system>ABCWEB</system><dataType>ABCDEFGHIJ</dataType><sendType>response</sendType></Header><Body><SequenceNo>1234567890</SequenceNo><InquiryFactory>ABC</InquiryFactory><ProcessingID></ProcessingID><ProcessingDate>1234567890</ProcessingDate><KeyNo>ABCDEFGHIJ</KeyNo><ProcessingClassify>S</ProcessingClassify><Product>ABCDEFGHIJ</Product><ResponseClassify>0</ResponseClassify><OrderInformation-List><OrderInquiry><TransferNo>1234567890</TransferNo><TransferLineNo>000010</TransferLineNo><CustomerOrderNo>ABCDEFGHIJ</CustomerOrderNo><CustomerOrderLineNo>      </CustomerOrderLineNo><ShipInstructionNo>1234567890</ShipInstructionNo><DropUnitPrice>1234567890</DropUnitPrice><Qty>200</Qty><Amount>6000</Amount><WBSNo>                        </WBSNo><SpecPartNo>ABCDEFGHIJ</SpecPartNo></OrderInquiry></OrderInformation-List><SalesOrderPartNo>ABCDEFGHIJ</SalesOrderPartNo><CatalogPartNo></CatalogPartNo><AgentPartNo>1234567890</AgentPartNo><CustomerPartNo></CustomerPartNo><R3CompanyCD>1000</R3CompanyCD><OrderPlacingCompanyCD>R110011</OrderPlacingCompanyCD><ShipToCD>1234567890</ShipToCD><ShipToCompanyName>SINGAPORE</ShipToCompanyName><ShipToAddress1>ABCDEFGHIJ</ShipToAddress1><ShipToAddress2>ABCDEFGHIJ</ShipToAddress2><ShipToAddress3>SINGSAPORE</ShipToAddress3><ShipToAddress4></ShipToAddress4><ULPort>ABCDEFGHIJ</ULPort><DropCurrency>EUR</DropCurrency><DeliveryAirport>SINGAPORE</DeliveryAirport><DropMethod></DropMethod><SCMCustomer>EA07000442</SCMCustomer><RealShipToCd></RealShipToCd><SOCurrency></SOCurrency><SOPayterm></SOPayterm><LogisticCategory>0</LogisticCategory><SOOrderNo></SOOrderNo><MaterialKeyA1>1234567890</MaterialKeyA1></Body></Report></execReturn></ns1:execResponse></soapenv:Body></soapenv:Envelope>##0####
    The above is the result after adding the following modifications in ABAP. 
      REPLACE ALL OCCURRENCES OF
          '&lt;' IN wf_string1 WITH '<' .
      REPLACE ALL OCCURRENCES OF
          '&gt;' IN wf_string1 WITH '>' .
      REPLACE ALL OCCURRENCES OF
          '&quot;' IN wf_string1 WITH '"'
    I would like to display the result starting from <BODY> as table as shown below.
    SequenceNo       1234567890
    InquiryFactory       ABC
    ProcessingID
    ProcessingDate    1234567890
    and so on. 
    I am using the the same ABAP/XSLT program following example /people/durairaj.athavanraja/blog/2004/09/20/consuming-web-service-from-abap
    Please let me know what I did wrong.
    Tony

    I have no idea why this is showing like this, but please bear with me.  I tried every way I can to make my reply readable but the text editor is keeping on doing this.  So here it goes. 
    Hi Sandeep,
    I tried to debug the CALL transformation.  I am getting CX_XSLT_FORMAT_ERROR and when I run the whole program this is the error message "ABAP XML formatting error in XML node of type "element", name: "abap"
    Here is my XLST program for the response above.
    &lt;xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"&gt;
      &lt;xsl:strip-space elements="*"/&gt;
      &lt;xsl:output indent="yes"/&gt;
      &lt;xsl:template match="NewDataSet"&gt;
            &lt;OUTTAB&gt;
              &lt;xsl:for-each select="Table"&gt;
                &lt;OUTTAB1&gt;
                  &lt;report&gt;
                    &lt;header&gt;
                      &lt;system&gt;
                        &lt;xsl:value-of select="system"/&gt;
                      &lt;/system&gt;
                      &lt;dataType&gt;
                        &lt;xsl:value-of select="dataType"/&gt;
                      &lt;/dataType&gt;
                      &lt;sendType&gt;
                        &lt;xsl:value-of select="sendType"/&gt;
                      &lt;/sendType&gt;
                    &lt;/header&gt;
                    &lt;body&gt;
                      &lt;SequenceNo&gt;
                        &lt;xsl:value-of select="SequenceNo"/&gt;
                      &lt;/SequenceNo&gt;
                      &lt;InquiryFactory&gt;
                        &lt;xsl:value-of select="InquiryFactory"/&gt;
                      &lt;/InquiryFactory&gt;
                      &lt;ProcessingID&gt;
                        &lt;xsl:value-of select="ProcessingID"/&gt;
                      &lt;/ProcessingID&gt;
                      &lt;ProcessingDate&gt;
                        &lt;xsl:value-of select="ProcessingDate"/&gt;
                      &lt;/ProcessingDate&gt;
                      &lt;KeyNo&gt;
                        &lt;xsl:value-of select="KeyNo"/&gt;
                      &lt;/KeyNo&gt;
                      &lt;ProcessingClassify&gt;
                        &lt;xsl:value-of select="ProcessingClassify"/&gt;
                      &lt;/ProcessingClassify&gt;
                      &lt;Product&gt;
                        &lt;xsl:value-of select="Product"/&gt;
                      &lt;/Product&gt;
                      &lt;ResponseClassify&gt;
                        &lt;xsl:value-of select="ResponseClassify"/&gt;
                      &lt;/ResponseClassify&gt;
                      &lt;OrderInformation-List&gt;
                        &lt;OrderInquiry&gt;
                          &lt;TransferNo&gt;
                            &lt;xsl:value-of select="TransferNo"/&gt;
                          &lt;/TransferNo&gt;
                          &lt;TransferLineNo&gt;
                            &lt;xsl:value-of select="TransferLineNo"/&gt;
                          &lt;/TransferLineNo&gt;
                          &lt;CustomerOrderNo&gt;
                            &lt;xsl:value-of select="CustomerOrderNo"/&gt;
                          &lt;/CustomerOrderNo&gt;
                          &lt;CustomerOrderLineNo&gt;
                            &lt;xsl:value-of select="CustomerOrderLineNo"/&gt;
                          &lt;/CustomerOrderLineNo&gt;
                          &lt;ShipInstructionNo&gt;
                            &lt;xsl:value-of select="ShipInstructionNo"/&gt;
                          &lt;/ShipInstructionNo&gt;
                          &lt;DropUnitPrice&gt;
                            &lt;xsl:value-of select="DropUnitPrice"/&gt;
                          &lt;/DropUnitPrice&gt;
                          &lt;Qty&gt;
                            &lt;xsl:value-of select="Qty"/&gt;
                          &lt;/Qty&gt;
                          &lt;Amount&gt;
                            &lt;xsl:value-of select="Amount"/&gt;
                          &lt;/Amount&gt;
                          &lt;WBSNo&gt;
                            &lt;xsl:value-of select="WBSNo"/&gt;
                          &lt;/WBSNo&gt;
                          &lt;SpecPartNo&gt;
                            &lt;xsl:value-of select="SpecPartNo"/&gt;
                          &lt;/SpecPartNo&gt;
                        &lt;/OrderInquiry&gt;
                      &lt;/OrderInformation-List&gt;
                      &lt;SalesOrderPartNo&gt;
                        &lt;xsl:value-of select="SalesOrderPartNo"/&gt;
                      &lt;/SalesOrderPartNo&gt;
                      &lt;CatalogPartNo&gt;
                        &lt;xsl:value-of select="CatalogPartNo"/&gt;
                      &lt;/CatalogPartNo&gt;
                      &lt;AgentPartNo&gt;
                        &lt;xsl:value-of select="AgentPartNo"/&gt;
                      &lt;/AgentPartNo&gt;
                      &lt;CustomerPartNo&gt;
                        &lt;xsl:value-of select="CustomerPartNo"/&gt;
                      &lt;/CustomerPartNo&gt;
                      &lt;R3CompanyCD&gt;
                        &lt;xsl:value-of select="R3CompanyCD"/&gt;
                      &lt;/R3CompanyCD&gt;
                      &lt;OrderPlacingCompanyCD&gt;
                        &lt;xsl:value-of select="OrderPlacingCompanyCD"/&gt;
                      &lt;/OrderPlacingCompanyCD&gt;
                      &lt;ShipToCD&gt;
                        &lt;xsl:value-of select="ShipToCD"/&gt;
                      &lt;/ShipToCD&gt;
                      &lt;ShipToCompanyName&gt;
                        &lt;xsl:value-of select="ShipToCompanyName"/&gt;
                      &lt;/ShipToCompanyName&gt;
                      &lt;ShipToAddress1&gt;
                        &lt;xsl:value-of select="ShipToAddress1"/&gt;
                      &lt;/ShipToAddress1&gt;
                      &lt;ShipToAddress2&gt;
                        &lt;xsl:value-of select="ShipToAddress2"/&gt;
                      &lt;/ShipToAddress2&gt;
                      &lt;ShipToAddress3&gt;
                        &lt;xsl:value-of select="ShipToAddress3"/&gt;
                      &lt;/ShipToAddress3&gt;
                      &lt;ShipToAddress4&gt;
                        &lt;xsl:value-of select="ShipToAddress4"/&gt;
                      &lt;/ShipToAddress4&gt;
                      &lt;ULPort&gt;
                        &lt;xsl:value-of select="ULPort"/&gt;
                      &lt;/ULPort&gt;
                      &lt;DropCurrency&gt;
                        &lt;xsl:value-of select="DropCurrency"/&gt;
                      &lt;/DropCurrency&gt;
                      &lt;DeliveryAirport&gt;
                        &lt;xsl:value-of select="DeliveryAirport"/&gt;
                      &lt;/DeliveryAirport&gt;
                      &lt;DropMethod&gt;
                        &lt;xsl:value-of select="DropMethod"/&gt;
                      &lt;/DropMethod&gt;
                      &lt;SCMCustomer&gt;
                        &lt;xsl:value-of select="SCMCustomer"/&gt;
                      &lt;/SCMCustomer&gt;
                      &lt;RealShipToCd&gt;
                        &lt;xsl:value-of select="RealShipToCd"/&gt;
                      &lt;/RealShipToCd&gt;
                      &lt;SOCurrency&gt;
                        &lt;xsl:value-of select="SOCurrency"/&gt;
                      &lt;/SOCurrency&gt;
                      &lt;SOPayterm&gt;
                        &lt;xsl:value-of select="SOPayterm"/&gt;
                      &lt;/SOPayterm&gt;
                      &lt;LogisticCategory&gt;
                        &lt;xsl:value-of select="LogisticCategory"/&gt;
                      &lt;/LogisticCategory&gt;
                      &lt;SOOrderNo&gt;
                        &lt;xsl:value-of select="SOOrderNo"/&gt;
                      &lt;/SOOrderNo&gt;
                      &lt;MaterialKeyA1&gt;
                        &lt;xsl:value-of select="MaterialKeyA1"/&gt;
                      &lt;/MaterialKeyA1&gt;
                    &lt;/body&gt;
                  &lt;/report&gt;
                &lt;/OUTTAB1&gt;
              &lt;/xsl:for-each&gt;
            &lt;/OUTTAB&gt;
      &lt;/xsl:template&gt;
    &lt;/xsl:stylesheet&gt;
    Also I noticed that the actual response has two version header.  Would it matter? Do I need to crop this out from the actual XML response before transformation.  My OUTTAB is still empty. 
    *&lt;?xml version="1.0" encoding="utf-8"?&gt;*&lt;soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&gt;&lt;soapenv:Body&gt;&lt;ns1:execResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://webservice.hostname.com/"&gt;&lt;execReturn xsi:type="xsd:string"&gt;*&lt;?xml version="1.0" encoding="Shift_JIS" ?&gt;*&lt;Report&gt;&lt;Header&gt;&lt;system&gt;
    Please advise.  Thank you.
    Tony

  • Error using XMLType.transform() parammap argument

    Hello;
    I've hit a snag trying to pass top-level XSLT parameter via XMLType.transform's parammap argument.
    Whenever I run the code sample at the end of this message on 9.2.0.1.0, I get the following error:
    ORA-00600: internal error code, arguments: [KGHAL02], [0x0], [], [], [], [], [], []
    This error does not occur if you remove the 'name=value' parammap value.
    Any ideas?
    Brian.
    set serveroutput on
    declare
         stylesheet xmltype;
         result xmltype;
         xmldoc xmltype;
    begin
         stylesheet := XMLType(
    '<?xml version="1.0"?>
    <xsl:stylesheet version="1.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    >
    <xsl:param name="name"/>
    <xsl:output
    method="xml"
    />
    <xsl:template match="hello" >
         <xsl:value-of select="text()"/>
    </xsl:template>
    </xsl:stylesheet>'
         xmldoc := XMLType('<hello>world </hello>');
         result := xmldoc.transform(stylesheet,'name=value');
         dbms_output.put_line(result.getStringVal());
    end;
    /

    I've worked around this bug successfully by using dbms_xslprocessor package directly - but yuck. The dbms_xslprocessor and related packages is pretty messy to work with.
    I also ran into problems implementing the workaround as dbms_xmldom.getDocumentElement could not find the root element on the resulting DOMDocumentFragment (converted appropriately using dbms_xmldom.makeDocument - sigh). I had to write the fragment (converted to a node first using dbms_xmldom.makeNode - heavy sigh) to a clob (dbms_xmldom.writeToClob), and then reload it using dbms_xmldom.newDOMDocument). Not to mention having to remember to freeXXX all the things I had to create.
    Gross... 4 times the code with lots more opportunities for bugs & leaks.
    Brian.

  • Error using XSLT mapping

    Hi,
    I am using an XSLT mapping during the response processing for a sync interface.
    I have performed the following steps:
    1. Created Translation.xsl and added to a .zip archive
    2. Imported the archive file into the same namespace as the interface mapping
    3. Added the mapping program for type XSL using the imported archive on the response in the interface mapping
    4. Activated everything
    However, when I receive a response, I get the following error:
    Search Translation.xsl (urn:com.xerox.esap.crm.deviceregistration, -1) in swcv f1570070-52e9-11db-c6b4-d3c10ddf0074.</Trace>
      <Trace level="3" type="T">Does not found exact entry. Search in other namspaces.</Trace>
      <Trace level="3" type="T">Search Translation.xsl (-1) in swcv f1570070-52e9-11db-c6b4-d3c10ddf0074 without namespace.</Trace>
      <Trace level="1" type="T">Unable to find resource Translation.xsl (urn:com.xerox.esap.crm.deviceregistration, f1570070-52e9-11db-c6b4-d3c10ddf0074, -1)</Trace>
      <Trace level="1" type="T">com.sap.aii.ibrun.server.mapping.persist.ResourceNotFoundException: Unable to find resource Translation.xsl
    However, I can see the imported archive with my very own eyes so not sure why this error is being thrown.
    Any ideas ?
    Kind regards
    Colin.

    Colin,
    First test your mapping is working fine or not in interfaace mapping. Just referesh your caches as mentioned in this document. This should resolve your issue:
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/1a69ea11-0d01-0010-fa80-b47a79301290
    ---Satish

  • Using XSLT Transformation to Load Deep Structure

    Greetings!
    I have the need to load data from an XML file into a structure that contains a nested table.   I've written the XSLT to load the basic structure but I'm not familiar enough with XSLT to know how to populate the nested table.  I've searched SDN and can't find a suitable example.
    Any help would be most appreciated!  Thanks!

    This might help.  These are the structures and the XML data file I'm using.  I can get all of the nodes to load except for the internal table (TS_PERSON-LIFE_PLANS).  I tried using an XSLT:FOR-EACH but without any success.  Honestly, I'm just shooting in the dark. 
    All I need to do is get that internal table loaded.
    ABAP Structures
    TYPES:
          BEGIN OF ts_lifeplan,
            begda   TYPE pa0168-begda,
            endda   TYPE pa0168-endda,
            bplan   TYPE pa0168-bplan,
            ercost  TYPE char9,
          END OF ts_lifeplan.
    DATA: lt_lifeplans TYPE TABLE OF ts_lifeplan.
    TYPES:
          BEGIN OF ts_person,
            ssn       TYPE pa0002-perid,
            lastname  TYPE pa0002-nachn,
            firstname TYPE pa0002-vorna,
            midname   TYPE pa0002-midnm,
            dob       TYPE char8,
            gender    TYPE pa0002-gesch,
            address1  TYPE pa0006-stras,
            address2  TYPE pa0006-locat,
            city      TYPE pa0006-ort01,
            state     TYPE pa0006-state,
            county    TYPE pa0006-zcounty,
            zip       TYPE pa0006-pstlz,
            homephone TYPE pa0006-telnr,
            workphone TYPE pa0006-num01,
            email     TYPE pa0105-usrid_long,
            hiredate  TYPE char8,
            eligdate  TYPE char8,
            retidate  TYPE char8,
            life_plans LIKE lt_lifeplans,
           END OF ts_person.
    XML
    <?xml version="1.0" encoding="iso-8859-1" ?>
    <BENEFIT_ADJUSTMENTS>
         <ADJUSTMENT>
              <SSN>123456789</SSN>
              <LASTNAME>King</LASTNAME>
              <FIRSTNAME>Steve</FIRSTNAME>
              <MIDNAME>Mark</MIDNAME>
              <DOB>09111972</DOB>
              <GENDER>1</GENDER>
              <ADDRESS1>125 Allison Circle</ADDRESS1>
              <ADDRESS2>Suite 100</ADDRESS2>
              <CITY>Nicholasville</CITY>
              <STATE>KY</STATE>
              <COUNTY>036</COUNTY>
              <ZIP>40356     </ZIP>
              <HOMEPHONE>8594331541</HOMEPHONE>
              <WORKPHONE>5025645529</WORKPHONE>
              <HIREDATE>01012010</HIREDATE>
              <ELIGDATE>03012010</ELIGDATE>
              <RETIDATE>01012050</RETIDATE>
              <LIFE_PLANS>
                   <BEGDA>01012010</BEGDA>
                   <ENDDA>12319999</ENDDA>
                   <BPLAN>A100</BPLAN>
                   <ERCOST>50</ERCOST>
              </LIFE_PLANS>
         </ADJUSTMENT>
    </BENEFIT_ADJUSTMENTS>
    XSLT:

  • Links for BPEL tutorials of using  XSLT Transformation activities

    Hi ,
    I want to create XSLT transformastion beteen input and output variables. Is there any good tutorial or pdf , that can be followed? Is there any Reference guide or Complete documentation available on BPEL specially on Transformation. I did not find anty Book also on that.
    Thanks
    Yogendra Rishishwar

    yes, there is a activity 'transformation' available in BPEL. to create a composite schema(composite.xsd) of these two schemas (lets say 'Inv1.xsd' and Inv2.xsd), import the inv1.xsd and inv2.xsd into the composite schema as below
    <?xml version="1.0" encoding="windows-1252"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://xlttt.com/oracle/CompositeSchemaInvoice" xmlns:ns0="http://xlttt.com/oracle/Invoice" xmlns:ns1="http://xmlns.oracle.com/pcbpel/adapter/db/top/InsertToInvInterface" targetNamespace="http://xmlns.oracle.com/CompositeSchemaInvoice" elementFormDefault="unqualified" attributeFormDefault="unqualified">
    <xsd:import namespace="http://xmlss12.com/oracle/Invoice" schemaLocation="Inv1.xsd"/>
    <xsd:import namespace="http://xmlns.oracle.com/pcbpel/adapter/db/top/InsertToInvInterface" schemaLocation="Inv2.xsd"/>
    <xsd:element name="CompositeElement">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element name="InvoiceDetails">
    <xsd:complexType>
    <xsd:sequence>
    <xsd:element ref="ns0:cXML"/>
    <xsd:element ref="ns1:ApInvoicesInterfaceCollection"/>
    </xsd:sequence>
    </xsd:complexType>
    </xsd:element>
    </xsd:sequence>
    </xsd:complexType>

  • XSLT transformation in XML to ABAP: special characters issue

    Hi,
    I am parsing well-formed XML file that has the following data (:
    <projects><project><name>Wallis &amp; Futuna</name></project></projects>
    I use XSLT transformation:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
    <xsl:strip-space elements="*"/>
    <xsl:template match="projects">
        <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
            <PROJECTS>
              <xsl:for-each select="project">
                <PROJECT>
                  <NAME>
                    <xsl:value-of select="name"/>
                  </NAME>
                </PROJECT>
              </xsl:for-each>
            </PROJECTS>
          </asx:values>
        </asx:abap>
      </xsl:template>
    </xsl:transform>
    If I use the above example without &amp;amp; everything works fine, but the original XML fails with exception CX_XSLT_DESERIALIZATION_ERROR and message "Error during deserialization". Googling around did not give an answer.
    Any words of wisdom?
    Edited by: Alexei Isaev on Apr 26, 2011 5:04 AM
    Edited by: Alexei Isaev on Apr 26, 2011 5:05 AM

    Hi,
    Please visit the following link for reference.
    http://help.sap.com/abapdocu_70/en/ABAPCALL_TRANSFORMATION.htm
    Thanks & Regards,
    Harish

  • XSLT-transformation inserts linefeeds

    Hi,
    I am using XSLT-transformation on WAS 7.0. Part of the result of my XSLT-transformations is javascript-sourcecode.
    The statement
    <xsl:output omit-xml-declaration="yes" indent="no" method="html" encoding="utf-8" />
    should generate browser-readable html-code.
    So take the line
    xxxxx<br/>yyyyy
    After the transformation I am expecting the result
    xxxxx<br>yyyyy
    wheras the XSLT-transformation engine returns
    xxxxx<br>
    <br>
    yyyyy<br>
    (LINEBREAKS ARE INSERTED FOR EACH LINE!!!)
    As my result is javascript-source, this behaviour is a huge problem, as - due to the linefeeds - my generated javascipt-code is not executable anymore.
    Does anybody know a solution, how I can tell the XSLT-processor to generate code WITHOUT linefeeds?
    Thanks,
    Andreas

    A <i>value-of tag</i> would be much useful .
    <xsl:value-of
      select? = expression
      separator? =
      [disable-output-escaping]? = "yes" | "no">
    </xsl:value-of>
    e.g
    <xsl:template match="description">
      <xsl:value-of select="." disable-output-escaping="yes" />
    </xsl:template>

  • XSLT producing different results via debugger and xslt.Transform()

    I'm producing the body of an email via an xsl. I've been having a problem with the html nested inside a <table> tag not displaying correctly. With a bit of help from the good folks over at the asp.net forums, I've tracked the problem down to getting
    different results if I run the xsl via the debugger or via a compiled transform.
    When I debug the xsl it produces
          <table border="1" cellpadding="4" cellspacing="0" style="..." id="tmsEmailTable">
            <tr>
              <th width="50%" align="center"><b>Issue</b></th>
              <th width="50%" align="center"><b>Resolution</b></th>
            </tr>
            <tr>
              <td>Missing Acknowledgement date</td>
              <td><p> Test test</p></td>
            </tr>
            <tr>
              <td>Missing Agent and/or Seller signature</td>
        </table>
    And that's absolutely correct and displays perfectly if I save the result as an html file. But when I use xslt.Transform(..), where xslt is a compiled transform, it produces
    <table border="1" cellpadding="4" cellspacing="0" style="..." id="tmsEmailTable">
                <tr><th width="50%" align="center"><b>Issue</b></th><th width="50%" align="center"><b>Resolution</b></th></tr>
                <tr>
                    <td>
                        Missing Acknowledgement date
                    </td>
                    <td></td>
                </tr>
            </table>
        </p><p> Test test</p></td></tr><tr>
            <td>Missing Agent and/or Seller signature</td>
            <td>
        </table>
    And to make it even more interesting, that extra </table> tag and the misplaced table data only occur on the first table row, but the table rows are generated by an xsl:for-each.
    The relevant bit of the xsl is:
              <table border="1" cellpadding="4" cellspacing="0" style="..." id="tmsEmailTable">
                <tr>
                  <th width="50%" align="center">
                    <b>Issue</b>
                  </th>
                  <th width="50%" align="center">
                    <b>Resolution</b>
                  </th>
                </tr>
                <xsl:for-each select="emailbody/checklist/item">
                  <xsl:if test="string-length(select='issue')>0">
                    <tr>
                      <td>
                        <xsl:value-of select="issue" disable-output-escaping="yes" />
                      </td>
                      <td>
                        <xsl:value-of select="resolution" disable-output-escaping="yes" />
                      </td>
                    </tr>
                  </xsl:if>
                 </xsl:for-each>
              </table>
    The code that generates the compiled transform and the (incorrect) output is:
                Dim xslt As XslCompiledTransform = New XslCompiledTransform(True)
                'Dim xslt As XslTransform = New XslTransform
                xslt.Load(templatePath) 
                Dim objStream As Stream = New MemoryStream(UTF8Encoding.UTF8.GetBytes(xmlData))
                Dim strbldrXML As StringBuilder = New StringBuilder()
                Dim objXmlReader As XmlReader = XmlReader.Create(objStream)
                Dim objXmlWriter As XmlWriter = XmlWriter.Create(strbldrXML)
                xslt.Transform(objXmlReader, objXmlWriter)
    I've checked that templatePath is pointing to the right file, and the source file I'm debugging the xsl against was copied from the xmlData parameter, so I know the same stuff is getting fed into it.
    I've been chasing this for days, and I'm about ready to quit and go get a job at a fast food joint. I'm not wonderful with xsl in general, or xsl in .NET in particular. Somebody PLEASE tell me I'm doing something stupid....
    Rebecca M. Riordan

    Thanks for the replay, Fred, but that wasn't the problem.
    I still don't know what the problem was, but in putting together a sample for review, I cleaned up the code a little (I inherited this), and while it
    appears to be functionally identical, it's working now. Since we're scheduled to go live on Friday, I'm gonna just take the win ;)
    In the unlikely event that anybody's curious, the original, non-functional code, looked like this:
    Public Function createEmailBody(ByVal templateType As String, ByVal xmlData As String) As String
                Dim templatePath, emailBody As String
                templatePath = Me.templatePath & "\" & templateType & ".xsl"
                Dim xpd As New XPathDocument(New StringReader(xmlData))
                Dim xslt As XslCompiledTransform = New XslCompiledTransform(False)
                xslt.Load(templatePath)
                Dim objStream As Stream = New MemoryStream(UTF8Encoding.UTF8.GetBytes(xmlData))
                Dim strbldrXML As StringBuilder = New StringBuilder()
                Dim objXmlReader As XmlReader = XmlReader.Create(objStream)
                Dim objXmlWriter As XmlWriter = XmlWriter.Create(strbldrXML)
                xslt.Transform(objXmlReader, objXmlWriter)
                emailBody = strbldrXML.ToString()
                Return emailBody
    End Function
    In cleaning it up, I wrote this:
    Public Function createEmailBody(ByVal templateType As String, ByVal xmlData As String) As String
                Dim xslt As XslCompiledTransform = New XslCompiledTransform(False)
                Dim templatePath As String = Me.templatePath & templateType & ".xsl"
                xslt.Load(templatePath)
                Dim reader As XmlReader = XmlReader.Create(New MemoryStream(UTF8Encoding.UTF8.GetBytes(xmlData)))
                Dim outSB As StringBuilder = New StringBuilder()
                Dim writer As XmlWriter = XmlWriter.Create(outSB)
                xslt.Transform(reader, writer)
                Dim emailBody As String = outSB.ToString()
                Return emailBody
    End Function
    As I said, they look functionally identical to me, but obviously they're not, because the second one works....
    Rebecca M. Riordan

  • XML to Internal table using XSLT by CALL TRANSFORMATION error

    Dear experts,
    I have to fetch the data from an XML file using XSLT into internal tables. The XML file is very big as following:-
    <?xml version="1.0" standalone="yes" ?>
    - <Shipment>
      <shipmentID>25091203S000778</shipmentID>
      <manifestDateTime>2009-12-03T20:16:52.00</manifestDateTime>
      <shipmentFacilityNumber>025</shipmentFacilityNumber>
      <shipmentFacilityAbbreviation>CHI</shipmentFacilityAbbreviation>
      <shipmentFacilityAddress1>810 KIMBERLY DRIVE</shipmentFacilityAddress1>
      <shipmentFacilityAddress2 />
      <shipmentFacilityCity>CAROL STREAM</shipmentFacilityCity>
      <shipmentFacilityState>IL</shipmentFacilityState>
      <shipmentFacilityPostalCode>601880000</shipmentFacilityPostalCode>
      <shipmentTruckCarrierCode>X150</shipmentTruckCarrierCode>
      <shipmentSourceCode>T</shipmentSourceCode>
      <userID>CAMPOSG</userID>
    - <Delivery>
      <primaryCustomerNumber>954371</primaryCustomerNumber>
      <primaryCustomerName>MIDWEST OFFICE SUPPLY</primaryCustomerName>
      <primaryCustomerAddress1 />
      <primaryCustomerAddress2>4765 INDUSTRIAL DR</primaryCustomerAddress2>
      <primaryCustomerCity>SPRINGFIELD</primaryCustomerCity>
      <primaryCustomerState>IL</primaryCustomerState>
      <primaryCustomerPostalCode>627030000</primaryCustomerPostalCode>
      <primaryCustomerPhoneNumber>2177535555</primaryCustomerPhoneNumber>
      <shuttleStopFacilityNumber />
      <billOfLadingNumber>25HZK99</billOfLadingNumber>
      <carrierProNumber />
      <shipmentTotalCartonCount>6</shipmentTotalCartonCount>
      <shipmentTotalWeight>266</shipmentTotalWeight>
    - <order>
      <orderNumber>25HZK99</orderNumber>
      <subOrderNumber />
      <dateProcessed>2009-12-03</dateProcessed>
      <primaryOrderNumber />
      <shipTruckCode>X150</shipTruckCode>
      <shipTruckDescription>UDS - ADDISON</shipTruckDescription>
      <shipTruckPriorityCode>01</shipTruckPriorityCode>
      <shipTruckGroupCode>01</shipTruckGroupCode>
      <shipTruckDepartureTime>20.00.00</shipTruckDepartureTime>
      <shipTruckDockID>07</shipTruckDockID>
      <ldpFacilityAbbreviation />
      <shuttleAvailableIndicator>N</shuttleAvailableIndicator>
      <shuttleMessageText />
      <crossDockFacilityCode />
      <crossDockTruckCode />
      <crossDockID />
      <subsidizedFreightTruckID />
      <customerPurchaseOrderNumber>623559</customerPurchaseOrderNumber>
      <headerTypeCode>P</headerTypeCode>
      <orderTypeID>RG</orderTypeID>
      <deliveryTypeID>DS</deliveryTypeID>
      <deliveryMethodCode />
      <customerBarCode />
      <customerReferenceData>25HZK99</customerReferenceData>
      <customerReferenceText />
      <customerRouteData>ZNED UNTED</customerRouteData>
      <customerRouteText>ROUTE</customerRouteText>
      <endConsumerPurchaseOrderNumber />
      <endConsumerPurchaseOrderText />
      <endConsumerName>CHARLESTON TRANS. FACILITY</endConsumerName>
      <endConsumerAddress1>HOMEWOOD DT PROGRAM DEPT. 3</endConsumerAddress1>
      <endConsumerAddress2>17341 PALMER BLVD.</endConsumerAddress2>
      <endConsumerAddress3 />
      <endConsumerCity>HOMEWOOD</endConsumerCity>
      <endConsumerState>IL</endConsumerState>
      <endConsumerPostalCode>60430</endConsumerPostalCode>
      <endConsumerCountryCode />
      <fillFacilityNumber>025</fillFacilityNumber>
      <shpFacilityNumber>025</shpFacilityNumber>
      <homeFacilityAbbrCode>STL</homeFacilityAbbrCode>
      <homeFacilityNumber>015</homeFacilityNumber>
      <multiCartonIndicator>Y</multiCartonIndicator>
      <primaryCustomerIndicator>Y</primaryCustomerIndicator>
      <shipToCustomerNumber>954371001</shipToCustomerNumber>
      <customerCompanyID>01</customerCompanyID>
      <customerTruckID>U888</customerTruckID>
      <customerTruckDescription>UDS - ADDISON</customerTruckDescription>
      <customerTruckDockID>13</customerTruckDockID>
      <thirdPartyBillCarrier />
      <thirdPartyBillID />
      <thirdPartyBillType />
      <qualityCheckIndicator>N</qualityCheckIndicator>
      <warehouseLaydownID />
      <packListPosition>I</packListPosition>
      <preferredPackingType>CTN</preferredPackingType>
      <preferredPackingMaterial>PAPER</preferredPackingMaterial>
      <preferedPackingInstructions />
      <totalOrderCartonQty>6</totalOrderCartonQty>
      <convertAddressIndicator>N</convertAddressIndicator>
      <dealerInstructionIndicator>Y</dealerInstructionIndicator>
      <dealerinstructions1>CPO#: 623559</dealerinstructions1>
      <dealerinstructions2>ATTN: DANA GRIFFIN</dealerinstructions2>
      <dealerinstructions3>INFO: 612</dealerinstructions3>
      <dealerinstructions4>ROUTE: ZNED UNTED</dealerinstructions4>
      <dealerinstructions5 />
      <dealerinstructions6 />
      <shippingInstructionsIndicator>N</shippingInstructionsIndicator>
      <shippingInstructions1 />
      <shippingInstructions2 />
      <shippingInstructions3 />
      <shippingInstructions4 />
      <shippingInstructions5 />
      <shippingInstructions6 />
      <specialInstructionsIndicator>N</specialInstructionsIndicator>
      <specialInstructions1 />
      <specialInstructions2 />
      <customeContainerDesc />
    - <carton>
      <deliveryCartonID>253370905995</deliveryCartonID>
      <shipIndicator>Y</shipIndicator>
      <deliveryPalletID>X150</deliveryPalletID>
      <consolidatedDeliveryCartonID />
      <scanDateTime>2009-12-03T19:36:12.00</scanDateTime>
      <cartonWeight>52</cartonWeight>
      <dropShipFlag>1</dropShipFlag>
      <carrierTrackingNumber />
      <carrierZoneID>0</carrierZoneID>
      <codAmount />
      <customerPackageAmount />
      <declaredValue />
      <residentialDeliveryIndicator />
      <serviceTypeCode>00</serviceTypeCode>
      <ssccCode>006860244400829393</ssccCode>
    - <Item>
      <shipPrefix>UNV</shipPrefix>
      <shipStockNumber>21200</shipStockNumber>
      <itemDescription>PAPER XERO/DUP WE LTR 20#</itemDescription>
      <orderQuantity>1</orderQuantity>
      <originalShipQuantity>1</originalShipQuantity>
      <shipQuantity>1</shipQuantity>
      <inventoryUnitCode>CT</inventoryUnitCode>
      <inventoryWeightQuantity>52.000</inventoryWeightQuantity>
      <upcNumber>00000000000000</upcNumber>
      <upcRetailCode>087547212004</upcRetailCode>
      <hazmatIndicator>N</hazmatIndicator>
      <serialRequiredIndicator>N</serialRequiredIndicator>
      <dealerMemoPO>S</dealerMemoPO>
      <cartonLineNumber>1</cartonLineNumber>
      <orderLineNumber>11</orderLineNumber>
      <originalOrderPrefix>UNV</originalOrderPrefix>
      <originalOrderStockNumber>21200</originalOrderStockNumber>
      <reasonCode />
    - <Item_Serial>
      <serialNumber />
      </Item_Serial>
        </Item>
      </carton>
       </order>
      </Delivery>
      </Shipment>
    This is not the complete XML file as it exceeds the 15000 characters and then I cann't post here. So I have deleted much part of it.
    The hierarchy is as following: Shipment->Delivery->Order->Carton->Item.
    I have created a XSLT for it which is working fine.
    But when I execute my report program it gives CX_SY_XSLT_FORMAT_ERROR saying that
    Transformation error:  Non-canonical structure of element name XML_OUTPUT.

    Dear experts,
    My report program is as following:-
    *& Report  Z_ASNTRNS
    REPORT  Z_ASNTRNS.
    *& Report  Z_ASNTRNS
    TYPE-POOLS: abap, ixml.
    TABLES: ZASN_SHIPMENT,ZASN_DELIVERY,ZASN_ORDER,ZASN_CARTON,ZASN_ITEM.
    *CONSTANTS gs_file TYPE string VALUE 'C:Documents and SettingsC5134126DesktopRajesh_kandakatlaSampleASNFile.xml'.
    This is the structure for the data from the XML file
    TYPES: BEGIN OF ts_item,
          ZSHIPMENT LIKE ZASN_ITEM-ZSHIPMENT,
          VBELN LIKE ZASN_ITEM-VBELN,
          ORDER_NUMBER LIKE ZASN_ITEM-ORDER_NUMBER,
          CARTON_ID LIKE ZASN_ITEM-CARTON_ID,
           ITEM LIKE ZASN_ITEM-ITEM,
           CARTON_LINE_NUM LIKE ZASN_ITEM-CARTON_LINE_NUM,
           CARTON_LINE_NUMBER LIKE ZASN_ITEM-CARTON_LINE_NUM,
          AEDAT(8),
          AEZET(6),
           ITEM_DESCRIPTION LIKE ZASN_ITEM-ITEM_DESCRIPTION,
           ORD_QTY(16),
           ORIGINAL_SHIP(16),
           SHIP_QTY(16),
           UPC_NUMBER LIKE ZASN_ITEM-UPC_NUMBER,
           DEALER_MEMO_PO(5),
           ORDER_LINE_NUM LIKE ZASN_ITEM-ORDER_LINE_NUM,
          STATUS LIKE ZASN_ITEM-STATUS,
           END OF ts_item.
    TYPES: BEGIN OF ts_carton,
          ZSHIPMENT LIKE ZASN_CARTON-ZSHIPMENT,
          VBELN LIKE ZASN_CARTON-VBELN,
          ORDER_NUMBER LIKE ZASN_CARTON-ORDER_NUMBER,
           CARTON_ID LIKE ZASN_CARTON-CARTON_ID,
          AEDAT(8),
          AEZET(6),
           SHIP_INDICATOR LIKE ZASN_CARTON-SHIP_INDICATOR,
           TRACKING_NUMBER LIKE ZASN_CARTON-TRACKING_NUMBER,
           ZZCARTON_WGT(18),
           Item type ts_item,
           END OF ts_carton.
    TYPES: BEGIN OF ts_order,
          ZSHIPMENT LIKE ZASN_ORDER-ZSHIPMENT,
          VBELN LIKE ZASN_ORDER-VBELN,
           ORDER_NUMBER LIKE ZASN_ORDER-ORDER_NUMBER,
          AEDAT(8),
          AEZET(6),
           SUB_ORDER LIKE ZASN_ORDER-SUB_ORDER,
           ORDER_DATE(8),
           PRIMARY_ORDER LIKE ZASN_ORDER-PRIMARY_ORDER,
           CUSTOMER_PO LIKE ZASN_ORDER-CUSTOMER_PO,
           PRIMARY_ID LIKE ZASN_ORDER-PRIMARY_ID,
           SHIP_TO LIKE ZASN_ORDER-SHIP_TO,
          ANZPK(5),
           carton type ts_carton,
           END OF ts_order.
    TYPES: BEGIN OF ts_delivery,
          ZSHIPMENT LIKE ZASN_DELIVERY-ZSHIPMENT,
          VBELN LIKE ZASN_DELIVERY-VBELN,
          AEDAT(8) TYPE C,
          AEZET(6) TYPE C,
           PRIMARY_CUSTOMER LIKE ZASN_DELIVERY-PRIMARY_CUSTOMER,
           BILL_OF_LADING LIKE ZASN_DELIVERY-BILL_OF_LADING,
           CARTON_COUNT(5),
           TOTAL_WEIGHT(18),
           order type ts_order,
           END OF ts_delivery.
    TYPES: BEGIN OF ts_shipment,
           ZSHIPMENT LIKE ZASN_SHIPMENT-ZSHIPMENT,
           MANIFEST_DATE_TIME(25),
          AEDAT(8) TYPE C,
          AEZET(6) TYPE C,
          SDATE(8) TYPE C,
          STIME(6) TYPE C,
           SFACILITY_NUMBER LIKE ZASN_SHIPMENT-SFACILITY_NUMBER,
           ZZCARRIERCODE LIKE ZASN_SHIPMENT-ZZCARRIERCODE,
           Delivery type ts_delivery,
           END OF ts_shipment.
    TYPES: BEGIN OF ts_shipment1,
           ZSHIPMENT LIKE ZASN_SHIPMENT-ZSHIPMENT,
           MANIFEST_DATE_TIME(25),
           SFACILITY_NUMBER LIKE ZASN_SHIPMENT-SFACILITY_NUMBER,
           ZZCARRIERCODE LIKE ZASN_SHIPMENT-ZZCARRIERCODE,
           PRIMARY_CUSTOMER LIKE ZASN_DELIVERY-PRIMARY_CUSTOMER,
           BILL_OF_LADING LIKE ZASN_DELIVERY-BILL_OF_LADING,
           CARTON_COUNT(5),
           TOTAL_WEIGHT(18),
           ORDER_NUMBER LIKE ZASN_ORDER-ORDER_NUMBER,
           SUB_ORDER LIKE ZASN_ORDER-SUB_ORDER,
           ORDER_DATE(8),
           PRIMARY_ORDER LIKE ZASN_ORDER-PRIMARY_ORDER,
           CUSTOMER_PO LIKE ZASN_ORDER-CUSTOMER_PO,
           PRIMARY_ID LIKE ZASN_ORDER-PRIMARY_ID,
           SHIP_TO LIKE ZASN_ORDER-SHIP_TO,
           CARTON_ID LIKE ZASN_CARTON-CARTON_ID,
           SHIP_INDICATOR LIKE ZASN_CARTON-SHIP_INDICATOR,
           TRACKING_NUMBER LIKE ZASN_CARTON-TRACKING_NUMBER,
           ZZCARTON_WGT(18),
           ITEM LIKE ZASN_ITEM-ITEM,
           CARTON_LINE_NUM LIKE ZASN_ITEM-CARTON_LINE_NUM,
           CARTON_LINE_NUMBER LIKE ZASN_ITEM-CARTON_LINE_NUM,
           ITEM_DESCRIPTION LIKE ZASN_ITEM-ITEM_DESCRIPTION,
           ORD_QTY(16),
           ORIGINAL_SHIP(16),
           SHIP_QTY(16),
           UPC_NUMBER LIKE ZASN_ITEM-UPC_NUMBER,
           DEALER_MEMO_PO(5),
           ORDER_LINE_NUM LIKE ZASN_ITEM-ORDER_LINE_NUM,
           END OF ts_shipment1.
    TYPES: BEGIN OF t_xml_line,
                 data(256) TYPE x,
               END OF t_xml_line.
    *Typdefinition für Airplus
    *READ THE DOCUMENTATION "LASG_XML_INVOICE_BTM"!!!
    VARs beginning with "a_" are ATTRIBUTES
    DATA: l_ixml            TYPE REF TO if_ixml,
          l_streamfactory   TYPE REF TO if_ixml_stream_factory,
          l_parser          TYPE REF TO if_ixml_parser,
          l_istream         TYPE REF TO if_ixml_istream,
          l_ostream         TYPE REF TO if_ixml_ostream,
          l_document        TYPE REF TO if_ixml_document,
          l_node            TYPE REF TO if_ixml_node,
          l_xml TYPE REF TO cl_xml_document,
          l_xmldata         TYPE string.
    DATA: l_xml_table       TYPE TABLE OF t_xml_line,
             l_xml_line        TYPE t_xml_line,
             l_xml_table_size  TYPE i.
    DATA: l_filename        TYPE string.
    DATA: xml_out TYPE string ,
          size type i.
    DATA: l_xml_x1   TYPE xstring.
    DATA: l_len      TYPE i,
              l_len2     TYPE i,
              l_tab      TYPE tsfixml,
              l_content  TYPE string,
              l_str1     TYPE string,
              c_conv     TYPE REF TO cl_abap_conv_in_ce.
             l_itab     TYPE TABLE OF string.
    DATA: BEGIN OF l_itab occurs 0,
          data(256) type c,
          end of l_itab.
    TYPES : BEGIN OF TY_TEXT,
              data(255) type C,
            END OF TY_TEXT.
    DATA: F_XML TYPE STRING.
    DATA : LT_TEXT_OUT type table of TY_TEXT with header line.
    tables
    DATA: it_shipment    TYPE STANDARD TABLE OF ts_shipment,
          wa_shipment    TYPE  ts_shipment.
    *Errorvariables
    DATA: xslt_err   TYPE REF TO cx_xslt_exception,
          err_string TYPE string.
    PARAMETERS: pa_file TYPE localfile OBLIGATORY
    DEFAULT 'C:Documents and SettingsC5134126DesktopRajesh_kandakatlaSampleASNFile.xml'.
    START-OF-SELECTION.
      Creating the main iXML factory
        l_ixml = cl_ixml=>create( ).
      Creating a stream factory
        l_streamfactory = l_ixml->create_stream_factory( ).
        PERFORM get_xml_table CHANGING l_xml_table_size l_xml_table.
    here we use the CALL TRANSFORMATION method which calls
    the XSLT program "z_asnfile"
    TRY.
        CALL TRANSFORMATION ('Z_ASNFILE')
          SOURCE xml LT_TEXT_OUT[]
          RESULT xml_output = it_shipment
    catch any error, very helpful if the XSLT isn't correct
        CATCH cx_xslt_exception INTO xslt_err.
        err_string = xslt_err->get_text( ).
        WRITE: / 'Transformation error: ', err_string.
        EXIT.
      ENDTRY." setting a breakpoint to watch the workarea
    by the internal table "it_airplus"
           break-point.
      LOOP AT it_shipment INTO wa_shipment.
      ENDLOOP.
    *&      Form  get_xml_table
      FORM get_xml_table CHANGING l_xml_table_size TYPE i
                                  l_xml_table      TYPE STANDARD TABLE.
        l_filename = pa_file.
      upload a file from the client's workstation
        CALL METHOD cl_gui_frontend_services=>gui_upload
          EXPORTING
            filename   = l_filename
            filetype   = 'BIN'
          IMPORTING
            filelength = l_xml_table_size
          CHANGING
            data_tab   = l_xml_table
          EXCEPTIONS
            OTHERS     = 19.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                     WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
    Convert binary to text.
    CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
      EXPORTING
        INPUT_LENGTH          = 70000
                FIRST_LINE            = 0
                LAST_LINE             = 0
                APPEND_TO_TABLE       = ' '
                MIMETYPE              = ' '
        WRAP_LINES            = 'X'
              IMPORTING
                OUTPUT_LENGTH         =
      TABLES
        BINARY_TAB            = l_xml_table
        TEXT_TAB              = LT_TEXT_OUT
              EXCEPTIONS
                FAILED                = 1
                OTHERS                = 2
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    ENDFORM.                    "get_xml_table

  • XSLT  - Exception error when using XSLT 2.0 code in Transform on LiveCycle ES2

    I'm new to using this forum, so apologies in advance in I have posted this to the wrong place.
    I'm using Adobe LiveCycle ES2.5 (Jboss) and have written several complex XSLT scripts.  All have worked, with the exception of the latest one in which I have to sum a repeating subnode that maynot exist and if it does, may contain a number or be empty.  When I have used SUM by itself, it works perfectly if I all the nodes have values, but returns zero if any are missing or are empty.  After some searching I found a solution (which I have made bold) in the fragment below.
    <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" ...>
    <xsl:variable name="varUnitValueTotal" select="sum( (if(SOURCEUNITVALUE='') then 0 else SOURCEUNITVALUE) )"/>
    </xsl:stylesheet>
    I developed and tested this xslt in XMLSpy 2011 and it works a treat.  However, when I invoke the XSLT using the Services\XSLT Transformation 1.0\Transform, I get the following exception error:
    javax.xml.transform.TransformerConfigurationException: javax.xml.transform.TransformerException: javax.xml.transform.TransformerException: Could not find function: if
        at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFactoryImpl.jav a:936)
        at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.j ava:774)
        at com.adobe.livecycle.xslt.XsltTransformer.transform(XsltTransformer.java:151)
    Now as far as the documentation is concerned ES2 and better should be using XSLT 2.0.  However to test a theory I changed the stylesheet version from 2.0 to 1.0 and re-ran the xslt in XMLSpy and it fell over at exactly the same place as the exception error.  Which makes me conclude that LC ES2+ is still using XSLT 1.0.
    Now I am stuck.  The only work around that I can see is to attempt to do the calculation in the form (which sort of defeats the point of usng XSLT).  That said I am reluctant to go down that path, since the maintenance overhead is going to be shocking if I have to apply to dozens of forms.
    Is there a way to tell the Transform service to use XSLT 2.0 and if so, how and what are the settings?  Or do I need to find and use a different transform engine, again if so which one should I use and what settings should I make at either JBoss and/or AdminUI level.
    Really hoping that someone can help.

    The XSLT service is configurable.
    http://help.adobe.com/en_US/LiveCycle/9.5/WorkbenchHelp/WS92d06802c76abadb-1cc35bda128261a 20dd-6750.html
    1) Stop LiveCycle.
    2) Add the .jars of your XSLT processor of choice to the LiveCycle server lib folder.
    3) Restart LiveCycle.
    4) Go to Workbench and stop the XSLT service. Right-click on XSLTService:1.0 and Edit Service Configuration.
    5) Enter the factory name for the given XSLT processor. I think for Xalan 2.7.1 it is org.apache.xalan.processor.TransformerFactoryImpl (but I could be wrong).
    6) Restart the service.
    Steve

  • Lookup in Xi using XSLT with Java enhancement "Error"

    Hi Experts,
    I need your advice urgently.
    I have done message mapping using XSLT mapping with Java enhancement.
    I included the code for SAP DB connection to read from the table.
    I imported both the sapdbc-7_6_00_30_5567 Driver.jar and my custom jar into imported archives.
    I used the java functions in my XSLT to get the lookup value.
    The code was working correctly in NWDS, but when i tried to execute the scenario, it gave me 'SYSTEM ERROR'
    Following is the error as seen 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_EXCEPTION</SAP:Code>
      <SAP:P1>PortalTransaction_EP_to_Insert_EP_DB</SAP:P1>
      <SAP:P2>http://ab.com/xys/subscription</SAP:P2>
      <SAP:P3>8abf9c80-ad4a-11db-bb9a-ccaaac110865</SAP:P3>
      <SAP:P4>-1</SAP:P4>
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>Exception occurred during XSLT mapping of the application</SAP:Stack>
      <SAP:Retry>M</SAP:Retry>
      </SAP:Error>
    Following is the DEBUG trace when i tries to test the Interface Mapping
    Creating mapping sequence with 2 steps.
    Creating step 0
    Creating XSLT mapping PortalTransaction_SUBSYS_to_PortalTransaction_EP
    Creating step 1
    Creating XSLT mapping PortalTransaction_EP_to_Insert_EP_DB
    Start executing mapping sequence with 2 steps.
    Executing mapping step 0
    Call XSLT processor with stylsheet PortalTransaction_SUBSYS_to_PortalTransaction_EP.xsl.
    Returned form XSLT processor.
    XSLT transformation: PortalTransaction_SUBSYS_to_PortalTransaction_EP.xsl completed with 0 warning(s).
    Mapping step 0 has been executed.
    Executing mapping step 1
    Call XSLT processor with stylsheet PortalTransaction_EP_to_Insert_EP_DB.xsl.
    Loaded class com.cityandguilds.clasp.xi.DateTimeFunctions
    Method fatalError called, terminate transformation
    javax.xml.transform.TransformerException: com.sap.engine.lib.xml.util.NestedException: java.lang.ClassNotFoundException: Class doesn't have appropriate method! -> java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:251) 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) 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: com.sap.engine.lib.xml.util.NestedException: java.lang.ClassNotFoundException: Class doesn't have appropriate method! -> java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:65) at com.sap.engine.lib.xsl.xpath.JLBLibrary.getFunction(JLBLibrary.java:107) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:76) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:83) 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.XSLVariable.process(XSLVariable.java:132) 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) ... 19 more Caused by: java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.init(JLBFunction.java:273) at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:63) ... 34 more -
    com.sap.engine.lib.xml.util.NestedException: java.lang.ClassNotFoundException: Class doesn't have appropriate method! -> java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.init(JLBFunction.java:273) at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:63) at com.sap.engine.lib.xsl.xpath.JLBLibrary.getFunction(JLBLibrary.java:107) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:76) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:83) 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.XSLVariable.process(XSLVariable.java:132) 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) 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) -
    at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:65) at com.sap.engine.lib.xsl.xpath.JLBLibrary.getFunction(JLBLibrary.java:107) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:76) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:83) 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.XSLVariable.process(XSLVariable.java:132) 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) 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.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.init(JLBFunction.java:273) at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:63) ... 34 more
    TransfromerException during XSLT processing:
    javax.xml.transform.TransformerException: com.sap.engine.lib.xml.util.NestedException: java.lang.ClassNotFoundException: Class doesn't have appropriate method! -> java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:251) 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) 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: com.sap.engine.lib.xml.util.NestedException: java.lang.ClassNotFoundException: Class doesn't have appropriate method! -> java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:65) at com.sap.engine.lib.xsl.xpath.JLBLibrary.getFunction(JLBLibrary.java:107) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:76) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:83) 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.XSLVariable.process(XSLVariable.java:132) 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) ... 19 more Caused by: java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.init(JLBFunction.java:273) at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:63) ... 34 more -
    com.sap.engine.lib.xml.util.NestedException: java.lang.ClassNotFoundException: Class doesn't have appropriate method! -> java.lang.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.init(JLBFunction.java:273) at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:63) at com.sap.engine.lib.xsl.xpath.JLBLibrary.getFunction(JLBLibrary.java:107) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:76) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:83) 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.XSLVariable.process(XSLVariable.java:132) 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) 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) -
    at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:65) at com.sap.engine.lib.xsl.xpath.JLBLibrary.getFunction(JLBLibrary.java:107) at com.sap.engine.lib.xsl.xpath.LibraryManager.getFunction(LibraryManager.java:76) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:98) at com.sap.engine.lib.xsl.xpath.ETFunction.evaluate(ETFunction.java:83) 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.XSLVariable.process(XSLVariable.java:132) 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) 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.ClassNotFoundException: Class doesn't have appropriate method! at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.init(JLBFunction.java:273) at com.sap.engine.lib.xsl.xpath.functions.JLBFunction.<init>(JLBFunction.java:63) ... 34 more
    17:44:11 End of test
    Thanks in advance,
    Mona

    Hi,
    Thanks to all who replied.
    I solved the problem.
    I was calling the java method from XSLT without passing any arguement.
    I realised that the java methods called from XSLT should always have input parameter. So i changed the javamethod call from
    public static String getCurrentRecNo() to public static String getCurrentRecNo(Object test)
    and it worked.
    Can anybody explain me why java methods called from XSLT should always have an input arguement.
    Thanks
    Mona

  • Problem in transforming XML to string using XSLT

    Hi there,
    I have a R/3 -> XI -> WebService scenario where the message from XI to webservice needs to be sent in document/wrapped mode (the message xml must be embedded in a string element) and this message needs to be digitally signed.
    We are using another webservice to sign the messages, also with the message being sent in a string. To transform the XML's into string and vice-versa, we are using XSLT (/people/michal.krawczyk2/blog/2005/11/01/xi-xml-node-into-a-string-with-graphical-mapping).
    The problem is that both the signer and the final webservice understand the special characters (like '<', '>', '&', '"' etc) in one way but the XSLT generates them in another way. For example, the character '<', in both webservices, is returned as "&#60;" but the XSL Transformation results in "&lt;".
    The problem now is that our messages are always being rejected because the signature is not being recognized as true, though we are almost 100% sure that it's being done correctly. The only possibility to the error that we found is this character mapping being done differently.
    So, it's like this:
    XI sends string to signer as "&lt;"
    XI receives string from signer as "&#60;"
    XI processes the message
    XI sends string to webservice as "&lt;"
    XI receives string from webservice (containing error message) as "&#60;"
    Is there a way of making the XSLT to return "&#60;" instead of "&lt;"?
    Thanks in advace,
    Henrique.

    For Java Mapping, you can refer this-
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-i
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-ii
    /people/prasad.ulagappan2/blog/2005/06/29/java-mapping-part-iii
    In Java Mapping, in the startdocument event , you need to check for the specialchars, and just repalce the value required.
    But, what i am thinking is , just try with Java functions inside the XSLT mapping instead of going for Java Mapping. You can call java functions from the XSLT. So before the document starts pasring, you need to replace the special characters. I did not try in XSLT like this.
    For this , you can think with this e.g
    /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
    Regards,
    Moorthy

  • How to do 2:1 transformation using XSLT in ccBPM?

    Hi,
    We have the following ccBPM defined:
          A    A    B   A/C   D    E    F
    Start---R1---T1---S2---T2---S3---T3---S1---END
    R1: Receives Synch XML message A via plain HTTP adapter and opens S/A bridge.
    T1: Transforms A into message B using XSLT
    S2: Sends message B to a legacy system to do a lookup and gets response C
    T2: Transforms A and C into D.
    S3: Sends D to another legacy system synchronously and gets response E.
    T3: Transforms E to the final response format F
    S1: Sends F to the original requestor and close the S/A bridge.
    We had created an XSLT style sheet which takes into
    consideration of multi-mapping message structure (e.g.
    ns0:Messages/ns0:Message1/A and Messages/Message2/C...)
    For some reason, the integration process always fails at
    Step T2. The only error message we got is:
    <b>
    Incorrect XML format after mapping: Message expected instead of Catalog
    </b>
    We went thru all the monitoring/trace tool and could not find any more info on the issue.
    I'd really appreciate it if someone can explain the required steps
    for designing and configuring n:1 XSLT  transformation step.
    Thanks in advance
    -Simon

    Hi Duke,
    I still couldn't get it to work. I compared my xsl file
    with yours and they look similar. I was able to turn on the
    DefaultTrace. The trace log indicated the mapping call was
    successful. But no output was generated. No error message
    either. Supposedly XI combines two input xml messsages into 
    a single message to feed into the XSLT, is there away to
    trace out this single input message?
    Also do two input messages need to be correlated?
    thanks again for your help
    -Simon

Maybe you are looking for

  • Document with various reviews / approvals

    Dear Friends, In our document cycle it will be routed through many reviews and approvals. May be in each review and approval stage users will put their comments / edit the document. We have following statuses: Create --In prgoress- review 1 --- revie

  • Class xyz is not in the class path

    When I used: <jsp:useBean id="blast" scope="session"class="hr.pbf.pnf.castorblast2.BlastOutput"/> (or other class) , I get an warning: "The class hr.pbf.pnf.castorblast2.BlastOutput" is not in the class path ???

  • Help creating time worked field on time sheet.

    I am new to acrobat. I am creating a time sheet submittable form. I have start time fields and end time fields and now i need a field that  calculates total time worked in hours. I could do this using military time except that in the calculations tab

  • Only specific OS freezes on certain internet connections

    Everyone - I know this question has been posted by a few others but the fix is specific to a users computer. My issue is happening on more than one mac. So here is the deal: I work for the local ISP. We have a large wifi network where customers can c

  • Bind variable problem when renaming page items?

    APEX 2.1 on IE6. I'm having trouble with bind variables. I cannot reproduce this regularly, but I notice it from time to time. Basically, certain page items will simply refuse to hold their contents, even though the debug output says : 0.03: Saving g