123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: ps
- (C) Copyright IBM Corp. 2005, 2017
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
- Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
- -->
- <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/portal.xml, messages/portalRL.xml">
- <xts:block id="buildDirectPromptValues" type="exec" mode="interpret" processor="XSLT" mandatory="false" condition=".[/root/system/param[@name = 'enable-rp-parameter'] = 'true' and /root/env/param[starts-with(@name, 'rp_')] != '']">
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- exclude-result-prefixes="xsl">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="/root">
- <DirectPromptValues>
- <xsl:for-each select="/root/env/param[starts-with(@name, 'rp_')]">
- <xsl:if test=". != ''">
- <xsl:variable name="promptValue">
- <xsl:value-of select="text()"/>
- </xsl:variable>
- <PromptValue name="{substring-after(@name,'_')}">
- <xsl:choose>
- <xsl:when test="contains($promptValue, 'selectChoices')">
- <xsl:value-of select="$promptValue" disable-output-escaping="yes"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$promptValue" disable-output-escaping="no"/>
- </xsl:otherwise>
- </xsl:choose>
- </PromptValue>
- </xsl:if>
- </xsl:for-each>
- </DirectPromptValues>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- preSave
- A block to take care of tasks that should be done before the save. For example decoding the email runOptions.
- ===============================================================================================
- -->
- <xts:block id="preSave" dependency="buildDirectPromptValues" processor="XSLT" type="exec">
- <xts:logicsheet path="portal/iFrmCmd/logicsheets/cm-save.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cms="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cms/1/"
- xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- exclude-result-prefixes="xsl pf cms form send cm bus xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <cms:prop-decode/>
- <pf:serialize-xml/>
- <xsl:template match="/root/command/form:execute/form:env">
- <xts:sequence>
- <!-- decode all properties -->
- <xsl:apply-templates select="form:param[@name='emailToRunOptions' or @name='m_rp_parameters']" mode="decode"/>
- <!-- build m_rp_parameters with rp_<Parameter> -->
- <xsl:if test="/root/DirectPromptValues">
- <xts:delete select="/root/env/param[@name='m_rp_parameters']"/>
- <xsl:variable name="parameters-markup">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set">
- <xsl:call-template name="SetParameters"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:variable>
- <xts:append select="/root">
- <xsl:value-of select="$parameters-markup" disable-output-escaping="yes"/>
- </xts:append>
- <xts:delete select="/root/DirectPromptValues']"/>
- </xsl:if>
-
- <!-- update the user's preferences if they changed the show summary checkbox. -->
- <xsl:if test="not(form:param[@name='showSummaryPage']) and form:param[@name='changed_showSummaryPage']">
- <xts:append>
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <xts:transform src="portal/iFrmCmd/transforms/update-portal-prefs.xsl" processor="XSLT">
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <bus:query>
- <search>~</search>
- <properties>
- <item>options</item>
- </properties>
- </bus:query>
- </send:request>
- </xts:transform>
- </xts:transform>
- </xts:transform>
- </send:request>
- </xts:append>
- </xsl:if>
- <!-- When doing a run once we may need to retrieve the pdf options password(s) from the schedule -->
- <xsl:if test="form:param[@name='preserve_pdf_userPwd']='true' or form:param[@name='preserve_pdf_ownerPwd']='true'">
- <xts:append select="/root">
- <scheduleOptions>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query>
- <cm:search>
- <xsl:value-of select="form:param[@name='m_obj']"/>/schedule
- </cm:search>
- <cm:properties>
- <cm:property name="options"/>
- </cm:properties>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </scheduleOptions>
- </xts:append>
- </xsl:if>
- </xts:sequence>
- </xsl:template>
- <xsl:template name="SetParameters">
- <parameters type="cm:parameterValueArrayProp">
- <xsl:for-each select="/root/DirectPromptValues/PromptValue">
- <parameterValue>
- <name><xsl:value-of select="@name"/></name>
- <xsl:for-each select="./selectChoices/selectOption">
- <simpleParmValueItem>
- <inclusive>true</inclusive>
- <xsl:choose>
- <xsl:when test="@displayValue!=''">
- <display><xsl:value-of select="@displayValue"/></display>
- </xsl:when>
- <xsl:otherwise>
- <display/>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:choose>
- <xsl:when test="@useValue!=''">
- <use><xsl:value-of select="@useValue"/></use>
- </xsl:when>
- <xsl:otherwise>
- <use/>
- </xsl:otherwise>
- </xsl:choose>
- </simpleParmValueItem>
- </xsl:for-each>
- </parameterValue>
- </xsl:for-each>
- </parameters>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- preserveOptionPassword
- A block to preserve the pdf options passwod.
- ===============================================================================================
- -->
- <xts:block id="preserveOptionPassword" processor="XSLT" type="exec" dependency="preSave">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="env-param" match="/root/env/param" use="@name"/>
- <xsl:template match="/root">
- <xsl:variable name="options" select="/root/scheduleOptions/*[local-name()='queryResponse']/*/*[local-name()='options']/*[local-name()='value']"/>
- <xts:sequence>
- <xsl:if test="key('env-param','preserve_pdf_userPwd')='true' or key('env-param','preserve_pdf_ownerPwd')='true'">
- <xts:append select="/root/env">
- <xsl:if test="key('env-param','preserve_pdf_userPwd')='true'">
- <param name="m_pdf_userPassword_runOption_Encrypted">
- <xsl:value-of select="$options/*[local-name()='item' and *[local-name()='name']='userPassword']/*[local-name()='value']"/>
- </param>
- </xsl:if>
- <xsl:if test="key('env-param','preserve_pdf_ownerPwd')='true'">
- <param name="m_pdf_ownerPassword_runOption_Encrypted">
- <xsl:value-of select="$options/*[local-name()='item' and *[local-name()='name']='ownerPassword']/*[local-name()='value']"/>
- </param>
- </xsl:if>
- </xts:append>
- </xsl:if>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- create an encrypted credention for any option password
- ================================================================================
- -->
- <xts:block id="processOptionPassword" nodelist="env" path="/portal/genOptionCredentials.xslt" dependency="preserveOptionPassword" type="exec" mode="interpret" processor="XSLT" mandatory="false" condition=".[/root/env/param[contains(@name, 'Password_runOption')] != '']"/>
- <!--
- ===============================================================================================
- doFormCommand
- Send the submit request to the jobService or JSM
- ===============================================================================================
- --> <xts:block id="doFormCommand" dependency="preSave processOptionPassword" processor="XSLT" type="exec">
- <xts:logicsheet path="portal/iFrmCmd/logicsheets/cm-save.xsl"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:cms="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cms/1/"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
- xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:ms="http://developer.cognos.com/schemas/monitorService/1"
- xmlns:es="http://developer.cognos.com/schemas/eventManagementService/1"
- exclude-result-prefixes="xsl cms xts send form bus xtsext pf xsi SOAP-ENC SOAP-ENV ms es">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <!-- global application variables -->
- <pf:variables/>
- <xsl:key name="form-param" match="/root/command/form:execute/form:env/form:param" use="@name"/>
- <xsl:variable name="runNow" select="not(key('form-param', 'backgroundRun')) or key('form-param', 'backgroundRun')='now'"/>
- <xsl:variable name="isJob" select="key('form-param', 'm_class') = 'jobDefinition'"/>
- <xsl:variable name="isAgent" select="key('form-param', 'm_class') = 'agentDefinition' or key('form-param', 'm_class') = 'agentDefinitionView'"/>
- <xsl:variable name="isContentTask" select="key('form-param', 'm_class') = 'contentTask'"/>
- <xsl:variable name="isPlanningTask" select="contains('planningTask planningMacroTask', key('form-param', 'm_class'))"/>
- <xsl:variable name="isIndexUpdateTask" select="key('form-param', 'm_class') = 'indexUpdateTask'"/>
- <xsl:variable name="isDeployment" select="key('form-param', 'm_class') = 'exportDeployment' or key('form-param', 'm_class') = 'importDeployment'"/>
- <xsl:variable name="isCMMTask" select="contains('metricsExportTask metricsFileImportTask metricsDataSourceETLTask metricsMaintenanceTask', key('form-param', 'm_class'))"/>
- <xsl:variable name="isPowerPlay8Task" select="contains(' powerPlay8Report powerPlay8ReportView ' , concat(' ', key('form-param', 'm_class'), ' '))"/>
- <xsl:template match="/root/command/form:execute/form:env">
- <xts:sequence>
- <xts:append>
- <xsl:variable name="parameters-fragment">
- <xsl:element name="parameters" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
- <xsl:if test="form:param[@name='cleared_prompts'] = 'true' or /root/parameters/*">
- <xsl:copy-of select="/root/parameters/*"/>
- </xsl:if>
- </xsl:element>
- </xsl:variable>
- <xsl:variable name="arguments">
- <xsl:if test="not($runNow)">
- <xsl:variable name="xsl_start_date">
- <xsl:value-of select="concat(substring(concat(string(key('form-param', 'p_runDate')), 'T', substring-before(string(key('form-param', 'p_runTime')), '.')), 1, 16), ':00')"/>
- </xsl:variable>
- <xsl:variable name="xsl_UTC_start_date">
- <xsl:value-of select="xtsext:formatDateToUTC( string( $xsl_start_date ), string( $timeZone ) )"/>
- </xsl:variable>
- <startTime xsi:type="xsd:dateTime">
- <xsl:value-of select="concat(substring($xsl_UTC_start_date, 1, 16), ':00')"/>
- </startTime>
- </xsl:if>
- <objectPath xsi:type="bus:searchPathSingleObject">
- <xsl:value-of select="key('form-param', 'm_obj')"/>
- </objectPath>
- <xsl:choose>
- <xsl:when test="$isDeployment">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root mode="run">
- <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
- <root>
- <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="/root/env"/>
- </root>
- </xts:transform>
- <xts:transform name="XML" src="portal/options.xml"/>
- <optionType>monitorOptions</optionType>
- <optionType>deploymentOptions</optionType>
- </root>
- </xts:transform>
- </root>
- </xts:transform>
- <parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[0]"/>
- </xsl:when>
- <xsl:when test="$isJob or $isAgent">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root mode="run">
- <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
- <root>
- <xts:transform name="XML" src="portal/options.xml"/>
- <optionType>monitorOptions</optionType>
- </root>
- </xts:transform>
- </root>
- </xts:transform>
- <xsl:choose>
- <xsl:when test="$isJob">
- <parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[0]"/>
- </xsl:when>
- <xsl:when test="$isAgent">
- <xts:transform src="transforms/portal/parameters/pre-WARP-process.xslt" processor="XSLT">
- <xsl:copy-of select="$parameters-fragment"/>
- </xts:transform>
- </xsl:when>
- </xsl:choose>
- </xsl:when>
- <xsl:when test="$isContentTask">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root mode="run">
- <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="/root/env"/>
- <xts:transform name="XML" src="portal/options.xml"/>
- <optionType>monitorOptions</optionType>
- <optionType>contentTaskOptions</optionType>
- </root>
- </xts:transform>
- </root>
- </xts:transform>
- <parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[0]"/>
- </xsl:when>
- <xsl:when test="$isIndexUpdateTask">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root mode="run">
- <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="/root/env"/>
- <xts:transform name="XML" src="portal/options.xml"/>
- <optionType>monitorOptions</optionType>
- <optionType>indexOptions</optionType>
- </root>
- </xts:transform>
- </root>
- </xts:transform>
- <parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[0]"/>
- </xsl:when>
- <xsl:when test="$isCMMTask or $isPlanningTask">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root mode="run">
- <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="/root/env"/>
- <xts:transform name="XML" src="portal/options.xml"/>
- <optionType>monitorOptions</optionType>
- </root>
- </xts:transform>
- </root>
- </xts:transform>
- <parameterValues xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:parameterValue[0]"/>
- </xsl:when>
- <xsl:otherwise>
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root mode="run">
- <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
- <root>
- <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="/root/env"/>
- </root>
- </xts:transform>
- <xts:transform name="XML" src="portal/options.xml"/>
- <xsl:choose>
- <xsl:when test="$isPowerPlay8Task">
- <optionType>powerPlay8Options</optionType>
- </xsl:when>
- <xsl:otherwise>
- <optionType>runOptions</optionType>
- </xsl:otherwise>
- </xsl:choose>
- <optionType>monitorOptions</optionType>
- <optionType>genericOptions</optionType>
- <optionType>pdfOptions</optionType>
- <optionType>archiveOptions</optionType>
- <genDefaults>false</genDefaults>
- <batchOptions>true</batchOptions>
- <xsl:if test="key('env-param','deliveryOptions') != ''">
- <deliveryOptions>
- <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param','deliveryOptions') )), true() )" disable-output-escaping="yes"/>
- </deliveryOptions>
- </xsl:if>
- <xsl:if test="key('env-param','mobileOptions') != ''">
- <mobileOptions>
- <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param','mobileOptions') )), true() )" disable-output-escaping="yes"/>
- </mobileOptions>
- </xsl:if>
- <contentLocale><xsl:value-of select="$contentLocale"/></contentLocale>
- </root>
- </xts:transform>
- </root>
- </xts:transform>
- <!-- Parameter: parameters {parameterValue[]} -->
- <xts:transform src="transforms/portal/parameters/pre-WARP-process.xslt" processor="XSLT">
- <xsl:copy-of select="$parameters-fragment"/>
- </xts:transform>
- </xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xsl:choose>
- <xsl:when test="$runNow">
- <send:request provider="monitorService" affinity="session">
- <ms:run>
- <xsl:copy-of select="$arguments"/>
- </ms:run>
- </send:request>
- </xsl:when>
- <xsl:otherwise>
- <send:request provider="eventManagementService">
- <es:runAt>
- <xsl:copy-of select="$arguments"/>
- </es:runAt>
- </send:request>
- </xsl:otherwise>
- </xsl:choose>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- <!-- pull in any templates to handle "special" properties on CM objects -->
- <cms:prop-save/>
- <xsl:template match="text()"/>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- commandResults - operation results
- ===============================================================================================
- -->
- <xts:block id="commandResults" processor="XSLT" type="exec" mode="output" mimeType="text/xml" dependency="doFormCommand">
- <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" version="1.0">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/root">
- <response xmlns="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/">
- <xsl:choose>
- <xsl:when test="cm:updateResponse">
- <xsl:copy-of select="cm:updateResponse"/>
- </xsl:when>
- <xsl:when test="*[local-name()='runResponse']">
- <xsl:copy-of select="*[local-name()='runResponse']"/>
- </xsl:when>
- <xsl:otherwise>
- <error/>
- </xsl:otherwise>
- </xsl:choose>
- </response>
- </xsl:template>
- <xsl:template match="text()"/>
- </xsl:stylesheet>
- </xts:block>
- </xts:morphlet>
|