123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761 |
- <?xml version="1.0" encoding="UTF-8"?>
- <!--
- Licensed Materials - Property of IBM
- IBM Cognos Products: AGS
- (C) Copyright IBM Corp. 2005, 2017
- US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
- -->
- <!--
- ===============================================================================================
- Creates an agent in CM based on parameters passed in.
- Structure:
- AgentDefinition (createAgentDefinition) _______ agentTaskDefinition(createAgentTaskDefinitions) _______ N x AgentActions
-
- Agent(AgentDefinition) is what takes the schedule - and also holds the condition for the agent
- AgentTaskDefinition is the definition of the actions for the agent
-
- ===============================================================================================
- -->
- <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/AGS.xml,messages/portal.xml" requiredCapability="canUseEventStudio">
- <xts:block id="formlogic_init" type="exec" mode="interpret" processor="XSLT" path="/logicsheets/formlogic_init.xslt" nodelist="env,credential,system,http"/>
- <!--
- ===============================================================================================
- Get the information for the agent
- ===============================================================================================
- -->
- <xts:block id="getAgentDefinition" type="exec" mode="interpret" processor="XSLT" dependency="formlogic_init" nodelist="header,env,http,cookies">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" exclude-result-prefixes="send cm">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="root">
- <agentDefinition>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm" requester="AGS:load_agent">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query>
- <cm:search>
- <xsl:value-of select="/root/env/param[@name = 'm_path']"/>
- </cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="storeID"/>
- <cm:property name="sequencing"/>
- <!--cm:property name="notificationList"/-->
- <cm:property name="allowNotification"/>
- <cm:property name="position"/>
- <cm:property name="options"/>
- <cm:property name="runOptions"/>
- <cm:property name="retentions"/>
- <cm:property name="eventKey"/>
- <cm:property name="ancestors"/>
- </cm:properties>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </agentDefinition>
- </xts:append>
-
-
- <xts:append select="root">
- <agentNotificationList>
- <xts:request href="bus://dispatcher" protocol="BUS" responseEnvelope="false" outputHeader="false" option="xml-multipart">
- <xsl:attribute name="soapAction">
- <xsl:text>http://developer.cognos.com/schemas/deliveryService/1</xsl:text>
- </xsl:attribute>
- <SOAP-ENV:Envelope 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:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema">
- <SOAP-ENV:Header>
- <bus:biBusHeader xsi:type="bus:biBusHeader">
- <xsl:copy-of select="/root/header/bus:biBusHeader/*"/>
- </bus:biBusHeader>
- </SOAP-ENV:Header>
- <SOAP-ENV:Body>
- <xsl:element name="getNotificationList" namespace="http://developer.cognos.com/schemas/deliveryService/1">
- <search xsi:type="bus:searchPathSingleObject"><xsl:value-of select="/root/env/param[@name = 'm_path']"/></search>
- </xsl:element>
- </SOAP-ENV:Body>
- </SOAP-ENV:Envelope>
- </xts:request>
-
- </agentNotificationList>
- </xts:append>
-
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- update condition(report) report spec version - e.g. mr2 version is 2.0 and blacksea version is 4.0
- ===============================================================================================
- -->
- <xts:block id="updateReportSpec" type="exec" mode="interpret" processor="XSLT" dependency="getAgentDefinition" nodelist="header,env,http,cookies">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:rs="http://developer.cognos.com/schemas/reportService/1" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" exclude-result-prefixes="send cm rs xsi">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="root">
- <agentDefinitionReport>
- <send:request provider="warp">
- <rs:query>
- <objectPath xsi:type="bus:searchPathSingleObject">
- <xsl:value-of select="concat(/root/env/param[@name = 'm_path'], '/report')"/>
- </objectPath>
- <bus:parameterValues SOAP-ENC:arrayType="bus:parameterValue[]" xsi:type="SOAP-ENC:Array"/>
- <rs:options xsi:type="bus:optionArray" SOAP-ENC:arrayType="bus:option[]">
- <item xsi:type="bus:asynchOptionInt">
- <bus:name xsi:type="bus:asynchOptionEnum">primaryWaitThreshold</bus:name>
- <bus:value xsi:type="xsd:int">0</bus:value>
- </item>
- <item xsi:type="bus:asynchOptionInt">
- <bus:name xsi:type="bus:asynchOptionEnum">secondaryWaitThreshold</bus:name>
- <bus:value xsi:type="xsd:int">30</bus:value>
- </item>
- <item xsi:type="bus:contentManagerQueryOptionPropEnumArray">
- <name xsi:type="bus:contentManagerQueryOptionEnum">properties</name>
- <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:propEnum[]">
- <item>defaultName</item>
- <item>searchPath</item>
- <item>storeID</item>
- <item>options</item>
- <item>retentions</item>
- <item>specification</item>
- <item>metadataModel</item>
- <item>packageBase</item>
- <item>metadataModelPackage</item>
- <item>parameters</item>
- <item>paths</item>
- <item>modificationTime</item>
- <item>routingServerGroup</item>
- </value>
- </item>
- <item xsi:type="bus:reportServiceQueryOptionSpecificationFormat">
- <name xsi:type="bus:reportServiceQueryOptionEnum">specificationFormat</name>
- <value xsi:type="bus:specificationFormatEnum">report</value>
- </item>
- <item xsi:type="bus:reportServiceQueryOptionBoolean">
- <name xsi:type="bus:reportServiceQueryOptionEnum">upgrade</name>
- <value xsi:type="xs:boolean">true</value>
- </item>
- <item xsi:type="bus:runOptionBoolean">
- <bus:name xsi:type="bus:runOptionEnum">prompt</bus:name>
- <bus:value xsi:type="xsd:boolean">false</bus:value>
- </item>
- </rs:options>
- </rs:query>
- </send:request>
- </agentDefinitionReport>
- </xts:append>
- <xts:replace select="/root/agentDefinitionReport">
- <agentDefinitionReport>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <bus:queryResponse xmlns:bus="http://developer.cognos.com/schemas/bibus/3/">
- <xts:transform src="ags/transforms/removeNameSpace.xslt" processor="XSLT">
- <item xsi:type="cm:report">
- <xts:queryNode select="/root/agentDefinitionReport/*[local-name()='queryResponse']/*[local-name()='result']/*[local-name()='details']/item/*[local-name()='report']/*"/>
- </item>
- </xts:transform>
- </bus:queryResponse>
- </xts:transform>
- </agentDefinitionReport>
- </xts:replace>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Extract the filter from the report spec
- ===============================================================================================
- -->
- <xts:block id="getAgentCondition" type="exec" mode="interpret" processor="XSLT" dependency="updateReportSpec" nodelist="agentDefinitionReport">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:cmrp="http://developer.cognos.com/schemas/report/14.0/" exclude-result-prefixes="send cm cmrp">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:key name="filters" match="/root/agentDefinitionReport/*[local-name()='queryResponse']/*[local-name()='report']/*[local-name()='specification']/*[local-name()='report']/*[local-name()='queries']/*[local-name()='query']/*" use="local-name()"/>/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <xsl:variable name="detailExpression" select="key('filters','detailFilters')"/>
- <xsl:variable name="summaryExpression" select="key('filters','summaryFilters')"/>
- <agentDefinitionCondition>
- <summary>
- <xsl:text/>
- <xsl:variable name="both">
- <xsl:if test="$detailExpression != '' and $summaryExpression != ''"> and </xsl:if>
- </xsl:variable>
- <xsl:value-of select="$detailExpression"/><xsl:value-of select="$both"/><xsl:value-of select="$summaryExpression"/>
- <xsl:text/>
- </summary>
- <expressionBlob>
- <xsl:if test="$detailExpression and $detailExpression/*[local-name()='detailFilter']/*[local-name()='filterExpression'] != ''">
- <xts:transform name="XMLEncode">
- <xsl:copy-of select="$detailExpression"/>
- </xts:transform>
- </xsl:if>
- <xsl:if test="$summaryExpression and $summaryExpression/*[local-name()='summaryFilter']/*[local-name()='filterExpression'] != ''">
- <xts:transform name="XMLEncode">
- <xsl:copy-of select="$summaryExpression"/>
- </xts:transform>
- </xsl:if>
- </expressionBlob>
- <detailsExpression>
- <xsl:if test="$detailExpression and $detailExpression/*[local-name()='detailFilter']/*[local-name()='filterExpression'] != ''">
- <xsl:value-of select="$detailExpression/*[local-name()='detailFilter']/*[local-name()='filterExpression']"/>
- </xsl:if>
- </detailsExpression>
- <summaryExpression>
- <xsl:if test="$detailExpression and $detailExpression/*[local-name()='summaryFilter']/*[local-name()='filterExpression'] != ''">
- <xsl:value-of select="$detailExpression/*[local-name()='summaryFilter']/*[local-name()='filterExpression']"/>
- </xsl:if>
- </summaryExpression>
- </agentDefinitionCondition>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Get the information for the agent job steps
- ===============================================================================================
- -->
- <xts:block id="getAgentTaskObjects" type="exec" mode="interpret" processor="XSLT" dependency="getAgentCondition" nodelist="header,env,http,cookies">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" exclude-result-prefixes="send cm">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <agentTaskDefinitions>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm" requester="AGS:load_agent">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <cm:search><xsl:value-of select="concat(/root/env/param[@name = 'm_path'], '/agentTaskDefinition')"/></cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="storeID"/>
- <cm:property name="options"/>
- <cm:property name="runOptions"/>
- <cm:property name="parameters"/>
- <cm:property name="parameterAssignments"/>
- <cm:property name="taskObject"/>
- <cm:property name="eventKey"/>
- <cm:property name="eventTypes"/>
- <cm:property name="storedProcedureName"/>
- <cm:property name="metadataModel"/>
- <cm:property name="metadataModelPackage"/>
- <cm:property name="filterDataItemName"/>
- <cm:property name="runCondition"/>
- </cm:properties>
- <cm:options>
- <cm:refProps>
- <!-- get all the task properties using refProps -->
- <cm:refProp refPropName="taskObject">
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="storeID"/>
- <cm:property name="ancestors"/>
- <cm:property name="defaultDescription"/>
- <cm:property name="defaultScreenTip"/>
- <cm:property name="canBurst"/>
- <cm:property name="permissions"/>
- <cm:property name="position"/>
- <cm:property name="options"/>
- <cm:property name="parameters"/>
- <cm:property name="storedProcedureName"/>
- <cm:property name="metadataModel"/>
- <cm:property name="metadataModelPackage"/>
- <cm:property name="bindingName"/>
- <cm:property name="inputMessageName"/>
- <cm:property name="outputMessageName"/>
- <cm:property name="operationName"/>
- <cm:property name="serviceName"/>
- <cm:property name="uri"/>
- <cm:property name="channel"/>
- <cm:property name="link"/>
- <cm:property name="title"/>
- </cm:properties>
- </cm:refProp>
- </cm:refProps>
- </cm:options>
- <cm:sortBy>
- <cm:sort name="displaySequence" order="ascending"/>
- </cm:sortBy>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- </agentTaskDefinitions>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Get the information for the schedule
- ===============================================================================================
- -->
- <xts:block id="getAgentSchedule" type="exec" mode="interpret" processor="XSLT" dependency="getAgentTaskObjects" nodelist="header,env,http,cookies">
- <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/" exclude-result-prefixes="send cm cml">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <agentSchedule>
- <!--xts:transform src="transforms/CM/post-process.xslt" processor="XSLT"-->
- <send:request provider="cm" requester="AGS:load_agent">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query>
- <cm:search>
- <xsl:value-of select="concat(/root/env/param[@name='m_path'],'/schedule[permission("read")]')"/>
- </cm:search>
- <cm:properties>
- <cml:prop-schedule/>
- <cm:property name="storeID"/>
- </cm:properties>
- </cm:query>
- </xts:transform>
- </send:request>
- <!--/xts:transform-->
- </agentSchedule>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- generateTaskLinkHelpers - loop through the memo task links and query CM for each one.
- The following structure is created which is used by 'updateMemoTask' to delete the links/attachments from the memo
- that have been removed. Empty nodes in link/item or attachment mean the item has been deleted.
- <linkHelpers>
- <memo>
- <taskSearchPath> .. </taskSearchPath>
- <searchPath> .. </searchPath>
- <attachment>
- <attachmentSearchPath>...</attachmentSearchPath>
- <item>
- <searchPath/>
- <objectClass/>
- <displayName/>
- </item>
- <link>
- <linkSearchPath>...</linkSearchPath>
- <item>
- <searchPath/>
- <objectClass/>
- <displayName/>
- </item>
- </link>
- <link>
- <linkSearchPath>...</linkSearchPath>
- <item>
- <searchPath>CAMID("ENT:u=S-1-5-21-284529841-4053721766-3450372860-1021")/folder[@name='My Folders']/report[@name='Product Report']</searchPath>
- <objectClass>report</objectClass>
- <displayName>Product Report</displayName>
- </item>
- </link>
- </memo>
- <linkHelpers/>
- ===============================================================================================
- -->
- <xts:block id="generateTaskLinkHelpers" type="exec" processor="XSLT" dependency="getAgentSchedule"
- condition=".[/root/*[local-name()='agentTaskDefinitions']/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='memo']/*[local-name()='options']//*[local-name()='item'][attribute::*[local-name()='type']='objectLink' or attribute::*[local-name()='type']='memoPartAgentObject'] ]"
- mandatory="false" nodelist="agentDefinition,agentTaskDefinitions,header,http,env,cookies,system">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
- exclude-result-prefixes="xsl send">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
-
- <!-- memo task links-->
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="/root">
- <linkHelpers>
- <!-- loop through all memo tasks -->
- <xsl:for-each select="/root/*[local-name()='agentTaskDefinitions']/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='memo']">
- <xsl:variable name="memo" select="."/>
- <memo>
- <taskSearchPath><xsl:value-of select="../../*[local-name()='searchPath']"/></taskSearchPath>
- <searchPath><xsl:value-of select="$memo/*[local-name()='searchPath']"/></searchPath>
- <xsl:for-each select="./*[local-name()='options']//*[local-name()='item'][./*[local-name()='searchPath']]">
- <xsl:if test="attribute::*[local-name()='type']='bus:memoPartAgentObject' ">
- <attachment>
- <xsl:variable name="taskSearchPath" select="./*[local-name()='searchPath']"/>
- <xsl:choose>
- <!-- with the event output - we actually point to the agentDefinition itself -->
- <xsl:when test="$taskSearchPath = 'eventOutput' ">
- <xsl:call-template name="outputAttachment">
- <xsl:with-param name="taskSearchPath" select="$taskSearchPath"/>
- <xsl:with-param name="task" select="/root/*[local-name()='agentDefinition']/*[local-name()='queryResponse']/*[local-name()='agentDefinition']"/>
- </xsl:call-template>
- </xsl:when>
- <xsl:otherwise>
- <xsl:call-template name="outputAttachment">
- <xsl:with-param name="taskSearchPath" select="$taskSearchPath"/>
- <xsl:with-param name="task" select="/root/*[local-name()='agentTaskDefinitions']/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition'][./*[local-name()='searchPath']=$taskSearchPath or contains($taskSearchPath,./*[local-name()='storeID']) ]/*[local-name()='taskObject']/*"/>
- </xsl:call-template>
- </xsl:otherwise>
- </xsl:choose>
- </attachment>
- </xsl:if>
- <xsl:if test="attribute::*[local-name()='type']='bus:objectLink' ">
- <link>
- <!-- store the search path to the link so that we know which one to delete if the CM object could not be found-->
- <linkSearchPath><xsl:value-of select="./*[local-name()='searchPath']"/></linkSearchPath>
- <!-- query CM to see if the link exists -->
- <xts:transform src="portal/emailOptions/transforms/gen-standard-list.xslt" processor="XSLT">
- <xts:param name="messageBase">/messages/portal.xml</xts:param>
- <root>
- <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
- <send:request provider="cm" requester="AGS:load_agent">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:query xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <cm:requests>
- <cm:query>
- <cm:search>
- <xsl:value-of select="./*[local-name()='searchPath']"/><xsl:value-of select="/root/system/param[@name='visible']"/>
- </cm:search>
- <cm:properties>
- <cm:property name="defaultName"/>
- <cm:property name="searchPath"/>
- <cm:property name="iconURI"/>
- </cm:properties>
- </cm:query>
- </cm:requests>
- </cm:query>
- </xts:transform>
- </send:request>
- </xts:transform>
- <action>links</action>
- </root>
- </xts:transform>
- </link>
- </xsl:if>
- </xsl:for-each>
- </memo>
- </xsl:for-each>
- </linkHelpers>
- </xts:append>
- </xts:sequence>
- </xsl:template>
-
- <xsl:template name="outputAttachment">
- <xsl:param name="taskSearchPath"/>
- <xsl:param name="task"/>
- <attachmentSearchPath>
- <xsl:value-of select="$taskSearchPath"/>
- </attachmentSearchPath>
- <item>
- <searchPath><xsl:value-of select="$task/*[local-name()='searchPath']"/></searchPath>
- <userName><xsl:value-of select="$task/*[local-name()='userName']"/></userName>
- <defaultName><xsl:value-of select="$task/*[local-name()='defaultName']"/></defaultName>
- </item>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- update the memo tasks if any.
-
- update the agent memo task to remove links and attachments of deleted reports/agents
- ===============================================================================================
- -->
- <xts:block id="updateMemoTask" type="exec" mode="interpret" processor="XSLT" dependency="generateTaskLinkHelpers" mandatory="false" condition=".[/root/*[local-name()='linkHelpers']/*[local-name()='memo']/*/*[local-name()='item']/*[local-name()='searchPath']=''] " nodelist="agentTaskDefinitions,linkHelpers,env,header,http,cookies">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
-
- <!-- loop over all the memo object which are in the linkHelpers -->
- <xsl:for-each select="/root/linkHelpers/memo">
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="memoSearchPath" select="./*[local-name()='searchPath']"/>
-
- <!-- do we need to alter the contents -->
- <xsl:if test="./*[./item/searchPath = '']">
- <!-- we do -->
- <xts:replace select="/root/agentTaskDefinitions/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='memo'][./*[local-name()='searchPath']=/root/linkHelpers/memo[position()={$position}]/searchPath]/*[local-name()='options']">
- <xts:transform src="ags/transforms/removeLinksAttachments.xslt" processor="XSLT">
- <root>
- <!-- copy the options which need changing -->
- <xsl:copy-of select="/root/agentTaskDefinitions/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='memo'][./*[local-name()='searchPath']=/root/linkHelpers/memo[position()=$position]/searchPath]/*[local-name()='options']"/>
- <!-- copy the appropriate link helpers -->
- <xsl:copy-of select="."/>
- </root>
- </xts:transform>
- </xts:replace>
- <!-- update CM as well -->
- <send:request provider="cm" requester="AGS:load_agent">
- <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
- <cm:update>
- <cm:objects>
- <cm:memo>
- <cm:searchPath>
- <xsl:value-of select="$memoSearchPath"/>
- </cm:searchPath>
- <xts:queryNode select="/root/agentTaskDefinitions/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='memo'][./*[local-name()='searchPath']=/root/linkHelpers/memo[position()={$position}]/searchPath]/*[local-name()='options']"/>
- </cm:memo>
- </cm:objects>
- </cm:update>
- </xts:transform>
- </send:request>
- </xsl:if>
- </xsl:for-each>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- tidyEmailTaskLinkHelpers - remove the link helpers
- ===============================================================================================
- -->
- <xts:block id="tidyEmailTaskLinkHelpers" type="exec" mode="interpret" processor="XSLT" dependency="updateMemoTask" mandatory="false" condition=".[/root/*[local-name()='linkHelpers']]" nodelist="linkHelpers">
- <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:template match="/">
- <xts:sequence>
- <xts:delete select="/root/*[local-name()='linkHelpers']"/>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- delets the agent task
-
- deletes the agent task from the summary bar which has been deleted from the portal
- ===============================================================================================
- -->
- <xts:block id="deleteEmptyTask" type="exec" mode="interpret" processor="XSLT" dependency="tidyEmailTaskLinkHelpers" condition=".[/root/agentTaskDefinitions/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject' and not(*)]]" mandatory="false" nodelist="agentTaskDefinitions,header,env,http,cookies">
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="/root">
- <deleteTasks>
- <xts:queryNode select="/root/agentTaskDefinitions/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject' and not(*)]]/*[local-name()='storeID']"/>
- </deleteTasks>
- </xts:append>
- <xts:delete select="/root/agentTaskDefinitions/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject' and not(*)]]"/>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- transform the parameters back to cm style
- ===============================================================================================
- -->
- <xts:block id="transformParameters" type="exec" mode="interpret" processor="XSLT" dependency="deleteEmptyTask" nodelist="agentTaskDefinitions">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes=" xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append select="/root">
- <transformedParams>
- <!-- loop over all the agentTaskDefinitions-->
- <xsl:for-each select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition">
- <parameterData>
- <xts:transform src="transforms/portal/parameters/pre-WARP-process.xslt" processor="XSLT">
- <xsl:copy-of select="cm:parameters"/>
- </xts:transform>
- <!-- blinking no namespace -->
- <parameterAssignments>
- <xsl:apply-templates/>
- </parameterAssignments>
- </parameterData>
- </xsl:for-each>
- </transformedParams>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- <xsl:template match="cm:parameterAssignments">
- <xsl:for-each select="./cm:parameterAssignmentDataItem">
- <xsl:element name="parameterAssignment">
- <xsl:element name="parameterName">
- <xsl:value-of select="parameterName"/>
- </xsl:element>
- <xsl:element name="dataItemName">
- <xsl:value-of select="dataItemName"/>
- </xsl:element>
- </xsl:element>
- </xsl:for-each>
- </xsl:template>
- <xsl:template match="*"/>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Build a shell for each agent task - just have to assign the id's at this stage
- ===============================================================================================
- -->
- <xts:block id="createAgentTasks" type="exec" mode="interpret" processor="XSLT" dependency="transformParameters" nodelist="agentTaskDefinitions">
- <xts:logicsheet path="ags/logicsheets/agsCmHelper.xsl"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:out="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:agsh="http://developer.cognos.com/schemas/xts/logicsheets/xslt/ags/agsCmHelper/" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" exclude-result-prefixes="agsh pf dt xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:serialize-xml/>
- <xsl:template match="/">
- <xts:sequence>
- <xts:append>
- <agentTasks>
- <!-- loop over all the steps -->
- <xsl:for-each select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition">
- <xsl:variable name="objectClass" select="cm:taskObject/*/cm:objectClass"/>
- <!-- create the type variable - what type of agent task are we -->
- <xsl:variable name="type">
- <xsl:choose>
- <xsl:when test="$objectClass = 'report' or $objectClass = 'query' or $objectClass = 'reportView' or $objectClass = 'analysis' or $objectClass = 'powerPlay8Report' or $objectClass = 'powerPlay8ReportView' or $objectClass = 'interactiveReport'">
- <xsl:text>report</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass='jobDefinition'">
- <xsl:text>job</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass='agentDefinition' or $objectClass='agentDefinitionView'">
- <xsl:text>agent</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass='memo'">
- <xsl:text>message</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass='importDeployment'">
- <xsl:text>import</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass='exportDeployment'">
- <xsl:text>export</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'contentTask'">
- <xsl:text>content</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'storedProcedureTask'">
- <xsl:text>sql</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'webServiceTask'">
- <xsl:text>web</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'baseRSSTask' or $objectClass = 'urlRSSTask' or $objectClass = 'shortcutRSSTask' or $objectClass = 'shortcutAgentRSSTask'">
- <xsl:text>url</xsl:text>
- </xsl:when>
- <xsl:when test="starts-with($objectClass,'metric')">
- <xsl:text>metric</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'planningMacroTask'">
- <xsl:text>planningMacro</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'migrationTask'">
- <xsl:text>migration</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'indexUpdateTask'">
- <xsl:text>index</xsl:text>
- </xsl:when>
- <xsl:when test="$objectClass = 'humanTask'">
- <xsl:value-of select="cm:taskObject/*/cm:operationName"/>
- </xsl:when>
- </xsl:choose>
- </xsl:variable>
- <!-- build the task guid for the item -->
- <xsl:variable name="task_guid" select="xtsext:generateGUID()"/>
- <!-- build the varaibles for each task -->
- <item>
- <!-- set the attributes for this item -->
- <!-- set the id for the item - which is the AgentTaskID -->
- <xsl:attribute name="id"><xsl:value-of select="concat('AgentTask-', string($task_guid))"/></xsl:attribute>
- <!-- set the taskSearchPath -->
- <xsl:attribute name="taskSearchPath"><xsl:value-of select="cm:searchPath"/></xsl:attribute>
- <xsl:attribute name="taskDefaultName"><xsl:value-of select="cm:defaultName"/></xsl:attribute>
- <!-- set the taskSearchPathStoreID -->
- <xsl:attribute name="taskSearchPathStoreID">
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="cm:storeID"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:attribute>
- <!-- set the taskStoreID -->
- <xsl:attribute name="taskStoreID"><xsl:value-of select="cm:storeID"/></xsl:attribute>
- <!-- set the targetStoreID -->
- <xsl:attribute name="targetStoreID"><xsl:value-of select="./cm:taskObject/*/cm:storeID"/></xsl:attribute>
- <!-- calculate the type of the object -->
- <xsl:attribute name="type"><xsl:value-of select="$type"/></xsl:attribute>
- </item>
- </xsl:for-each>
- </agentTasks>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- <!--include template for converting storeID's into search paths -->
- <agsh:storeIDConverter/>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- expandHumanTaskParameters
-
- have to expand the humanTaskParameters so that we can replace ids in taskLinks with agentTask ids
-
- ===============================================================================================
- -->
- <xts:block id="expandHumanTaskParameters" type="exec" mode="interpret" processor="XSLT" dependency="createAgentTasks" nodelist="agentTaskDefinitions,agentTasks">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="cm">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:for-each select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition">
- <!-- this is the hack - we need the report tab id, assume it is set in the memoPartObject -->
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="type" select="/root/agentTasks/item[position()=$position]/@type"/>
- <xsl:if test="$type='notification' or $type = 'approval'">
- <xts:append select="/root/agentTaskDefinitions/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition'][{$position}]">
- <taskOptions>
- <xts:transform name="XMLDecode">
- <xsl:value-of select="cm:taskObject/*/*[local-name()='parameters']/*[local-name()='parameterValue' and ./*[local-name()='name']='hts']/*[local-name()='simpleParmValueItem']/*[local-name()='use']"/>
- </xts:transform>
- </taskOptions>
- </xts:append>
- </xsl:if>
- </xsl:for-each>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- doMemoHumanSubObjectsPreProcess (hack)
-
- a block which searches memo options, and where agentReportTask tab ids are found, replaces with the storeID of
- the offending agentReportTask. We didn't have this until we saved the agentReportTask.
-
- ===============================================================================================
- -->
- <xts:block id="doMemoSubObjectsPreProcess" type="exec" mode="interpret" processor="XSLT" dependency="expandHumanTaskParameters" nodelist="agentTaskDefinitions,agentTasks">
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtscm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="xtsext xtscm">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:for-each select="/root/agentTaskDefinitions/descendant::*[local-name()='item'][ancestor::*[local-name()='memo']/*[local-name()='options'] and contains(@*[local-name()='type'],'memoPartAgentObject')]">
- <!-- this is the hack - we need the report tab id, assume it is set in the memoPartObject -->
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="searchPath" select="searchPath"/>
- <xsl:variable name="agentTaskID" select="/root/agentTasks/item[@taskSearchPath = $searchPath or @taskDefaultName = $searchPath or @taskSearchPathStoreID = $searchPath]/@id"/>
-
- <!-- if we have a mapping - do the replace -->
- <xsl:if test="$agentTaskID">
- <xts:replace xmlns:xts="http://developer.cognos.com/schemas/xts/" select="/root/agentTaskDefinitions/descendant::*[local-name()='item'][ancestor::*[local-name()='memo']/*[local-name()='options'] and contains(@*[local-name()='type'],'memoPartAgentObject')][{position()}]/searchPath" mandatory="true">
- <searchPath>
- <xsl:copy-of select="$searchPath/@*"/>
- <xsl:value-of select="$agentTaskID"/>
- </searchPath>
- </xts:replace>
- </xsl:if>
- </xsl:for-each>
- <!-- pre-process all the human tasks with taskLinks -->
- <xsl:for-each select="/root/agentTaskDefinitions/descendant::*[local-name()='taskLink'][ancestor::taskOptions]">
- <!-- this is the hack - we need the report tab id, assume it is set in the humanTask input message -->
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="id" select="*[local-name()='id']"/>
- <xsl:variable name="agentTaskID" select="/root/agentTasks/item[@taskSearchPath = $id or @taskDefaultName = $id or @taskSearchPathStoreID = $id]/@id"/>
- <!-- if we have a mapping - do the replace -->
- <xsl:if test="$agentTaskID">
- <xts:replace xmlns:xts="http://developer.cognos.com/schemas/xts/" select="/root/agentTaskDefinitions/descendant::*[local-name()='taskLink'][ancestor::taskOptions][{position()}]/*[local-name()='id']" mandatory="true">
- <impl:id xmlns:impl="http://www.ibm.com/xmlns/prod/cognos/internal/hts/_1">
- <xsl:copy-of select="$id/@*"/>
- <xsl:value-of select="$agentTaskID"/>
- </impl:id>
- </xts:replace>
- </xsl:if>
- </xsl:for-each>
- <!-- pre-process all the human tasks with futureTasks -->
- <xsl:for-each select="/root/agentTaskDefinitions/descendant::*[local-name()='futureTask'][ancestor::taskOptions]">
- <!-- this is the hack - we need the report tab id, assume it is set in the humanTask input message -->
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="id" select="*[local-name()='id']"/>
- <xsl:variable name="agentTaskID" select="/root/agentTasks/item[@taskSearchPath = $id or @taskDefaultName = $id or @taskSearchPathStoreID = $id]/@id"/>
- <!-- if we have a mapping - do the replace -->
- <xsl:if test="$agentTaskID">
- <xts:replace xmlns:xts="http://developer.cognos.com/schemas/xts/" select="/root/agentTaskDefinitions/descendant::*[local-name()='futureTask'][ancestor::taskOptions][{position()}]/*[local-name()='id']" mandatory="true">
- <impl:id xmlns:impl="http://www.ibm.com/xmlns/prod/cognos/internal/hts/_1">
- <xsl:copy-of select="$id/@*"/>
- <xsl:value-of select="$agentTaskID"/>
- </impl:id>
- </xts:replace>
- </xsl:if>
- </xsl:for-each>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Start recreating the agent job steps
- ===============================================================================================
- -->
- <xts:block id="fillAgentTasks" type="exec" mode="interpret" processor="XSLT" dependency="doMemoSubObjectsPreProcess" nodelist="credential,setCookies,header,cookies,agentTasks,agentTaskDefinitions,env,transformedParams">
- <xts:logicsheet path="ags/logicsheets/agsCmHelper.xsl"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:out="http://www.w3.org/1999/XSL/Transform" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:agsh="http://developer.cognos.com/schemas/xts/logicsheets/xslt/ags/agsCmHelper/" exclude-result-prefixes="pf dt xtsext agsh">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:serialize-xml/>
- <pf:variables/>
- <xsl:template match="/">
- <xts:sequence>
- <!-- loop over all the steps -->
- <xsl:for-each select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition">
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="objectClass" select="./cm:taskObject/*/cm:objectClass"/>
- <xsl:variable name="type" select="/root/agentTasks/item[position()=$position]/@type"/>
- <xts:append select="/root/agentTasks/item[{$position}]">
- <!-- report/agent/job all have runOptions available -->
- <xsl:if test="$type='report' or $type='agent' or $type='job' or $type='metric'">
- <!-- build the run options -->
- <xts:transform src="transforms/portal/options/generateParams.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="./*[local-name()='options']"/>
- </root>
- </xts:transform>
- </xsl:if>
- <!-- set the taskName - this is universal now. SubObjects (message/sql/web have the taskName as the default name of the subObject -->
- <param name="taskName">
- <xsl:choose>
- <xsl:when test="$type = 'message' or $type = 'sql' or $type = 'web' or $type='url' or $type='notification' or $type = 'approval'">
- <xsl:value-of select="./cm:taskObject/*/cm:defaultName"/>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="cm:defaultName"/>
- </xsl:otherwise>
- </xsl:choose>
- </param>
- <xsl:choose>
- <xsl:when test="$type='report'">
- <!-- have to know the type of the report - whether or not we're in powerplay land or not -->
- <param name="m_class">
- <xsl:value-of select="$objectClass"/>
- </param>
- <param name="selected_path">
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="./cm:taskObject/*/cm:storeID"/>
- </xsl:with-param>
- </xsl:call-template>
- </param>
- <!-- when options are available, blob them up and place in a reportOptions parameter-->
- <xsl:if test="./*[local-name()='options']">
- <!-- build a full report options blob -->
- <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
- <param name="reportOptions">
- <passport>
- <xsl:value-of select="$passport"/>
- </passport>
- <markup>
- <xts:transform name="XMLEncode">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root>
- <xts:transform src="ags/transforms/getNonOptions.xslt" processor="XSLT">
- <extractedOptions>
- <xts:transform src="transforms/portal/options/extractEmailOptions.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="./*[local-name()='options']"/>
- </root>
- </xts:transform>
- </extractedOptions>
- </xts:transform>
- </root>
- </xts:transform>
- </xts:transform>
- </markup>
- </param>
- </xts:transform>
- <!-- extract and blob up the delivery options-->
- <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
- <param name="deliveryOptions">
- <passport>
- <xsl:value-of select="$passport"/>
- </passport>
- <markup>
- <xts:transform name="XMLEncode">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root>
- <xts:transform src="ags/transforms/getEmailOptions.xslt" processor="XSLT">
- <extractedOptions>
- <xts:transform src="transforms/portal/options/extractEmailOptions.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="./*[local-name()='options']"/>
- </root>
- </xts:transform>
- </extractedOptions>
- </xts:transform>
- </root>
- </xts:transform>
- </xts:transform>
- </markup>
- </param>
- </xts:transform>
- <!-- extract and blob up the mobile options -->
- <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
- <param name="mobileOptions">
- <passport>
- <xsl:value-of select="$passport"/>
- </passport>
- <markup>
- <xts:transform name="XMLEncode">
- <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
- <root>
- <xts:transform src="ags/transforms/getMobileOptions.xslt" processor="XSLT">
- <extractedOptions>
- <xts:transform src="transforms/portal/options/extractEmailOptions.xslt" processor="XSLT">
- <root>
- <xsl:copy-of select="./*[local-name()='options']"/>
- </root>
- </xts:transform>
- </extractedOptions>
- </xts:transform>
- </root>
- </xts:transform>
- </xts:transform>
- </markup>
- </param>
- </xts:transform>
- </xsl:if>
- </xsl:when>
- <!-- reports/import/export/content/job/agent all have pointers to the actual task objects -->
- <xsl:when test="$type='import' or $type='export' or $type='content' or $type='agent' or $type='job' or $type='metric' or $type='index' or $type='planningMacro' or $type='migration'">
- <param name="selected_path">
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="cm:taskObject/*/cm:storeID"/>
- </xsl:with-param>
- </xsl:call-template>
- </param>
- <!-- Add the object class for metric, this because it is needed for at least validatePreviewRequest.xts -->
- <xsl:if test="$type='metric'">
- <param name="objectClass">
- <xsl:value-of select="$objectClass"/>
- </param>
- </xsl:if>
- </xsl:when>
- <!-- messages have to save the options. The message page itself decodes and uses the options in raw formet -->
- <xsl:when test="$type = 'message'">
- <!-- we have to create the options parameter -->
- <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
- <param name="options">
- <passport>
- <xsl:value-of select="$passport"/>
- </passport>
- <markup>
- <xts:transform name="XMLEncode">
- <xsl:copy-of select="cm:taskObject/*/*[local-name()='options']"/>
- </xts:transform>
- </markup>
- </param>
- </xts:transform>
- </xsl:when>
- <xsl:when test="$type = 'sql'">
- <param name="sql_model">
- <xsl:value-of select="cm:taskObject/*/*[local-name() = 'metadataModel']//*[local-name() = 'searchPath']"/>
- </param>
- <param name="sql_package">
- <xsl:value-of select="cm:taskObject/*/*[local-name()='metadataModelPackage']//*[local-name()='searchPath']"/>
- </param>
- <param name="sql_procedure_name">
- <xsl:value-of select="cm:taskObject/*/*[local-name() = 'storedProcedureName']/*[local-name() = 'value']"/>
- </param>
- </xsl:when>
- <xsl:when test="$type = 'url'">
- <xsl:if test="$objectClass = 'shortcutAgentRSSTask'">
- <param name="url_uri">
- <xsl:text>url_eventList</xsl:text>
- </param>
- </xsl:if>
- <xsl:if test="$objectClass = 'urlRSSTask'">
- <param name="url_url">
- <xsl:value-of select="cm:taskObject/*/cm:link"/>
- </param>
- <param name="url_uri">
- <xsl:text>url_url</xsl:text>
- </param>
- </xsl:if>
- <xsl:if test="$objectClass = 'shortcutRSSTask'">
- <xsl:variable name="shortcut_search" select="cm:taskObject/*/cm:link//cm:searchPath"/>
- <xsl:variable name="agent_search" select="/root/env/param[@name = 'm_path']"/>
- <param name="url_entry">
- <xsl:choose>
- <xsl:when test="$shortcut_search = $agent_search">
- <xsl:text>url_eventList</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="cm:taskObject/*/cm:link//cm:searchPath"/>
- </xsl:otherwise>
- </xsl:choose>
- </param>
- <param name="url_uri">
- <xsl:text>url_entry</xsl:text>
- </param>
- </xsl:if>
- <param name="url_name">
- <xsl:value-of select="cm:taskObject/*/cm:title"/>
- </param>
- <param name="url_description">
- <xsl:value-of select="cm:taskObject/*/cm:defaultDescription"/>
- </param>
- <param name="url_screentip">
- <xsl:value-of select="cm:taskObject/*/cm:defaultScreenTip"/>
- </param>
- <param name="url_location">
- <xsl:value-of select="cm:taskObject/*/cm:channel//cm:searchPath"/>
- </param>
- </xsl:when>
- <xsl:when test="$type = 'web'">
- <param name="url_wsdl">
- <xsl:value-of select="cm:taskObject/*/*[local-name() = 'uri']"/>
- </param>
- <param name="url_operation">
- <xsl:value-of select="cm:taskObject/*/*[local-name() = 'operationName']"/>
- </param>
- <param name="url_serviceName">
- <xsl:value-of select="cm:taskObject/*/*[local-name() = 'serviceName']"/>
- </param>
- <param name="url_port">
- <xsl:value-of select="cm:taskObject/*/*[local-name() = 'bindingName']"/>
- </param>
- </xsl:when>
- <xsl:when test="$type='notification' or $type = 'approval'">
- <!-- we have to create the options parameter -->
- <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
- <param name="taskOptions">
- <passport>
- <xsl:value-of select="$passport"/>
- </passport>
- <markup>
- <xts:transform name="XMLEncode">
- <taskOptions>
- <xsl:copy-of select="taskOptions/*"/>
- </taskOptions>
- </xts:transform>
- </markup>
- </param>
- </xts:transform>
- </xsl:when>
- </xsl:choose>
- <!-- parameters can be on any agentDefinitionTask - only ones of relevance are report/agent/sql/web -->
- <xsl:if test="$type = 'report' or $type = 'agent' or $type = 'web' or $type = 'sql' ">
- <xsl:if test="/root/transformedParams/parameterData[position()=$position]">
- <xsl:variable name="taskParam">
- <xsl:if test="/root/transformedParams/parameterData[position()=$position]">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set">
- <xsl:copy-of select="/root/transformedParams/parameterData[position()=$position]"/>
- </xsl:with-param>
- </xsl:call-template>
- </xsl:if>
- </xsl:variable>
- <param name="taskParameters">
- <xsl:value-of select="xtsext:web64encode( string( $taskParam), true())"/>
- </param>
- </xsl:if>
- </xsl:if>
- </xts:append>
- </xsl:for-each>
- </xts:sequence>
- </xsl:template>
- <!--include template for converting storeID's into search paths -->
- <agsh:storeIDConverter/>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Create the option blobs for each content maintenance task. When a content task is visited a cmOptions blob is automatically created.
- This parameter is then used when the agent is saved. A potential problems occurs when an agent is loaded and immediately saved without
- visiting any content maintenance tasks. When loading an agent we need to pre-build each cmOptions parameter.
- And Index Task as well use the same param
- we need TODO: make common variable for each task
- ===============================================================================================
- -->
- <xts:block id="createContentTaskOptionParams" type="exec" mode="interpret" processor="XSLT" dependency="fillAgentTasks" condition=".[(/root/agentTasks/item[@type='content']) or (/root/agentTasks/item[@type='index']) ]" mandatory="false" nodelist="agentTasks,agentTaskDefinitions,credential,setCookies,header,cookies">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
- <xsl:stylesheet version="1.0"
- xmlns:out="http://www.w3.org/1999/XSL/Transform"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
- xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
- xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
- xmlns:xsd="http://www.w3.org/2001/XMLSchema"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- exclude-result-prefixes="xsl pf cm dt xts xtsext xsd xsi bus">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:serialize-xml/>
- <pf:variables/>
- <xsl:template match="/">
- <xsl:for-each select="/root/agentTasks/item[@type='content' or @type='index']">
- <!-- create the position variable - which is used to get into each agent item block -->
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="id" select="./@taskStoreID"/>
- <xsl:variable name="options" select="/root/*[local-name()='agentTaskDefinitions']/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition'][cm:storeID=$id]/*[local-name()='options']"/>
- <!-- when options are available, blob them up and place in a cmOptions parameter-->
- <xsl:if test="$options!=''">
- <xsl:variable name="nodes">
- <cmOptions>
- <xsl:copy-of select="$options"/>
- </cmOptions>
- </xsl:variable>
- <xsl:variable name="markup">
- <xts:transform name="XMLEncode">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="$nodes"/>
- </xsl:call-template>
- </xts:transform>
- </xsl:variable>
- <xts:sequence>
- <xts:append select="/root/agentTasks/item[@taskStoreID='{$id}']">
- <param name="cmOptions">
- <xsl:value-of select="xtsext:cafaction( concat('sign_wrap_setpassportid_', $passport, '_settemplatename_createcontenttaskoptionparams_settemplateid_loadagent001'), xtsext:web64encode(string($markup ),true()))"/>
- </param>
- </xts:append>
- </xts:sequence>
- </xsl:if>
- </xsl:for-each>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Build the agent definition
- ===============================================================================================
- -->
- <xts:block id="buildAgentDefinition" type="exec" mode="interpret" processor="XSLT" dependency="createContentTaskOptionParams" nodelist="agentDefinition,agentDefinitionReport,agentTaskDefinitions,agentTasks,agentSchedule,agentDefinitionCondition,deleteTasks,agentNotificationList">
- <xts:logicsheet path="ags/logicsheets/agsCmHelper.xsl"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:agsh="http://developer.cognos.com/schemas/xts/logicsheets/xslt/ags/agsCmHelper/"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
- xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/"
- xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
- exclude-result-prefixes="agsh pf cm dt xtsext">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:serialize-xml/>
- <xsl:template match="/">
- <xsl:variable name="agentOptions" select="/root/agentDefinition/*[local-name() ='queryResponse']/*[local-name() = 'agentDefinition']/*[local-name() = 'options']"/>
- <xsl:variable name="agentParameters" select="/root/agentDefinitionReport/cm:queryResponse/*[local-name()='report']/*[local-name()='parameters']"/>
- <!-- build the agent_definition -->
-
- <!-- have the agent options been overridden?-->
- <xsl:variable name="agentDefaultOverrideState">
- <xsl:for-each select="$agentOptions/*[local-name()='value']/*[local-name()='item']/*[local-name()='name']">
- <xsl:variable name="value" select="../*[local-name()='value']"/>
- <xsl:choose>
- <xsl:when test="(.='saveOutput' and $value = 'true') or (.='prompt' and $value= 'false') or (@name='saveAsName' )">
- <xsl:text>d</xsl:text>
- </xsl:when>
- <xsl:when test=".!='checkSecurityReferences' and .!='repairSecurityReferences' and .!='data'">
- <xsl:text>o</xsl:text>
- </xsl:when>
- </xsl:choose>
- </xsl:for-each>
- </xsl:variable>
- <xsl:variable name="agentContentMaintenanceOverride">
- <xsl:choose>
- <xsl:when test="$agentOptions/*[local-name()='value']/*[local-name()='item'][name='checkSecurityReferences']/*[local-name()='value']='true' or $agentOptions/*[local-name()='value']/*[local-name()='item'][name='repairSecurityReferences']/*[local-name()='value']='true'">
- <xsl:text>true</xsl:text>
- </xsl:when>
- <xsl:otherwise>false</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <xts:sequence>
- <xts:append>
- <agent_definition>
- <!--copy the agent options -->
- <xsl:if test="$agentOptions">
- <agentOptions>
- <!-- create the form variables-->
- <form-vars>
- <param name="override_default_options"><xsl:value-of select="contains($agentDefaultOverrideState,'o')"/></param>
- <xsl:if test="$agentContentMaintenanceOverride='true'">
- <param name="override_default_content_task_options">true</param>
- </xsl:if>
- <param name="report_options_collapsed">true</param>
- <param name="content_task_options_collapsed">true</param>
- <param name="deployment_options_collapsed">true</param>
- <param name="index_update_task_options_collapsed">true</param>
- </form-vars>
- <xsl:copy-of select="$agentOptions"/>
- </agentOptions>
- </xsl:if>
- <!--copy the agent options -->
- <xsl:if test="$agentParameters">
- <agentParameters>
- <xsl:copy-of select="$agentParameters"/>
- </agentParameters>
- </xsl:if>
- <!-- have to save all the paths into the agent_definition now -->
- <xsl:if test="/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:storeID">
- <agentDefinition>
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:storeID"/>
- </xsl:with-param>
- </xsl:call-template>
- </agentDefinition>
- </xsl:if>
- <xsl:if test="/root/agentSchedule/cm:queryResponse/cm:schedule/cm:storeID">
- <agentSchedule>
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="/root/agentSchedule/cm:queryResponse/cm:schedule/cm:storeID"/>
- </xsl:with-param>
- </xsl:call-template>
- </agentSchedule>
- </xsl:if>
- <xsl:if test="/root/agentDefinitionReport/cm:queryResponse/cm:report/cm:storeID">
- <agentDefinitionReport>
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="/root/agentDefinitionReport/cm:queryResponse/cm:report/cm:storeID"/>
- </xsl:with-param>
- </xsl:call-template>
- </agentDefinitionReport>
- </xsl:if>
- <!-- put in the summary values too -->
- <summaryEventKey>
- <xsl:for-each select="/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:eventKey/cm:string">
- <xsl:value-of select="."/>
- <xsl:text>;</xsl:text>
- </xsl:for-each>
- </summaryEventKey>
-
- <!-- define the agent condition summary -->
- <condition>
- <xsl:value-of select="/root/agentDefinitionCondition/summary"/>
- </condition>
- <!-- define the schedule summary -->
- <schedule>
- <!-- we can build the summary schedule in the dialog adaptor -->
- </schedule>
- <!-- create the spacer for the deleted items -->
- <deletedItems>
- <xsl:for-each select="/root/*[local-name()='deleteTasks']/*[local-name() ='storeID']">
- <item>
- <taskStoreID>
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="."/>
- </xsl:with-param>
- </xsl:call-template>
- </taskStoreID>
- </item>
- </xsl:for-each>
- </deletedItems>
- <!-- define the sequencing -->
- <sequencing>
- <xsl:value-of select="/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:sequencing"/>
- </sequencing>
- <!-- Make notifications from agentNotificationList block -->
- <notificationList>
- <xsl:for-each select="/root/agentNotificationList/*[local-name() ='getNotificationListResponse']/result/notificationList//*[local-name() ='storeID']/value">
- <item>
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="."/>
- </xsl:with-param>
- </xsl:call-template>
- </item>
- </xsl:for-each>
- </notificationList>
- <allowNotification>
- <xsl:value-of select="/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:allowNotification"/>
- </allowNotification>
- <xsl:if test="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition [./cm:eventTypes/cm:eventTypeEnum != '' or ./cm:runCondition = 'runOnFailure'] ">
- <suppressionSet>true</suppressionSet>
- </xsl:if>
- <items>
- <xsl:for-each select="/root/agentTasks/item">
- <!-- create the position variable - this is used to reference other items - which are in the same sequence -->
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="runCondition">
- <xsl:choose>
- <xsl:when test="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition[position()=$position]/cm:runCondition != '' ">
- <xsl:value-of select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition[position()=$position]/cm:runCondition"/>
- </xsl:when>
- <xsl:otherwise>runOnSuccess</xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- <!-- build the item structure -->
- <item>
- <id>
- <xsl:value-of select="./@id"/>
- </id>
- <type>
- <xsl:value-of select="./@type"/>
- </type>
- <name>
- <xsl:value-of select="./param[@name='taskName']"/>
- </name>
- <taskStoreID>
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="./@taskStoreID"/>
- </xsl:with-param>
- </xsl:call-template>
- </taskStoreID>
- <targetStoreID>
- <xsl:call-template name="storeIDConverter">
- <xsl:with-param name="storeID">
- <xsl:value-of select="./@targetStoreID"/>
- </xsl:with-param>
- </xsl:call-template>
- </targetStoreID>
- <!-- sort out the suppression -->
- <suppression>
- <!-- have to decode the filters as well -->
- <xsl:for-each select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition[position()=$position]/cm:eventTypes/cm:eventTypeEnum">
- <param name="{concat('Filter_',.)}">
- <xsl:value-of select="."/>
- </param>
- </xsl:for-each>
- <param name="Action_topic_filter">
- <xsl:for-each select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition[position()=$position]/cm:eventKey/cm:string">
- <xsl:value-of select="concat(text(), ';')"/>
- </xsl:for-each>
- </param>
- </suppression>
- <!-- if msg has attachment -->
- <xsl:if test="./@type='message' and /root/*[local-name()='agentTaskDefinitions']/*[local-name()='queryResponse']/*[local-name()='agentTaskDefinition' and position()=$position]/*[local-name()='taskObject']/*[local-name()='memo']/*[local-name()='options']//*[local-name()='item'][attribute::*[local-name()='type']='bus:objectLink' or attribute::*[local-name()='type']='bus:memoPartAgentObject'] ">
- <addInfo>hasAttachment</addInfo>
- </xsl:if>
- <!-- if report has prompt -->
- <xsl:if test="./@type='report' and count(/root/agentTaskDefinitions/*[local-name() ='queryResponse']/*[local-name() ='agentTaskDefinition'][position()=$position]/*[local-name() ='parameterAssignments']/*[local-name()='parameterAssignmentDataItem'])>0">
- <addInfo>hasPrompts</addInfo>
- </xsl:if>
- <taskLevelFilter><xsl:value-of select="/root/agentTaskDefinitions/cm:queryResponse/cm:agentTaskDefinition[position()=$position]/cm:filterDataItemName"/></taskLevelFilter>
- <runCondition><xsl:value-of select="$runCondition"/></runCondition>
- </item>
- </xsl:for-each>
- </items>
- </agent_definition>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- <!--include template for converting storeID's into search paths -->
- <agsh:storeIDConverter/>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Build the agent parameters
- ===============================================================================================
- -->
- <xts:block id="buildAgentParams" type="exec" mode="interpret" processor="XSLT" dependency="buildAgentDefinition" nodelist="credential,setCookies,header,cookies,agent_definition,agentTasks,agentDefinitionCondition">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xts:logicsheet path="logicsheets/buslogic.xslt"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:rep="http://developer.cognos.com/schemas/report/14.0/" xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:serialize-xml/>
- <pf:variables/>
- <xsl:template match="/">
- <!-- delete the agent_definition blob that is pre-build in add_condition -->
- <xts:sequence>
- <!-- blob up the agent definition and blob up the recreated parameters and put them into the env -->
- <xts:append select="/root/env">
- <!-- build the params for the agent_actions -->
- <xsl:for-each select="/root/agent_definition/items/item">
- <xsl:variable name="position" select="position()"/>
- <xsl:variable name="markup">
- <xsl:apply-templates select="/root/agentTasks/item[position() = $position]/*" mode="markup"/>
- </xsl:variable>
- <param name="{./id}">
- <xsl:value-of select="xtsext:cafaction( concat('sign_wrap_setpassportid_', $passport, '_settemplatename_buildagentparams_settemplateid_loadagent002'), xtsext:web64encode( string( $markup ), true()))"/>
- </param>
- </xsl:for-each>
- <!-- we need a summary condition -->
- <param name="AgentTask-condition">
- <xsl:value-of select="/root/agentDefinitionCondition/expressionBlob"/>
- </param>
- <!-- we also need the nav controls from the summary bar -->
- <param name="prevTabID"/>
- <param name="tabSelectedID"/>
- <!-- this is lash tastic - but what the hell -->
- <param name="agentItemOp"/>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Build the schedule
- ===============================================================================================
- -->
- <xts:block id="buildScheduleParams" type="exec" mode="interpret" processor="XSLT" dependency="buildAgentParams" mandatory="false" condition=".[/root/agentSchedule/*[local-name()='queryResponse']/*[local-name()='queryResult']/*[local-name()='item']]" nodelist="system,env,session,user,actions,tabs,configProps,http,credential,cookies,setCookies,header,agent_definition,morphletResponse,agentSchedule">
- <xts:logicsheet path="portal/iFrmCmd/logicsheets/cm-save.xsl"/>
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- 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"
- xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
- xmlns:req-params="http://developer.cognos.com/schemas/request/params"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- exclude-result-prefixes="xsl cm bus xtsext pf req-params">
-
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:variables/>
- <pf:serialize-xml/>
- <xsl:template match="/">
- <!-- the setSchedule page expects the scheduleParameters to live in /root/env/param which are then taken
- and copied into req:params:param prior to the morphlet call, see ags/navigator.xslt -->
- <xts:sequence>
- <!-- remove the last version -->
- <xts:delete select="/root/env/param[@name='scheduleParameters']"/>
- <!-- update the summary schedule -->
- <xts:replace select="/root/agent_definition/schedule">
- <schedule>
- <xsl:value-of select="/root/morphletResponse/scheduleParameters/param[@name='Summary_schedule']"/>
- </schedule>
- </xts:replace>
- <!-- delete searchPath from the schedule info so that it can be updated -->
- <xts:delete select="/root/agentSchedule/*[local-name()='queryResponse']/*[local-name()='queryResult']/*[local-name()='item']/searchPath"/>
- <!-- create the encoded result -->
- <xts:append select="/root/env">
- <!-- create the encoded response parameter -->
- <xts:transform src="portal/controls/create_web64_param.xslt" processor="XSLT">
- <!-- we can go direct to AgentTask-schedule -->
- <param name="AgentTask-schedule">
- <passport>
- <xsl:value-of select="$passport"/>
- </passport>
- <markup>
- <xts:transform name="XMLEncode">
- <scheduleParameters>
- <xts:queryNode select="/root/agentSchedule/*[local-name()='queryResponse']/*[local-name()='queryResult']/*[local-name()='item']"/>
- <!--xsl:copy-of select="/root/agentSchedule/*[local-name()='queryResponse']/*[local-name()='queryResult']/*[local-name()='item']"/-->
- </scheduleParameters>
- </xts:transform>
- </markup>
- </param>
- </xts:transform>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ================================================================================
- set up the data for the agent item deletion listener
- ================================================================================
- -->
- <xts:block id="setupAgentItemDeleteListener" dependency="buildScheduleParams" path="/ags/modelItemFields.xsl" processor="XSLT" type="exec" nodelist="agentDefinitionCondition,agent_definition,agentTasks,agentTaskDefinitions,transformedParams"/>
- <!--
- ================================================================================
- encode the agent items again
- ================================================================================
- -->
- <xts:block id="encode_agent_definition" dependency="setupAgentItemDeleteListener" processor="XSLT" type="exec" nodelist="agent_definition,credential,setCookies,header,cookies">
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
- <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
- <pf:serialize-xml/>
- <pf:variables/>
- <xsl:template match="/">
- <xts:sequence>
- <xsl:variable name="markup">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="/root/agent_definition"/>
- </xsl:call-template>
- </xsl:variable>
- <xts:append select="/root/env">
- <param name="agent_definition_blob">
- <xsl:value-of select="xtsext:cafaction( concat('sign_wrap_setpassportid_', $passport, '_settemplatename_encodeagentdefinition_settemplateid_loadagent002'), xtsext:web64encode( string( $markup ), true()))"/>
- </param>
- </xts:append>
- </xts:sequence>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!--
- ===============================================================================================
- Render the HTML page
- ===============================================================================================
- -->
- <xts:block id="renderPage" mode="output" processor="XSLT" type="exec" mimeType="text/html" dependency="encode_agent_definition" nodelist="system,env,session,user,actions,tabs,configProps,http,credential,cookies,setCookies,cmContent,agentDefinitionReport,modelItemFields,agentDefinition,agentTaskDefinitions,agentSchedule,agent_definition">
- <!-- portal specific information -->
- <xts:logicsheet path="logicsheets/portal.xsl"/>
- <!-- Get the new theme logicsheets. -->
- <xts:logicsheet path="logicsheets/presentation/dialog/templates.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/layout.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/framework.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/controls/presentation.xsl"/>
- <xts:logicsheet path="logicsheets/presentation/main/presentation.xsl"/>
- <!-- apply the form logic -->
- <xts:logicsheet path="logicsheets/formlogic.xslt"/>
- <!-- Prevent the href from appearing in the status bar. -->
- <xts:logicsheet path="logicsheets/presentation/touch_up.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:utml="http://developer.cognos.com/schemas/xts/logicsheet/xslt/formlogic/" xmlns:mt="http://developer.cognos.com/schemas/xts/logicsheets/presentation/main/mt" xmlns:mf="http://developer.cognos.com/schemas/xts/logicsheets/presentation/main/mf" xmlns:df="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/framework/" xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/" xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/" xmlns:cf="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/framework/" xmlns:lyt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/layout/" xmlns:pf="http://developer.cognos.com/schemas/xts/pf" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:rep="http://developer.cognos.com/schemas/report/14.0/" xmlns:x="x" xmlns:dt="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/templates/" exclude-result-prefixes="x xsl mt mf lyt cf cp pf df dp cm utml xtsext dt rep">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <!-- current file name -->
- <xsl:variable name="mname" select="'load_agent.xts'"/>
- <!-- add any theme variables -->
- <pf:variables/>
- <!-- These elements will insert the templates needed to generate the displayable object type and icons. -->
- <pf:gen-icon/>
- <pf:serialize-xml/>
- <xsl:template match="/">
- <xsl:variable name="browserTitle">
- <!-- <xts:string id="DIALOG_MESSAGE_RECIPIENT_LABEL">
- <xts:param name="objectName"><xsl:value-of select="$object-name"/></xts:param>
- </xts:string> -->
- </xsl:variable>
- <xsl:variable name="markup">
- <xsl:call-template name="serialize-xml">
- <xsl:with-param name="node-set" select="/root/agentDefinitionReport/cm:queryResponse/cm:report/cm:specification/*[local-name()='report']"/>
- </xsl:call-template>
- </xsl:variable>
- <dp:page longTitle="$browserTitle">
- <!-- specify the style sheet(used to render the active/inactive hint text)
- todo move this into its own xslt file. Do not put it into the dp stuff because that is relevant to the whole portal
- -->
- <utml:form name="pform" method="post" action="{$gateway}">
- <input type="hidden" name="prevTabID" id="prevTabID" value="AgentTask-condition"/>
- </utml:form>
- <dp:script>
- <script type="text/javascript">
- function init()
- {
- //these are commands we must execute in sequence
- var commands = new Array();
- // let user know we are busy
- if(parent.cfgGet('agsInit')!=true){
- commands.push("parent.doWait('open');");
- parent.cfgSet('loadwait', true);
- }
- var cf= (this.getConfigFrame?this.getConfigFrame():(parent.getConfigFrame?parent.getConfigFrame():null));
- if (cf==null||!cf.cfgGet||!cf.cfgGet("AGS_initialized")) {
- setTimeout(this.init,250);
- }
- else {
- <xsl:if test="/root/env/param[@name='m_path']">
- cf.cfgSet("so.defaultLocation", "<xsl:value-of select="xtsext:javascriptencode(/root/env/param[@name='m_path'])"/>/..");
- </xsl:if>
- // clear out the script vars if they're there
- cf.clearAgentScript();
-
-
- // we've some more things to do here
- <xsl:for-each select="/root/agentDefinitionReport/cm:queryResponse/cm:report/cm:specification/*[local-name()='report']/*[local-name()='queries']/*[local-name()='query'][@name='Query1']/*[local-name()='selection']/*[local-name()='dataItem']">
- <!-- we have two attributes on each data item - a name and a label. To guarantee we get the correct values in the output we use the label -->
- <xsl:variable name="name" select="@label"/>
- <xsl:variable name="aggregate" select="@aggregate"/>
- <xsl:variable name="displayNodeName" select="local-name(/root/agentDefinitionReport/cm:queryResponse/*[local-name()='report']/*[local-name()='specification']//*[local-name()='report']//*[local-name()='list'][@refQuery='Query1']//*[local-name()='listColumnBody']/*[local-name()='contents']//*[local-name()='dataItemValue'][@refDataItem=$name]/../..)"/>
- <xsl:variable name="expression" select="xtsext:javascriptencode(string(./*[local-name()='expression']))"/>
- <xsl:variable name="displayType">
- <xsl:choose>
- <xsl:when test="$displayNodeName='textItem'"><xsl:text>Value</xsl:text></xsl:when>
- <xsl:when test="$displayNodeName='image'"><xsl:text>Picture</xsl:text></xsl:when>
- <xsl:when test="$displayNodeName='hyperlink'"><xsl:text>Link</xsl:text></xsl:when>
- <xsl:otherwise><xsl:text>Value</xsl:text></xsl:otherwise>
- </xsl:choose>
- </xsl:variable>
- var expression = "<xsl:value-of select="$expression"/>";
-
- // build it
- cf.generateAgentItem("<xsl:value-of select="xtsext:javascriptencode(string($name))"/>",expression,"<xsl:value-of select="$aggregate"/>","<xsl:value-of select="$displayType"/>");
-
- </xsl:for-each>
- //generate data to initialise the model item deletion listener
- var fieldName;
- var id;
- var initialValue ;
- var groupFields;
- var groupField;
- <xsl:apply-templates select="/root/modelItemFields"/>
- // set the path to the folder that the agent lies in
- <xsl:text/>if (cf.cfgSet) cf.cfgSet("ReportFolder","<xsl:value-of select="xtsext:javascriptencode(string(/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:ancestors/cm:ancestorInfo[last()]/cm:searchPath))"/>");<xsl:text/>
- // have to redefine m_path as well
- document.pform.m_path.value = "<xsl:value-of select="xtsext:javascriptencode(string(/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:ancestors/cm:ancestorInfo[last()]/cm:searchPath))"/>";
- //nasty parsing the report expression.... should really call get parameters?
- var filter = "<xsl:value-of select="xtsext:javascriptencode(string(/root/agentDefinitionReport/cm:queryResponse/cm:report/cm:specification/*[local-name()='report']/*[local-name()='queries']/*[local-name()='query'][@name='Query1']/*[local-name()='detailFilters']/*[local-name()='detailFilter']/*[local-name()='filterExpression']))"/>";
- var param_matcher = /\?[^\?]+\?/g;
- var params = filter.match(param_matcher);
- if(params){
- for(var i = 0; i < params.length; i++){
- var param = params[i].substring(1, params[i].length -1);
- cf.addParameter(cf.createParameterObj(param, false, false));
- }
- }
- // update the window title
- <xsl:if test="/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:defaultName !=''">
- <xsl:text/>
- if (cf.cfgSet) cf.cfgSet("ReportName", "<xsl:value-of select="xtsext:javascriptencode(string(/root/agentDefinition/cm:queryResponse/cm:agentDefinition/cm:defaultName))"/>");
- <xsl:text/>
- </xsl:if>
-
- // we aren't dealing with a new report now
- cf.cfgSet("NewReport", false);
-
- var reportSpec="<xsl:value-of select="xtsext:javascriptencode(string($markup))"/>";
- var d = cf.parseXMLString( reportSpec );
- if (d != null ) {
- cf.updateExtraQueries(d);
- cf.updatePromptPages(d);
- }
- // hmmm
- cf.agentHasChanged(false);
- //need to track this for prompting to save
- cf.cfgSet("saved_agent_condition", cf.buildFilterCondition());
- // do the name of agent
- cf.setWindowTitle();
- // we're dropping into the condition tab
- document.pform.prevTabID.value='AgentTask-condition';
- document.pform.tabSelectedID.value='AgentTask-condition';
- <xsl:if test="/root/agent_definition/deletedItems/item">
- window.alert("<xts:string id="DIALOG_MESSAGE_TASK_DELETED" encode="javascript"/>");
- </xsl:if>
- // This checks to see if the loaded agent has the schedule enabled or disabled, to change the
- // icon for schedule the agent task in UI otherwise leaves it as default.
- <xsl:if test="/root/agentSchedule/bus:queryResponse/queryResult/item/active/value">
- parent.toggleScheduleState("<xsl:value-of select="/root/agentSchedule/bus:queryResponse/queryResult/item/active/value"/>", false);
- </xsl:if>
-
- //load the dialog frame as part of a stack so that the validation doesnt happen till the frame has loaded
- //this is to avoid clashes with http connections used by xhttpDispatcher and direct form submission
- var dAdaptLoader = new cf.CommandStackObject();
-
- //add the execute method
- dAdaptLoader.execute = function(){
- // do this another way - by submitting the form - so maintaining the session
- document.pform.ps_nav_op.value = 'maintain';
- document.pform.m.value = 'ags/dialogAdapter.xts';
- document.pform.submit();
- }
-
- var currentStack = cf.getCommandStackManager().getCommandStack();
-
- if(!currentStack){
- currentStack = new cf.CommandStack(new Array());
- }
-
- currentStack.push("cf.validateAgentCondition('errorCondition');");
-
- currentStack.push("doWait('validate')");
-
- //during the user interactive validate, we try to push on through errors
- var cancelCmdObject = cf.createCommandStackObject("setTimeout('getCommandStackManager().processCommandStack()', 100)", "getCommandStackManager().getCommandStack().setCancelCommand");
-
- currentStack.push(cancelCmdObject);
-
- currentStack.push("cf.getReportSpec();");
- //create a cmd to check if the agents model has been upgraded
- //so we can warn the user.... not much they can do about it though
- currentStack.push("doPackageUpdatedCheck()");
- currentStack.push(dAdaptLoader);
-
- if(commands && commands.length > 0){
- for(var i = commands.length - 1; i >= 0; i--){
- currentStack.push(commands[i]);
- }
- }
-
- cf.getCommandStackManager().doCommandStack(currentStack);
- }
- }
- </script>
- </dp:script>
- </dp:page>
- </xsl:template>
- <!--process single dropzones -->
- <xsl:template match="modelItemField">
- <!--vars declared outside this -->
- fieldName = '<xsl:value-of select="xtsext:javascriptencode(string(./name))"/>';
- id = '<xsl:value-of select="xtsext:javascriptencode(string(@id))"/>';
- initialValue = '<xsl:value-of select="xtsext:javascriptencode(string(./value))"/>';
-
- //this will check the tree for topics and add them to the field contents held in the deletion listener
- parent.getAgentItemsListener().addField(new parent.FieldContent(fieldName, id, initialValue));
- </xsl:template>
- <!--process groups of drop zones -->
- <xsl:template match="modelItemFieldGroup">
- groupFields = new Array();
- <xsl:for-each select="./modelItemField">
- <!--vars declared outside this -->
- fieldName = '<xsl:value-of select="xtsext:javascriptencode(string(./name))"/>';
- id = '<xsl:value-of select="xtsext:javascriptencode(string(@id))"/>';
- initialValue = '<xsl:value-of select="xtsext:javascriptencode(string(./value))"/>';
- var groupField = new parent.FieldContent(fieldName, id, initialValue);
- //add the field in its own right
- parent.getAgentItemsListener().addField(groupField);
- //add to an array for group register
- groupFields.push(groupField);
- </xsl:for-each>
- //register the group and its mode
- parent.getAgentItemsListener().addDynamicGroup(groupFields, id);
- <xsl:if test="./@promptablePath">
- parent.getAgentItemsListener().setReportTask('<xsl:value-of select="xtsext:javascriptencode(string(./@id))"/>', '<xsl:value-of select="xtsext:javascriptencode(string(./@promptableName))"/>', '<xsl:value-of select="xtsext:javascriptencode(string(./@promptablePath))"/>');
- </xsl:if>
- <xsl:apply-templates/>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- <!-- =========================================================================================
- D E B U G B L O C K
- =========================================================================================
- -->
- <xts:block id="debug" type="exec" mode="output" processor="XSLT" condition=".[/root/session/param[@name = 'debug'] = '1']" mandatory="false" mimeType="text/html" dependency="renderPage">
- <!-- Get the debug logicsheet. -->
- <xts:logicsheet path="logicsheets/debuglogic.xslt"/>
- <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:dbg="http://developer.cognos.com/schemas/xts/logicsheets/xslt/debug/" exclude-result-prefixes="dbg">
- <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no"/>
- <xsl:template match="/">
- <dbg:dumpxml select="/root"/>
- </xsl:template>
- </xsl:stylesheet>
- </xts:block>
- </xts:morphlet>
|