disassembleAgentTasks.xslt 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!--
  3. Licensed Materials - Property of IBM
  4. IBM Cognos Products: ASV
  5. (C) Copyright IBM Corp. 2005, 2010
  6. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
  7. -->
  8. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:xtsext="xalan://com.cognos.xts.ext.XTSExt" xmlns:bus="http://developer.cognos.com/schemas/bibus/3/" exclude-result-prefixes="bus xtsext">
  9. <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="no"/>
  10. <xsl:template match="/">
  11. <!-- need to fill out the following properties -->
  12. <!-- for the email task - we need to know if it's there - and the search path to the memo/agentTaskDefinition -->
  13. <xsl:if test="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='memo']">
  14. <xsl:call-template name="handleCheckBoxes">
  15. <xsl:with-param name="stub">
  16. <xsl:text>m_subData_emailCB</xsl:text>
  17. </xsl:with-param>
  18. <xsl:with-param name="untrimmedFilterDataItemName">
  19. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject']/*[local-name()='memo']]/*[local-name()='filterDataItemName']"/>
  20. </xsl:with-param>
  21. </xsl:call-template>
  22. <param name="m_subData_emailPath">
  23. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='memo']/*[local-name()='searchPath']"/>
  24. </param>
  25. <param name="m_subData_emailTaskPath">
  26. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject']/*[local-name()='memo']]/*[local-name()='searchPath']"/>
  27. </param>
  28. </xsl:if>
  29. <!-- for the newsitem - we need to know if it's there - search paths + all the properties -->
  30. <xsl:if test="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']">
  31. <xsl:call-template name="handleCheckBoxes">
  32. <xsl:with-param name="stub">
  33. <xsl:text>m_subData_newsitemCB</xsl:text>
  34. </xsl:with-param>
  35. <xsl:with-param name="untrimmedFilterDataItemName">
  36. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']]/*[local-name()='filterDataItemName']"/>
  37. </xsl:with-param>
  38. </xsl:call-template>
  39. <param name="m_subData_newsitemPath">
  40. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']/*[local-name()='searchPath']"/>
  41. </param>
  42. <param name="m_subData_newsitemTaskPath">
  43. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']]/*[local-name()='searchPath']"/>
  44. </param>
  45. <!-- have to add all the items for the newsitem -->
  46. <param name="m_subData_newsitem_screentip">
  47. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']/*[local-name()='defaultScreenTip']"/>
  48. </param>
  49. <param name="m_subData_newsitem_text">
  50. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']/*[local-name()='defaultDescription']"/>
  51. </param>
  52. <param name="m_subData_newsitem_headline">
  53. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']/*[local-name()='title']/*"/>
  54. </param>
  55. <param name="m_subData_newsitem_path">
  56. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']/*[local-name()='channel']/*/*[local-name()='searchPath']"/>
  57. </param>
  58. <param name="m_subData_newsitem_taskName">
  59. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='shortcutRSSTask']/*[local-name()='defaultName']"/>
  60. </param>
  61. </xsl:if>
  62. <xsl:if test="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='humanTask']">
  63. <xsl:call-template name="handleCheckBoxes">
  64. <xsl:with-param name="stub">
  65. <xsl:text>m_subData_taskCB</xsl:text>
  66. </xsl:with-param>
  67. <xsl:with-param name="untrimmedFilterDataItemName">
  68. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject']/*[local-name()='humanTask']]/*[local-name()='filterDataItemName']"/>
  69. </xsl:with-param>
  70. </xsl:call-template>
  71. <param name="m_subData_taskPath">
  72. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition']/*[local-name()='taskObject']/*[local-name()='humanTask']/*[local-name()='searchPath']"/>
  73. </param>
  74. <param name="m_subData_taskTaskPath">
  75. <xsl:value-of select="/root/*[local-name()='agentTaskDefinition'][./*[local-name()='taskObject']/*[local-name()='humanTask']]/*[local-name()='searchPath']"/>
  76. </param>
  77. </xsl:if>
  78. </xsl:template>
  79. <xsl:template name="handleCheckBoxes">
  80. <xsl:param name="stub"/>
  81. <xsl:param name="untrimmedFilterDataItemName"/>
  82. <xsl:choose>
  83. <xsl:when test="$untrimmedFilterDataItemName = '' ">
  84. <param name="{$stub}">true</param>
  85. </xsl:when>
  86. <xsl:otherwise>
  87. <xsl:variable name="untrimmedFilterDataItemNameLength" select="string-length($untrimmedFilterDataItemName)"/>
  88. <xsl:variable name="filterDataItemName">
  89. <xsl:value-of select="substring($untrimmedFilterDataItemName, 2 , $untrimmedFilterDataItemNameLength - 2)"/>
  90. </xsl:variable>
  91. <xsl:call-template name="recursiveCBS">
  92. <xsl:with-param name="stubCB" select="$stub"/>
  93. <xsl:with-param name="filterDataItemNameCB" select="$filterDataItemName"/>
  94. </xsl:call-template>
  95. </xsl:otherwise>
  96. </xsl:choose>
  97. </xsl:template>
  98. <xsl:template name="recursiveCBS">
  99. <xsl:param name="stubCB"/>
  100. <xsl:param name="filterDataItemNameCB"/>
  101. <xsl:choose>
  102. <xsl:when test="contains($filterDataItemNameCB, 'OR')">
  103. <!-- split the data -->
  104. <xsl:variable name="before"><xsl:value-of select="substring-before($filterDataItemNameCB, 'OR')"/></xsl:variable>
  105. <xsl:variable name="after"><xsl:value-of select="substring-after($filterDataItemNameCB, 'OR')"/></xsl:variable>
  106. <!-- output the param -->
  107. <param name="{concat($stubCB,'_',$before)}">true</param>
  108. <!-- call recurrsive -->
  109. <xsl:call-template name="recursiveCBS">
  110. <xsl:with-param name="stubCB" select="$stubCB"/>
  111. <xsl:with-param name="filterDataItemNameCB" select="$after"/>
  112. </xsl:call-template>
  113. </xsl:when>
  114. <xsl:otherwise>
  115. <param name="{concat($stubCB,'_',$filterDataItemNameCB)}">true</param>
  116. </xsl:otherwise>
  117. </xsl:choose>
  118. </xsl:template>
  119. </xsl:stylesheet>