Problem with XSLT Transformation on BPM

Hi there,
I have a 1:N File --> Idocs Scenario with BPM, Inside the BPM i have an XSLT Transformation that has a problem i cant figure out, basically this XSLT Groups the file structure like this:
<File>                                                *                  <Shipments>
   <Route>                                         *                     <Route>
      <Id>1</Id>                                   *                         <Id>1</Id>
      <delivery>1</delivery>               *                         <delivery>1</delivery>
   </Route>                                        *                         <delivery>2</delivery>
  <Route>                                          *                     </Route>
      <Id>1</Id>                                   *                     <Route>
      <delivery>2</delivery>               *                         <Id>2</Id>
   </Route>                                        *                         <delivery>3</delivery>
  <Route>                                          *                         <delivery>4</delivery>
      <Id>2</Id>                                   *                      </Route>
      <delivery>3</delivery>               *                   </Shipments>
   </Route>                                        *
   <Route>                                         *
      <Id>2</Id>                                   *
      <delivery>4</delivery>               *
   </Route>                                        *
</File>                                               *
It's supposed to generate 1 Route Segment for each disctint Route Id on the Source file, it has always worked fine as we ran several tests before going into production system, but now, sometimes it misses a few routes for example the output will be 25 different Routes for a source file that 28, or 2 routes from a file that as 3.
I have tested the XSLT on the repository and it works fine all the time, same thing when using xml spy, i always download the payload i get from the file adapter, i got a source file from PRD that has 28 routes and i ran the whole scenario on QAS and it generated 12 routes only, im about to open an OSS message but first i wanted to know if anyone has seen something like this, thanks in advance for all the help you guys can provide.
Best Regards,
Roberto.
p.s. i can send the XSL if needed or anything just ask for it.

Hi,
Basically because i  have to do 2 transformations, first i run the XSLT to group all the deliveries and such, and then i do a graphic mapping to split it into single Shipment Idocs, i dont know how to group by id on graphical mapping..., anyway i don't think the fact that im using BPM would finally alter the xslt result,
Regards,
Roberto.

