Using ids:getUserProperty in XSLT

Hi!
XSLT designer does not let you use IDS functions, so I tried to modify the source directly like this:
<xsl:value-of select='ids:getUserProperty(/client:process/client:Pratica/ns1:IdentificativoMittente,"mail")'/>
Compilation is fine but at runtime I get this error:
<bpelFault><faultType> <message>0</message></faultType><subLanguageExecutionFault xmlns="http://schemas.oracle.com/bpel/extension"><part name="summary"><summary>XPath expression failed to execute. An error occurs while processing the XPath expression; the expression is ora:processXSLT('xsl/initPraticaLDAP_nodate.xsl',bpws:getVariableData('inputVariable','payload')). The XPath expression failed to execute; the reason was: javax.xml.transform.TransformerException: &lt;Line 46, Column 136>: XML-22016: (Error) Extension function namespace should start with 'http://www.oracle.com/XSL/Transform/java/'.. Check the detailed root cause described in the exception message text and verify that the XPath query is correct. </summary></part><part name="code"><code>XPathExecutionError</code></part></subLanguageExecutionFault></bpelFault>
Is there any workaround to make IDS functions work in XSLT?
Thank you for your help.
Regards,
Mick

Hi RVR,
This sounds like pretty straight-forward array handling, but a bit of clarification please!
> i have a 2D array (A) with 100 columns and 400 rows, where each cell contains a number from 0 - 300.
> These numbers are not in order and some will be repeated and some will not be there at all.
> i have a second 2D array (B) with 300 columns and 400 rows, which contains my data.
>  For identification, the headers (labels) on the first row are numbered 1 - 300 in order.
> So I want to use the numbers contained in my first 2D array (A), match them to the headers of my second 2D array (B)...
What should be dome when the value from array A is 0 ?
> and subset the corresponding columns.
It's not hard to pull-out a column of data from array B, but should this be done for every cell in A?  If so, where is this column going once extracted?
Should the solution build a 3D array of 100 by 400 (array A) by 400 (the depth of the column extracted from B)?
Cheers.
"Inside every large program is a small program struggling to get out." (attributed to Tony Hoare)

