ppwsave.xts 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: ps
  5. (C) Copyright IBM Corp. 2005, 2011
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <!--
  9. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. -->
  12. <!--
  13. *******************************************************************
  14. *******************************************************************
  15. *******************************************************************
  16. *******************************************************************
  17. THIS IS THE SAVE MORPHLET FOR
  18. POWERPLAY WEB INTEGRATION
  19. INTO COGNOS CONNECTION.
  20. *******************************************************************
  21. *******************************************************************
  22. *******************************************************************
  23. *******************************************************************
  24. -->
  25. <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/portal.xml, messages/portalRL.xml">
  26. <!--
  27. This morphlet (save_as.xts) consists of the following blocks:
  28. formlogic_init - update various /root/env level parameters based on new or changed /root/env parameters.
  29. getRootNames - build to /root/cmRoots structure and the /root/session/param with name attributes e_proot (public), e_mroot (private) and e_hp (home page).
  30. getContent - retrieve CM Information for this page.
  31. getRootMap - build the /root/CMRootMap/class structure with name and root attributes.
  32. renderPage - render the Save as page when user doing a copy or saving a Query Studio report.
  33. -->
  34. <!-- formlogic_init =============================================================================================== -->
  35. <xts:block id="formlogic_init" type="exec" mode="interpret" processor="XSLT" path="/logicsheets/formlogic_init.xslt" nodelist="env,credential,system,http"/>
  36. <!--
  37. ===============================================================================================
  38. getContent - get our data from Content Manager
  39. ===============================================================================================
  40. -->
  41. <xts:block id="getContent" processor="XSLT" type="exec" dependency="formlogic_init">
  42. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  43. <xsl:stylesheet
  44. xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
  45. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  46. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  47. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  48. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  49. <xsl:template match="/">
  50. <xts:sequence>
  51. <xts:append>
  52. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  53. <send:request provider="cm">
  54. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  55. <cm:query>
  56. <cm:search>
  57. <xsl:value-of select="/root/env/param[@name = 'm_path']"/>
  58. </cm:search>
  59. <cm:properties>
  60. <cm:property name="dataBlocks"/>
  61. <cm:property name="options"/> </cm:properties>
  62. <cm:options schemaInfo="true" maxObjects="1"/>
  63. </cm:query>
  64. </xts:transform>
  65. </send:request>
  66. </xts:transform>
  67. </xts:append>
  68. </xts:sequence>
  69. </xsl:template>
  70. </xsl:stylesheet>
  71. </xts:block>
  72. <xts:block id="ppwSave" processor="XSLT" type="exec" dependency="formlogic_init getContent">
  73. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  74. <xts:logicsheet path="logicsheets/portal.xsl"/>
  75. <xsl:stylesheet version="1.0"
  76. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  77. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  78. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  79. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  80. xmlns:cms="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cms/1/"
  81. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  82. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" exclude-result-prefixes="cms xts send cm pf xtsext">
  83. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  84. <pf:variables/> <!-- global application variables -->
  85. <xsl:template match="/">
  86. <xsl:apply-templates select="/root/env"/>
  87. </xsl:template>
  88. <xsl:template match="env">
  89. <!-- this is the class of the new object -->
  90. <xsl:variable name="cls" select="param[@name='m_class']"/>
  91. <xts:sequence>
  92. <!-- prepare and send the add request -->
  93. <xts:append>
  94. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  95. <send:request provider="cm">
  96. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  97. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  98. <cm:objects>
  99. <xsl:element name="cm:{$cls}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  100. <cm:searchPath><xsl:value-of select="param[@name='m_path']"/></cm:searchPath>
  101. <xsl:apply-templates select="param[starts-with(string(@name),'m_p_')]"/>
  102. <xsl:if test="string(param[@name='m_class'])='powerPlayReport'">
  103. <xsl:if test="param[starts-with(string(@name),'m_ppro_')]">
  104. <cm:options>
  105. <!-- powerPlayOptionOutputFormat -->
  106. <xsl:choose>
  107. <xsl:when test="param[string(@name)='m_ppro_outputFormat']">
  108. <cm:powerPlayOption class="powerPlayOptionOutputFormat">
  109. <cm:name>outputFormat</cm:name>
  110. <cm:value type="powerPlayOutputFormatEnum"><xsl:value-of select="param[@name='m_ppro_outputFormat']"/></cm:value>
  111. </cm:powerPlayOption>
  112. </xsl:when>
  113. <xsl:when test="/root/cm:queryResponse/cm:powerPlayReport/cm:options/cm:powerPlayOptionOutputFormat[cm:name='outputFormat']">
  114. <cm:powerPlayOption class="powerPlayOptionOutputFormat">
  115. <cm:name>outputFormat</cm:name>
  116. <cm:value type="powerPlayOutputFormatEnum"><xsl:value-of select="/root/cm:queryResponse/cm:powerPlayReport/cm:options/cm:powerPlayOptionOutputFormat[cm:name='outputFormat']/cm:value"/></cm:value>
  117. </cm:powerPlayOption>
  118. </xsl:when>
  119. </xsl:choose>
  120. <!-- powerPlayOptionData -->
  121. <xsl:choose>
  122. <xsl:when test="param[@name='m_ppro_data']">
  123. <cm:powerPlayOption class="powerPlayOptionData">
  124. <cm:name>data</cm:name>
  125. <cm:value type="powerPlayDataEnum"><xsl:value-of select="param[@name='m_ppro_data']"/></cm:value>
  126. </cm:powerPlayOption>
  127. </xsl:when>
  128. <xsl:when test="/root/cm:queryResponse/cm:powerPlayReport/cm:options/cm:powerPlayOptionData[cm:name='data']">
  129. <cm:powerPlayOption class="powerPlayOptionData">
  130. <cm:name>data</cm:name>
  131. <cm:value type="powerPlayDataEnum"><xsl:value-of select="/root/cm:queryResponse/cm:powerPlayReport/cm:options/cm:powerPlayOptionData[cm:name='data']/cm:value"/></cm:value>
  132. </cm:powerPlayOption>
  133. </xsl:when>
  134. </xsl:choose>
  135. <!-- powerPlayOptionBoolean -->
  136. <xsl:choose>
  137. <xsl:when test="param[@name='m_ppro_prompt']">
  138. <cm:powerPlayOption class="powerPlayOptionBoolean">
  139. <cm:name>prompt</cm:name>
  140. <cm:value type="boolean"><xsl:value-of select="param[@name='m_ppro_prompt']"/></cm:value>
  141. </cm:powerPlayOption>
  142. </xsl:when>
  143. <xsl:when test="/root/cm:queryResponse/cm:powerPlayReport/cm:options/cm:powerPlayOptionBoolean[cm:name='prompt']">
  144. <cm:powerPlayOption class="powerPlayOptionBoolean">
  145. <cm:name>prompt</cm:name>
  146. <cm:value type="boolean"><xsl:value-of select="/root/cm:queryResponse/cm:powerPlayReport/cm:options/cm:powerPlayOptionBoolean[cm:name='prompt']/cm:value"/></cm:value>
  147. </cm:powerPlayOption>
  148. </xsl:when>
  149. </xsl:choose>
  150. </cm:options>
  151. </xsl:if>
  152. </xsl:if>
  153. <xsl:if test="starts-with(string($cls),'powerPlay') and param[starts-with(string(@name),'m_ppdb_')]">
  154. <cm:dataBlocks>
  155. <xsl:choose>
  156. <xsl:when test="param[string(@name)='m_ppdb_parameters']">
  157. <cm:dataBlock>
  158. <cm:data><xsl:value-of select="param[string(@name)='m_ppdb_parameters']"/></cm:data>
  159. <cm:id>parameters</cm:id>
  160. </cm:dataBlock>
  161. </xsl:when>
  162. <xsl:when test="/root/cm:queryResponse/cm:options/cm:powerPlayReport/cm:dataBlocks/cm:powerPlayDataBlock[string(cm:id)='parameters']">
  163. <cm:dataBlock>
  164. <cm:data><xsl:value-of select="/root/cm:queryResponse/cm:powerPlayReport/cm:dataBlocks/cm:powerPlayDataBlock[string(cm:id)='parameters']/cm:data"/></cm:data>
  165. <cm:id>parameters</cm:id>
  166. </cm:dataBlock>
  167. </xsl:when>
  168. </xsl:choose>
  169. <xsl:choose>
  170. <xsl:when test="param[string(@name)='m_ppdb_reportConfiguration']">
  171. <cm:dataBlock>
  172. <cm:data><xsl:value-of select="param[string(@name)='m_ppdb_reportConfiguration']"/></cm:data>
  173. <cm:id>reportConfiguration</cm:id>
  174. </cm:dataBlock>
  175. </xsl:when>
  176. <xsl:when test="/root/cm:queryResponse/cm:powerPlayReport/cm:dataBlocks/cm:powerPlayDataBlock[string(cm:id)='reportConfiguration']">
  177. <cm:dataBlock>
  178. <cm:data><xsl:value-of select="/root/cm:queryResponse/cm:powerPlayReport/cm:dataBlocks/cm:powerPlayDataBlock[string(cm:id)='reportConfiguration']/cm:data"/></cm:data>
  179. <cm:id>reportConfiguration</cm:id>
  180. </cm:dataBlock>
  181. </xsl:when>
  182. </xsl:choose>
  183. <xsl:choose>
  184. <xsl:when test="param[string(@name)='m_ppdb_reportSpecification']">
  185. <cm:dataBlock>
  186. <cm:data><xsl:value-of select="param[string(@name)='m_ppdb_reportSpecification']"/></cm:data>
  187. <cm:id>reportSpecification</cm:id>
  188. </cm:dataBlock>
  189. </xsl:when>
  190. <xsl:when test="/root/cm:queryResponse/cm:powerPlayReport/cm:dataBlocks/cm:powerPlayDataBlock[string(cm:id)='reportSpecification']">
  191. <cm:dataBlock>
  192. <cm:data><xsl:value-of select="/root/cm:queryResponse/cm:powerPlayReport/cm:dataBlocks/cm:powerPlayDataBlock[string(cm:id)='reportSpecification']/cm:data"/></cm:data>
  193. <cm:id>reportSpecification</cm:id>
  194. </cm:dataBlock>
  195. </xsl:when>
  196. </xsl:choose>
  197. </cm:dataBlocks>
  198. </xsl:if>
  199. </xsl:element>
  200. </cm:objects>
  201. </cm:update>
  202. </xts:transform>
  203. </send:request>
  204. </xts:transform>
  205. </xts:append>
  206. </xts:sequence>
  207. </xsl:template>
  208. <xsl:template match="param[starts-with(string(@name),'m_p_')]">
  209. <!-- create an element for each property passed in -->
  210. <xsl:element name="{substring-after(string(@name), 'm_p_')}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  211. <!-- name is the on CM property that must be encoded *before* giving to CM -->
  212. <xsl:value-of select="."/>
  213. </xsl:element>
  214. </xsl:template>
  215. <xsl:template match="text()"/>
  216. </xsl:stylesheet>
  217. </xts:block>
  218. <!--
  219. ===============================================================================================
  220. redirect - redirect the browser
  221. ===============================================================================================
  222. -->
  223. <xts:block id="redirect" dependency="formlogic_init ppwSave" mode="output" processor="XSLT" type="exec" mimeType="text/html">
  224. <xts:logicsheet path="logicsheets/portal.xsl"/>
  225. <xts:logicsheet path="logicsheets/presentation/dialog/presentation.xsl"/>
  226. <xsl:stylesheet version="1.0"
  227. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  228. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  229. xmlns:dp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/dialog/presentation/"
  230. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  231. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  232. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  233. xmlns:cp="http://developer.cognos.com/schemas/xts/logicsheets/xslt/presentation/controls/presentation/"
  234. xmlns:utml="http://developer.cognos.com/schemas/xts/logicsheet/xslt/formlogic/"
  235. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  236. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  237. exclude-result-prefixes="xsl pf dp utml xtsext cp bus cm cml xts">
  238. <xsl:output method="html" version="1.0" encoding="UTF-8" indent="no" omit-xml-declaration="yes"/>
  239. <pf:variables/>
  240. <xsl:template match="/">
  241. <xsl:variable name="ppURL">
  242. <xsl:value-of select="concat(string(/root/env/param[@name='successURL']),'&amp;crnobj=',xtsext:urlencode(string(/root/env/param[@name='m_path'])))"/>
  243. </xsl:variable>
  244. <xsl:text disable-output-escaping='yes'>&lt;!DOCTYPE html></xsl:text><dp:page longTitle="$product_name">
  245. <dp:meta>
  246. <pf:meta/> <!-- Add standard meta tags -->
  247. </dp:meta>
  248. <form name="pform" method="post" action="{$gateway}">
  249. <input name="doPostURL" value="successURL" type="hidden"/>
  250. <input name="m" type="hidden" value="portal/postURL.xts"/>
  251. <input name="successURL" type="hidden">
  252. <xsl:attribute name="value"><xsl:value-of select="$ppURL"/></xsl:attribute>
  253. </input>
  254. </form>
  255. <script language="javascript">document.pform.submit();</script>
  256. </dp:page>
  257. </xsl:template>
  258. </xsl:stylesheet>
  259. </xts:block>
  260. </xts:morphlet>