Similar Messages

  • Issue with xslt transform

    I'm having a problem with xslt transformations.
    I'm sending a DOMDocument to be transformed into a varchar2. The transformation was into html and I was then printing the returning varchar2 to a web page, along the lines of...
    htp.prn(Xslt.transform(domdoc, xslt.stylesheet( l_stylesheet_bfile)));
    I subsequently broke the varchar2 32k limit so I started playing with transforming into a dom instead of a varchar, then writing the dom to a clob and the printing the clob to the web page in 32k chunks.
    I noticed this produced different results than the first method. Now I'm assuming that this is not because xslt is doing the transformations differently but because it's trying to put my html into a well-formed DOMdocument. I have noticed, though, that things like & #160; seemed to have disappeared.
    Just wondering if I'm doing something wrong, and also any reason why the transform functionality doesn't have an output option of CLOB?
    Thanks
    Jason

    What is the DB version?

  • Problem with x:transform function : translation with XSLT

    I've got a problem with this code :
    This is the XML file :
    <%@taglib prefix="x" uri="http://java.sun.com/jstl/xml"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jstl/core"%>
    <c:import var="xslDoc" url="test.xsl"/>
    <x:transform  xslt ="${xslDoc}">
      <students>
      <student id="1">
       <name>
         <first>John</first>
         <last>Smith</last>
         <middle>T</middle>
       </name>
       <grade>
         <points>72</points>
         <letter>C</letter>
       </grade>
      </student>
    </students>
    </x:transform>This is the XSLT :
    <xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:template match="students">
      <html>
      <head>
      <title>XSLT Transform</title>
      </head>
      <body>
       <table border="1">
       <tr><th>First</th><th>Last</th>
    <th>Points</th><th>Letter</th></tr> 
       <xsl:apply-templates/>
       </table>
       </body>
      </html>
    </xsl:template>
    <xsl:template match="student">
      <tr>
       <td><xsl:value-of select="name/first"/></td>
       <td><xsl:value-of select="name/last"/></td>
       <td><xsl:value-of select="grade/points"/></td>
       <td><xsl:value-of select="grade/letter"/></td>
      </tr>
    </xsl:template>
    </xsl:stylesheet>I use NetBeans 3.5.1 for compiling and testing, and on my machine all works fine.
    But when i upload the code on the server i''ve this type of error :
    HTTP Status 500 - Internal Server Error
    exception
    org.apache.jasper.JasperException: access denied (java.util.PropertyPermission org.xml.sax.driver read)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:248)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:457)
         at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:576)
         at java.lang.Thread.run(Thread.java:536)
    root cause
    java.security.AccessControlException: access denied (java.util.PropertyPermission org.xml.sax.driver read)
         at java.security.AccessControlContext.checkPermission(AccessControlContext.java:270)
         at java.security.AccessController.checkPermission(AccessController.java:401)
         at java.lang.SecurityManager.checkPermission(SecurityManager.java:542)
         at java.lang.SecurityManager.checkPropertyAccess(SecurityManager.java:1291)
         at java.lang.System.getProperty(System.java:572)
         at org.xml.sax.helpers.XMLReaderFactory.createXMLReader(XMLReaderFactory.java:81)
         at org.apache.taglibs.standard.tag.common.xml.TransformSupport.getSource(TransformSupport.java:280)
         at org.apache.taglibs.standard.tag.common.xml.TransformSupport.getSource(TransformSupport.java:276)
         at org.apache.taglibs.standard.tag.common.xml.TransformSupport.doStartTag(TransformSupport.java:159)
         at org.apache.taglibs.standard.tag.el.xml.TransformTag.doStartTag(TransformTag.java:104)
         at org.apache.jsp.test_jsp._jspService(test_jsp.java:78)
         at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:137)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:204)
         at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:295)
         at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
         at org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilterChain.java:98)
         at org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain.java:176)
         at java.security.AccessController.doPrivileged(Native Method)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:172)
         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
         at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
         at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
         at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
         at org.apache.ajp.tomcat4.Ajp13Processor.process(Ajp13Processor.java:457)
         at org.apache.ajp.tomcat4.Ajp13Processor.run(Ajp13Processor.java:576)
         at java.lang.Thread.run(Thread.java:536)
    org.apache.jasper.JasperException: access denied (java.util.PropertyPermission org.xml.sax.driver read)It seems a permission problem, but my experience with JSP is very poor , i've asked to control to my host
    the policy of the folders but they didn't respond me yet.
    Any suggestion ?
    Thx for reading, and sorry for my rusty english :-P

    Thanks.
    I've already tried to insert the whole path. You mean this,right ?
    <c:import var="xslDoc" url="http://www.domain.net/examples/test.xsl"/>I've searched a lot with google but i haven't find anything.
    I've not searched a lot into the jakarta site, I'll do tomorrow, now it's
    a bit late (1:45 AM in Italy :-0 ), so i think that i'll go to sleep.
    Thanks for responding so soon!
    I'll wait for your new infos.
    Thanks again.
    read you tomorrow.

  • Problem with CALL TRANSFORMATION xml - abap

    Hello!
    I got the following problems using call transformation to read a xml-file to local abap datatype!
    Simple xml file for testing:
    <BMECAT>
    <HEADER>
    asdf
    </HEADER>
    </BMECAT>
    XSLT file:
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
      <xsl:template match="/">
        <xsl:value-of select="./BMECAT/HEADER"/>
      </xsl:template>
    </xsl:transform>
    The xslt transformation works with xslt-tester!
    My Source:
    DATA: xmlupl TYPE string,
    outputx TYPE XSTRING,
    lv_string TYPE string.
    * in xmlupl my xml import is stored
    CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
    EXPORTING
    text = xmlupl " variable type string
    IMPORTING
    buffer = outputx. " variable type xstring
    TRY .
         CALL TRANSFORMATION path_to_xslt_file
           SOURCE XML outputx
         RESULT HEADER = lv_string.
    CATCH cx_xslt_exception INTO xslt_error.
         data: xslt_message type string .
         xslt_message = xslt_error->get_text( ).
    ENDTRY.
    After debugging in xslt_message is stored the following text:
    "The element abap was expected for the XML-ABAP transformation"
    Can anyone help me with this problem?
    Regards,
    Daniel

    hi
    good
    try this code
    Just look at this piece of code, I think it should help you.
      DATA : ITAB   TYPE TABLE OF SPFLI,
             L_XML  TYPE REF TO CL_XML_DOCUMENT.
      SELECT * FROM SPFLI INTO TABLE ITAB.
    CREATE THE XML OBJECT
      CREATE OBJECT L_XML.
    CONVERT THE DATA TO XML
      CALL METHOD L_XML->CREATE_WITH_DATA( DATAOBJECT = ITAB[] ).
    DATA IS CONVERTED TO XML; DISPLAY THE XML-DOCUMENT
      CALL METHOD L_XML->DISPLAY.
    thanks
    mrutyun^

  • Problem with XSLT: xsl:copy

    xsl:copy let us copy a node from the source to the result of a XSLT transformation.
    My problem is that each element is copied without its attributes !
    For example a template:
    <xsl:template match="myelement">
    <xsl:copy>
    <xsl:apply-templates/>
    </xsl:copy>
    </xsl:template>
    on a element:
    <myelement myattribute="value">text</myelement>
    will transform this element in the new element <myelement>text</myelement>. The attribute has desappeared.
    How Can I do copy my element exactly as it is, with all its attributes ?
    thank's.

    Yes, but copy-of copies child elements too. And I don't want to do so. What I want is for example that my template generate an element
    <myelement myattribute="value">
    <myaddedelement>
    </myelement>
    with an element
    <myelement myattribute="value"/>
    in the source.

  • Problem getting xslt transform to work

    I have the following ABAP 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="/">
              <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
                   <asx:values>
                        <ALLIR_REIKNINGAR>
                             <xsl:apply-templates select="//Invoice"/>   
                        </ALLIR_REIKNINGAR>
                   </asx:values>
              </asx:abap>
         </xsl:template>
        <xsl:template match="Invoice">
        <REIKNINGUR>
            <REIKN_NUMER>
                <xsl:value-of select="cbc:ID"/>           
            </REIKN_NUMER>
            <REIKN_AFRIT>
                <xsl:value-of select="cbc:CopyIndicator"/>
            </REIKN_AFRIT>
            <REIKN_UTGAFUDAGS>
                <xsl:value-of select="cbc:IssueDate"/>
            </REIKN_UTGAFUDAGS>
            <REIKN_MYNT>
                <xsl:value-of select="cbc:DocumentCurrencyCode"/>
            </REIKN_MYNT>
            <REIKN_TIMABIL_FRA>
                <xsl:value-of select="cac:InvoicePeriod/cbc:StartDate"/>
            </REIKN_TIMABIL_FRA>
            <REIKN_TIMABIL_TIL>
                <xsl:value-of select="cac:InvoicePeriod/cbc:EndDate"/>
            </REIKN_TIMABIL_TIL>
        </REIKNINGUR>
        </xsl:template>
    </xsl:transform>
    And the following XML input file
    <?xml version="1.0" encoding="UTF-8"?>
    <?xml-stylesheet type="text/xsl" href="vodafone_xslt_namespace.xslt"?>
    <Invoice
    xmlns="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
    xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
    xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ccts="urn:un:unece:uncefact:documentation:2"
    xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
    xmlns:clm5639="urn:un:unece:uncefact:codelist:specification:5639:1988"
    xmlns:clm54217="urn:un:unece:uncefact:codelist:specification:54217:2001"
    xmlns:clm66411="urn:un:unece:uncefact:codelist:specification:66411:2001"
    xmlns:clmIANAMIMEMediaType="urn:un:unece:uncefact:codelist:specification:IANAMIMEMediaType:2003"
    >
         <cbc:UBLVersionID>2.0</cbc:UBLVersionID>
         <cbc:CustomizationID>NES</cbc:CustomizationID>
         <cbc:ProfileID schemeID="Profile"
         schemeAgencyID="NES">urn:www.nesubl.eu:profiles:profile4:ver1.1</cbc:ProfileID>
         <cbc:ID>PB1554421</cbc:ID>
         <cbc:CopyIndicator>false</cbc:CopyIndicator>
         <cbc:IssueDate>2011-12-31</cbc:IssueDate>
         <cbc:InvoiceTypeCode listID="UN/ECE 1001 Restricted" listAgencyID="NES">380</cbc:InvoiceTypeCode>
         <cbc:Note languageID="IS">Company name</cbc:Note>
         <cbc:DocumentCurrencyCode listID="ISO 4217 Alpha">ISK</cbc:DocumentCurrencyCode>
         <cbc:AccountingCost>2001523</cbc:AccountingCost>
         <cac:InvoicePeriod>
              <cbc:StartDate>2011-12-01</cbc:StartDate>
              <cbc:EndDate>2011-12-31</cbc:EndDate>
         </cac:InvoicePeriod>
    </Invoice>
    My problem is that this transformation does not work unless I completly strip out the namespace parts i.e. cbc:
    How can I get the parser to read the tags with namespace part. And if the parser can not handle namespace in XML how can I go about reding the data into sap ?

    I think you are trying convert the xml to an internal table because of // in apply-templates, then you need to change last XSLT program and include <item> tag inside the <xsl:template match="inv:Invoice">  template, see updated XSLT bellow.
    <xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:inv="urn:oasis:names:specification:ubl:schema:xsd:Invoice-2"
    xmlns:cac="urn:oasis:names:specification:ubl:schema:xsd:CommonAggregateComponents-2"
    xmlns:cbc="urn:oasis:names:specification:ubl:schema:xsd:CommonBasicComponents-2"
    xmlns:ext="urn:oasis:names:specification:ubl:schema:xsd:CommonExtensionComponents-2"
    xmlns:qdt="urn:oasis:names:specification:ubl:schema:xsd:QualifiedDatatypes-2"
    xmlns:udt="urn:un:unece:uncefact:data:specification:UnqualifiedDataTypesSchemaModule:2"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:ccts="urn:un:unece:uncefact:documentation:2"
    xmlns:stat="urn:oasis:names:specification:ubl:schema:xsd:DocumentStatusCode-1.0"
    xmlns:clm5639="urn:un:unece:uncefact:codelist:specification:5639:1988"
    xmlns:clm54217="urn:un:unece:uncefact:codelist:specification:54217:2001"
    xmlns:clm66411="urn:un:unece:uncefact:codelist:specification:66411:2001"
    xmlns:clmIANAMIMEMediaType="urn:un:unece:uncefact:codelist:specification:IANAMIMEMediaType:2003"
    xmlns:sapxsl="http://www.sap.com/sapxsl"
    version="1.0">
      <xsl:strip-space elements="*"/>
      <xsl:strip-space elements="*"/>
      <xsl:template match="/">
        <asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
          <asx:values>
            <ALLIR_REIKNINGAR>
              <xsl:apply-templates select="//inv:Invoice"/>
            </ALLIR_REIKNINGAR>
          </asx:values>
        </asx:abap>
      </xsl:template>
      <xsl:template match="inv:Invoice">
        <item>
        <REIKNINGUR>
          <REIKN_NUMER>
            <xsl:value-of select="cbc:ID"/>
          </REIKN_NUMER>
          <REIKN_AFRIT>
            <xsl:value-of select="cbc:CopyIndicator"/>
          </REIKN_AFRIT>
          <REIKN_UTGAFUDAGS>
            <xsl:value-of select="cbc:IssueDate"/>
          </REIKN_UTGAFUDAGS>
          <REIKN_MYNT>
            <xsl:value-of select="cbc:DocumentCurrencyCode"/>
          </REIKN_MYNT>
          <REIKN_TIMABIL_FRA>
            <xsl:value-of select="cac:InvoicePeriod/cbc:StartDate"/>
          </REIKN_TIMABIL_FRA>
          <REIKN_TIMABIL_TIL>
            <xsl:value-of select="cac:InvoicePeriod/cbc:EndDate"/>
          </REIKN_TIMABIL_TIL>
        </REIKNINGUR>
       </item>
      </xsl:template>
    </xsl:transform>
    According to the XSLT program you need dclare an itab like this:
    DATA: BEGIN OF ls_reikningur,
          reikn_numer(10) TYPE c,
          END OF ls_reikningur.
    DATA: BEGIN OF ls_invoice,
          reikningur LIKE ls_reikningur,
          END OF ls_invoice.
    DATA: lt_invoice LIKE TABLE OF ls_invoice.
    And finally you need a call transformation in your abap code like this:
    DATA: root_error TYPE REF TO cx_root.
    DATA: lv_mess TYPE string.
    TRY.
        CALL TRANSFORMATION  zinvoice
           SOURCE XML lv_xml
           RESULT allir_reikningar = lt_invoice.
      CATCH cx_root INTO root_error.
        lv_mess = root_error->if_message~get_text( ).
        WRITE lv_mess.
    ENDTRY.

  • Problem with "CALL Transformation" in ABAP

    Hello All,
           I am creating XML from ABAP program and using CALL TRANSFORMATION. Everything works fine but when my XML is created sometimes in some "element" values it is truncating space between the texts. For example, I have a field "description" with value "Bon Apetite" it changes to "BonApetite" (space truncated) after transformation! I did research everywhere but could not find why this would happen! Please give me any feedback if you have any information.
    Thanks.
    Mithun

    Hello Mithun,
    when you use the call transformation statement you have to specifiy the xslt transformation used. As a first step you usually use the transformation with the name ID. This is a special transformation for making the asXML representation of abap data. Unfortunately if you look into this transformation you find the following:
    <xsl:transform version="1.0"
      xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    >
    <xsl:strip-space elements="*"/>
    <xsl:template match="/">
      <xsl:copy-of select="."/>
    </xsl:template>
    </xsl:transform>
    If I remember correctly when you use another transformation this will first call the ID transformation and after this the specified one. So it should not be possible to just copy ID transformation and remove the line. I'll have to think again how to avoid the behaviour.
    Best Regards
    Roman

  • Error using custom xpath function with XSL transformations in BPM

    Hi,
    We have created a custom xpath function for use with SOA Suite and BPM. This has been built as per specified within the http://docs.oracle.com/cd/E29597_01/dev.1111/e10224/bp_appx_functs.htm#SOASE11100. We have also reviewed the Oracle Sample for mapper-107-ExtensionFunctions (sample demonstrates the use of user-defined extension functions). This has been registered with jDeveloper and SOA within the oracle.soa.ext_11.1.1 (run ant to include in oracle.soa.ext.jar)
    We ideally want to use this is BPM within an xsl. However when consuming this function is either BPEL or BPM using an xsl, the xsl fails with an error such as:
    XPath expression failed to execute. An error occurs while processing the XPath expression; the expression is ora:doXSLTransformForDoc("xsl/Transformation_1.xsl", $inputVariable.payload). The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: oramds:/deployed-composites/default/gwCustomXpathUtil_rev1.0/xsl/Transformation_1.xsl<Line 9, Column 113>: XML-22043: (Error) Extension function error: Method not found 'getWeekDayDate'. Check the detailed root cause described in the exception message text and verify that the XPath query is correct.
    In an Assign it operates fine and returns the expected result. We have included a combination of both of the Config files (ext-mapper-xpath-functions-config.xml and ext-soa-xpath-functions-config.xml) in the META-INF folder, however neither allow the use of this function in the XSL.
    I believe there may be an issue getting the custom xpath functions within XSL files. Hence I have also raised an SR. Has anyone experiences of this?
    Our SOA / BPM suite environment is using 11.1.1.6.4 and has the following patches applied:
    13801175
    14406487 (11.1.1.6.4 SOA Bundle)
    13896993
    13088538
    Regards Dave
    Edited by: DavidGaskell on Mar 14, 2013 10:08 PM

    Hi All,
    I am also facing the same issue...Experts can you please help us.
    hi DavidGaskell, did you find any resolution, if so can you share it with me.....
    Thanks,
    RR

  • Problems with XSLT Structure

    Hi,
    I'm doing some XSLT mapping to transform the input XML which is coming to XI from a non-SAP application which do not have any namespace prefix. All I'm doing in the transformation is adding the namespace prefix to the xml so that XI can understand the incoming xml message. my incoming xml is in this format
    <?xml version="1.0" standalone="yes" ?>
    <response xmlns="http://www.test.com/it">
      <request_id>UNKNOWN-TEST-1181313012309</request_id>
      <request_type>CREATE_TICKET</request_type>
      <result>APPROVED</result>
      <service_provider>VERIZON</service_provider>
      <extra>
        <extra_ReqAck_AckComment>A trouble ticket has already been
                                created for this circuit</extra_ReqAck_AckComment>
        <extra_ReqAck_ackType>Request_Completed</extra_ReqAck_ackType>
        <extra_ReqAck_date>2007-06-08</extra_ReqAck_date>
        <extra_ReqAck_time>10:29:17</extra_ReqAck_time>
      </extra>
      <vendor>
        <ticket_id>CARC349201</ticket_id>
      </vendor>
    </response>
    And my output xml should be in the following format
      <?xml version="1.0" standalone="yes" ?>
    <ns1:response xmlns:ns1="http://www.test.com/it">
      <request_id>UNKNOWN-TEST-1181313012309</request_id>
      <request_type>CREATE_TICKET</request_type>
      <result>APPROVED</result>
      <service_provider>VERIZON</service_provider>
      <vendor>
        <ticket_id>CARC349201</ticket_id>
      </vendor>
    </ns1:response>
    Here is my xsl file to
    <?xml version="1.0" encoding="UTF-8"?>
    <xsl:stylesheet version="2.0"
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="xml" indent="yes"/>
       <xsl:template match="*">
    <ns1:response xmlns:ns1="http://www.test.com/it">
            <request_type>
              <xsl:value-of select="request_type"/>
            </request_type>
            <service_provider>
              <xsl:value-of select="service_provider"/>
            </service_provider>
             <vendor>
               <ticket_id>
                 <xsl:value-of select="ticket_id"/>
               </ticket_id>
               <ticket_status>
                 <xsl:value-of select="ticket_status"/>
               </ticket_status>
             </vendor>
        </ns1:response>
        </xsl:template>
    </xsl:stylesheet>
    When I use this stylesheet. I'm getting this response this is not adding the values to the nodes.
    <?xml version="1.0" encoding="utf-8"?>
    <ns1:response xmlns:ns1="http://www.test.com/it">
      <request_type/>
      <service_provider/>
      <vendor>
        <ticket_id/>
        <ticket_status/>
      </vendor>
    </ns1:response>
    I would really appreciate if anyone had ever came across this problem or had found solution.
    Thanks,
    Joe.P

    Hi Udo,
    Here is the problem as long as I do have namespace in my input xml that's coming from non sap application the XSLT transformation is failing. I did what you have suggested and here is the style sheet.
    <?xml version="1.0" encoding="utf-8" ?>
    <xsl:stylesheet  xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
      xmlns:ns1="http://www.test.com/it/app" >
         <xsl:output method="xml" version="2.0"  indent="yes"/>
         <xsl:template match="/">
         <ns1:response>
             <request_type>
              <xsl:value-of select="//request_type"/>
             </request_type>
              <result>
               <xsl:value-of select="//result" />
               </result>
               <result_reason>
               <xsl:value-of select="//result_reason"/>
               </result_reason>
               <service_provider>
              <xsl:value-of select="//service_provider"/>
               </service_provider>
             <vendor>
                <ticket_id>
                 <xsl:value-of select="//ticket_id"/>
                 </ticket_id>
                 <ticket_status>
                 <xsl:value-of select="//ticket_status"/>
                 </ticket_status>
             </vendor>
          </ns1:response>
        </xsl:template>
    </xsl:stylesheet>
    and as I mention in the initial posting the input xml does have a name space in the response node. so what I tried is I removed the namespace from the input xml from the response node and that works. But I can't remove the namespace from the input xml since that's coming from non sap application.
    Thanks,
    Joe.P

  • Problem With Match Transformation

    Hi ,
    I am using Match transformation to find the duplicates .
    My input data like this
    EMP NO     ENAME         SAL     DEPTNO
    10     SRIRAM MV  10000     100
    11     MV SRIRAM  11000     100
    12     SRIRAM PV  11000     100
    13     SRIHARI       11000     100
    14     SUBBIAH       11000     100
    15     RAMANA       11000     100
    Iam finding the duplicates on Ename .
    My ename data like SRIRAM MV, MV SRIRAM  like that data . both are duplicate records . for that iam using WORD SIMILARITY  option instead of field similarity with match score is 100 and no match score is 99.
    But i am getting all are unique records .
    If i am using match score is 85 and no match  score is 84 then iam getting the result like this .
    EMP NO     ENAME     SAL     DEPTNO     GROUP_NUMBER     MATCH_STATUS     MATCH_SCORE
    11     MV SRIRAM     11000     100     1     P     94
    15     RAMANA     11000     100          U     
    13     SRIHARI     11000     100          U     
    10     SRIRAM MV     10000     100     1     D     
    12     SRIRAM PV     11000     100     1     P     88
    14     SUBBIAH     11000     100          U     
    means MV SRIRAM,SRIRAM MV ,SRIRAM PV  comes under one group number with SRIRAM MV  as driver and MV SRIRAM as passenger with 94 similarity score and  SRIRAM PV as passenger with 88 score.
    While i am using the match score i need to get 100% per SRIRAM MV and MV SRIRAM . then whats the settings needed to get correct result. whats the problem with my settings.
    Please help me out to solve the problem
    Thanks&Regards,
    Ramana.

    Ramana,
    <<< My ename data like SRIRAM MV, MV SRIRAM like that data . both are duplicate records . for that iam using WORD SIMILARITY option instead of field similarity with match score is 100 and no match score is 99. >>>
    You are looking for an exact match here, but MV SRIRAM and SRIRAM MV are not exactly the same.  The characters MV are in different positions.  The Word Similarity option compares words instead of the entire field, but the character position also affects the match score.
    <<< While i am using the match score i need to get 100% per SRIRAM MV and MV SRIRAM . >>>
    You cannot force the the match score to be a specific value.  SRIRAM MV and MV SRIRAM are not a 100% match and never will be.  What you need to do is adjust the match settings so that the dupe group includes SRIRAM MV and MV SRIRAM but excludes SRIRAM PV.  Try Match Score = 90 and No Match Score = 89.

  • Problem with RFC Communication in BPM

    Hi,
       I'm again facing problem with transfer of
    File->RFC->File scenario.The error in sxmb_moni is given below .
    <?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>XIServer</SAP:Category>
      <SAP:Code area="MAPPING">JCO_COMMUNICATION_FAILURE</SAP:Code>
      <SAP:P1>Error opening an RFC connection.</SAP:P1>
      <SAP:P2 />
      <SAP:P3 />
      <SAP:P4 />
      <SAP:AdditionalText />
      <SAP:ApplicationFaultMessage namespace="" />
      <SAP:Stack>&quot;COMMUNICATION FAILURE&quot; during JCo call. Error
    opening an RFC connection.</SAP:Stack>
      <SAP:Retry>N</SAP:Retry>
      </SAP:Error>
    Can anyone help me in fixing out this problem.
    Regards,
    Prashanth K.R,

    Hi Prashant,
    Just click onto your namespace and verify the details given in the "Connection data for import from SAP system". Check whether its matching the system from where you have called the RFC.
    hope this will help u.
    regards
    divya
    Message was edited by: Divya Nambiar

  • Problems with xml transformation via xslt - strange results

    hi everybody...
    i've little trouble finalling a little tool programmed by myself for my education.
    the application contains a kind of document-server which enables the client to up- and download xml-document in a special format to/from the server.
    in case of the xml-dtd of client and server are different (same type of content, different dtd) the server implements a method called transform(StreamSource source, StreamSource xsl_stylesheet, StreamResult result) which contains the following code:
        transform(StreamSource source, StreamSource xml_stylesheet, StreamResult result) {
          try {
            TransformerFactory factory = TransformerFactory.newInstance();
            Templates template = factory.newTemplates(xsl_stylesheet);
            Transformer transformer = template.newTransformer();
            transformer.transform(source, result);
            return true;
          catch(Exception e) {
            return false;
        }the method is called by the methods downloadFile(...) and uploadFile(...) which both generate the different StreamSource- and StreamResult-Objects.
    by using the downloadFile(...) method, the requested file is transformed, stored temporary in a tmp-directory, read in and send to the requesting client.
    by using the uploadFile(...) method, the sent file is stored temporary in the tmp-directory, read in, transformed and stored as new server-document (if the file still exists it will be overwritten).
    My Problem:
    the result files generated by transform(SreamSource source, StreamSource xsl_stylesheet, StreamResult result) look strange. That means the result xml-code is not equal to the result xml-code i generated by transforming my xml-documents with saxon.
    The xsl files are correct and the xml files are wellformed as well as they are valid.
    The result files look like this:
    <?xml-stylesheet type="text-xsl" href="../xsl/SERVER.xsl"?>
       XYZ
       ABC
          1
          piece
          One piece of ABC(-> <?xml-stylesheet type="text-xsl" href="../xsl/SERVER.xsl"?> is a "string" of code from the source xml-file...)
    The result should look like this:
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <!DOCTYPE a-resource SYSTEM "../dtd/A.dtd">
    <a-resource id="XYZ">
       <a-type>ABC</a-type>
       <a-data>
          <a-value>1</a-value>
          <a-unit>piece</a-unit>
          <a-descr>One piece of ABC</a-descr>
       </a-data>
    </a-resource>Is there anyone who knows what kind of mistake i did in my transform(...) method??
    Do I need to add some attributes to any of the Objects of Template of Transformer??
    please... help me
    i've been testing now over two nights long but couldn't find any solution how to bring my application to work "correct".
    thanks,
    Thof!!!

    ok...
    i got it!
    seems like jaxpi is unable to convert files with extensions different to .xml ...
    now it's working

  • Problems with Java Mapping in Bpm

    Hello to All.
    I have a simple scenario...
    1) Receiver ( XML1)
    2) Transformation
    3) Sender (XML3)
    I have 3 variables.  
    Variable 1  XML1
    Variable 2  XML2
    Variable 3  XML3
    In my transformation have two source.. an XML and XML2 and my mapping program is java mapping.
    The java mapping modify the XML1 according the XML2 and transform in XML3.
    When I run BPM . I have problem , because the flow stop in transformation.

    Yes I have tested. But I found the solution.. The java mapping generate a header like <xsi : Message1></>... <xsi : Message2> </>
    Thanks.

  • Using StAX with xslt transformations in the right way?

    Hi!
    What do I need to enable the stax functionality to transformations, and which transformer implementations is supporting this? (or is the implementation irrelevant)
    I have made the following to create a StaxSource, but is it enought?
    ---8<---
    private static XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        InputStream xmlInputStream = xmlUrl.openStream();
        XMLStreamReader xmlStreamReader = inputFactory.createXMLStreamReader( xmlInputStream );
        Source xmlSource = new StAXSource( xmlStreamReader );
    transformer.transform(xmlSource, new StreamResult(writer));
    ---8<---I'm using:
    org.apache.xalan.processor.TransformerFactoryImpland every thing seems to work very nice, but I'm not sure if I have done it in the right way and if it's something that I miss.
    If I understand it correct normal transformations is transforming the xml to a Dom-tree but with StAX it shouldn't and be more memory efficient.
    So anyone have any comments?
    /Per

    Indeed, as DrClap has already stated, using a StAXSource will not guarantee streaming. All of the mainstream XSLT processors build some sort of DOM structure internally because, in the general case, XSLT requires random access on the input document. The only exception to this is the identity transform, which in most processors is done in streaming fashion --i.e., without actually creating an intermediate structure.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   

  • Problem with XSLT

    Dear all,
    I am facing the following problem: I have an XML file, which is used to store information. An XSL stylesheet transformation is used to grab certain information and display it in a webbrowser, based on category and language of the content in the XML file (categories are marked up with ordinary XML tags, language is specified with the xml:lang attribute). At present there are 8 combinations of category and language.
    I am looking for a way to dynamically assign the stylesheet to be used, based on where the user on the website is coming from. That is, the user clicks on a link and the XML doc is opened with a certain stylesheet, which displays data from a certain category in a certain language.
    Can this be done at all? It is important that only one XML doc is the basis for this functionality. Preferably, it should only be one XSL also, but I guess that's not possible.
    Cheers,
    N
    PS: I realise this has nothing to do with Java, I hope you can forgive me posting this question here. I found that there are many very knwoledgable and helpful people here in the Java forums.

    What is your context? If it is the root element, then that test will return true (because there IS a /message/commission element whose type is not 'Initial'), and then the xsl:copy-of will copy the two /message/commission elements under the root.
    If you want to handle each of the commission elements differently, then you need a template that handles each of them. This template can then look directly at the type attribute, and xsl:copy-of itself if the attribute is not 'Initial'.

Maybe you are looking for

  • Invalid path to MS-Word templates folder

    Hi all!!! I set in System Initialisation -> General Settings -> Path -> Microsoft Word Templates Folder: "C:\Program Files (x86)\SAP\SAP Business One\WordDocs\". When i click on the MS_WORD icon on a Sales Order i get the message "Invalid path to MS-

  • Canon - PowerShot 8.0MP Digital ELPH Camera - Pink

    could you please tell me what comes with the subject camera for accessories?

  • Too large frames/Outdiscards errors

    Hi ! We have a problem with switch connected to an IBM Chassis (model : WS-CBS3012-IBM-I). Several links seem to flap from time to time and we have dropped packets (Outdiscards) : XXX#show interfaces counters errors Port        Align-Err     FCS-Err 

  • Oracle Agile to Oracle ERP

    Hi all I'm trying to find information about how to send data from Agile to ERP, but not much success. has anyone done it before? what does it take to do that? thank you very much for your expertise

  • Long "All-Day" Event not showing in 2nd month

    All-Day events that begin before the last week in a month do not show up in the next month. Example: 3/29/2008 to 4/17/2008 (OK) 3/27/2008 to 4/17/2008 (event doesn't show at all in April)