Similar Messages

  • Using Saxon Functions Within XSLT

    Hi,
    Please let me know how to use saxon functions within XSLT.
    E.g.: If I want to implement saxon:base64Binary-to-string() function in XSLT in "xsl:value-of" function, then what will be the format for implementation.
    I have selected the Processor as Saxon 8.9.0.3 (the one available) and using xmlns:saxon="http://saxon.sf.net/" in the xsl:stylesheet tag.
    I am using Stylus Studio 2007 XML Enterprise Suite for XSLT.
    Thanks,
    Abhishek.

    Hi,
    Yes I intended to use the XLST mapping within PI...but now will have to change the plan...is there any other way to do it?....is this the problem with the SP?.....anybody who can put more light on this topic.....
    Thanks,
    Abhishek.

  • Running DocuMaker 12.1 Using IDS 2.4

    Hi
    I have a transaction level DAL to trigger and order the forms based on few nodes in the XML. I see that the DAL works perfectly well when DocuMaker is run stand-alone.
    It gives the same results when the same extract is submitted multiple times. But the DAL doesn't work properly when DocuMaker is ran using IDS. It gives proper results for the 1st two runs and doesn't work as expected in the next runs.
    The DAL uses GVM variables for ordering the forms and I believe the GVM variables are not getting destroyed as the GENDATA process stays alive during the IDS call.
    I tried modifying my IDS request type to stop the DocuMaker process before each it starts and could see some issues with the performance. This fixed the issue but i could see the response time is more as the IDS starts DocuMaker for every requests.Do we have any INI settings or rules that can be used to destroy the GVM variable after each run.
    Below is the definitions of the request type in the docuserv.xml. Please let me know if there is a better way of doing it.
    Initial Definition
    <section name="ReqType:SPRT">
    <entry name="function">atcw32-&gt;ATCLogTransaction</entry>
    <entry name="function">atcw32-&gt;ATCLoadAttachment</entry>
    <entry name="function">atcw32-&gt;ATCUnloadAttachment</entry>
    <entry name="function">atcw32-&gt;ATCReceiveFile,ExtrFile,ExtrFile,*,KEEP</entry>
    <entry name="function">dprw32-&gt;DPRSetConfig</entry>
    <entry name="function">rpdw32-&gt;RPDCheckRPRun</entry>
    <entry name="function">rpdw32-&gt;RPDCreateJob</entry>
    <entry name="function">rpdw32-&gt;RPDProcessJob</entry>
    </section>
    New Definition with "RPDStopRPRun" before "DPRSetConfig" and "RPDCheckRPRun"
    <section name="ReqType:SPRT">
    <entry name="function">atcw32-&gt;ATCLogTransaction</entry>
    <entry name="function">atcw32-&gt;ATCLoadAttachment</entry>
    <entry name="function">atcw32-&gt;ATCUnloadAttachment</entry>
    <entry name="function">atcw32-&gt;ATCReceiveFile,ExtrFile,ExtrFile,*,KEEP</entry>
    <entry name="function">rpdw32-&gt;RPDStopRPRun</entry>                    
    <entry name="function">dprw32-&gt;DPRSetConfig</entry>
    <entry name="function">rpdw32-&gt;RPDCheckRPRun</entry>
    <entry name="function">rpdw32-&gt;RPDCreateJob</entry>
    <entry name="function">rpdw32-&gt;RPDProcessJob</entry>
    </section>
    I am using IDS 2.4 to run DocuMaker 12.1 (ODSE ) in a Single Step mode in Solaris Environment.
    Thanks in Advance.

    I don't know how many GVM variables might be involved, but assuming that you do, why not simply clear the variables in a PostTransDAL rule in the AFGJOB. That way the variables will have no content when the next transction begings?
    And depending upon your setup and what you are relying upon to create the GVMs, you might also be able to use a little trick using the <GentrnDummyFields> INI Group. Normally a GenTrn process would expect any variables named here to also be defined in the TRN DFD, but since you are using IDS, I'm presuming that you are only relying upon GenData and not GenTrn. So - again depending upon what you are relying upon to define the GVMs - you might be able to simply list your GVMs under this group and they would be cleared at the start of every transaction.
    < GentrnDummyFields >
    MyGVMOne =
    ASecondGVM =
    AnotherGVM =
    By leaving the assignment blank, I'm pretty sure the start of each transaction will clear the variables. Note this doesn't delete them, but I'm assuming your script(s) would be able to handle the blank value to mean the item is not defined.

  • Problem using Resource Bundle in XSLT File

    Hi All,
    I've been trying to use Resource Bundle on my XSLT file with no success for the last 2 weeks. So I would like some help to definitely end this problem.
    The fact is that i have a property file that i would like to read and it works fine when i use jsp or a servlet however when i try to call the same property file using my XSL i get the message below:
    java.util.MissingResourceException: Can't find bundle for base name thoth, locale en_US
    Follow the code from my Stylesheet that i'm calling the resource bundle:
    <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:java="java.util.ResourceBundle" exclude-result-prefixes="java" version="1.0">
    <xsl:strip-space elements="*"/>
    <xsl:output method="html" indent="yes" version="4.0"/>
    <xsl:output encoding="ISO-8859-1"/>
    <xsl:template match="page">
    <html>
    <body>
    <xsl:apply-templates select="paragraph"/>
    <xsl:variable name="resources" select="java:getBundle('thoth')"/>
    <xsl:value-of select="java:getString($resources,'general.title')"/>
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>
    Please someone could help me why this file cannot be located, I am 100% of sure the property file path is in my classpath since it works fine in a servlet. Should i have to put it some other place? Do i have some other way to read this file and show the information from the file?
    I would appreciate any help
    thanks in advance and Regards
    Fabio

    Please someone could help me why this file cannot be located, I am 100% of sure the property file path is in my classpath since it works fine in a servlet.
    Is the property file in your classpath? or whether the directory where the property file is residing is in your classpath. Please put only the directory where the property file is located in the classpath and try again.
    It may be working fine with the servlet because j2ee servlet containers put the classes and lib directory automatically in the classpath therefore resource bundle gets loaded even without putting it explicitly in the classpath. This doesn't happen when you try to test some component from the console.
    Let me know if this does not work.
    regards,
    Abhishek.

  • Using transform api with xslt and DOM Nodes

    Hi,
    when trying to transform a xml document with xslt using the javax.xml.transform api
    providing an element node of a previously parsed document, I find that absolute
    paths are not recognized.
    The following program shows what I am basically doing (the class can be executed
    on the command line providing a stylesheet and xml instance):
    import java.io.*;
    import org.w3c.dom.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;
    import javax.xml.parsers.*;
    class Transform {
    public static void main(String [] args) throws Exception {
         TransformerFactory tfactory = TransformerFactory.newInstance();
         Transformer transformer = tfactory.newTransformer(new StreamSource(args[0]));
         DocumentBuilderFactory dfactory = DocumentBuilderFactory.newInstance();
         DocumentBuilder parser = dfactory.newDocumentBuilder();
         Document doc = parser.parse(args[1]);
         Element domElem = doc.getDocumentElement();
         // workaround
    //     StringWriter out = new StringWriter();
    //     Transformer id = tfactory.newTransformer();
    //     id.transform(new DOMSource(domElem),new StreamResult(out));
    //     String xml = out.toString();
    //     transformer.transform(new StreamSource(new StringReader(xml)), new StreamResult(System.out));
         transformer.transform(new DOMSource(domElem), new StreamResult(System.out));
    transformer.clearParameters();
    If I use this on e.g.
    xsl:
    <?xml version="1.0"?>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output indent="yes" encoding="ISO-8859-1" method="xml"/>
    <xsl:template match="/">
    <xsl:value-of select="/foo/bar"/>
    </xsl:template>
    </xsl:stylesheet>
    xml:
    <foo>abc<bar>def</bar></foo>
    I get
    <?xml version="1.0" encoding="ISO-8859-1"?>
    abcdef
    instead of
    <?xml version="1.0" encoding="ISO-8859-1"?>
    def
    I think this is due to the fact, that the transformation does not recognize
    any absolutely adressed xpath correctly.
    From what I read in the API docs, I think what I'm doing should be ok.
    So: did I misunderstand something or is this a bug in the java libraries?
    I'm using j2sdk 1.4.1_01 on i386 linux.
    If I use the commented code (serializing the xml and doing the transformation
    with a StreamSource, that has to be parsed again), everything's fine.
    Of course it would be easier to parse the file directly in the example but in the
    real program, I already have a dom tree and want to transform a part of it.
    Any help appreciated.
    Thanks, Morus

    why?
    that's all the point of XSL: define what part of your
    XML you want in your XSL templates, there is no need
    to prepare a sub-DOM of your DOM.
    Ok. Right. That's an alternative.
    The problem remains, that there are some stylesheets originally written
    for the current solution and though they should work with the whole document
    as well, it's not certain.
    Actually I don't know if this ever worked. I did neither write this code nor maintained the system so far.
    btw. you would be faster by giving a StreamSource to
    your transformation.Probably yes. But that would imply to rewrite a lot of code.
    What is happening is:
    there is a SOAP answser containing a xml document as the result parameter.
    The SOAP answer is parsed (I guess by the soap classes already) and the
    result xml is extracted. That's where the element node I'm trying to transform
    stems from.
    Besides, I still don't see why DOMSource takes any node if only document nodes
    work.
    Thanks, Morus

  • IDoc to cXML using built-in SAP XSLT Processor

    Hi ABAP experts,
    i have a requirement to send an IDoc to an external system, the external system expecting it to be in cXML standard - without using XI/PI
    has someone of you done this before?
    I was looking at the option to utilize the built-in SAP XSLT processor (CALL TRANSFORMATION) since it supports XML to XML and ABAP to XML transformations
    so the flow would either be
    IDoc --> XSLT --> cXML  (preferred)
    IDoc --> XML (using XML port) --> XSLT --> cXML
    is this possible?
    Also, can the cXML be sent using the XML HTTP port in we21?
    Your tips suggestions would be highly appreciated

    Hello
    Have you had a look at class CL_IDOC_XML1? This class does the transformation IDoc -> XML for you.
    The next step would be to create the required XSLT transformation for the mapping IDoc-XML -> cXML.
    Regards
      Uwe

  • Using Translate() function of XSLT ...

    Hi guys
    I have an xml document that i am converting into an html document using XSLT. I need to replace the XML new lines(&#10) with html new lines (<br>) while the xslt transform takes place on my xml document.
    For this I have found the translate function of XSLT but I need to use it on a specific tag and not all the tags in the xml document.
    <ExampleTag>
    1 first line
    2 second line
    3 third line
    </ExampleTag>
    translate(string, replaced_text, replacement_text)
    so I need to get my tags value in the variable string which is:
    1 first line
    2 second line
    3 third line
    and replaced_text: '&#10' and replacement_text: '<br>'
    but the problem is XSLT syntax is so bad that i just cant devote enough time to learn it. Any suggestions for the syntax guys?? an example would be extremely useful.
    cheers :)

    Hey
    after a bit of struggle came up with this:
    <xsl:template match="ExampleTag">
    <xsl:variable name="string" select="."> </xsl:variable>
    translate(string, "&#10", "</br>" )
    <xsl:value-of select="$string"/>
    </xsl:template>
    but its not working :(
    any suggestions??

  • Use document() function in xslt

    Hi I want to use the xslt function document() to import a data file into the transformation.
    However I don't seem to be able to import the xml file onto the osb. can this be done ?
    Basically can you use the document() function?
    I've tried googling and searching the docs but i think i'm missing something basic :-)
    Thanks in advance

    Not an answer to the particular point but i've got round the issue by adding a stage which inserts the data xml into the xml document being transformed.
    I then supress the data injected from being copied to the output tree and use a variable which references the data nodes rather than a variable referencing
    an external doc variable name="myvar" select="//injecteddatanode" /> rather than <variable name="myvar" select="document("path/doc.xml")
    The question still stands though : how do you import an xml doc which can then be used by the document function in a transform

  • Can i use onload event in XSLT

    Hi all,
    I am working on xml and xslt.
    After the xslt tranfermation i wants to call a function defined in javascript.
    I just wants to use onload event but its i dont have idea how to call an onload event.
    thnx,
    raj

    Not sure what you mean by a CDATA section. But here is the XSLT file showing the template for the root element. The script is included using a <script> element, inserted in the <head> element. Should it be some place else?
    <?xml version="1.0" encoding="utf-8"?><!-- DWXMLSource="Trial procedure.xml" -->
    <!DOCTYPE xsl:stylesheet  [
        <!ENTITY nbsp   "&#160;">
        <!ENTITY copy   "&#169;">
        <!ENTITY reg    "&#174;">
        <!ENTITY trade  "&#8482;">
        <!ENTITY mdash  "&#8212;">
        <!ENTITY ldquo  "&#8220;">
        <!ENTITY rdquo  "&#8221;">
        <!ENTITY pound  "&#163;">
        <!ENTITY yen    "&#165;">
        <!ENTITY euro   "&#8364;">
    ]>
    <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
    <xsl:output method="html" encoding="utf-8" doctype-public="-//W3C//DTD XHTML 1.0 Transitional//EN" doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"/>
    <xsl:template match="/">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title><xsl:value-of select="MovexUser/Title"/></title>
    <script src="SpryAssets/SpryAccordion.js" type="text/javascript"></script>
    <link href="resources/navigatorSpryAccordion.css" rel="stylesheet" type="text/css" />
    </head>
    <body id="body">
    --- The JavaScript funtions are called inside DIV elements here. ---
    </body>
    </html>
    </xsl:template>
    </xsl:stylesheet>

  • How to use DTD in my XSLT program

    I've got a DTD,i've to code the XML part in XSLT_TOOL but when i use the statement
    !DOCTYPE doc SYSTEM "c:\doc.dtd"
    it is throwing me an error and i don't know how to use it also.Can anybody please send me a sample program showing how i can use that DTD in my program. Say my DTD when opened in IE5 and viewed it's source shows me like this
    <?xml version="1.0"?>
    <!ELEMENT note (to,from,heading,body)>
    <!ELEMENT to (#PCDATA)>
    <!ELEMENT from (#PCDATA)>
    <!ELEMENT heading (#PCDATA)>
    <!ELEMENT body (#PCDATA)>

    Hi,
      Have a look at the following link-
    http://72.14.235.104/search?q=cache:19IIghpohpcJ:https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sapportals.km.docs/documents/a1-8-4/xml processing and xslt transformations with abapDTDinXSLTprograminXSLT_TOOL&hl=en&gl=in&ct=clnk&cd=2
    Reward if helpful.
    Regards,
    Tanuja.

  • Ids:getUserProperty

    Hi,
    I used this xpath extension function in 10g and I find it very useful. Now I'm trying out Jdeveloper 11g Studio Edition Version 11.1.1.1.0 but I can't seem to find it in the expression builder. I looked at the documentation and it's still there, is it just left out when it moved from 10g to 11g or is there a schema or and extension that I need to add in order to see and use this fuction again?
    Thanks.

    Hi all,
    We are also facing same issue.
    The function ids:getUsersInGroup doesnt return value.
    Even i imported identityservice.xsd and is_config .xsd and created variable using the *"users"* element of identityservice.xsd schema and assigned the value to this variable.
    But Audit always says
    *"XPath query string returns multiple nodes.*
    *According to BPEL4WS spec 1.1 section 14.3, The assign activity part and query should not return multipe nodes.*
    *Please check the BPEL source at line number "72" and verify the part and xpath query "*
    Help me to resolve this issue.

  • What to use for the replace XSLT for  0xA charater?

    We are getting data from a vendor and in some text it has a 0xA hex value (newline) in it. I am looking at using a the replace function to remove this from the string but I was not sure what to tell the replace function what to search for. I am using 11.1.1.6 Jdeveloper
    Sorry if this is not the correct place to post this question and thank you for any assistance.

    Please look at the following link :
    http://stackoverflow.com/questions/552762/removing-all-n-r-characters-from-a-node-xslt
    Basically, use the translate(., '&#xA;', '') function.

  • Using summation function in xslt transformation

    Hi,
    I'm new to SOA and i'm just exploring the functions in SOA suite. I couldn't add more than one parameter in summation function.
    summation function takes only one parameter as input I hope. How to use it.
    Thanks and Regards
    Karthick

    Yes. You are right.
    Nilesh

  • Solaris 8 login using iDS 5.1sp2

    I have recently installed the Sun ONE Directory Server 5.1 sp2 onto a Solaris 8 machine. I would like to setup both the directory server and Solaris to work with one another. I need to know which fields to add to the Directory Server, as well as any changes I need to make on the Solaris machine. I've been through several docs from Sun blueprints, the Sun knowlege base, and through these forums, but I haven't had any success fixing my problem. Eventually I will need assistance configuring the Directory Server to enbale Windows 2000 logins as well. I will also need to know how to setup Windows 2000 for LDAP authentication.
    If anyone can be of assistance, I would appreciate it.

    I had a heck of a time getting this to work with just the install of iDS 5.1sp1. I could find no documentation on this at all. Finally here is what I did:
    1.) Install Netscape Directory Server 4.1.6sp1 (included with your Solaris 8 CD pack).
    2.) Run the Native LDAP setup script from blueprints (SUN)
    3.) Add a user or 2 to test your setup.
    4.) install a new Directory Server that is iDS 5.1sp1 (or sp2 in your case)
    5.) Migrate your native LDAP setup to iDS 5.1sp2.
    I have a few issues to work out, but all in all it should work. If you read through the posts in this thread, I have outlined what I did to migrate my data to iDS 5.1sp1 from NDS 4.1.6sp1
    thanks,
    Gary

  • How to configure dynamic email address for notification

    All,
    I have a problem in assigning dynamic email address for notification activity in a bpel process, I want to assign a user from a user-properties file. How do I achieve this. I tried using the users in System-jazn-data.xml file, but if i add a email attribute to the existing users it doesn't show up. I am sure there should be an easier way of using identity service and adding attributes to the jazn realm user, I might be missing something.
    I cannot have it as part of the payload the only way is to use identity service.
    Thanks,
    Chitra

    Hi James,
    Thanks for the reply. Its solved now. For anybody if interested you can set the dynamic email address either i) having it as part of payload - In this case use the xpath to query the payload varaible ii) use identity service - follow the following steps
    1.Create a user in Application enterprise manager/also you can use a existing account, if u are creating a new one assign the correct role
    2. In either case edit the user-properties.xml(bpel/system/services/config) file for the corresponding user and add an attribute called email
    3. Bounce the server for this changes to take effect
    4. In the notification properties in the to address use ids:getUserProperty and pass the attribute name

Maybe you are looking for