save.xts 145 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619
  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, 2018
  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. <xts:morphlet xmlns:xts="http://developer.cognos.com/schemas/xts/" messageBase="messages/portal.xml, messages/portalRL.xml">
  13. <!--
  14. ===============================================================================================
  15. updateDeploymentOptions
  16. A block to update deploymentOptions with the user settings. deploymentOptions are saved as <param name="name=m_p_deploymentOptions/" under
  17. /root/updateDeploymentOptionsResponse
  18. ===============================================================================================
  19. -->
  20. <xts:block id="updateDeploymentOptions" processor="XSLT" type="exec" condition=".[/root/env/param[@name='m_class']='exportDeployment' or /root/env/param[@name='m_class']='importDeployment']" mandatory="false">
  21. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  22. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cms="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cms/1/" xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns: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">
  23. <xsl:template match="/root">
  24. <xsl:apply-templates select="command/form:save/form:env"/>
  25. </xsl:template>
  26. <xsl:template match="form:env">
  27. <xts:sequence>
  28. <!-- update deploymentOptions if saving from the properties page -->
  29. <xsl:if test="/root/command/form:save/form:env/form:param[@name='m_packagesOp'] = 'updateProperties'">
  30. <xts:append>
  31. <send:request provider="xts">
  32. <updateDeploymentOptions xmlns="http://developer.cognos.com/schemas/xts/portal/iDeployment/1/">
  33. <env>
  34. <!-- copy anything in env except m_p_ and changed_m_p_ -->
  35. <xsl:copy-of select="/root/command/form:save/form:env/*[not(starts-with(@name, 'm_p_') or starts-with(@name, 'changed_m_p_'))]"/>
  36. </env>
  37. </updateDeploymentOptions>
  38. </send:request>
  39. </xts:append>
  40. </xsl:if>
  41. </xts:sequence>
  42. </xsl:template>
  43. <xsl:template match="text()"/>
  44. </xsl:stylesheet>
  45. </xts:block>
  46. <!-- unpack the shared pages if they were passed in -->
  47. <xts:block id="unpackSharedPages" processor="XSLT" type="exec" condition="(/root/env/param[name='m_pp_shared_pages']) or (/root/command/*[local-name()='save']/*[local-name()='env']/*[local-name()='param' and @name='m_pp_shared_pages'])" mandatory="false">
  48. <xts:logicsheet path="portal/preferences/common/request/request.xslt"/>
  49. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  50. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  51. <xsl:stylesheet version="1.0"
  52. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  53. xmlns:cml="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cml/1/"
  54. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  55. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  56. xmlns:rdr="http://developer.cognos.com/schemas/xts/rdr/"
  57. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  58. xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
  59. xmlns:xts="http://developer.cognos.com/schemas/xts/">
  60. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  61. <xsl:template match="/root">
  62. <xts:sequence>
  63. <xts:delete select="/root/env/param[@name='m_pp_shared_pages']"/>
  64. <xts:append>
  65. <xsl:choose>
  66. <xsl:when test="/root/command/form:save/form:env/form:param[@name='m_pp_shared_pages']">
  67. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(/root/command/form:save/form:env/form:param[@name='m_pp_shared_pages'])),true())" disable-output-escaping="yes"/>
  68. </xsl:when>
  69. <xsl:otherwise>
  70. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(/root/env/param[@name='m_pp_shared_pages'])),true())" disable-output-escaping="yes"/>
  71. </xsl:otherwise>
  72. </xsl:choose>
  73. </xts:append>
  74. </xts:sequence>
  75. </xsl:template>
  76. </xsl:stylesheet>
  77. </xts:block>
  78. <!--
  79. ===============================================================================================
  80. updateVariables
  81. A block to update or create m_p_deploymentOptions.
  82. ===============================================================================================
  83. -->
  84. <xts:block id="updateVariables" processor="XSLT" type="exec" dependency="updateDeploymentOptions" condition=".[/root/env/param[@name='m_class']='exportDeployment' or /root/env/param[@name='m_class']='importDeployment']" mandatory="false">
  85. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cms="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cms/1/" xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/" xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/" xmlns: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">
  86. <xsl:template match="/root">
  87. <xsl:apply-templates select="command/form:save/form:env"/>
  88. </xsl:template>
  89. <xsl:template match="form:env">
  90. <xts:sequence>
  91. <!-- update m_p_deploymentOptions -->
  92. <xsl:if test="/root/command/form:save/form:env/form:param[@name='m_packagesOp'] = 'updateProperties'">
  93. <xts:delete select="/root/command/*[local-name()='save']/*[local-name()='env']/*[@name='m_p_deploymentOptions']"/>
  94. <xts:append select="/root/command/*[local-name()='save']/*[local-name()='env']">
  95. <xsl:element name="param" namespace="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/">
  96. <xsl:attribute name="name">m_p_deploymentOptions</xsl:attribute>
  97. <xsl:value-of select="/root/*[local-name()='updateDeploymentOptionsResponse']/*[@name='m_p_deploymentOptions']"/>
  98. </xsl:element>
  99. </xts:append>
  100. </xsl:if>
  101. </xts:sequence>
  102. </xsl:template>
  103. <xsl:template match="text()"/>
  104. </xsl:stylesheet>
  105. </xts:block>
  106. <!--
  107. ===============================================================================================
  108. preSave
  109. A block to take care of tasks that should be done before the save. For example decoding
  110. certain parameters like m_p_members or jobSteps.
  111. ===============================================================================================
  112. -->
  113. <xts:block id="preSave" processor="XSLT" type="exec" dependency="updateVariables">
  114. <xts:logicsheet path="portal/iFrmCmd/logicsheets/cm-save.xsl"/>
  115. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  116. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  117. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  118. xmlns:cms="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cms/1/"
  119. xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
  120. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  121. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  122. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  123. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
  124. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  125. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  126. <xsl:template match="/root">
  127. <xsl:apply-templates select="command/form:save/form:env"/>
  128. <xts:sequence>
  129. <xsl:if test="key('env-param','preserve_pdf_userPwd')='true' or key('env-param','preserve_pdf_ownerPwd')='true'">
  130. <xts:append select="/root">
  131. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  132. <send:request provider="cm">
  133. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  134. <cm:query>
  135. <cm:search>
  136. <xsl:choose>
  137. <xsl:when test="key('env-param','m_searchPath') != ''">
  138. <xsl:value-of select="key('env-param','m_searchPath')"/>
  139. </xsl:when>
  140. <xsl:otherwise>
  141. <xsl:value-of select="key('env-param','m_obj')"/>
  142. </xsl:otherwise>
  143. </xsl:choose>
  144. </cm:search>
  145. <cm:properties>
  146. <cm:property name="options"/>
  147. </cm:properties>
  148. </cm:query>
  149. </xts:transform>
  150. </send:request>
  151. </xts:transform>
  152. </xts:append>
  153. </xsl:if>
  154. <!-- need to verify if the proxy credential object exists. The cheapest way, is to query for it's storeID -->
  155. <xsl:if test="key('env-param','m_connection_type')='sfdc' and key('env-param','m_class')='dataSourceConnection'">
  156. <xts:append select="/root">
  157. <proxyInfo>
  158. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  159. <send:request provider="cm">
  160. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  161. <cm:query>
  162. <cm:search><xsl:value-of select="key('env-param', 'm_obj')"/>/credential[@name='proxy']</cm:search>
  163. <cm:properties>
  164. <cm:property name="storeID"/>
  165. </cm:properties>
  166. </cm:query>
  167. </xts:transform>
  168. </send:request>
  169. </xts:transform>
  170. </proxyInfo>
  171. </xts:append>
  172. </xsl:if>
  173. </xts:sequence>
  174. </xsl:template>
  175. <cms:prop-decode/>
  176. <xsl:template match="form:env">
  177. <xts:sequence>
  178. <xsl:if test="form:param[@name='icon_radio'] = 'standard'">
  179. <!-- set the url value to empty so it can be reset -->
  180. <xts:delete select="/root/command/*[local-name()='save']/*[local-name()='env']/*[@name='m_p_iconURI']"/>
  181. <xts:append select="/root/command/*[local-name()='save']/*[local-name()='env']">
  182. <xsl:element name="param" namespace="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/">
  183. <xsl:attribute name="name">m_p_iconURI</xsl:attribute>
  184. </xsl:element>
  185. </xts:append>
  186. </xsl:if>
  187. <!-- decode all properties -->
  188. <xsl:apply-templates select="form:param[@name='emailToRunOptions' or @name='jobOptions' or @name='jobSteps' or starts-with(@name, 'm_p_') or @name='m_rp_parameters']" mode="decode"/>
  189. </xts:sequence>
  190. </xsl:template>
  191. <xsl:template match="text()"/>
  192. </xsl:stylesheet>
  193. </xts:block>
  194. <!--
  195. ===============================================================================================
  196. preserveOptionPassword
  197. A block to preserve the pdf options passwod.
  198. ===============================================================================================
  199. -->
  200. <xts:block id="preserveOptionPassword" processor="XSLT" type="exec" dependency="preSave">
  201. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  202. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  203. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  204. <xsl:template match="/root">
  205. <xsl:variable name="options" select="/root/*[local-name()='queryResponse']/*/*[local-name()='options']/*[local-name()='value']"/>
  206. <xts:sequence>
  207. <xsl:if test="key('env-param','preserve_pdf_userPwd')='true' or key('env-param','preserve_pdf_ownerPwd')='true'">
  208. <xts:append select="/root/env">
  209. <xsl:if test="key('env-param','preserve_pdf_userPwd')='true'">
  210. <param name="m_pdf_userPassword_runOption_Encrypted">
  211. <xsl:value-of select="$options/*[local-name()='item' and *[local-name()='name']='userPassword']/*[local-name()='value']"/>
  212. </param>
  213. </xsl:if>
  214. <xsl:if test="key('env-param','preserve_pdf_ownerPwd')='true'">
  215. <param name="m_pdf_ownerPassword_runOption_Encrypted">
  216. <xsl:value-of select="$options/*[local-name()='item' and *[local-name()='name']='ownerPassword']/*[local-name()='value']"/>
  217. </param>
  218. </xsl:if>
  219. </xts:append>
  220. </xsl:if>
  221. </xts:sequence>
  222. </xsl:template>
  223. </xsl:stylesheet>
  224. </xts:block>
  225. <!--
  226. ================================================================================
  227. create an encrypted credention for any option password
  228. ================================================================================
  229. -->
  230. <xts:block id="processOptionPassword" nodelist="env" path="/portal/genOptionCredentials.xslt" dependency="preSave" type="exec" mode="interpret" processor="XSLT" mandatory="false" condition=".[/root/env/param[contains(@name, 'Password_runOption')] != '']"/>
  231. <!--
  232. ===============================================================================================
  233. updateChildObjects
  234. Some objects have collections of child objects that must be managed as part of the save
  235. operation. This is done before saving the parent object, to avoid problems with permissions
  236. being changed in the same save operation.
  237. ===============================================================================================
  238. -->
  239. <xts:block id="updateChildObjects" dependency="preSave" processor="XSLT" type="exec"
  240. condition=".[(/root/steps | /root/signons) and not(/root/env/param[@name='run_with_options_job'])]" mandatory="false">
  241. <xts:logicsheet path="portal/iFrmCmd/logicsheets/cm-save.xsl"/>
  242. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  243. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  244. xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
  245. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  246. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  247. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  248. xmlns:x="x"
  249. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
  250. <xsl:key name="form-param" match="/root/command/form:save/form:env/form:param" use="@name"/>
  251. <xsl:template match="/">
  252. <xts:sequence>
  253. <xsl:for-each select="/root/steps">
  254. <!-- Handle any deletes that are required -->
  255. <xsl:if test="count(*/cm:jobStepDefinition[x:deleted]) > 0">
  256. <xts:append>
  257. <deletedSteps>
  258. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  259. <send:request provider="cm">
  260. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  261. <cm:delete xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  262. <cm:objects>
  263. <xsl:for-each select="*/cm:jobStepDefinition[x:deleted]">
  264. <cm:jobStepDefinition>
  265. <cm:searchPath><xsl:value-of select="cm:searchPath"/></cm:searchPath>
  266. </cm:jobStepDefinition>
  267. </xsl:for-each>
  268. </cm:objects>
  269. <cm:options recursive="true" force="true"/>
  270. </cm:delete>
  271. </xts:transform>
  272. </send:request>
  273. </xts:transform>
  274. </deletedSteps>
  275. </xts:append>
  276. </xsl:if>
  277. <!-- Handle any adds that are required -->
  278. <xsl:if test="count(*/cm:jobStepDefinition[x:added]) > 0">
  279. <xts:append>
  280. <addedSteps>
  281. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  282. <send:request provider="cm">
  283. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  284. <add xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
  285. <objects>
  286. <xsl:for-each select="*/cm:jobStepDefinition[x:added]">
  287. <jobStepDefinition>
  288. <searchPath>
  289. <xsl:value-of select="key('form-param', 'm_obj')"/>
  290. </searchPath>
  291. <displaySequence>
  292. <xsl:value-of select="cm:displaySequence"/>
  293. </displaySequence>
  294. <stepObject>
  295. <xsl:element name="{local-name(cm:stepObject/*[1])}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  296. <searchPath>
  297. <xsl:value-of select="cm:stepObject/*[1]/cm:searchPath"/>
  298. </searchPath>
  299. </xsl:element>
  300. </stepObject>
  301. <!-- commented until the CM object changes have been completed-->
  302. <xsl:if test="*[local-name()='options']/*">
  303. <xsl:copy-of select="*[local-name()='options']"/>
  304. </xsl:if>
  305. <parameters>
  306. <xsl:copy-of select="*[local-name()='parameters']/*"/>
  307. </parameters>
  308. </jobStepDefinition>
  309. </xsl:for-each>
  310. </objects>
  311. <options updateAction="fail"/>
  312. </add>
  313. </xts:transform>
  314. </send:request>
  315. </xts:transform>
  316. </addedSteps>
  317. </xts:append>
  318. </xsl:if>
  319. <!-- Handle any updates that are required -->
  320. <xsl:if test="count(*/cm:jobStepDefinition[x:updated]) > 0">
  321. <xts:append>
  322. <addedSteps>
  323. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  324. <send:request provider="cm">
  325. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  326. <update xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
  327. <objects>
  328. <xsl:for-each select="*/cm:jobStepDefinition[x:updated]">
  329. <jobStepDefinition>
  330. <searchPath><xsl:value-of select="cm:searchPath"/></searchPath>
  331. <displaySequence>
  332. <xsl:value-of select="cm:displaySequence"/>
  333. </displaySequence>
  334. <xsl:choose>
  335. <xsl:when test="*[local-name()='options']">
  336. <xsl:copy-of select="*[local-name()='options']"/>
  337. </xsl:when>
  338. <xsl:otherwise>
  339. <xsl:element name="options" namespace="">
  340. <xsl:attribute name="xsi:type">cm:optionArrayProp</xsl:attribute>
  341. <xsl:element name="value" namespace="">
  342. <xsl:attribute name="xsi:type">SOAP-ENC:Array</xsl:attribute>
  343. <xsl:attribute name="SOAP-ENC:arrayType">cm:option[0]</xsl:attribute>
  344. </xsl:element>
  345. </xsl:element>
  346. </xsl:otherwise>
  347. </xsl:choose>
  348. <parameters>
  349. <xsl:copy-of select="*[local-name()='parameters']/*"/>
  350. </parameters>
  351. <xsl:if test="x:linkedOrphaned">
  352. <stepObject>
  353. <xsl:element name="{local-name(cm:stepObject/*[1])}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  354. <searchPath>
  355. <xsl:value-of select="cm:stepObject/*[1]/cm:searchPath"/>
  356. </searchPath>
  357. </xsl:element>
  358. </stepObject>
  359. </xsl:if>
  360. </jobStepDefinition>
  361. </xsl:for-each>
  362. </objects>
  363. </update>
  364. </xts:transform>
  365. </send:request>
  366. </xts:transform>
  367. </addedSteps>
  368. </xts:append>
  369. </xsl:if>
  370. </xsl:for-each>
  371. </xts:sequence>
  372. </xsl:template>
  373. </xsl:stylesheet>
  374. </xts:block>
  375. <!--
  376. ===============================================================================================
  377. updateProxyHostSettings
  378. Update the DataSourceConnection's proxy host credentials child if a Salesforce.com Datasource
  379. Connection is being updated.
  380. ===============================================================================================
  381. -->
  382. <xts:block id="updateProxyHostSettings" dependency="preSave" processor="XSLT" type="exec"
  383. condition=".[/root/env/param[@name='m_connection_type']='sfdc' and /root/env/param[@name='m_class']='dataSourceConnection']" mandatory="false">
  384. <xts:logicsheet path="portal/iFrmCmd/logicsheets/cm-save.xsl"/>
  385. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  386. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  387. xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
  388. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  389. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  390. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  391. xmlns:x="x"
  392. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt">
  393. <xsl:key name="form-param" match="/root/command/form:save/form:env/form:param" use="@name"/>
  394. <xsl:template match="/">
  395. <xts:sequence>
  396. <xsl:variable name="proxyCredentialExists" select="/root/proxyInfo/cm:queryResponse/cm:credential"/>
  397. <xsl:choose>
  398. <xsl:when test="/root/env/param[@name='m_connection_proxy_enabled']='true'">
  399. <xsl:choose>
  400. <!-- proxy credential already exists - just update it -->
  401. <xsl:when test="$proxyCredentialExists">
  402. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  403. <send:request provider="cm">
  404. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  405. <update xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
  406. <objects>
  407. <credential>
  408. <searchPath><xsl:value-of select="key('form-param', 'm_obj')"/>/credential[@name='proxy']</searchPath>
  409. <credentials>
  410. <xsl:value-of select="substring-before(substring-after(xtsext:xmldecode( string(key('form-param', 'm_proxy_credentials'))), '&lt;encryptedValue&gt;'), '&lt;/encryptedValue&gt;')"/>
  411. </credentials>
  412. </credential>
  413. </objects>
  414. </update>
  415. </xts:transform>
  416. </send:request>
  417. </xts:transform>
  418. </xsl:when>
  419. <!-- proxy credential does not exist - add it -->
  420. <xsl:otherwise>
  421. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  422. <send:request provider="cm">
  423. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  424. <add xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
  425. <search>
  426. <xsl:value-of select="key('form-param', 'm_obj')"/>
  427. </search>
  428. <objects>
  429. <credential>
  430. <defaultName>proxy</defaultName>
  431. <defaultDescription>
  432. <xsl:value-of select="/root/command/form:create/form:env/form:param[@name='m_proxy_signon']"/>
  433. </defaultDescription>
  434. <credentials>
  435. <xsl:value-of select="substring-before(substring-after(xtsext:xmldecode( string(key('form-param', 'm_proxy_credentials'))), '&lt;encryptedValue&gt;'), '&lt;/encryptedValue&gt;')"/>
  436. </credentials>
  437. <xsl:variable name="tenantID" select="/root/command/form:create/form:env/form:param[@name='m_p_tenantID']"/>
  438. <xsl:if test="$tenantID">
  439. <tenantID><xsl:value-of select="$tenantID"/></tenantID>
  440. </xsl:if>
  441. </credential>
  442. </objects>
  443. </add>
  444. </xts:transform>
  445. </send:request>
  446. </xts:transform>
  447. </xsl:otherwise>
  448. </xsl:choose>
  449. </xsl:when>
  450. <!-- proxy credentials checkbox not checked - delete the credential if it exists-->
  451. <xsl:otherwise>
  452. <xsl:if test="$proxyCredentialExists">
  453. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  454. <send:request provider="cm">
  455. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  456. <delete xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
  457. <objects>
  458. <cm:credential>
  459. <searchPath><xsl:value-of select="key('form-param', 'm_obj')"/>/credential[@name='proxy']</searchPath>
  460. </cm:credential>
  461. </objects>
  462. <cm:options recursive="true" force="true"/>
  463. </delete>
  464. </xts:transform>
  465. </send:request>
  466. </xts:transform>
  467. </xsl:if>
  468. </xsl:otherwise>
  469. </xsl:choose>
  470. </xts:sequence>
  471. </xsl:template>
  472. </xsl:stylesheet>
  473. </xts:block>
  474. <xts:block id="updatePortletInstances" processor="XSLT" type="exec"
  475. condition=".[
  476. /root/env/param[@name='pagexml'] or
  477. /root/env/param[starts-with(@name, 'm_mp_portlet')] or
  478. /root/env/param[starts-with(@name, 'm_mp_saved_portlet')]
  479. ]" mandatory="false">
  480. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  481. <xsl:stylesheet version="1.0"
  482. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  483. xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
  484. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  485. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  486. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  487. xmlns:cps="http://developer.cognos.com/schemas/cps/asm/objects/1/">
  488. <xsl:template match="/root">
  489. <!-- Make a list of portlets to delete -->
  490. <xsl:variable name="portlets-to-delete">
  491. <xsl:choose>
  492. <!-- Using layout 1.1 version of page editor -->
  493. <xsl:when test="command/form:save/form:env/form:param[@name = 'pagexml']">
  494. <xsl:for-each select="command/form:save/form:env/form:param[@name = 'm_mp_portlet']">
  495. <xsl:if test="not(/root/command/form:save/form:env/form:param[@name = 'pagexml']/*/cps:portletInstance[cps:id = string(current())])">
  496. <cm:portletInstance>
  497. <cm:searchPath><xsl:value-of select="/root/command/form:save/form:env/form:param[@name='m_obj']"/>/portletInstance[@name='<xsl:value-of select="."/>']</cm:searchPath>
  498. </cm:portletInstance>
  499. </xsl:if>
  500. </xsl:for-each>
  501. </xsl:when>
  502. <!-- Using layout 1.0 version of page editor -->
  503. <xsl:when test="command/form:save/form:env/form:param[starts-with(@name, 'm_mp_saved_portlet') and . = 'remove']">
  504. <xsl:for-each select="command/form:save/form:env/form:param[starts-with(@name, 'm_mp_saved_portlet') and . = 'remove']">
  505. <cm:portletInstance>
  506. <cm:searchPath><xsl:value-of select="/root/command/form:save/form:env/form:param[@name='m_obj']"/>/portletInstance[@name='<xsl:value-of select="substring-after(@name, 'm_mp_saved_portlet_')"/>']</cm:searchPath>
  507. </cm:portletInstance>
  508. </xsl:for-each>
  509. </xsl:when>
  510. </xsl:choose>
  511. </xsl:variable>
  512. <!-- Make a list of portlets to add -->
  513. <xsl:variable name="portlets-to-add">
  514. <xsl:choose>
  515. <!-- Using layout 1.1 version of page editor -->
  516. <xsl:when test="command/form:save/form:env/form:param[@name = 'pagexml']">
  517. <xsl:for-each select="command/form:save/form:env/form:param[@name = 'pagexml']/*/cps:portletInstance">
  518. <xsl:if test="not(/root/command/form:save/form:env/form:param[@name='m_mp_portlet' and .=string(current()/cps:id)])">
  519. <cm:portletInstance>
  520. <cm:searchPath><xsl:value-of select="/root/command/form:save/form:env/form:param[@name='m_obj']"/></cm:searchPath>
  521. <cm:defaultName><xsl:value-of select="cps:id"/></cm:defaultName>
  522. <cm:portlet>
  523. <cm:baseClass>
  524. <cm:searchPath><xsl:value-of select="concat('storeID(&quot;', cps:portletId, '&quot;)')"/></cm:searchPath>
  525. </cm:baseClass>
  526. </cm:portlet>
  527. </cm:portletInstance>
  528. </xsl:if>
  529. </xsl:for-each>
  530. </xsl:when>
  531. <!-- Using layout 1.0 version of page editor -->
  532. <xsl:when test="command/form:save/form:env/form:param[starts-with(@name, 'm_mp_portlet_')]">
  533. <xsl:for-each select="command/form:save/form:env/form:param[starts-with(@name, 'm_mp_portlet_')]">
  534. <!-- Each portlet that has not been flagged as "saved" must be new -->
  535. <xsl:variable name="portletID" select="substring-after(@name, 'm_mp_portlet_')"/>
  536. <xsl:if test="not(/root/command/form:save/form:env/form:param[@name = concat('m_mp_saved_portlet_', $portletID)])">
  537. <cm:portletInstance>
  538. <cm:searchPath><xsl:value-of select="/root/command/form:save/form:env/form:param[@name='m_obj']"/></cm:searchPath>
  539. <cm:defaultName><xsl:value-of select="$portletID"/></cm:defaultName>
  540. <cm:portlet>
  541. <cm:baseClass>
  542. <cm:searchPath><xsl:value-of select="."/></cm:searchPath>
  543. </cm:baseClass>
  544. </cm:portlet>
  545. </cm:portletInstance>
  546. </xsl:if>
  547. </xsl:for-each>
  548. </xsl:when>
  549. </xsl:choose>
  550. </xsl:variable>
  551. <xts:sequence>
  552. <!-- CM command to delete -->
  553. <xsl:if test="count($portlets-to-delete/cm:portletInstance) &gt; 0">
  554. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  555. <send:request provider="cm">
  556. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  557. <cm:delete xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  558. <cm:objects>
  559. <xsl:copy-of select="$portlets-to-delete"/>
  560. </cm:objects>
  561. <cm:options recursive="true" force="true"/>
  562. </cm:delete>
  563. </xts:transform>
  564. </send:request>
  565. </xts:transform>
  566. </xsl:if>
  567. <!-- CM command to add -->
  568. <xsl:if test="count($portlets-to-add/cm:portletInstance) &gt; 0">
  569. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  570. <send:request provider="cm">
  571. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  572. <cm:add>
  573. <cm:objects>
  574. <xsl:copy-of select="$portlets-to-add"/>
  575. </cm:objects>
  576. <cm:options updateAction="fail"/>
  577. </cm:add>
  578. </xts:transform>
  579. </send:request>
  580. </xts:transform>
  581. </xsl:if>
  582. </xts:sequence>
  583. </xsl:template>
  584. </xsl:stylesheet>
  585. </xts:block>
  586. <!--
  587. ===============================================================================================
  588. doFormCommand
  589. Updates an object in CM based on parameters passed in.
  590. Should create a CM command like so:
  591. <update xmlns="http://developer.cognos.com/schemas/xts-cm/1/">
  592. <objects>
  593. <$m_class>
  594. <defaultName>new/old name</defaultName>
  595. <defaultDescription>An updated description for report1</defaultDescription>
  596. ...
  597. </$m_class>
  598. </objects>
  599. </update>
  600. ===============================================================================================
  601. -->
  602. <xts:block id="doFormCommand" dependency="updateChildObjects updateProxyHostSettings unpackSharedPages updatePortletInstances preserveOptionPassword processOptionPassword" processor="XSLT" type="exec">
  603. <xts:logicsheet path="portal/iFrmCmd/logicsheets/cm-save.xsl"/>
  604. <xts:logicsheet path="logicsheets/portal.xsl"/>
  605. <xts:logicsheet path="logicsheets/buslogic.xslt"/>
  606. <xts:logicsheet path="logicsheets/propertiesSettings/durationProperty.xslt"/>
  607. <xsl:stylesheet version="1.0"
  608. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  609. xmlns:psdp="http://developer.cognos.com/schemas/xts/logicsheet/xslt/propertiesSettings/durationProperty/"
  610. xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
  611. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  612. xmlns:cms="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/cms/1/"
  613. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  614. xmlns:send="http://developer.cognos.com/schemas/xts/logic-sheet/xslt/brl/1/"
  615. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  616. xmlns:form="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/"
  617. xmlns:bus="http://developer.cognos.com/schemas/bibus/3/"
  618. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  619. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  620. xmlns:dls="http://developer.cognos.com/schemas/deliveryService/1"
  621. exclude-result-prefixes="xsl SOAP-ENC xsi cms xts send cm form bus pf xtsext">
  622. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  623. <!-- global application variables -->
  624. <pf:variables/>
  625. <xsl:key name="form-param" match="/root/command/form:save/form:env/form:param" use="@name"/>
  626. <xsl:variable name="notAcquirable">
  627. <parms>
  628. <name>periodicalDocumentVersionRetentionCount</name>
  629. <name>periodicalDocumentVersionRetentionAge</name>
  630. <name>metadataInformationURI</name>
  631. <name>glossaryURI</name>
  632. <name>temporaryObjectLocation</name>
  633. <name>temporaryObjectLifetime</name>
  634. <name>collaborationDiscoveryURI</name>
  635. <name>cookieCAMPassportHttpOnly</name>
  636. <name>bpmRestURI</name>
  637. </parms>
  638. </xsl:variable>
  639. <psdp:durationConvertors/>
  640. <xsl:template match="/root">
  641. <xsl:apply-templates select="command/form:save/form:env"/>
  642. </xsl:template>
  643. <xsl:template match="form:env">
  644. <xts:sequence>
  645. <xsl:variable name="sharePages-fragement">
  646. <!-- if there is no sharedPagesListForDisplay that means none was -->
  647. <!-- passed in so we did not even look at the portalPages so we -->
  648. <!-- do not need this fragement -->
  649. <xsl:if test="/root/sharedPagesListForDisplay">
  650. <xsl:element name="cm:portalPages">
  651. <xsl:attribute name="xsi:type">cm:baseClassArrayProp</xsl:attribute>
  652. <xsl:element name="value" namespace="">
  653. <xsl:attribute name="xsi:type">SOAP-ENC:Array</xsl:attribute>
  654. <xsl:attribute name="SOAP-ENC:arrayType">tns:baseClass[]</xsl:attribute>
  655. <xsl:for-each select="/root/sharedPagesListForDisplay/pagelet">
  656. <cm:pageletRef>
  657. <cm:searchID>
  658. <!-- the searchPath for object references can either be a -->
  659. <!-- searchPath or an object a storeid. We use a storeid -->
  660. <xsl:value-of select="cm:storeID"/>
  661. </cm:searchID>
  662. </cm:pageletRef>
  663. </xsl:for-each>
  664. </xsl:element>
  665. </xsl:element>
  666. </xsl:if>
  667. </xsl:variable>
  668. <!-- construct the security policies fragment if it needs to be updated. -->
  669. <xsl:variable name="securityPolicies-fragment">
  670. <xsl:if test="form:param[starts-with(@name,'m_permissions_')]">
  671. <xts:transform src="transforms/CM/pre-process-policy.xslt" processor="XSLT">
  672. <policies>
  673. <xsl:if test="key('form-param', 'm_permissions_replace')='true'">
  674. <xsl:attribute name="updateAllDescendents">true</xsl:attribute>
  675. </xsl:if>
  676. <!-- This function takes the JSON policies and converts them to the XML format that we expect. -->
  677. <xsl:if test="key('form-param', 'm_permissions_overridePolicy')='true'">
  678. <xts:function name="CreatePolicies">
  679. <xts:param name="policies">
  680. <xts:queryValue select="/root/command/*[local-name()='save']/*[local-name()='env']/*[local-name()='param'][@name='m_permissions_JSON']"/>
  681. </xts:param>
  682. </xts:function>
  683. </xsl:if>
  684. </policies>
  685. </xts:transform>
  686. </xsl:if>
  687. </xsl:variable>
  688. <!-- construct the capability policies fragment if it needs to be updated. -->
  689. <xsl:variable name="capabilityPolicies-fragment">
  690. <xsl:if test="form:param[starts-with(@name,'m_userCapabilityPolicies_')]">
  691. <xts:transform src="transforms/CM/pre-process-policy.xslt" processor="XSLT">
  692. <userCapabilityPolicies>
  693. <xsl:if test="key('form-param', 'm_userCapabilityPolicies_replace')='true'">
  694. <xsl:attribute name="updateAllDescendents">true</xsl:attribute>
  695. </xsl:if>
  696. <!-- This function takes the JSON policies and converts them to the XML format that we expect. -->
  697. <xsl:if test="key('form-param', 'm_userCapabilityPolicies_overridePolicy')='true'">
  698. <xts:function name="CreatePolicies">
  699. <xts:param name="policies">
  700. <xts:queryValue select="/root/command/*[local-name()='save']/*[local-name()='env']/*[local-name()='param'][@name='m_userCapabilityPolicies_JSON']"/>
  701. </xts:param>
  702. </xts:function>
  703. </xsl:if>
  704. </userCapabilityPolicies>
  705. </xts:transform>
  706. </xsl:if>
  707. </xsl:variable>
  708. <!-- construct the dataSourceCapabilities fragment -->
  709. <xsl:variable name="dataSourceCapabilities-fragment">
  710. <xsl:choose>
  711. <xsl:when test="form:param[@name='m_class']='dataSource' and string(key('env-param', 'm_dscap'))!=''">
  712. <cm:dataSourceCapabilities>
  713. <xsl:for-each select="key('env-param', 'm_dscap')">
  714. <cm:capability>
  715. <xsl:value-of select="concat('http://developer.cognos.com/ceba/constants/dataSourceCapabilityEnum#', string(.))"/>
  716. </cm:capability>
  717. </xsl:for-each>
  718. </cm:dataSourceCapabilities>
  719. </xsl:when>
  720. <xsl:when test="form:param[@name='m_class']='dataSource' and string(key('env-param', 'm_dscap'))='' and key('env-param', 'changed_m_dscap')='1'">
  721. <cm:dataSourceCapabilities>
  722. </cm:dataSourceCapabilities>
  723. </xsl:when>
  724. </xsl:choose>
  725. </xsl:variable>
  726. <!-- construct the generic properties fragment if it needs to be updated and
  727. process properties that we want to reset their values (i.e. xsi:nil="true") -->
  728. <xsl:variable name="properties-fragment">
  729. <xsl:apply-templates select="form:param[starts-with(@name, 'm_p_') or starts-with(@name, 'm_cbp_') or starts-with(@name, 'm_pc_') or starts-with(@name, 'reset_')]"/>
  730. </xsl:variable>
  731. <xsl:variable name="properties-duration">
  732. <xsl:if test="form:param[@name='m_class'] and form:param[@name='m_class']!='importDeployment' and form:param[@name='m_class']!='exportDeployment'">
  733. <xsl:apply-templates select="form:param[starts-with(@name, 'dura_property_')]"/>
  734. </xsl:if>
  735. </xsl:variable>
  736. <!-- Construct the policy list for the account credential. -->
  737. <xsl:variable name="credential-policies">
  738. <xsl:if test="key('form-param','credential_list')!=''">
  739. <cm:credential>
  740. <cm:searchPath><xsl:value-of select="concat(key('form-param','m_obj'),'/credential')"/></cm:searchPath>
  741. <xts:transform src="transforms/portal/credential/build-policies.xslt" processor="XSLT">
  742. <cm:policies>
  743. <credential>
  744. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap', string(form:param[@name='credential_list'])),true())" disable-output-escaping="yes"/>
  745. </credential>
  746. <cm:policy>
  747. <cm:securityObject>
  748. <cm:searchPath>
  749. <xsl:value-of select="form:param[@name='credential_self']"/>
  750. </cm:searchPath>
  751. </cm:securityObject>
  752. <cm:permission name="setPolicy" access="grant"/>
  753. <cm:permission name="write" access="grant"/>
  754. <cm:permission name="read" access="grant"/>
  755. <cm:permission name="execute" access="grant"/>
  756. </cm:policy>
  757. </cm:policies>
  758. </xts:transform>
  759. </cm:credential>
  760. </xsl:if>
  761. </xsl:variable>
  762. <!-- construct the runoptions if we're dealing with a job -->
  763. <xsl:variable name="jobOptions-fragment">
  764. <xsl:if test="(form:param[@name='page_is_read_only']='false') and (form:param[starts-with(@name, 'm_ro_')] and form:param[@name='m_class']='jobDefinition' and not(form:param[@name='run_with_options_job']))">
  765. <xsl:choose>
  766. <xsl:when test="/root/*[local-name()='jobOptions']/*[local-name()='options'] or form:param[@name='m_jo_continueOnError']='true'">
  767. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  768. <root>
  769. <!-- copy the job options and rebuild the options and value elements since the count might be wrong -->
  770. <xsl:copy-of select="/root/*[local-name()='jobOptions']/*[local-name()='options']/*[local-name()='value']/*"/>
  771. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  772. <root>
  773. <xsl:copy-of select="/root/env"/>
  774. <xts:transform name="XML" src="portal/options.xml"/>
  775. <optionType>jobOptions</optionType>
  776. </root>
  777. </xts:transform>
  778. </root>
  779. </xts:transform>
  780. </xsl:when>
  781. <xsl:otherwise>
  782. <xsl:element name="options" namespace="">
  783. <xsl:attribute name="xsi:type">cm:optionArrayProp</xsl:attribute>
  784. <xsl:element name="value" namespace="">
  785. <xsl:attribute name="xsi:type">SOAP-ENC:Array</xsl:attribute>
  786. <xsl:attribute name="SOAP-ENC:arrayType">cm:option[0]</xsl:attribute>
  787. </xsl:element>
  788. </xsl:element>
  789. </xsl:otherwise>
  790. </xsl:choose>
  791. </xsl:if>
  792. </xsl:variable>
  793. <!-- construct the powerPlayOptions fragment -->
  794. <xsl:variable name="powerPlayOptions-fragment">
  795. <xsl:if test="form:param[@name='m_class']='powerPlayReport' and form:param[starts-with(@name, 'm_ppro_') or starts-with(@name,'changed_m_ppro_')]">
  796. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  797. <root>
  798. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  799. <root>
  800. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  801. <root>
  802. <xsl:copy-of select="/root/env"/>
  803. </root>
  804. </xts:transform>
  805. <xts:transform name="XML" src="portal/options.xml"/>
  806. <optionType>powerPlayOptions</optionType>
  807. </root>
  808. </xts:transform>
  809. </root>
  810. </xts:transform>
  811. </xsl:if>
  812. </xsl:variable>
  813. <!-- construct the powerPlay8Options fragment -->
  814. <xsl:variable name="powerPlay8Options-fragment">
  815. <xsl:if test="(form:param[@name='m_class']='powerPlay8Report' or form:param[@name='m_class']='powerPlay8ReportView') and form:param[starts-with(@name, 'm_pp8ro_') or starts-with(@name,'changed_m_pp8ro_')]">
  816. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  817. <root>
  818. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  819. <root>
  820. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  821. <root>
  822. <xsl:copy-of select="/root/env"/>
  823. </root>
  824. </xts:transform>
  825. <xts:transform name="XML" src="portal/options.xml"/>
  826. <optionType>powerPlay8Options</optionType>
  827. </root>
  828. </xts:transform>
  829. </root>
  830. </xts:transform>
  831. </xsl:if>
  832. </xsl:variable>
  833. <!-- construct the metricsOptions fragment -->
  834. <xsl:variable name="metricsOptions-fragment">
  835. <xsl:if test="contains('metricsFileImportTask metricsDataSourceETLTask metricsMaintenanceTask', form:param[@name='m_class']) and form:param[starts-with(@name, 'm_mo_') or starts-with(@name,'changed_m_mo_')]">
  836. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  837. <root>
  838. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  839. <root>
  840. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  841. <root>
  842. <xsl:copy-of select="/root/env"/>
  843. </root>
  844. </xts:transform>
  845. <xts:transform name="XML" src="portal/options.xml"/>
  846. <optionType>metricsOptions</optionType>
  847. </root>
  848. </xts:transform>
  849. </root>
  850. </xts:transform>
  851. </xsl:if>
  852. </xsl:variable>
  853. <xsl:variable name="contentTaskOptions-fragment">
  854. <xsl:if test="string(form:param[@name='readOnlyAccess'])!='true'">
  855. <xsl:if test="form:param[@name='m_class']='contentTask' and (form:param[starts-with(@name, 'cto_') or starts-with(@name,'changed_cto_')] or form:param[@name='contentTaskType']='reportUpgrade')">
  856. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  857. <root>
  858. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  859. <root>
  860. <xsl:copy-of select="/root/env"/>
  861. <xts:transform name="XML" src="portal/options.xml"/>
  862. <optionType>contentTaskProperties</optionType>
  863. <optionType>contentTaskOptions</optionType>
  864. </root>
  865. </xts:transform>
  866. </root>
  867. </xts:transform>
  868. </xsl:if>
  869. </xsl:if>
  870. </xsl:variable>
  871. <xsl:variable name="indexOptions-fragment">
  872. <xsl:if test="string(form:param[@name='readOnlyAccess'])!='true'">
  873. <xsl:if test="form:param[@name='m_class']='indexUpdateTask' and (form:param[starts-with(@name, 'm_io_includedObjects')])">
  874. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  875. <root>
  876. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  877. <root>
  878. <xsl:copy-of select="/root/env"/>
  879. <xts:transform name="XML" src="portal/options.xml"/>
  880. <optionType>indexOptions</optionType>
  881. </root>
  882. </xts:transform>
  883. </root>
  884. </xts:transform>
  885. </xsl:if>
  886. </xsl:if>
  887. </xsl:variable>
  888. <xsl:variable name="portalOptions-fragment">
  889. <xsl:if test="form:param[@name='m_class']='account' and form:param[starts-with(@name, 'm_po_') or starts-with(@name,'changed_m_po_')]">
  890. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  891. <root>
  892. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  893. <root>
  894. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  895. <root>
  896. <env>
  897. <xsl:for-each select="/root/command/form:save/form:env/form:param">
  898. <param name="{@name}">
  899. <xsl:value-of select="."/>
  900. </param>
  901. </xsl:for-each>
  902. </env>
  903. </root>
  904. </xts:transform>
  905. <xts:transform name="XML" src="portal/options.xml"/>
  906. <optionType>portalOptions</optionType>
  907. <optionType>genericOptions</optionType>
  908. <optionType>bidiOptions</optionType>
  909. </root>
  910. </xts:transform>
  911. </root>
  912. </xts:transform>
  913. </xsl:if>
  914. </xsl:variable>
  915. <!-- construct the options if we're dealing with a queryServiceTask -->
  916. <xsl:variable name="queryServiceTaskOptions-fragment">
  917. <xsl:if test="(form:param[@name='m_queryServiceOptions'] and form:param[@name='m_class']='queryServiceTask' and (form:param[@name='changed_m_queryServiceOptions']='1'))">
  918. <xsl:value-of select="form:param[@name='m_queryServiceOptions']" disable-output-escaping="yes"/>
  919. </xsl:if>
  920. </xsl:variable>
  921. <!-- construct the reportingExecution fragement. -->
  922. <!-- WO 122 - handle re-establishing metadataModelPackage when orphaned -->
  923. <xsl:variable name="reportingExecution">
  924. <xsl:if test="key('env-param','visited_run_options_property') = 'true'">
  925. <xsl:choose>
  926. <!-- when the user selected to override the default report options -->
  927. <xsl:when test="form:param[@name='override_default_reportOptions']='true' or form:param[@name='override_outputFormat_option']='true' ">
  928. <!-- build the options array -->
  929. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  930. <root>
  931. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  932. <root>
  933. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  934. <root>
  935. <xsl:copy-of select="/root/env"/>
  936. </root>
  937. </xts:transform>
  938. <xts:transform name="XML" src="portal/options.xml"/>
  939. <optionType>runOptions</optionType>
  940. <optionType>pdfOptions</optionType>
  941. <optionType>archiveOptions</optionType>
  942. <optionType>genericOptions</optionType>
  943. <genDefaults>false</genDefaults>
  944. <reportOptions>true</reportOptions>
  945. </root>
  946. </xts:transform>
  947. </root>
  948. </xts:transform>
  949. <!-- need to keep the old report execution options in sync with the options array -->
  950. <cm:executionFormat><xsl:value-of select="form:param[@name='m_ro_outputFormat']"/></cm:executionFormat>
  951. <xsl:choose>
  952. <xsl:when test="form:param[@name='m_ro_outputFormat']='PDF'">
  953. <cm:executionPageOrientation>
  954. <xsl:if test="form:param[@name='m_ro_outputPageOrientation'] != 'default'">
  955. <xsl:value-of select="form:param[@name='m_ro_outputPageOrientation']"/>
  956. </xsl:if>
  957. </cm:executionPageOrientation>
  958. <cm:executionPageDefinition>
  959. <xsl:if test="form:param[@name='m_ro_outputPageDefinition'] != 'default'">
  960. <cm:pageDefinition>
  961. <xsl:value-of select="form:param[@name='m_ro_outputPageDefinition']"/>
  962. </cm:pageDefinition>
  963. </xsl:if>
  964. </cm:executionPageDefinition>
  965. </xsl:when>
  966. <xsl:otherwise>
  967. <cm:executionPageOrientation/>
  968. <cm:executionPageDefinition/>
  969. </xsl:otherwise>
  970. </xsl:choose>
  971. <cm:executionLocale><xsl:value-of select="form:param[@name='m_ro_outputLocale']"/></cm:executionLocale>
  972. </xsl:when>
  973. <xsl:otherwise>
  974. <cm:executionFormat/>
  975. <cm:executionPageOrientation/>
  976. <cm:executionPageDefinition/>
  977. <cm:executionLocale/>
  978. <!--
  979. Special case to handle options that are outside the 'override the defauls' section
  980. -->
  981. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  982. <root>
  983. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  984. <root>
  985. <env>
  986. <param name="m_ro_prompt">
  987. <xsl:choose>
  988. <xsl:when test="form:param[@name='m_ro_prompt']">true</xsl:when>
  989. <xsl:otherwise>false</xsl:otherwise>
  990. </xsl:choose>
  991. </param>
  992. <param name="m_ro_selectionBasedFeatures">
  993. <xsl:value-of select="form:param[@name='m_ro_selectionBasedFeatures']"/>
  994. </param>
  995. <param name="m_ro_verticalElements">
  996. <xsl:value-of select="form:param[@name='m_ro_verticalElements']"/>
  997. </param>
  998. <param name="m_ro_advancedOutput">
  999. <xsl:value-of select="form:param[@name='m_ro_advancedOutput']"/>
  1000. </param>
  1001. <param name="m_ro_allowAnnotations">
  1002. <xsl:value-of select="form:param[@name='m_ro_allowAnnotations']"/>
  1003. </param>
  1004. <param name="m_ro_promptCacheMode">
  1005. <xsl:value-of select="form:param[@name='m_ro_promptCacheMode']"/>
  1006. </param>
  1007. </env>
  1008. <xts:transform name="XML" src="portal/options.xml"/>
  1009. <optionType>runOptions</optionType>
  1010. <genDefaults>false</genDefaults>
  1011. <reportOptions>true</reportOptions>
  1012. </root>
  1013. </xts:transform>
  1014. </root>
  1015. </xts:transform>
  1016. </xsl:otherwise>
  1017. </xsl:choose>
  1018. <!-- We only set the runAsOwner when runAsOwner or runWithOwnerCapabilities property has changed -->
  1019. <xsl:if test="form:param[@name='changed_m_re_runAsOwner']='1' or form:param[@name='changed_m_re_runWithOwnerCapabilities']='1'">
  1020. <cm:runAsOwner><xsl:value-of select="form:param[@name='m_re_runAsOwner']='true' and not(form:param[@name='m_re_runWithOwnerCapabilities']='true')"/></cm:runAsOwner>
  1021. </xsl:if>
  1022. <!-- We only set the runWithOwnerCapabilities when runWithOwnerCapabilities property has changed -->
  1023. <xsl:if test="form:param[@name='changed_m_re_runWithOwnerCapabilities']='1' and key('env-param','m_class') != 'reportView'">
  1024. <cm:runWithOwnerCapabilities><xsl:value-of select="form:param[@name='m_re_runWithOwnerCapabilities']='true'"/></cm:runWithOwnerCapabilities>
  1025. </xsl:if>
  1026. <cm:executionPrompt>
  1027. <xsl:choose>
  1028. <xsl:when test="form:param[@name='m_ro_prompt']">true</xsl:when>
  1029. <xsl:otherwise>false</xsl:otherwise>
  1030. </xsl:choose>
  1031. </cm:executionPrompt>
  1032. </xsl:if>
  1033. <xsl:if test="form:param[@name='m_class']='agentDefinition' or form:param[@name='m_class']='agentDefinitionView'">
  1034. <xsl:if test="form:param[@name='changed_m_re_runAsOwner']='1'">
  1035. <cm:runAsOwner><xsl:value-of select="form:param[@name='m_re_runAsOwner']='true' and not(form:param[@name='m_re_runWithOwnerCapabilities']='true')"/></cm:runAsOwner>
  1036. </xsl:if>
  1037. <xsl:if test="form:param[@name='changed_m_re_runWithOwnerCapabilities']='1'">
  1038. <cm:runWithOwnerCapabilities><xsl:value-of select="form:param[@name='m_re_runWithOwnerCapabilities']='true'"/></cm:runWithOwnerCapabilities>
  1039. </xsl:if>
  1040. <xsl:if test="form:param[@name='changed_m_ro_prompt']='1' or form:param[@name='changed_m_mo_writeCompleteHistory']='1' ">
  1041. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  1042. <root>
  1043. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  1044. <root>
  1045. <env>
  1046. <param name="m_ro_prompt">
  1047. <xsl:choose>
  1048. <xsl:when test="form:param[@name='m_ro_prompt']">true</xsl:when>
  1049. <xsl:otherwise>false</xsl:otherwise>
  1050. </xsl:choose>
  1051. </param>
  1052. <param name="m_mo_writeCompleteHistory">
  1053. <xsl:choose>
  1054. <xsl:when test="form:param[@name='m_mo_writeCompleteHistory']">
  1055. <xsl:value-of select="form:param[@name='m_mo_writeCompleteHistory']"/>
  1056. </xsl:when>
  1057. <xsl:otherwise>false</xsl:otherwise>
  1058. </xsl:choose>
  1059. </param>
  1060. </env>
  1061. <xts:transform name="XML" src="portal/options.xml"/>
  1062. <optionType>runOptions</optionType>
  1063. <optionType>jobOptions</optionType>
  1064. <genDefaults>false</genDefaults>
  1065. <reportOptions>true</reportOptions>
  1066. </root>
  1067. </xts:transform>
  1068. </root>
  1069. </xts:transform>
  1070. <cm:executionPrompt>
  1071. <xsl:choose>
  1072. <xsl:when test="form:param[@name='m_ro_prompt']">true</xsl:when>
  1073. <xsl:otherwise>false</xsl:otherwise>
  1074. </xsl:choose>
  1075. </cm:executionPrompt>
  1076. </xsl:if>
  1077. <!-- WO 122 added re-establish package link-->
  1078. <xsl:if test="form:param[@name='m_agsr_metadataModelPackage']">
  1079. <cm:metadataModelPackage>
  1080. <cm:baseClass>
  1081. <cm:searchPath><xsl:value-of select="form:param[@name='m_agsr_metadataModelPackage']"/></cm:searchPath>
  1082. </cm:baseClass>
  1083. </cm:metadataModelPackage>
  1084. </xsl:if>
  1085. <xsl:if test="form:param[@name='m_agsr_metadataModel']">
  1086. <cm:metadataModel>
  1087. <xsl:if test="string(form:param[@name='m_agsr_metadataModel']) != ''">
  1088. <cm:baseClass>
  1089. <cm:searchPath><xsl:value-of select="form:param[@name='m_agsr_metadataModel']"/></cm:searchPath>
  1090. </cm:baseClass>
  1091. </xsl:if>
  1092. </cm:metadataModel>
  1093. </xsl:if>
  1094. </xsl:if>
  1095. <xsl:if test="(contains(' metricsFileImportTask metricsDataSourceETLTask metricsMaintenanceTask metricsExportTask ', concat(' ', form:param[@name='m_class'], ' '))) and form:param[@name='changed_m_re_runAsOwner']='1'">
  1096. <cm:runAsOwner>
  1097. <xsl:choose>
  1098. <xsl:when test="form:param[@name='m_re_runAsOwner']">true</xsl:when>
  1099. <xsl:otherwise>false</xsl:otherwise>
  1100. </xsl:choose>
  1101. </cm:runAsOwner>
  1102. </xsl:if>
  1103. </xsl:variable>
  1104. <xsl:variable name="repositoryRules">
  1105. <!-- Make sure we have the m_reportRepositoryDataSource form param before setting the repository rules. Otherwise the request will fail if the user has not write access (but setPolicy). -->
  1106. <xsl:variable name="set-repository-options" select="form:param[@name='m_reportRepositoryDataSource']"/>
  1107. <xsl:if test="$set-repository-options and ((/root/env/param[@name='m_class'] = 'package') or (/root/env/param[@name='m_class'] = 'folder') or (/root/env/param[@name='m_class'] = 'content') or (/root/env/param[@name='m_class'] = 'namespace') or (/root/env/param[@name='m_class'] = 'namespaceFolder') or (/root/env/param[@name='m_class'] = 'account'))">
  1108. <xsl:variable name="overrideRulesToEmpty" select="form:param[@name='overrideRepositoryRules'] = 'true' and form:param[@name='m_reportRepositoryDataSource'] = '' and form:param[@name='m_documentRepositoryDataSource'] = ''"/>
  1109. <xsl:variable name="inhertieRules" select="not(form:param[@name='overrideRepositoryRules'])"/>
  1110. <xsl:choose>
  1111. <xsl:when test="$overrideRulesToEmpty">
  1112. <repositoryRules xsi:type="cm:repositoryRuleArrayProp">
  1113. <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:repositoryRule[2]">
  1114. <item xsi:type="cm:repositoryRule">
  1115. <objectClass xsi:type="cm:classEnum">reportVersion</objectClass>
  1116. <dataSourceName xsi:type="xsd:string"/>
  1117. </item>
  1118. <item xsi:type="cm:repositoryRule">
  1119. <objectClass xsi:type="cm:classEnum">documentVersion</objectClass>
  1120. <dataSourceName xsi:type="xsd:string"/>
  1121. </item>
  1122. </value>
  1123. </repositoryRules>
  1124. </xsl:when>
  1125. <xsl:when test="$inhertieRules">
  1126. <repositoryRules xsi:type="cm:repositoryRuleArrayProp"/>
  1127. </xsl:when>
  1128. <xsl:otherwise>
  1129. <repositoryRules xsi:type="cm:repositoryRuleArrayProp">
  1130. <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:repositoryRule[2]">
  1131. <item xsi:type="cm:repositoryRule">
  1132. <objectClass xsi:type="cm:classEnum">reportVersion</objectClass>
  1133. <dataSourceName xsi:type="xsd:string"><xsl:value-of select="form:param[@name='m_reportRepositoryDataSource']"/></dataSourceName>
  1134. </item>
  1135. <item xsi:type="cm:repositoryRule">
  1136. <objectClass xsi:type="cm:classEnum">documentVersion</objectClass>
  1137. <dataSourceName xsi:type="xsd:string"><xsl:value-of select="form:param[@name='m_documentRepositoryDataSource']"/></dataSourceName>
  1138. </item>
  1139. </value>
  1140. </repositoryRules>
  1141. </xsl:otherwise>
  1142. </xsl:choose>
  1143. </xsl:if>
  1144. </xsl:variable>
  1145. <xsl:variable name="retention-fragment">
  1146. <xsl:if test="form:param[starts-with(@name, 'rg_')] and (form:param[starts-with(@name,'changed_rg')] != '0' or not(form:param[starts-with(@name,'changed_rg')]))">
  1147. <xsl:element name="retentions" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  1148. <xsl:for-each select="form:param[starts-with(@name, 'rg_retention')]">
  1149. <xsl:variable name="className" select="substring-after(@name,'rg_retention_')"/>
  1150. <xsl:variable name="occurrence" select="concat('maxNumber_', $className)"/>
  1151. <xsl:variable name="duration" select="concat('duration_', $className)"/>
  1152. <xsl:variable name="durationSelect" select="concat('durationSelect_', $className)"/>
  1153. <!-- do not save the retention information for reportCache if the refreshReportCache checkbox is not checked-->
  1154. <xsl:if test="not($className='reportCache' and key('env-param','m_ro_promptCacheMode')!='refresh')">
  1155. <xsl:element name="retentionRule" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  1156. <xsl:attribute name="objectClass">
  1157. <xsl:value-of select="$className"/>
  1158. </xsl:attribute>
  1159. <xsl:attribute name="prop">
  1160. <xsl:value-of select="'creationTime'"/>
  1161. </xsl:attribute>
  1162. <xsl:attribute name="maxObjects">
  1163. <xsl:choose>
  1164. <xsl:when test="../*[local-name() = 'param'][@name=$occurrence]">
  1165. <xsl:value-of select="../*[local-name() = 'param'][@name=$occurrence]"/>
  1166. </xsl:when>
  1167. <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
  1168. </xsl:choose>
  1169. </xsl:attribute>
  1170. <xsl:attribute name="maxDuration">
  1171. <xsl:choose>
  1172. <xsl:when test="../*[local-name() = 'param'][@name=$durationSelect]='seconds'">
  1173. <xsl:value-of select="concat('PT',../*[local-name() = 'param'][@name=$duration],'S')"/>
  1174. </xsl:when>
  1175. <xsl:when test="../*[local-name() = 'param'][@name=$durationSelect]='minutes'">
  1176. <xsl:value-of select="concat('PT',../*[local-name() = 'param'][@name=$duration],'M')"/>
  1177. </xsl:when>
  1178. <xsl:when test="../*[local-name() = 'param'][@name=$durationSelect]='hours'">
  1179. <xsl:value-of select="concat('PT',../*[local-name() = 'param'][@name=$duration],'H')"/>
  1180. </xsl:when>
  1181. <xsl:when test="../*[local-name() = 'param'][@name=$durationSelect]='days'">
  1182. <xsl:value-of select="concat('P',../*[local-name() = 'param'][@name=$duration],'D')"/>
  1183. </xsl:when>
  1184. <xsl:when test="../*[local-name() = 'param'][@name=$durationSelect]='months'">
  1185. <xsl:value-of select="concat('P',../*[local-name() = 'param'][@name=$duration],'M')"/>
  1186. </xsl:when>
  1187. <xsl:otherwise><xsl:value-of select="''"/></xsl:otherwise>
  1188. </xsl:choose>
  1189. </xsl:attribute>
  1190. </xsl:element>
  1191. </xsl:if>
  1192. </xsl:for-each>
  1193. </xsl:element>
  1194. </xsl:if>
  1195. </xsl:variable>
  1196. <xsl:variable name="packageConfiguration-fragment">
  1197. <xsl:if test="form:param[starts-with(@name, 'm_ppc_')]">
  1198. <xsl:apply-templates select="form:param[starts-with(@name, 'm_ppc_')]"/>
  1199. </xsl:if>
  1200. </xsl:variable>
  1201. <xsl:variable name="parameters-fragment">
  1202. <xsl:if test="form:param[@name='cleared_prompts'] = 'true' or /root/parameters/*">
  1203. <xsl:element name="parameters" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  1204. <xsl:if test="form:param[@name='cleared_prompts'] != 'true'">
  1205. <xsl:copy-of select="/root/parameters/*"/>
  1206. </xsl:if>
  1207. </xsl:element>
  1208. </xsl:if>
  1209. </xsl:variable>
  1210. <!-- construct the advancedSettings fragment. -->
  1211. <xsl:variable name="adv-settings-fragment">
  1212. <xsl:if test="form:param[starts-with(@name, 'm_pa_')] or form:param[@name='reset_advancedSettings'] or form:param[@name='resetroot_advancedSettings'] or (key('form-param','settings_delete') and key('form-param', 'm_class')!='configurationFolder' and key('form-param', 'm_class')!='dispatcher')">
  1213. <cm:advancedSettings>
  1214. <xsl:if test="key('form-param','settings_delete')">
  1215. <xsl:attribute name="updateAllDescendents">true</xsl:attribute>
  1216. </xsl:if>
  1217. <xsl:if test="(key('form-param', 'm_obj')!='/configuration' and (not(form:param[@name='reset_advancedSettings']) or form:param[@name='reset_advancedSettings'] != '1')) or (key('form-param', 'm_obj')='/configuration' and (not(form:param[@name='resetroot_advancedSettings']) or form:param[@name='resetroot_advancedSettings'] != '1'))">
  1218. <xsl:text/>&lt;settings&gt;<xsl:text/>
  1219. <xsl:for-each select="form:param[starts-with(@name, 'm_pa_n') and child::text()]">
  1220. <xsl:sort select="@name"/>
  1221. <xsl:variable name="cur-name" select="@name"/>
  1222. <xsl:text/>&lt;setting name=&quot;<xsl:text/>
  1223. <xsl:value-of select="xtsext:xmlencode(string(.))"/>
  1224. <xsl:text/>&quot;&gt;<xsl:text/>
  1225. <xsl:value-of select="xtsext:xmlencode(string(../form:param[@name=translate($cur-name, 'n', 'v')]))"/>
  1226. <xsl:text/>&lt;/setting&gt;<xsl:text/>
  1227. </xsl:for-each>
  1228. <xsl:text/>&lt;/settings&gt;<xsl:text/>
  1229. </xsl:if>
  1230. </cm:advancedSettings>
  1231. </xsl:if>
  1232. </xsl:variable>
  1233. <!-- construct the rolapCubeConfigurations fragment. -->
  1234. <xsl:variable name="rolap-cube-configurations-fragment">
  1235. <xsl:if test="form:param[@name='whole_entries']">
  1236. <xsl:element name="qsROLAPCubeConfigurations" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  1237. <xts:transform src="transforms/portal/rolapCubeConfigurations/transformToCMFormatedEntries.xslt" processor="XSLT">
  1238. <root>
  1239. <paramsMetadata>
  1240. <xts:transform src="transforms/portal/rolapCubeConfigurations/propertiesMetadata.xslt" processor="XSLT">
  1241. <xts:param name="messageBase">/messages/portal.xml</xts:param>
  1242. <root/>
  1243. </xts:transform>
  1244. </paramsMetadata>
  1245. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction( 'sign_unwrap', string( /root/env/param[@name='whole_entries'] )), true() )" disable-output-escaping="yes"/>
  1246. </root>
  1247. </xts:transform>
  1248. </xsl:element>
  1249. </xsl:if>
  1250. </xsl:variable>
  1251. <!-- construct the userInterfaceProfile data fragment. -->
  1252. <xsl:variable name="userInterfaceProfile-data-fragment">
  1253. <xsl:if test="form:param[@name='m_t_data']">
  1254. <xts:transform xmlns:xts="http://developer.cognos.com/schemas/xts/" name="VALIDATE">
  1255. <xts:param name="schemaLocation">http://www.ibm.com/xmlns/prod/ba/rs/rsprofile.1/ cogadmin/controls/pat/profiles/rs_profile.xsd</xts:param>
  1256. <xsl:value-of select="/root/env/param[@name='m_t_data']" disable-output-escaping="yes"/>
  1257. </xts:transform>
  1258. <cm:data xsi:type="xsd:base64Binary"><xsl:value-of select="xtsext:base64encode(string(/root/env/param[@name='m_t_data']), false())"/></cm:data>
  1259. </xsl:if>
  1260. </xsl:variable>
  1261. <!-- construct the jmxProxyHostDispatcher fragment. -->
  1262. <xsl:variable name="jmxProxyHostDispatchers-fragment">
  1263. <xsl:if test="form:param[@name='jmxProxyHostDispatchers']">
  1264. <xsl:element name="jmxProxyHostDispatchers" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  1265. <xts:transform src="transforms/portal/jmxProxyHostDispatchers/transformToCMFormatForSave.xslt" processor="XSLT">
  1266. <root>
  1267. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction( 'sign_unwrap', string( /root/env/param[@name='jmxProxyHostDispatchers'] )), true() )" disable-output-escaping="yes"/>
  1268. </root>
  1269. </xts:transform>
  1270. </xsl:element>
  1271. </xsl:if>
  1272. </xsl:variable>
  1273. <!-- construct the gatewayMappings fragment. -->
  1274. <xsl:variable name="gatewayMappings-fragment">
  1275. <xsl:if test="form:param[starts-with(@name, 'map_external_')] or form:param[@name='reset_rdsGatewayMappings'] or form:param[@name='deleteall_rdsGatewayMappings'] or form:param[@name='resetroot_rdsGatewayMappings'] or key('form-param','settings_delete')">
  1276. <xsl:element name="rdsGatewayMappings" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  1277. <xsl:if test="key('form-param','settings_delete')">
  1278. <xsl:attribute name="updateAllDescendents">true</xsl:attribute>
  1279. </xsl:if>
  1280. <xsl:if test="(key('form-param', 'm_obj')!='/configuration' and (not(form:param[@name='reset_rdsGatewayMappings']) or form:param[@name='reset_rdsGatewayMappings'] != '1')) or (key('form-param', 'm_obj')='/configuration' and (not(form:param[@name='resetroot_rdsGatewayMappings']) or form:param[@name='resetroot_rdsGatewayMappings'] != '1'))">
  1281. <xsl:for-each select="form:param[starts-with(@name, 'map_external_') and child::text()]">
  1282. <xsl:sort select="@name"/>
  1283. <xsl:element name="gatewayMapping" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  1284. <xsl:variable name="external_gateway" select="@name"/>
  1285. <xsl:attribute name="externalURI">
  1286. <xsl:value-of select="xtsext:xmlencode(string(.))"/>
  1287. </xsl:attribute>
  1288. <!-- build the other one -->
  1289. <xsl:variable name="num">
  1290. <xsl:value-of select="substring-after($external_gateway,'map_external_')"/>
  1291. </xsl:variable>
  1292. <xsl:attribute name="internalURI">
  1293. <xsl:value-of select="xtsext:xmlencode(string(../form:param[@name=concat('map_internal_', $num)]))"/>
  1294. </xsl:attribute>
  1295. </xsl:element>
  1296. </xsl:for-each>
  1297. </xsl:if>
  1298. </xsl:element>
  1299. </xsl:if>
  1300. </xsl:variable>
  1301. <!-- construct the datamovement service parameters fragment. -->
  1302. <xsl:variable name="dmsParms-fragment">
  1303. <xsl:if test="form:param[starts-with(@name, 'parm_name_')] or form:param[@name='deleteall_dmsParameters']">
  1304. <cm:parameters xsi:type="cm:parameterValueArrayProp">
  1305. <cm:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:parameterValue[form:param[starts-with(@name, 'parm_name_')]]">
  1306. <xsl:for-each select="form:param[starts-with(@name, 'parm_name_')]">
  1307. <xsl:sort select="@name"/>
  1308. <xsl:variable name="paramName" select="substring-after(@name,'parm_name_')"/>
  1309. <xsl:variable name="paramValue" select="../form:param[@name= concat('parm_value_', $paramName)]"/>
  1310. <cm:item xsi:type="cm:parameterValue">
  1311. <cm:name xsi:type="xs:string"><xsl:value-of select="."/></cm:name>
  1312. <cm:value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:simpleParmValueItem[1]">
  1313. <cm:item xsi:type="cm:simpleParmValueItem">
  1314. <cm:inclusive xsi:type="xs:boolean">true</cm:inclusive>
  1315. <cm:display xsi:type="xs:string"><xsl:value-of select="$paramValue"/></cm:display>
  1316. <cm:use xsi:type="xs:string"><xsl:value-of select="$paramValue"/></cm:use>
  1317. </cm:item>
  1318. </cm:value>
  1319. </cm:item>
  1320. </xsl:for-each>
  1321. </cm:value>
  1322. </cm:parameters>
  1323. </xsl:if>
  1324. </xsl:variable>
  1325. <xsl:variable name="booleanOutputOverrideOptions-fragment">
  1326. <xsl:variable name="optionOverride" select=" 'overrideOptions'"/>
  1327. <xsl:variable name="optionServiceDefault" select=" 'serviceDefaultOptions'"/>
  1328. <xsl:variable name="formParam" select="form:param"/>
  1329. <xsl:if test="key('form-param', 'm_class')='configuration' and (form:param[starts-with(@name, 'm_opt_bool_')] or form:param[starts-with(@name,'resetroot_optionArrayProp_')])">
  1330. <cm:serviceDefaultOptions xsi:type="cm:optionArrayProp">
  1331. <cm:value xsi:type="SOAP-ENC:Array">
  1332. <xsl:for-each select="$formParam[starts-with(@name,concat($optionServiceDefault,'_'))]">
  1333. <xsl:variable name="boolEnumValue" select="substring-after(@name,concat($optionServiceDefault,'_'))"/>
  1334. <xsl:if test="count($formParam[starts-with(@name,concat('resetroot_optionArrayProp_',$boolEnumValue))]) = 0">
  1335. <cm:item xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="cm:genericOptionBoolean">
  1336. <cm:name xsi:type="xsd:string"><xsl:value-of select="concat('http://developer.cognos.com/ceba/constants/systemOptionEnum#',$boolEnumValue)"/></cm:name>
  1337. <cm:value xsi:type="xsd:boolean"><xsl:value-of select="."/></cm:value>
  1338. </cm:item>
  1339. </xsl:if>
  1340. </xsl:for-each>
  1341. </cm:value>
  1342. </cm:serviceDefaultOptions>
  1343. <cm:overrideOptions xsi:type="cm:optionArrayProp">
  1344. <cm:value xsi:type="SOAP-ENC:Array">
  1345. <xsl:for-each select="$formParam[starts-with(@name,concat($optionOverride,'_'))]">
  1346. <xsl:variable name="boolEnumValue" select="substring-after(@name,concat($optionOverride,'_'))"/>
  1347. <xsl:if test="count($formParam[starts-with(@name,concat('resetroot_','optionArrayProp_',$boolEnumValue))]) = 0">
  1348. <cm:item xsi:type="cm:genericOptionBoolean">
  1349. <cm:name xsi:type="xsd:string"><xsl:value-of select="concat('http://developer.cognos.com/ceba/constants/systemOptionEnum#',$boolEnumValue)"/></cm:name>
  1350. <cm:value xsi:type="xsd:boolean"><xsl:value-of select="."/></cm:value>
  1351. </cm:item>
  1352. </xsl:if>
  1353. </xsl:for-each>
  1354. </cm:value>
  1355. </cm:overrideOptions>
  1356. </xsl:if>
  1357. </xsl:variable>
  1358. <!-- construct the drill parameterAssignments fragment -->
  1359. <xsl:variable name="drillParam-fragment">
  1360. <xsl:if test="form:param[starts-with(string(@name),'drillParam_')]">
  1361. <cm:parameterAssignments type="cm:parameterAssignmentDataItemArrayProp">
  1362. <xsl:for-each select="form:param[starts-with(string(@name),'drillParam_')]">
  1363. <xsl:if test="string(.)!=''">
  1364. <cm:parameterAssignmentDataItem>
  1365. <cm:parameterName><xsl:value-of select="xtsext:web64decode( string( substring-after( string(@name),'drillParam_' ) ), true() )"/></cm:parameterName>
  1366. <cm:dataItemName><xsl:value-of select="string(.)"/></cm:dataItemName>
  1367. </cm:parameterAssignmentDataItem>
  1368. </xsl:if>
  1369. </xsl:for-each>
  1370. </cm:parameterAssignments>
  1371. </xsl:if>
  1372. <xsl:if test="form:param[@name='m_class']='drillPath' and form:param[starts-with(@name,'m_ro_')]">
  1373. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  1374. <root>
  1375. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  1376. <root>
  1377. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  1378. <root>
  1379. <xsl:copy-of select="/root/env"/>
  1380. </root>
  1381. </xts:transform>
  1382. <xts:transform name="XML" src="portal/options.xml"/>
  1383. <optionType>drillPathOptions</optionType>
  1384. </root>
  1385. </xts:transform>
  1386. </root>
  1387. </xts:transform>
  1388. </xsl:if>
  1389. </xsl:variable>
  1390. <xsl:variable name="pageletLayout-fragment">
  1391. <xsl:if test="form:param[@name = 'pagexml'] or form:param[starts-with(@name, 'm_mp_columns')]">
  1392. <cm:layout>
  1393. <xts:transform name="XMLEncode">
  1394. <xts:transform src="portal/mypages/transform/gen_pagelet_layout.xslt" processor="XSLT">
  1395. <xsl:copy-of select="."/>
  1396. </xts:transform>
  1397. </xts:transform>
  1398. </cm:layout>
  1399. </xsl:if>
  1400. </xsl:variable>
  1401. <!-- save reportDataServiceAGentDefinition report property -->
  1402. <xsl:variable name="rdsadReport-fragment">
  1403. <xsl:if test="form:param[starts-with(@name, 'm_sub')]">
  1404. <cm:report>
  1405. <xts:transform name="XMLEncode">
  1406. <xts:transform src="/subscribe/transforms/assembleSelectionSpec.xslt" processor="XSLT">
  1407. <root>
  1408. <env>
  1409. <xsl:copy-of select="/root/env/param[starts-with(@name, 'm_sub')]"/>
  1410. </env>
  1411. <xts:transform name="XMLDecode">
  1412. <xsl:value-of select="/root/env/param[@name='m_subData_report']"/>
  1413. </xts:transform>
  1414. </root>
  1415. </xts:transform>
  1416. </xts:transform>
  1417. </cm:report>
  1418. </xsl:if>
  1419. </xsl:variable>
  1420. <xsl:variable name="routingHints-fragment">
  1421. <xsl:if test="key('env-param','routingHintsChanged')='true' and contains(' package role group ', concat(' ', key('env-param','m_class'),' '))">
  1422. <cm:routingHints>
  1423. <xsl:if test="key('env-param','overrideRoutingHints')">
  1424. <xsl:for-each select="form:param[@name='m_routingHints']">
  1425. <cm:item><xsl:value-of select="."/></cm:item>
  1426. </xsl:for-each>
  1427. </xsl:if>
  1428. </cm:routingHints>
  1429. </xsl:if>
  1430. </xsl:variable>
  1431. <xsl:variable name="routingTable-fragment">
  1432. <xsl:if test="form:param[@name='m_class']='configuration' and key('env-param', 'visited_routing_rules')='true'">
  1433. <xts:transform src="transforms/portal/config/buildRoutingTable.xslt" processor="XSLT">
  1434. <env>
  1435. <xsl:copy-of select="form:param"/>
  1436. </env>
  1437. </xts:transform>
  1438. </xsl:if>
  1439. </xsl:variable>
  1440. <xsl:variable name="agent-fragment">
  1441. <xsl:if test="(form:param[@name='m_class']='agentDefinition' or form:param[@name='m_class']='agentDefinitionView') and form:param[@name='changed_m_agent_allowNotification']='1'">
  1442. <cm:allowNotification>
  1443. <xsl:choose>
  1444. <xsl:when test="form:param[@name='m_agent_allowNotification']">true</xsl:when>
  1445. <xsl:otherwise>false</xsl:otherwise>
  1446. </xsl:choose>
  1447. </cm:allowNotification>
  1448. </xsl:if>
  1449. </xsl:variable>
  1450. <!-- besides saving agent,rpt,qry,analysis,view allowNotification, when deselected there is a possiblity of a 2nd command to remove all form the notification list -->
  1451. <xsl:if test="form:param[@name='m_removeAll']='true'">
  1452. <xts:append>
  1453. <send:request provider="deliveryService">
  1454. <dls:clearNotifications>
  1455. <objectPath xsi:type="bus:searchPathSingleObject">
  1456. <xsl:value-of select="form:param[@name = 'm_obj']"/>
  1457. </objectPath>
  1458. </dls:clearNotifications>
  1459. </send:request>
  1460. </xts:append>
  1461. </xsl:if>
  1462. <!-- save schedule info - This should be done before saving the object properties, in case the object gets renamed -->
  1463. <xsl:if test="form:param[starts-with(@name,'m_sp_')]">
  1464. <xts:append>
  1465. <send:request provider="cm" faultBlock="saveFault">
  1466. <bus:add>
  1467. <search xsi:type="xsd:string">
  1468. <xsl:value-of select="key('form-param', 'm_obj')"/>
  1469. </search>
  1470. <objects xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="bus:baseClass[1]">
  1471. <item xsi:type="bus:schedule">
  1472. <xsl:call-template name="build_jsm_schedule">
  1473. <xsl:with-param name="env" select="."/>
  1474. </xsl:call-template>
  1475. <xsl:choose>
  1476. <xsl:when test="key('form-param','m_class')='contentTask'">
  1477. <xsl:call-template name="build_contentTask_runTime_options"/>
  1478. </xsl:when>
  1479. <xsl:when test="key('form-param','m_class')='importDeployment'">
  1480. <xsl:call-template name="build_deployment_runTime_options"/>
  1481. </xsl:when>
  1482. <xsl:when test="key('form-param','m_class')='indexUpdateTask'">
  1483. <xsl:call-template name="build_indexUpdateTask_runTime_options"/>
  1484. </xsl:when>
  1485. <xsl:when test="not(contains(' jobDefinition exportDeployment planningMacroTask planningTask ', concat(' ', key('form-param','m_class'), ' ')))">
  1486. <!-- you can't override options for agentDefinition, so don't set any options on the schedule -->
  1487. <xsl:if test="not(contains(' agentDefinition agentDefinitionView ', concat(' ', form:param[@name='m_class'], ' ')))">
  1488. <xts:transform src="transforms/portal/options/buildOptions.xslt" processor="XSLT">
  1489. <root>
  1490. <xts:transform src="transforms/portal/options/buildOptionItems.xslt" processor="XSLT">
  1491. <root>
  1492. <xts:transform src="transforms/portal/options/cleanEnv.xslt" processor="XSLT">
  1493. <root>
  1494. <xsl:copy-of select="/root/env"/>
  1495. </root>
  1496. </xts:transform>
  1497. <xts:transform name="XML" src="portal/options.xml"/>
  1498. <xsl:choose>
  1499. <xsl:when test="contains(' powerPlay8Report powerPlay8ReportView ', concat(' ', key('form-param','m_class'), ' '))">
  1500. <optionType>powerPlay8Options</optionType>
  1501. </xsl:when>
  1502. <xsl:otherwise>
  1503. <optionType>runOptions</optionType>
  1504. </xsl:otherwise>
  1505. </xsl:choose>
  1506. <xsl:if test="key('env-param', 'override_default_reportOptions')='true' or key('env-param','override_outputFormat_option')='true'">
  1507. <optionType>genericOptions</optionType>
  1508. </xsl:if>
  1509. <optionType>pdfOptions</optionType>
  1510. <optionType>archiveOptions</optionType>
  1511. <genDefaults>
  1512. <xsl:choose>
  1513. <xsl:when test="(key('env-param','override_default_reportOptions')='true' or key('env-param','override_outputFormat_option')='true') or not(key('env-param','changed_override_default_reportOptions'))">true</xsl:when>
  1514. <xsl:otherwise>false</xsl:otherwise>
  1515. </xsl:choose>
  1516. </genDefaults>
  1517. <batchOptions>true</batchOptions>
  1518. <xsl:if test="key('env-param','deliveryOptions') != ''">
  1519. <deliveryOptions>
  1520. <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param','deliveryOptions') )), true() )" disable-output-escaping="yes"/>
  1521. </deliveryOptions>
  1522. </xsl:if>
  1523. <xsl:if test="key('env-param','mobileOptions') != ''">
  1524. <mobileOptions>
  1525. <xsl:value-of select="xtsext:web64decode( xtsext:cafaction('sign_unwrap', string( key('env-param','mobileOptions') )), true() )" disable-output-escaping="yes"/>
  1526. </mobileOptions>
  1527. </xsl:if>
  1528. <contentLocale><xsl:value-of select="$contentLocale"/></contentLocale>
  1529. </root>
  1530. </xts:transform>
  1531. </root>
  1532. </xts:transform>
  1533. </xsl:if>
  1534. <xsl:choose>
  1535. <xsl:when test="/root/parameters/*">
  1536. <xts:transform src="transforms/portal/parameters/pre-JSM-process.xslt" processor="XSLT">
  1537. <xsl:copy-of select="$parameters-fragment"/>
  1538. </xts:transform>
  1539. </xsl:when>
  1540. <xsl:otherwise>
  1541. <xsl:element name="parameters" namespace="http://developer.cognos.com/schemas/xts-cm/1/"/>
  1542. </xsl:otherwise>
  1543. </xsl:choose>
  1544. </xsl:when>
  1545. </xsl:choose>
  1546. </item>
  1547. </objects>
  1548. <options xsi:type="bus:addOptions">
  1549. <updateAction xsi:type="bus:updateActionEnum">update</updateAction>
  1550. </options>
  1551. </bus:add>
  1552. </send:request>
  1553. </xts:append>
  1554. </xsl:if>
  1555. <!-- update delivery options for the reportDataServiceAgentDefintion class -->
  1556. <xsl:if test="string(key('form-param', 'm_class')) = 'reportDataServiceAgentDefinition'">
  1557. <xts:append>
  1558. <send:request provider="cm" faultBlock="saveFault">
  1559. <cm:update xmlns:cm="http://developer.cognos.com/schemas/bibus/3/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  1560. <objects xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:baseClass[1]">
  1561. <item xsi:type="cm:schedule">
  1562. <searchPath xsi:type="cm:stringProp">
  1563. <value xsi:type="xsd:string"><xsl:value-of select="key('form-param', 'm_obj')"/>/schedule</value>
  1564. </searchPath>
  1565. <xsl:if test="key('form-param', 'm_periodicalProducer')">
  1566. <periodicalProducer xsi:type="cm:baseClassArrayProp">
  1567. <value xsi:type="SOAP-ENC:Array" SOAP-ENC:arrayType="cm:baseClass[1]">
  1568. <item xsi:type="cm:report">
  1569. <searchPath xsi:type="cm:stringProp">
  1570. <value xsi:type="xsd:string">
  1571. <xsl:value-of select="key('form-param', 'm_periodicalProducer')"/>
  1572. </value>
  1573. </searchPath>
  1574. </item>
  1575. </value>
  1576. </periodicalProducer>
  1577. </xsl:if>
  1578. <active xsi:type="bus:booleanProp">
  1579. <value xsi:type="xsd:boolean">
  1580. <xsl:choose>
  1581. <xsl:when test="key('form-param', 'm_subData_active_schedule')">false</xsl:when>
  1582. <xsl:otherwise>true</xsl:otherwise>
  1583. </xsl:choose>
  1584. </value>
  1585. </active>
  1586. </item>
  1587. </objects>
  1588. </cm:update>
  1589. </send:request>
  1590. </xts:append>
  1591. <xsl:variable name="user_locale">
  1592. <xsl:choose>
  1593. <xsl:when test="/root/session/param[@name='contentLocale']">
  1594. <xsl:value-of select="/root/session/param[@name='contentLocale']"/>
  1595. </xsl:when>
  1596. <xsl:otherwise>
  1597. <xsl:value-of select="/root/system/param[@name='contentLocale']"/>
  1598. </xsl:otherwise>
  1599. </xsl:choose>
  1600. </xsl:variable>
  1601. <!-- delivery options test -->
  1602. <xsl:if test="not(key('form-param','m_subData_emailPath')) and form:param[starts-with(@name, 'm_subData_emailCB')]">
  1603. <!-- have to create the memo + agentTaskDefinition -->
  1604. <xts:append select="/root">
  1605. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1606. <send:request provider="cm" faultBlock="saveFault">
  1607. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1608. <cm:add xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1609. <cm:objects>
  1610. <cm:memo>
  1611. <cm:searchPath>
  1612. <xsl:value-of select="key('form-param','m_obj')"/>
  1613. </cm:searchPath>
  1614. <cm:defaultName>
  1615. <xsl:value-of select="key('form-param','taskName')"/>
  1616. </cm:defaultName>
  1617. <!-- just copy the options that we've got -->
  1618. <xts:transform name="XMLDecode">
  1619. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap',string(form:param[@name='deliveryOptions'])), true())"/>
  1620. </xts:transform>
  1621. </cm:memo>
  1622. </cm:objects>
  1623. </cm:add>
  1624. </xts:transform>
  1625. </send:request>
  1626. </xts:transform>
  1627. </xts:append>
  1628. <xts:append select="/root">
  1629. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1630. <send:request provider="cm" faultBlock="saveFault">
  1631. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1632. <cm:add xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1633. <cm:objects>
  1634. <cm:agentTaskDefinition>
  1635. <cm:searchPath>
  1636. <xsl:value-of select="key('form-param','m_obj')"/>
  1637. </cm:searchPath>
  1638. <!-- we can save the taskName too -->
  1639. <cm:taskObject>
  1640. <cm:memo>
  1641. <cm:searchPath>
  1642. <!-- put the path into the report that we selected as the action -->
  1643. <xts:transform name="XMLEncode">
  1644. <xts:queryValue select="/root/*[local-name()='addResponse']/*[local-name()='memo']/*[local-name()='searchPath']"/>
  1645. </xts:transform>
  1646. </cm:searchPath>
  1647. </cm:memo>
  1648. </cm:taskObject>
  1649. <!-- define the filter data item name -->
  1650. <cm:filterDataItemName>
  1651. <xsl:if test="form:param[starts-with(@name,'m_subData_emailCB_')]">
  1652. <xsl:variable name="max" select="count(form:param[starts-with(@name,'m_subData_emailCB_')])"/>
  1653. <xsl:text>[</xsl:text>
  1654. <xsl:for-each select="form:param[starts-with(@name,'m_subData_emailCB_')]">
  1655. <xsl:sort select="@name"/>
  1656. <xsl:value-of select="substring-after(@name,'m_subData_emailCB_')"/>
  1657. <xsl:if test="position() &lt; $max">
  1658. <xsl:text>OR</xsl:text></xsl:if>
  1659. </xsl:for-each>
  1660. <xsl:text>]</xsl:text>
  1661. </xsl:if>
  1662. </cm:filterDataItemName>
  1663. </cm:agentTaskDefinition>
  1664. </cm:objects>
  1665. </cm:add>
  1666. </xts:transform>
  1667. </send:request>
  1668. </xts:transform>
  1669. </xts:append>
  1670. </xsl:if>
  1671. <xsl:if test="key('form-param','m_subData_emailPath') and form:param[starts-with(@name, 'm_subData_emailCB')]">
  1672. <!-- have to update the memo -->
  1673. <xts:append>
  1674. <send:request provider="cm" faultBlock="saveFault">
  1675. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1676. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1677. <cm:objects>
  1678. <cm:memo>
  1679. <cm:searchPath>
  1680. <xsl:value-of select="key('form-param','m_subData_emailPath')"/>
  1681. </cm:searchPath>
  1682. <cm:defaultName>
  1683. <xsl:value-of select="key('form-param','taskName')"/>
  1684. </cm:defaultName>
  1685. <!-- just copy the options that we've got -->
  1686. <xts:transform name="XMLDecode">
  1687. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap',string(form:param[@name='deliveryOptions'])), true())"/>
  1688. </xts:transform>
  1689. </cm:memo>
  1690. </cm:objects>
  1691. </cm:update>
  1692. </xts:transform>
  1693. </send:request>
  1694. </xts:append>
  1695. <xts:append select="/root">
  1696. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1697. <send:request provider="cm" faultBlock="saveFault">
  1698. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1699. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1700. <cm:objects>
  1701. <cm:agentTaskDefinition>
  1702. <cm:searchPath>
  1703. <xsl:value-of select="key('form-param','m_subData_emailTaskPath')"/>
  1704. </cm:searchPath>
  1705. <!-- define the filter data item name -->
  1706. <cm:filterDataItemName>
  1707. <xsl:if test="form:param[starts-with(@name,'m_subData_emailCB_')]">
  1708. <xsl:variable name="max" select="count(form:param[starts-with(@name,'m_subData_emailCB_')])"/>
  1709. <xsl:text>[</xsl:text>
  1710. <xsl:for-each select="form:param[starts-with(@name,'m_subData_emailCB_')]">
  1711. <xsl:sort select="@name"/>
  1712. <xsl:value-of select="substring-after(@name,'m_subData_emailCB_')"/>
  1713. <xsl:if test="position() &lt; $max">
  1714. <xsl:text>OR</xsl:text></xsl:if>
  1715. </xsl:for-each>
  1716. <xsl:text>]</xsl:text>
  1717. </xsl:if>
  1718. </cm:filterDataItemName>
  1719. </cm:agentTaskDefinition>
  1720. </cm:objects>
  1721. </cm:update>
  1722. </xts:transform>
  1723. </send:request>
  1724. </xts:transform>
  1725. </xts:append>
  1726. </xsl:if>
  1727. <xsl:if test="key('form-param','m_subData_emailPath') and not(form:param[starts-with(@name, 'm_subData_emailCB')])">
  1728. <!-- have to delete the memo + agentTaskDefinition -->
  1729. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1730. <send:request provider="cm">
  1731. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1732. <cm:delete xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1733. <cm:objects>
  1734. <!-- delete both the memo and the agentTaskDefinition -->
  1735. <cm:memo>
  1736. <cm:searchPath><xsl:value-of select="key('form-param','m_subData_emailPath')"/></cm:searchPath>
  1737. </cm:memo>
  1738. <cm:agentTaskDefinition>
  1739. <cm:searchPath><xsl:value-of select="key('form-param','m_subData_emailTaskPath')"/></cm:searchPath>
  1740. </cm:agentTaskDefinition>
  1741. </cm:objects>
  1742. <cm:options recursive="true" force="true"/>
  1743. </cm:delete>
  1744. </xts:transform>
  1745. </send:request>
  1746. </xts:transform>
  1747. </xsl:if>
  1748. <!-- delivery options test -->
  1749. <xsl:if test="not(key('form-param','m_subData_newsitemPath')) and form:param[starts-with(@name, 'm_subData_newsitemCB')]">
  1750. <!-- have to create the newsitem + agentTaskDefinition -->
  1751. <xts:append select="/root">
  1752. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1753. <send:request provider="cm" faultBlock="saveFault">
  1754. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1755. <cm:add xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1756. <cm:objects>
  1757. <cm:shortcutRSSTask>
  1758. <cm:searchPath>
  1759. <xsl:value-of select="key('form-param','m_obj')"/>
  1760. </cm:searchPath>
  1761. <cm:defaultName>
  1762. <xsl:value-of select="key('form-param','m_subData_newsitem_taskName')"/>
  1763. </cm:defaultName>
  1764. <cm:defaultScreenTip>
  1765. <xsl:value-of select="key('form-param','m_subData_newsitem_screentip')"/>
  1766. </cm:defaultScreenTip>
  1767. <cm:defaultDescription>
  1768. <xsl:value-of select="key('form-param','m_subData_newsitem_text')"/>
  1769. </cm:defaultDescription>
  1770. <!--the title is destined for the name of the url -->
  1771. <cm:title>
  1772. <cm:value>
  1773. <xsl:attribute name="locale"><xsl:value-of select="$user_locale"/></xsl:attribute>
  1774. <xsl:value-of select="key('form-param','m_subData_newsitem_headline')"/>
  1775. </cm:value>
  1776. </cm:title>
  1777. <cm:channel>
  1778. <cm:baseClass>
  1779. <cm:searchPath>
  1780. <xsl:value-of select="key('form-param','m_subData_newsitem_path')"/>
  1781. </cm:searchPath>
  1782. </cm:baseClass>
  1783. </cm:channel>
  1784. </cm:shortcutRSSTask>
  1785. </cm:objects>
  1786. </cm:add>
  1787. </xts:transform>
  1788. </send:request>
  1789. </xts:transform>
  1790. </xts:append>
  1791. <xts:append select="/root">
  1792. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1793. <send:request provider="cm" faultBlock="saveFault">
  1794. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1795. <cm:add xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1796. <cm:objects>
  1797. <cm:agentTaskDefinition>
  1798. <cm:searchPath>
  1799. <xsl:value-of select="key('form-param','m_obj')"/>
  1800. </cm:searchPath>
  1801. <!-- we can save the taskName too -->
  1802. <cm:taskObject>
  1803. <cm:shortcutRSSTask>
  1804. <cm:searchPath>
  1805. <!-- put the path into the report that we selected as the action -->
  1806. <xts:transform name="XMLEncode">
  1807. <xts:queryValue select="/root/*[local-name()='addResponse']/*[local-name()='shortcutRSSTask']/*[local-name()='searchPath']"/>
  1808. </xts:transform>
  1809. </cm:searchPath>
  1810. </cm:shortcutRSSTask>
  1811. </cm:taskObject>
  1812. <!-- define the filter data item name -->
  1813. <cm:filterDataItemName>
  1814. <xsl:if test="form:param[starts-with(@name,'m_subData_newsitemCB_')]">
  1815. <xsl:variable name="max" select="count(form:param[starts-with(@name,'m_subData_newsitemCB_')])"/>
  1816. <xsl:text>[</xsl:text>
  1817. <xsl:for-each select="form:param[starts-with(@name,'m_subData_newsitemCB_')]">
  1818. <xsl:sort select="@name"/>
  1819. <xsl:value-of select="substring-after(@name,'m_subData_newsitemCB_')"/>
  1820. <xsl:if test="position() &lt; $max">
  1821. <xsl:text>OR</xsl:text></xsl:if>
  1822. </xsl:for-each>
  1823. <xsl:text>]</xsl:text>
  1824. </xsl:if>
  1825. </cm:filterDataItemName>
  1826. </cm:agentTaskDefinition>
  1827. </cm:objects>
  1828. </cm:add>
  1829. </xts:transform>
  1830. </send:request>
  1831. </xts:transform>
  1832. </xts:append>
  1833. </xsl:if>
  1834. <xsl:if test="key('form-param','m_subData_newsitemPath') and form:param[starts-with(@name, 'm_subData_newsitemCB')]">
  1835. <!-- have to update the newsitem -->
  1836. <xts:append>
  1837. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1838. <send:request provider="cm" faultBlock="saveFault">
  1839. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1840. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1841. <cm:objects>
  1842. <cm:shortcutRSSTask>
  1843. <cm:searchPath>
  1844. <xsl:value-of select="key('form-param','m_subData_newsitemPath')"/>
  1845. </cm:searchPath>
  1846. <cm:defaultName>
  1847. <xsl:value-of select="key('form-param','m_subData_newsitem_taskName')"/>
  1848. </cm:defaultName>
  1849. <cm:defaultScreenTip>
  1850. <xsl:value-of select="key('form-param','m_subData_newsitem_screentip')"/>
  1851. </cm:defaultScreenTip>
  1852. <cm:defaultDescription>
  1853. <xsl:value-of select="key('form-param','m_subData_newsitem_text')"/>
  1854. </cm:defaultDescription>
  1855. <!--the title is destined for the name of the url -->
  1856. <cm:title>
  1857. <cm:value>
  1858. <xsl:attribute name="locale"><xsl:value-of select="$user_locale"/></xsl:attribute>
  1859. <xsl:value-of select="key('form-param','m_subData_newsitem_headline')"/>
  1860. </cm:value>
  1861. </cm:title>
  1862. <cm:channel>
  1863. <cm:baseClass>
  1864. <cm:searchPath>
  1865. <xsl:value-of select="key('form-param','m_subData_newsitem_path')"/>
  1866. </cm:searchPath>
  1867. </cm:baseClass>
  1868. </cm:channel>
  1869. </cm:shortcutRSSTask>
  1870. </cm:objects>
  1871. </cm:update>
  1872. </xts:transform>
  1873. </send:request>
  1874. </xts:transform>
  1875. </xts:append>
  1876. <xts:append select="/root">
  1877. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1878. <send:request provider="cm" faultBlock="saveFault">
  1879. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1880. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1881. <cm:objects>
  1882. <cm:agentTaskDefinition>
  1883. <cm:searchPath>
  1884. <xsl:value-of select="key('form-param','m_subData_newsitemTaskPath')"/>
  1885. </cm:searchPath>
  1886. <!-- define the filter data item name -->
  1887. <cm:filterDataItemName>
  1888. <xsl:if test="form:param[starts-with(@name,'m_subData_newsitemCB_')]">
  1889. <xsl:variable name="max" select="count(form:param[starts-with(@name,'m_subData_newsitemCB_')])"/>
  1890. <xsl:text>[</xsl:text>
  1891. <xsl:for-each select="form:param[starts-with(@name,'m_subData_newsitemCB_')]">
  1892. <xsl:sort select="@name"/>
  1893. <xsl:value-of select="substring-after(@name,'m_subData_newsitemCB_')"/>
  1894. <xsl:if test="position() &lt; $max">
  1895. <xsl:text>OR</xsl:text></xsl:if>
  1896. </xsl:for-each>
  1897. <xsl:text>]</xsl:text>
  1898. </xsl:if>
  1899. </cm:filterDataItemName>
  1900. </cm:agentTaskDefinition>
  1901. </cm:objects>
  1902. </cm:update>
  1903. </xts:transform>
  1904. </send:request>
  1905. </xts:transform>
  1906. </xts:append>
  1907. </xsl:if>
  1908. <xsl:if test="key('form-param','m_subData_newsitemPath') and not(form:param[starts-with(@name, 'm_subData_newsitemCB')])">
  1909. <!-- have to delete the memo + agentTaskDefinition -->
  1910. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1911. <send:request provider="cm">
  1912. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1913. <cm:delete xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1914. <cm:objects>
  1915. <!-- delete both the memo and the agentTaskDefinition -->
  1916. <cm:shortcutRSSTask>
  1917. <cm:searchPath><xsl:value-of select="key('form-param','m_subData_newsitemPath')"/></cm:searchPath>
  1918. </cm:shortcutRSSTask>
  1919. <cm:agentTaskDefinition>
  1920. <cm:searchPath><xsl:value-of select="key('form-param','m_subData_newsitemTaskPath')"/></cm:searchPath>
  1921. </cm:agentTaskDefinition>
  1922. </cm:objects>
  1923. <cm:options recursive="true" force="true"/>
  1924. </cm:delete>
  1925. </xts:transform>
  1926. </send:request>
  1927. </xts:transform>
  1928. </xsl:if>
  1929. </xsl:if>
  1930. <!-- task test -->
  1931. <xsl:if test="not(key('form-param','m_subData_taskPath')) and form:param[starts-with(@name, 'm_subData_taskCB')]">
  1932. <!-- have to create the task + agentTaskDefinition -->
  1933. <xts:append select="/root">
  1934. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1935. <send:request provider="cm" faultBlock="saveFault">
  1936. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1937. <cm:add xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1938. <cm:objects>
  1939. <cm:humanTask>
  1940. <cm:searchPath>
  1941. <xsl:value-of select="key('form-param','m_obj')"/>
  1942. </cm:searchPath>
  1943. <cm:defaultName>
  1944. <xsl:value-of select="key('form-param','humanTaskName')"/>
  1945. </cm:defaultName>
  1946. <cm:parameters>
  1947. <cm:parameterValue>
  1948. <cm:name>hts</cm:name>
  1949. <cm:simpleParmValueItem>
  1950. <cm:inclusive>false</cm:inclusive>
  1951. <cm:display>hts</cm:display>
  1952. <cm:use>
  1953. <xts:transform name="XMLEncode">
  1954. <xts:transform src="subscribe/transforms/getChildren.xslt" processor="XSLT">
  1955. <xts:transform name="XMLDecode">
  1956. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap',string(form:param[@name='taskOptions'])), true())"/>
  1957. </xts:transform>
  1958. </xts:transform>
  1959. </xts:transform>
  1960. </cm:use>
  1961. </cm:simpleParmValueItem>
  1962. </cm:parameterValue>
  1963. </cm:parameters>
  1964. </cm:humanTask>
  1965. </cm:objects>
  1966. </cm:add>
  1967. </xts:transform>
  1968. </send:request>
  1969. </xts:transform>
  1970. </xts:append>
  1971. <xts:append select="/root">
  1972. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  1973. <send:request provider="cm" faultBlock="saveFault">
  1974. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  1975. <cm:add xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  1976. <cm:objects>
  1977. <cm:agentTaskDefinition>
  1978. <cm:searchPath>
  1979. <xsl:value-of select="key('form-param','m_obj')"/>
  1980. </cm:searchPath>
  1981. <!-- we can save the taskName too -->
  1982. <cm:taskObject>
  1983. <cm:humanTask>
  1984. <cm:searchPath>
  1985. <!-- put the path into the report that we selected as the action -->
  1986. <xts:transform name="XMLEncode">
  1987. <xts:queryValue select="/root/*[local-name()='addResponse']/*[local-name()='humanTask']/*[local-name()='searchPath']"/>
  1988. </xts:transform>
  1989. </cm:searchPath>
  1990. </cm:humanTask>
  1991. </cm:taskObject>
  1992. <!-- define the filter data item name -->
  1993. <cm:filterDataItemName>
  1994. <xsl:if test="form:param[starts-with(@name,'m_subData_taskCB_')]">
  1995. <xsl:variable name="max" select="count(form:param[starts-with(@name,'m_subData_taskCB_')])"/>
  1996. <xsl:text>[</xsl:text>
  1997. <xsl:for-each select="form:param[starts-with(@name,'m_subData_taskCB_')]">
  1998. <xsl:sort select="@name"/>
  1999. <xsl:value-of select="substring-after(@name,'m_subData_taskCB_')"/>
  2000. <xsl:if test="position() &lt; $max">
  2001. <xsl:text>OR</xsl:text></xsl:if>
  2002. </xsl:for-each>
  2003. <xsl:text>]</xsl:text>
  2004. </xsl:if>
  2005. </cm:filterDataItemName>
  2006. </cm:agentTaskDefinition>
  2007. </cm:objects>
  2008. </cm:add>
  2009. </xts:transform>
  2010. </send:request>
  2011. </xts:transform>
  2012. </xts:append>
  2013. </xsl:if>
  2014. <xsl:if test="key('form-param','m_subData_taskPath') and form:param[starts-with(@name, 'm_subData_taskCB')]">
  2015. <!-- have to update the task -->
  2016. <xts:append>
  2017. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  2018. <send:request provider="cm" faultBlock="saveFault">
  2019. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  2020. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  2021. <cm:objects>
  2022. <cm:humanTask>
  2023. <cm:searchPath>
  2024. <xsl:value-of select="key('form-param','m_subData_taskPath')"/>
  2025. </cm:searchPath>
  2026. <cm:defaultName>
  2027. <xsl:value-of select="key('form-param','humanTaskName')"/>
  2028. </cm:defaultName>
  2029. <cm:parameters>
  2030. <cm:parameterValue>
  2031. <cm:name>hts</cm:name>
  2032. <cm:simpleParmValueItem>
  2033. <cm:inclusive>false</cm:inclusive>
  2034. <cm:display>hts</cm:display>
  2035. <cm:use>
  2036. <xts:transform name="XMLEncode">
  2037. <xts:transform src="subscribe/transforms/getChildren.xslt" processor="XSLT">
  2038. <xts:transform name="XMLDecode">
  2039. <xsl:value-of select="xtsext:web64decode(xtsext:cafaction('sign_unwrap',string(form:param[@name='taskOptions'])), true())"/>
  2040. </xts:transform>
  2041. </xts:transform>
  2042. </xts:transform>
  2043. </cm:use>
  2044. </cm:simpleParmValueItem>
  2045. </cm:parameterValue>
  2046. </cm:parameters>
  2047. </cm:humanTask>
  2048. </cm:objects>
  2049. </cm:update>
  2050. </xts:transform>
  2051. </send:request>
  2052. </xts:transform>
  2053. </xts:append>
  2054. <xts:append select="/root">
  2055. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  2056. <send:request provider="cm" faultBlock="saveFault">
  2057. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  2058. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  2059. <cm:objects>
  2060. <cm:agentTaskDefinition>
  2061. <cm:searchPath>
  2062. <xsl:value-of select="key('form-param','m_subData_taskTaskPath')"/>
  2063. </cm:searchPath>
  2064. <!-- define the filter data item name -->
  2065. <cm:filterDataItemName>
  2066. <xsl:if test="form:param[starts-with(@name,'m_subData_taskCB_')]">
  2067. <xsl:variable name="max" select="count(form:param[starts-with(@name,'m_subData_taskCB_')])"/>
  2068. <xsl:text>[</xsl:text>
  2069. <xsl:for-each select="form:param[starts-with(@name,'m_subData_taskCB_')]">
  2070. <xsl:sort select="@name"/>
  2071. <xsl:value-of select="substring-after(@name,'m_subData_taskCB_')"/>
  2072. <xsl:if test="position() &lt; $max">
  2073. <xsl:text>OR</xsl:text></xsl:if>
  2074. </xsl:for-each>
  2075. <xsl:text>]</xsl:text>
  2076. </xsl:if>
  2077. </cm:filterDataItemName>
  2078. </cm:agentTaskDefinition>
  2079. </cm:objects>
  2080. </cm:update>
  2081. </xts:transform>
  2082. </send:request>
  2083. </xts:transform>
  2084. </xts:append>
  2085. </xsl:if>
  2086. <xsl:if test="key('form-param','m_subData_taskPath') and not(form:param[starts-with(@name, 'm_subData_taskCB')])">
  2087. <!-- have to delete the memo + agentTaskDefinition -->
  2088. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  2089. <send:request provider="cm">
  2090. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT">
  2091. <cm:delete xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  2092. <cm:objects>
  2093. <!-- delete both the memo and the agentTaskDefinition -->
  2094. <cm:humanTask>
  2095. <cm:searchPath><xsl:value-of select="key('form-param','m_subData_taskPath')"/></cm:searchPath>
  2096. </cm:humanTask>
  2097. <cm:agentTaskDefinition>
  2098. <cm:searchPath><xsl:value-of select="key('form-param','m_subData_taskTaskPath')"/></cm:searchPath>
  2099. </cm:agentTaskDefinition>
  2100. </cm:objects>
  2101. <cm:options recursive="true" force="true"/>
  2102. </cm:delete>
  2103. </xts:transform>
  2104. </send:request>
  2105. </xts:transform>
  2106. </xsl:if>
  2107. <!-- Don't update the report if we are just saving the schedule -->
  2108. <xsl:choose>
  2109. <xsl:when test="not(/root/env/param[@name = 'visited_schedule_properties']='true') and /root/env/param[@name='m_class']='drillPath'">
  2110. <xts:append>
  2111. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  2112. <send:request provider="warp" outputHeader="true" responseEnvelope="true">
  2113. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT" cache="true">
  2114. <cm:updateDrillPath xmlns="http://developer.cognos.com/schemas/bibus/3/">
  2115. <cm:searchPath>
  2116. <xsl:value-of select="key('form-param', 'm_obj')"/>
  2117. </cm:searchPath>
  2118. <xsl:copy-of select="$properties-fragment"/>
  2119. <xsl:copy-of select="$properties-duration"/>
  2120. <xsl:copy-of select="$securityPolicies-fragment"/>
  2121. <xsl:copy-of select="$capabilityPolicies-fragment"/>
  2122. <xsl:copy-of select="$jobOptions-fragment"/>
  2123. <xsl:copy-of select="$retention-fragment"/>
  2124. <xsl:copy-of select="$adv-settings-fragment"/>
  2125. <xsl:copy-of select="$rolap-cube-configurations-fragment"/>
  2126. <xsl:copy-of select="$userInterfaceProfile-data-fragment"/>
  2127. <xsl:copy-of select="$jmxProxyHostDispatchers-fragment"/>
  2128. <xsl:copy-of select="$booleanOutputOverrideOptions-fragment"/>
  2129. <xsl:copy-of select="$gatewayMappings-fragment"/>
  2130. <xsl:copy-of select="$powerPlayOptions-fragment"/>
  2131. <xsl:copy-of select="$powerPlay8Options-fragment"/>
  2132. <xsl:copy-of select="$metricsOptions-fragment"/>
  2133. <xsl:copy-of select="$portalOptions-fragment"/>
  2134. <xsl:copy-of select="$queryServiceTaskOptions-fragment"/>
  2135. <xsl:copy-of select="$pageletLayout-fragment"/>
  2136. <xsl:copy-of select="$rdsadReport-fragment"/>
  2137. <xsl:copy-of select="$contentTaskOptions-fragment"/>
  2138. <xsl:copy-of select="$drillParam-fragment"/>
  2139. <xsl:copy-of select="$routingHints-fragment"/>
  2140. <xsl:copy-of select="$routingTable-fragment"/>
  2141. <xsl:copy-of select="$agent-fragment"/>
  2142. <!-- in the case of an agent, don't save parameters because we will be saving them on the agent's child report -->
  2143. <xsl:copy-of select="$reportingExecution"/>
  2144. <xsl:copy-of select="$parameters-fragment"/>
  2145. <xsl:copy-of select="$credential-policies"/>
  2146. <!-- user has pressed clear so an empty parameter element is required-->
  2147. <xsl:if test="$parameters-fragment ='' and key('env-param','cleared_prompts') = 'true'">
  2148. <xsl:element name="cm:report" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2149. <cm:searchPath><xsl:value-of select="concat(form:param[@name = 'm_obj'], '/report')"/></cm:searchPath>
  2150. <xsl:copy-of select="$parameters-fragment"/>
  2151. </xsl:element>
  2152. </xsl:if>
  2153. </cm:updateDrillPath>
  2154. </xts:transform>
  2155. </send:request>
  2156. </xts:transform>
  2157. </xts:append>
  2158. </xsl:when>
  2159. <xsl:when test="not(/root/env/param[@name = 'visited_schedule_properties']='true')">
  2160. <!-- save all properties -->
  2161. <xsl:if test="$routingTable-fragment or $routingHints-fragment or $portalOptions-fragment or $indexOptions-fragment or $contentTaskOptions-fragment or $powerPlayOptions-fragment or $metricsOptions-fragment or $retention-fragment or $reportingExecution or $jobOptions-fragment or $queryServiceTaskOptions-fragment or $securityPolicies-fragment or $capabilityPolicies-fragment or $properties-fragment or $properties-duration or $adv-settings-fragment or $rolap-cube-configurations-fragment or $jmxProxyHostDispatchers-fragment or $booleanOutputOverrideOptions-fragment or $gatewayMappings-fragment or $dmsParms-fragment or form:objs or $sharePages-fragement or $drillParam-fragment or $rdsadReport-fragment or $powerPlay8Options-fragment or $dataSourceCapabilities-fragment or userInterfaceProfile-data-fragment">
  2162. <xts:append>
  2163. <xts:transform src="transforms/CM/post-process.xslt" processor="XSLT">
  2164. <send:request provider="cm" faultBlock="saveFault">
  2165. <xts:transform src="transforms/CM/pre-process.xslt" processor="XSLT" cache="true">
  2166. <cm:update xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/">
  2167. <cm:objects>
  2168. <xsl:if test="key('form-param', 'm_obj')">
  2169. <xsl:element name="cm:{key('form-param', 'm_class')}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2170. <cm:searchPath>
  2171. <xsl:value-of select="key('form-param', 'm_obj')"/>
  2172. </cm:searchPath>
  2173. <xsl:copy-of select="$properties-fragment"/>
  2174. <xsl:copy-of select="$properties-duration"/>
  2175. <xsl:copy-of select="$securityPolicies-fragment"/>
  2176. <xsl:copy-of select="$capabilityPolicies-fragment"/>
  2177. <xsl:copy-of select="$dataSourceCapabilities-fragment"/>
  2178. <xsl:copy-of select="$jobOptions-fragment"/>
  2179. <xsl:copy-of select="$queryServiceTaskOptions-fragment"/>
  2180. <xsl:copy-of select="$retention-fragment"/>
  2181. <xsl:copy-of select="$repositoryRules"/>
  2182. <xsl:copy-of select="$adv-settings-fragment"/>
  2183. <xsl:copy-of select="$rolap-cube-configurations-fragment"/>
  2184. <xsl:copy-of select="$userInterfaceProfile-data-fragment"/>
  2185. <xsl:copy-of select="$jmxProxyHostDispatchers-fragment"/>
  2186. <xsl:copy-of select="$booleanOutputOverrideOptions-fragment"/>
  2187. <xsl:copy-of select="$gatewayMappings-fragment"/>
  2188. <xsl:copy-of select="$dmsParms-fragment"/>
  2189. <xsl:copy-of select="$powerPlayOptions-fragment"/>
  2190. <xsl:copy-of select="$powerPlay8Options-fragment"/>
  2191. <xsl:copy-of select="$metricsOptions-fragment"/>
  2192. <xsl:copy-of select="$portalOptions-fragment"/>
  2193. <xsl:copy-of select="$pageletLayout-fragment"/>
  2194. <xsl:copy-of select="$rdsadReport-fragment"/>
  2195. <xsl:copy-of select="$contentTaskOptions-fragment"/>
  2196. <xsl:copy-of select="$indexOptions-fragment"/>
  2197. <xsl:copy-of select="$drillParam-fragment"/>
  2198. <xsl:copy-of select="$routingHints-fragment"/>
  2199. <xsl:copy-of select="$routingTable-fragment"/>
  2200. <xsl:copy-of select="$agent-fragment"/>
  2201. <!-- only include the shared pages fragement if the object is the account object -->
  2202. <xsl:if test="key('form-param', 'm_class') = 'account'">
  2203. <xsl:copy-of select="$sharePages-fragement"/>
  2204. </xsl:if>
  2205. <!-- in the case of an agent, don't save parameters because we will be saving them on the agent's child report -->
  2206. <xsl:if test="key('form-param', 'm_class') != 'agentDefinition' and key('form-param', 'm_class') != 'agentDefinitionView'">
  2207. <xsl:copy-of select="$reportingExecution"/>
  2208. <xsl:copy-of select="$parameters-fragment"/>
  2209. </xsl:if>
  2210. <xsl:if test="key('form-param', 'm_class')='packageConfiguration' and $packageConfiguration-fragment">
  2211. <xsl:copy-of select="$packageConfiguration-fragment"/>
  2212. </xsl:if>
  2213. </xsl:element>
  2214. </xsl:if>
  2215. <xsl:for-each select="form:objs">
  2216. <xsl:element name="cm:{form:param[@name = 'm_class']}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2217. <cm:searchPath><xsl:value-of select="form:param[@name = 'm_obj']"/></cm:searchPath>
  2218. <xsl:for-each select="form:param[starts-with(@name, 'm_p_')]">
  2219. <xsl:element name="{substring-after(@name, 'm_p_')}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2220. <xsl:value-of select="."/>
  2221. </xsl:element>
  2222. </xsl:for-each>
  2223. </xsl:element>
  2224. </xsl:for-each>
  2225. <xsl:copy-of select="$credential-policies"/>
  2226. <xsl:if test="key('form-param', 'm_class')='agentDefinition'">
  2227. <xsl:if test="$reportingExecution !='' or $parameters-fragment !=''">
  2228. <xsl:element name="cm:report" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2229. <cm:searchPath><xsl:value-of select="concat(form:param[@name = 'm_obj'], '/report')"/></cm:searchPath>
  2230. <xsl:copy-of select="$reportingExecution"/>
  2231. <xsl:copy-of select="$parameters-fragment"/>
  2232. </xsl:element>
  2233. </xsl:if>
  2234. <!-- user has pressed clear so an empty parameter element is required-->
  2235. <xsl:if test="$parameters-fragment ='' and key('env-param','cleared_prompts') = 'true'">
  2236. <xsl:element name="cm:report" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2237. <cm:searchPath><xsl:value-of select="concat(form:param[@name = 'm_obj'], '/report')"/></cm:searchPath>
  2238. <xsl:copy-of select="$parameters-fragment"/>
  2239. </xsl:element>
  2240. </xsl:if>
  2241. </xsl:if>
  2242. <xsl:if test="key('form-param', 'm_class')='agentDefinitionView'">
  2243. <xsl:if test="$reportingExecution !='' or $parameters-fragment !=''">
  2244. <xsl:element name="cm:reportView" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2245. <cm:searchPath><xsl:value-of select="concat(form:param[@name = 'm_obj'], '/reportView')"/></cm:searchPath>
  2246. <xsl:copy-of select="$reportingExecution"/>
  2247. <xsl:copy-of select="$parameters-fragment"/>
  2248. </xsl:element>
  2249. </xsl:if>
  2250. <!-- user has pressed clear so an empty parameter element is required-->
  2251. <xsl:if test="$parameters-fragment ='' and key('env-param','cleared_prompts') = 'true'">
  2252. <xsl:element name="cm:reportView" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2253. <cm:searchPath><xsl:value-of select="concat(form:param[@name = 'm_obj'], '/reportView')"/></cm:searchPath>
  2254. <xsl:copy-of select="$parameters-fragment"/>
  2255. </xsl:element>
  2256. </xsl:if>
  2257. </xsl:if>
  2258. <xsl:if test="(key('form-param', 'm_class')='package' or key('form-param', 'm_class')='metricsPackage') and string($packageConfiguration-fragment)!=''">
  2259. <xsl:element name="cm:packageConfiguration" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2260. <cm:searchPath><xsl:value-of select="concat(form:param[@name = 'm_obj'], '/packageConfiguration')"/></cm:searchPath>
  2261. <xsl:copy-of select="$packageConfiguration-fragment"/>
  2262. </xsl:element>
  2263. </xsl:if>
  2264. </cm:objects>
  2265. <xsl:if test="key('form-param','changed_m_p_tenantID') and key('form-param','changed_m_p_tenantID')!='0'">
  2266. <cm:options>
  2267. <updateTenantIDRecursive>true</updateTenantIDRecursive>
  2268. </cm:options>
  2269. </xsl:if>
  2270. </cm:update>
  2271. </xts:transform>
  2272. </send:request>
  2273. </xts:transform>
  2274. </xts:append>
  2275. </xsl:if>
  2276. </xsl:when>
  2277. </xsl:choose>
  2278. </xts:sequence>
  2279. </xsl:template>
  2280. <!-- Handles generic properties -->
  2281. <xsl:template match="form:param[starts-with(@name,'m_p_')]">
  2282. <xsl:variable name="nm" select="@name"/>
  2283. <xsl:if test="not(key('form-param', concat('changed_', $nm))) or key('form-param', concat('changed_', $nm)) != '0'">
  2284. <xsl:if test="not(preceding-sibling::form:param[@name=$nm]) and starts-with($nm, 'm_p_')">
  2285. <xsl:variable name="paramName">
  2286. <xsl:choose>
  2287. <xsl:when test="starts-with(@name, 'm_p_archiveLocation_')">
  2288. <xsl:value-of select="substring-after(@name, 'm_p_archiveLocation_')"/>
  2289. </xsl:when>
  2290. <xsl:otherwise>
  2291. <xsl:value-of select="substring-after(@name, 'm_p_')"/>
  2292. </xsl:otherwise>
  2293. </xsl:choose>
  2294. </xsl:variable>
  2295. <!-- create an element for each property passed in -->
  2296. <xsl:element name="{$paramName}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2297. <xsl:choose>
  2298. <xsl:when test="key('form-param', 'm_class')='metricsExportTask' and @name='m_p_specification'">
  2299. <xsl:attribute name="type">dataIntegrationServiceSpecificationProp</xsl:attribute>
  2300. <xsl:value-of select="."/>
  2301. </xsl:when>
  2302. <xsl:when test="$nm = 'm_p_name' and @locale != ''">
  2303. <xsl:element name="tokenvalue" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2304. <xsl:attribute name="locale"><xsl:value-of select="@locale"/></xsl:attribute>
  2305. <xsl:value-of select="."/>
  2306. </xsl:element>
  2307. <xsl:for-each select="following-sibling::form:param[@name = $nm]">
  2308. <xsl:element name="tokenvalue" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2309. <xsl:attribute name="locale"><xsl:value-of select="@locale"/></xsl:attribute>
  2310. <xsl:value-of select="."/>
  2311. </xsl:element>
  2312. </xsl:for-each>
  2313. </xsl:when>
  2314. <xsl:when test="($nm = 'm_p_description' or $nm = 'm_p_screenTip' or $nm = 'm_p_triggerDescription') and @locale != ''">
  2315. <xsl:element name="value" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2316. <xsl:attribute name="locale"><xsl:value-of select="@locale"/></xsl:attribute>
  2317. <xsl:value-of select="."/>
  2318. </xsl:element>
  2319. <xsl:for-each select="following-sibling::form:param[@name = $nm]">
  2320. <xsl:element name="value" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2321. <xsl:attribute name="locale"><xsl:value-of select="@locale"/></xsl:attribute>
  2322. <xsl:value-of select="."/>
  2323. </xsl:element>
  2324. </xsl:for-each>
  2325. </xsl:when>
  2326. <xsl:otherwise>
  2327. <xsl:value-of select="."/>
  2328. <xsl:for-each select="following-sibling::form:param[@name = $nm]">
  2329. <xsl:value-of select="' '"/>
  2330. <xsl:value-of select="."/>
  2331. </xsl:for-each>
  2332. </xsl:otherwise>
  2333. </xsl:choose>
  2334. </xsl:element>
  2335. </xsl:if>
  2336. </xsl:if>
  2337. </xsl:template>
  2338. <!-- Handles generic properties -->
  2339. <xsl:template match="form:param[starts-with(@name,'m_ppc_')]">
  2340. <xsl:variable name="nm" select="@name"/>
  2341. <xsl:if test="not(preceding-sibling::form:param[@name=$nm]) and starts-with($nm, 'm_ppc_')">
  2342. <!-- create an element for each property passed in -->
  2343. <xsl:element name="{substring-after(@name, 'm_ppc_')}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2344. <xsl:value-of select="."/>
  2345. </xsl:element>
  2346. </xsl:if>
  2347. </xsl:template>
  2348. <!-- Handles configuration properties -->
  2349. <xsl:template match="form:param[starts-with(@name,'m_pc_')]">
  2350. <xsl:variable name="nm" select="@name"/>
  2351. <xsl:variable name="prefix" select="substring($nm, 1, 7)"/>
  2352. <xsl:variable name="editFieldValue" select="substring(key('form-param', concat('editField_', $nm)), 1, 1)"/>
  2353. <xsl:choose>
  2354. <!-- The value has been changed, we need to save it anyway. -->
  2355. <xsl:when test="not(key('form-param', concat('changed_', $nm))) or key('form-param', concat('changed_', $nm)) != '0' or key('form-param', concat('resetroot_', substring-after($nm, $prefix)))">
  2356. <xsl:if test="not(preceding-sibling::form:param[@name=$nm])">
  2357. <!-- create an element for each property passed in -->
  2358. <xsl:variable name="paramName" select="substring-after(@name, $prefix)"/>
  2359. <xsl:element name="{substring-after(@name, $prefix)}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2360. <xsl:if test="key('form-param','settings_delete')">
  2361. <xsl:attribute name="updateAllDescendents">
  2362. <xsl:value-of select="not($notAcquirable/parms[name=$paramName])"/>
  2363. </xsl:attribute>
  2364. </xsl:if>
  2365. <xsl:choose>
  2366. <xsl:when test="key('form-param', concat('editField_', $nm)) and ($editFieldValue != '0' and $editFieldValue != '1' and $editFieldValue != '2'and $editFieldValue != '3'and $editFieldValue != '4' and $editFieldValue != '5' and $editFieldValue != '6' and $editFieldValue != '7' and $editFieldValue != '8' and $editFieldValue != '9')">
  2367. </xsl:when>
  2368. <xsl:when test="key('form-param', concat('editField_', $nm)) and ($editFieldValue = '0' or $editFieldValue = '1' or $editFieldValue = '2' or $editFieldValue = '3' or $editFieldValue = '4' or $editFieldValue = '5' or $editFieldValue = '6' or $editFieldValue = '7' or $editFieldValue = '8' or $editFieldValue = '9')">
  2369. <xsl:value-of select="key('form-param', concat('editField_', $nm))"/>
  2370. </xsl:when>
  2371. <xsl:otherwise>
  2372. <xsl:value-of select="."/>
  2373. </xsl:otherwise>
  2374. </xsl:choose>
  2375. <xsl:for-each select="following-sibling::form:param[@name = $nm]">
  2376. <xsl:value-of select="' '"/>
  2377. <xsl:value-of select="."/>
  2378. </xsl:for-each>
  2379. </xsl:element>
  2380. </xsl:if>
  2381. </xsl:when>
  2382. <!-- The value hasn't been changed -->
  2383. <xsl:otherwise>
  2384. <xsl:choose>
  2385. <!-- Delete the values for all child entries.-->
  2386. <xsl:when test="key('form-param','settings_delete')">
  2387. <xsl:variable name="paramName" select="substring-after(@name, $prefix)"/>
  2388. <xsl:if test="not(preceding-sibling::form:param[@name=$nm])">
  2389. <xsl:element name="{substring-after(@name, $prefix)}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2390. <!-- We need to pass updateAllDescendents as false when the parameter is not acquirable -->
  2391. <xsl:attribute name="updateAllDescendents">
  2392. <xsl:value-of select="not($notAcquirable/parms[name=$paramName])"/>
  2393. </xsl:attribute>
  2394. <!-- Save the value only when "reset" is not selected and the value was not acquired. -->
  2395. <xsl:if test="not (key('form-param', concat('reset_', substring-after($nm, $prefix)))) and substring($prefix, 6,1) = 'n' ">
  2396. <xsl:value-of select="."/>
  2397. <xsl:for-each select="following-sibling::form:param[@name = $nm]">
  2398. <xsl:value-of select="' '"/>
  2399. <xsl:value-of select="."/>
  2400. </xsl:for-each>
  2401. </xsl:if>
  2402. </xsl:element>
  2403. </xsl:if>
  2404. </xsl:when>
  2405. <xsl:otherwise>
  2406. <!-- Handles reset properties for non-root level (i.e. reset back their values to xsi:nil="true") -->
  2407. <xsl:if test="key('form-param', concat('reset_', substring-after($nm, $prefix)))">
  2408. <xsl:element name="{substring-after(@name, $prefix)}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2409. <!-- no value means xsi:nil="true" -->
  2410. </xsl:element>
  2411. </xsl:if>
  2412. </xsl:otherwise>
  2413. </xsl:choose>
  2414. </xsl:otherwise>
  2415. </xsl:choose>
  2416. </xsl:template>
  2417. <!-- The name of the param is dura_property_a_theProp or dura_property_n_theProp
  2418. the dura_property_a/n_ prefix is 16 char long
  2419. -->
  2420. <xsl:template match="form:param[starts-with(@name,'dura_property_')]">
  2421. <xsl:variable name="prefix" select="substring(@name, 1, 16)"/>
  2422. <xsl:variable name="propName" select="substring-after(@name, $prefix)"/>
  2423. <xsl:variable name="durationUnit" select="key('form-param', concat('durationSelect_', $propName))"/>
  2424. <xsl:variable name="modifiedDuration">
  2425. <xsl:choose>
  2426. <xsl:when test="key('form-param',concat('changed_',@name)) and key('form-param',concat('changed_',@name))='1'">1</xsl:when>
  2427. <xsl:when test="key('form-param',concat('changed_durationSelect_',$propName)) and key('form-param',concat('changed_durationSelect_',$propName))='1'">1</xsl:when>
  2428. <xsl:when test="key('form-param', concat('resetroot_',$propName))">1</xsl:when>
  2429. <xsl:otherwise>0</xsl:otherwise>
  2430. </xsl:choose>
  2431. </xsl:variable>
  2432. <xsl:choose>
  2433. <!-- duration is modified-->
  2434. <xsl:when test="$modifiedDuration='1'">
  2435. <xsl:element name="{$propName}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2436. <xsl:if test="key('form-param','settings_delete')">
  2437. <xsl:attribute name="updateAllDescendents">
  2438. <xsl:value-of select="not($notAcquirable/parms[name=$propName])"/>
  2439. </xsl:attribute>
  2440. </xsl:if>
  2441. <xsl:call-template name="buildDurationValue">
  2442. <xsl:with-param name="durationUnitNbr" select="."/>
  2443. <xsl:with-param name="durationUnit" select="$durationUnit"/>
  2444. </xsl:call-template>
  2445. </xsl:element>
  2446. </xsl:when>
  2447. <!-- duration is not modified but delete children is selected -->
  2448. <xsl:when test="$modifiedDuration='0' and key('form-param','settings_delete')">
  2449. <xsl:element name="{$propName}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2450. <xsl:variable name="acquired">
  2451. <xsl:choose>
  2452. <xsl:when test="contains($prefix,'_a_')">
  2453. <xsl:value-of select="1"/>
  2454. </xsl:when>
  2455. <xsl:otherwise>0</xsl:otherwise>
  2456. </xsl:choose>
  2457. </xsl:variable>
  2458. <xsl:attribute name="updateAllDescendents">
  2459. <xsl:value-of select="not($notAcquirable/parms[name=$propName])"/>
  2460. </xsl:attribute>
  2461. <!-- existing value are not inherited -->
  2462. <xsl:if test="$acquired='0' and not(key('form-param',concat('reset_',$propName)))">
  2463. <xsl:call-template name="buildDurationValue">
  2464. <xsl:with-param name="durationUnitNbr" select="."/>
  2465. <xsl:with-param name="durationUnit" select="$durationUnit"/>
  2466. </xsl:call-template>
  2467. </xsl:if>
  2468. </xsl:element>
  2469. </xsl:when>
  2470. <!-- duration is reset to parent -->
  2471. <xsl:when test="$modifiedDuration='0' and key('form-param',concat('reset_',$propName))">
  2472. <xsl:element name="{$propName}" namespace="http://developer.cognos.com/schemas/xts-cm/1/">
  2473. </xsl:element>
  2474. </xsl:when>
  2475. </xsl:choose>
  2476. </xsl:template>
  2477. <!-- pull in any templates to handle "special" properties on CM objects -->
  2478. <cms:prop-save/>
  2479. <xsl:template match="text()"/>
  2480. </xsl:stylesheet>
  2481. </xts:block>
  2482. <xts:block id="saveFault" type="fault" processor="XSLT">
  2483. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  2484. <xsl:output method="xml"/>
  2485. <xsl:template match="/root/fault">
  2486. <xsl:choose>
  2487. <xsl:when test="./*[local-name() = 'exception']/*[local-name() = 'exceptionDetail']/*[local-name() = 'exception']/*[local-name()='errorCode'] = 'cmUpdateFailed1' and string(./*[local-name() = 'exception']/*[local-name() = 'exceptionDetail']/*[local-name() = 'exception']/*[local-name()='message']/*[local-name()='messageString' and contains(.,'CM-REQ-4344')])!=''">
  2488. <copyFault>
  2489. <xsl:copy-of select="."/>
  2490. </copyFault>
  2491. </xsl:when>
  2492. <xsl:otherwise>
  2493. <xsl:copy-of select="."/>
  2494. </xsl:otherwise>
  2495. </xsl:choose>
  2496. </xsl:template>
  2497. <xsl:template match="text()"/>
  2498. </xsl:stylesheet>
  2499. </xts:block>
  2500. <!--
  2501. ===============================================================================================
  2502. commandResults - operation results
  2503. ===============================================================================================
  2504. -->
  2505. <xts:block id="commandResults" processor="XSLT" type="exec" mode="output" mimeType="text/xml" dependency="doFormCommand">
  2506. <xts:logicsheet path="logicsheets/cm-logic.xsl"/>
  2507. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/" xmlns:dls="http://developer.cognos.com/schemas/deliveryService/1" version="1.0">
  2508. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  2509. <xsl:template match="/root">
  2510. <response xmlns="http://developer.cognos.com/schemas/xts/portal/iFrmCmd/1/">
  2511. <!--xsl:copy-of select="."/-->
  2512. <xsl:choose>
  2513. <xsl:when test="./copyFault">
  2514. <error>
  2515. <errorCode>
  2516. <xsl:value-of select="./copyFault/fault/*[local-name()='exception']/*[local-name()='exceptionDetail']/*[local-name()='exception']/*[local-name()='errorCode']"/>
  2517. </errorCode>
  2518. <errorMessage>
  2519. <xsl:value-of select="substring-after(./copyFault/fault/*[local-name()='exception']/*[local-name()='exceptionDetail']/*[local-name()='exception']/*[local-name()='message']/*[local-name()='messageString'],' ')"/><xsl:text/>&#10;&#10;&#160;<xsl:text/><!--Note:if we don't add the space (&#160;) below, the carriage return will be lost -->
  2520. <xsl:if test="./copyFault/fault/*[local-name() = 'exception']/*[local-name() = 'exceptionDetail']/*[local-name() = 'exception']/*[local-name()='message'][2]">
  2521. <xsl:value-of select="substring-after(./copyFault/fault/*[local-name() = 'exception']/*[local-name() = 'exceptionDetail']/*[local-name() = 'exception']/*[local-name()='message'][2]/*[local-name()='messageString'], ' ')"/>
  2522. </xsl:if>
  2523. </errorMessage>
  2524. </error>
  2525. </xsl:when>
  2526. <xsl:when test="cm:updateResponse">
  2527. <xsl:copy-of select="cm:updateResponse"/>
  2528. </xsl:when>
  2529. <xsl:when test="dls:deleteAllNotificationsResponse"><xsl:copy-of select="dls:deleteAllNotificationsResponse"/></xsl:when>
  2530. <xsl:otherwise>
  2531. <error/>
  2532. </xsl:otherwise>
  2533. </xsl:choose>
  2534. </response>
  2535. </xsl:template>
  2536. <xsl:template match="text()"/>
  2537. </xsl:stylesheet>
  2538. </xts:block>
  2539. </xts:morphlet>