generateMissingParams.xslt 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: ps
  5. (C) Copyright IBM Corp. 2005, 2011
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <!--
  9. Copyright (C) 2008 Cognos ULC, an IBM Company. All rights reserved.
  10. Cognos (R) is a trademark of Cognos ULC, (formerly Cognos Incorporated).
  11. -->
  12. <xsl:stylesheet version="1.0"
  13. xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt"
  14. xmlns:cm="http://developer.cognos.com/schemas/xts-cm/1/"
  15. xmlns:pf="http://developer.cognos.com/schemas/xts/pf"
  16. xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  17. xmlns:xsd="http://www.w3.org/2001/XMLSchema"
  18. xmlns:xts="http://developer.cognos.com/schemas/xts/"
  19. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  20. exclude-result-prefixes="xsd xsi xts">
  21. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  22. <xsl:key name="env-param" match="/root/env/param" use="@name"/>
  23. <xsl:key name="user-param" match="/root/user/param" use="@name"/>
  24. <pf:variables/>
  25. <xsl:template match="/root">
  26. <!-- choose the default tab to display on a new scheduled based on the user's capabilities -->
  27. <xsl:variable name="defaultTab">
  28. <xsl:choose>
  29. <xsl:when test="$hasSchedCapabilityByWeek">weekly</xsl:when>
  30. <xsl:when test="$hasSchedCapabilityByMonth">monthly</xsl:when>
  31. <xsl:when test="$hasSchedCapabilityByYear">yearly</xsl:when>
  32. <xsl:when test="$hasSchedCapabilityByDay">daily</xsl:when>
  33. <xsl:when test="$hasSchedCapabilityByTrigger">trigger</xsl:when>
  34. </xsl:choose>
  35. </xsl:variable>
  36. <xsl:variable name="timeZone" select="key('user-param', 'timeZoneID')"/>
  37. <xsl:if test="not(key('env-param', 'm_sp_endType'))">
  38. <param name="m_sp_endType">indefinite</param>
  39. </xsl:if>
  40. <xsl:choose>
  41. <!-- Defaults for By Day Tab -->
  42. <xsl:when test="key('env-param', 'm_sp_type')='daily' or $defaultTab='daily'">
  43. <xsl:if test="not(key('env-param', 'm_sp_dailyPeriod'))">
  44. <param name="m_sp_dailyPeriod">day</param>
  45. </xsl:if>
  46. <xsl:if test="not(key('env-param', 'm_sp_everyNminutes'))">
  47. <param name="m_sp_everyNminutes">1</param>
  48. </xsl:if>
  49. <xsl:if test="not(key('env-param', 'm_sp_everyNhours'))">
  50. <param name="m_sp_everyNhours">1</param>
  51. </xsl:if>
  52. <xsl:if test="not(key('env-param', 'm_sp_everyNdays'))">
  53. <param name="m_sp_everyNdays">1</param>
  54. </xsl:if>
  55. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  56. <param name="m_sp_type">daily</param>
  57. </xsl:if>
  58. </xsl:when>
  59. <!-- Defaults for By Month Tab -->
  60. <xsl:when test="key('env-param', 'm_sp_type')='monthly' or $defaultTab='monthly'">
  61. <xsl:if test="not(key('env-param', 'sub_type'))">
  62. <param name="sub_type">relative</param>
  63. </xsl:if>
  64. <xsl:if test="not(key('env-param', 'm_sp_everyNmonthsAbs'))">
  65. <param name="m_sp_everyNmonthsAbs">1</param>
  66. </xsl:if>
  67. <xsl:if test="not(key('env-param', 'm_sp_everyNmonthsRel'))">
  68. <param name="m_sp_everyNmonthsRel">1</param>
  69. </xsl:if>
  70. <xsl:if test="not(key('env-param', 'm_sp_monthlyAbsoluteDay'))">
  71. <param name="m_sp_monthlyAbsoluteDay"><xsl:value-of select="key('env-param', 'current_day')"/></param>
  72. </xsl:if>
  73. <xsl:if test="not(key('env-param', 'm_sp_monthlyRelativeDay'))">
  74. <param name="m_sp_monthlyRelativeDay"><xsl:value-of select="xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK'))"/></param>
  75. </xsl:if>
  76. <xsl:if test="not(key('env-param', 'm_sp_monthlyRelativeWeek'))">
  77. <param name="m_sp_monthlyRelativeWeek"><xsl:value-of select="translate(xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK_IN_MONTH')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz' )"/></param>
  78. </xsl:if>
  79. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  80. <param name="m_sp_type">monthly</param>
  81. </xsl:if>
  82. </xsl:when>
  83. <!-- Defaults for By Year Tab -->
  84. <xsl:when test="key('env-param', 'm_sp_type')='yearly' or $defaultTab='yearly'">
  85. <xsl:if test="not(key('env-param', 'sub_type'))">
  86. <param name="sub_type">relative</param>
  87. </xsl:if>
  88. <xsl:if test="not(key('env-param', 'm_sp_yearlyAbsoluteDay'))">
  89. <param name="m_sp_yearlyAbsoluteDay"><xsl:value-of select="key('env-param', 'current_day')"/></param>
  90. </xsl:if>
  91. <xsl:if test="not(key('env-param', 'm_sp_yearlyAbsoluteMonth'))">
  92. <param name="m_sp_yearlyAbsoluteMonth"><xsl:value-of select="key('env-param', 'current_month')"/></param>
  93. </xsl:if>
  94. <xsl:if test="not(key('env-param', 'm_sp_yearlyRelativeDay'))">
  95. <param name="m_sp_yearlyRelativeDay"><xsl:value-of select="xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK'))"/></param>
  96. </xsl:if>
  97. <xsl:if test="not(key('env-param', 'm_sp_yearlyRelativeWeek'))">
  98. <param name="m_sp_yearlyRelativeWeek"><xsl:value-of select="translate(xtsext:getDateInformation(string($timeZone), string('DAY_OF_WEEK_IN_MONTH')), 'ABCDEFGHIJKLMNOPQRSTUVWXYZ', 'abcdefghijklmnopqrstuvwxyz' )"/></param>
  99. </xsl:if>
  100. <xsl:if test="not(key('env-param', 'm_sp_yearlyRelativeMonth'))">
  101. <param name="m_sp_yearlyRelativeMonth"><xsl:value-of select="key('env-param', 'current_month')"/></param>
  102. </xsl:if>
  103. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  104. <param name="m_sp_type">yearly</param>
  105. </xsl:if>
  106. </xsl:when>
  107. <!-- Defaults for By Week Tab -->
  108. <xsl:when test="$defaultTab='weekly'">
  109. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  110. <param name="m_sp_type">weekly</param>
  111. </xsl:if>
  112. <xsl:if test="not(key('env-param', 'm_sp_everyNweeks'))">
  113. <param name="m_sp_everyNweeks">1</param>
  114. </xsl:if>
  115. <xsl:if test="not(env/param[starts-with(@name,'m_sp_weekly')])">
  116. <xsl:variable name="day_of_week">
  117. <xsl:value-of select="xtsext:getDateInformation(string($timeZone),string('DAY_OF_WEEK'))"/>
  118. </xsl:variable>
  119. <param>
  120. <xsl:choose>
  121. <xsl:when test="$day_of_week='monday'">
  122. <xsl:attribute name="name">m_sp_weeklyMonday</xsl:attribute>
  123. </xsl:when>
  124. <xsl:when test="$day_of_week='tuesday'">
  125. <xsl:attribute name="name">m_sp_weeklyTuesday</xsl:attribute>
  126. </xsl:when>
  127. <xsl:when test="$day_of_week='wednesday'">
  128. <xsl:attribute name="name">m_sp_weeklyWednesday</xsl:attribute>
  129. </xsl:when>
  130. <xsl:when test="$day_of_week='thursday'">
  131. <xsl:attribute name="name">m_sp_weeklyThursday</xsl:attribute>
  132. </xsl:when>
  133. <xsl:when test="$day_of_week='friday'">
  134. <xsl:attribute name="name">m_sp_weeklyFriday</xsl:attribute>
  135. </xsl:when>
  136. <xsl:when test="$day_of_week='saturday'">
  137. <xsl:attribute name="name">m_sp_weeklySaturday</xsl:attribute>
  138. </xsl:when>
  139. <xsl:when test="$day_of_week='sunday'">
  140. <xsl:attribute name="name">m_sp_weeklySunday</xsl:attribute>
  141. </xsl:when>
  142. </xsl:choose>
  143. <xsl:text>true</xsl:text>
  144. </param>
  145. </xsl:if>
  146. </xsl:when>
  147. <xsl:when test="$defaultTab='trigger'">
  148. <xsl:if test="not(key('env-param', 'm_sp_type'))">
  149. <param name="m_sp_type">trigger</param>
  150. </xsl:if>
  151. </xsl:when>
  152. </xsl:choose>
  153. <xsl:if test="not($defaultTab='trigger')">
  154. <xsl:if test="not(key('env-param', 'm_sp_intradayRecurrenceIntervalNum'))">
  155. <param name="m_sp_intradayRecurrenceIntervalNum">1</param>
  156. <param name="m_sp_intradayRecurrenceIntervalUnit">H</param>
  157. </xsl:if>
  158. <xsl:if test="not(key('env-param', 'p_intradayRecurrenceStart'))">
  159. <param name="p_intradayRecurrenceStart">09:00:00</param>
  160. </xsl:if>
  161. <xsl:if test="not(key('env-param', 'p_intradayRecurrenceEnd'))">
  162. <param name="p_intradayRecurrenceEnd">17:00:00</param>
  163. </xsl:if>
  164. </xsl:if>
  165. </xsl:template>
  166. </xsl:stylesheet>