123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: AGS
- (C) Copyright IBM Corp. 2005, 2008
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <xts:morphlet resolverBase="prompting" xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/portal.xml" requiredCapability="canUseEventStudio">
- <!-- place the specificiation we want into the DOM -->
- <xts:block id="buildSpecification" processor="XSLT" type="exec">
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <specification>
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='memberRequest'] and /root/env/param[@name='memberRequest'] != ''">
- <xsl:call-template name="buildMemberRequest"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="buildMetadataRequest"/>
- </xsl:otherwise>
- </xsl:choose>
- </specification>
- </xts:append>
- </xts:sequence>
- </xsl:template>
-
- <xsl:template name="buildMetadataRequest">
- <metadataRequest connection="<xsl:value-of select="xtsext:xmlencode(string(/root/env/param[@name='model']))"/>">
- <Metadata authoringLocale="<xsl:value-of select="/root/env/param[@name='el']"/>" xml:lang="<xsl:value-of select="/root/env/param[@name='pl']"/>" start_at="<xsl:value-of select="xtsext:xmlencode(string(/root/env/param[@name='startAtPath']))"/>" Depth="<xsl:value-of select="/root/env/param[@name='depth']"/>" no_collections="1" _enumLabels="1" >
- <Properties>
- <Property name="/@decimalSeparator"/>
- <Property name="/@listSeparator"/>
- <Property name="*/@name"/>
- <Property name="*/@_path"/>
- <Property name="*/@_ref"/>
- <Property name="*/@isNamespace"/>
- <Property name="*/@screenTip"/>
- <Property name="./folder"/>
- <Property name="./measureFolder"/>
- <Property name="./calculation"/>
- <Property name="./filter"/>
- <Property name="./querySubject"/>
- <Property name="./queryItem"/>
- <Property name="./queryItemFolder"/>
- <Property name="*/@datatype"/>
- <Property name="*/@usage"/>
- <Property name="*/@regularAggregate"/>
- <Property name="*/@promptType"/>
- <Property name="*/@promptFilterItemRef"/>
- <Property name="*/@promptDisplayItemRef"/>
- <Property name="*/@promptCascadeOnRef"/>
- <Property name="*/@displayType"/>
- <Property name="*/@semiAggregate"/>
- <Property name="*/@sortOnRef"/>
- <Property name="*/@_IntrinsicPropertiesOff"/>
- <Property name="*/@parentChild"/>
- <Property name="*/@calcType"/>
- <Property name="measure/@isHierarchical"/>
- <Property name="dimension/@type"/>
- <Property name="./dimension"/>
- <Property name="./hierarchy"/>
- <Property name="./hierarchyFolder"/>
- <Property name="./level"/>
- <Property name="./measure"/>
- </Properties>
- </Metadata>
- </metadataRequest>
- </xsl:template>
- <!-- build the member request -->
- <xsl:template name="buildMemberRequest">
- <xsl:variable name="case_sensitive">
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='case_sensitive'] and /root/env/param[@name='case_sensitive']='true'">
- <xsl:text>true</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>false</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <metadataRequest connection="<xsl:value-of select="xtsext:xmlencode(string(/root/env/param[@name='model']))"/>">
- <Metadata authoringLocale="<xsl:value-of select="/root/env/param[@name='cl']"/>" xml:lang="<xsl:value-of select="/root/env/param[@name='pl']"/>" Depth="<xsl:value-of select="/root/env/param[@name='depth']"/>" start_atPath="<xsl:value-of select="xtsext:xmlencode(string(/root/env/param[@name='startAtPath']))"/>" ResultStart="0" ResultCount="<xsl:value-of select="string(number(/root/env/param[@name='memberDisplayCountLimit'])+1)"/>">
- <Properties>
- <Property name="./dimension"/>
- <Property name="./hierarchy"/>
- <Property name="./level"/>
- <Property name="./member"/>
- <Property name="./folder"/>
- <Property name="./@_RootMembers"/>
- <Property name="*/@name"/>
- <Property name="*/@_path"/>
- <Property name="*/@_ref"/>
- <Property name="*/@memberUniqueName"/>
- <Property name="*/@memberCaption"/>
- <Property name="*/@levelUniqueName"/>
- <Property name="*/@levelNumber"/>
- <Property name="*/@levelLabel"/>
- <Property name="*/@parentUniqueName"/>
- <Property name="*/@currencyCode"/>
- </Properties>
- <!-- build the filter if there is one -->
- <xsl:if test="/root/env/param[@name='filter'] and not(/root/env/param[@name='filter'] = '')">
- <Constraints>
- <xsl:choose>
- <xsl:when test="/root/env/param[@name='filter_type'] = 'equals' ">
- <Constraint Condition="[@memberCaption='<xsl:value-of select="xtsext:xmlencode(/root/env/param[@name='filter'])"/>']" CaseSensitive="<xsl:value-of select="$case_sensitive"/>"/>
- </xsl:when>
- <xsl:otherwise>
- <Constraint Condition="[<xsl:value-of select="/root/env/param[@name='filter_type']"/>(@memberCaption,'<xsl:value-of select="xtsext:xmlencode(/root/env/param[@name='filter'])"/>')]" CaseSensitive="<xsl:value-of select="$case_sensitive"/>"/>
- </xsl:otherwise>
- </xsl:choose>
- </Constraints>
- </xsl:if>
- </Metadata>
- </metadataRequest>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--call the getExternalRequest to see if the request came from the /ext entry point -->
- <xts:block id="getExternalRequest" dependency="buildSpecification" processor="XSLT" type="exec">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" exclude-result-prefixes="pf">
- <pf:variables/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <externalRequest>
- <xts:function name="getRequestExternal" xmlns:xts="http://developer.cognos.com/schemas/xts/">
- <xts:param name="passport">
- <xsl:value-of select="$passport"/>
- </xts:param>
- <xts:param name="secureState">
- <xsl:value-of select="/root/header/*[local-name()='biBusHeader']/*[local-name()='CAF']/*[local-name()='secureState']"/>
- </xts:param>
- </xts:function>
- </externalRequest>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- depending on the output of the getExternalRequest request - sign the request -->
- <xts:block id="signSpecification" dependency="getExternalRequest" processor="XSLT" type="exec">
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <signedSpec>
- <xsl:choose>
- <xsl:when test="/root/getRequestExternalResponse">
- <xts:function name="signReportSpec" xmlns:xts="http://developer.cognos.com/schemas/xts/">
- <xts:param name="source">
- <xsl:value-of select="/root/specification"/>
- </xts:param>
- </xts:function>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="/root/specification"/>
- </xsl:otherwise>
- </xsl:choose>
- </signedSpec>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <xts:block id="makeRequest" dependency="signSpecification" mode="output" mimeType="text/xml" processor="XSLT" type="exec">
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8"/>
- <!-- build the metadata request -->
- <xsl:template match="/">
- <xsl:call-template name="buildMetadataRequest"/>
- </xsl:template>
- <!-- call the template which is going to make the function tree request -->
- <xsl:template name="buildMetadataRequest">
- <bus:value xsi:type="bus:specification" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <xsl:value-of select="/root/signedSpec"/>
- </bus:value>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- </xts:morphlet>
|