/
XSLT Transformation of PDI jobs and trans files
XSLT Transformation of PDI jobs and trans files
Format of KTR and KJB files
empty ktr file
<?xml version="1.0" encoding="UTF-8"?> <transformation> <info> <name>Transformation 1</name> <description/> <extended_description/> <trans_version/> <directory>/</directory> <parameters> </parameters> <log> <read/> <write/> <input/> <output/> <update/> <rejected/> <connection/> <table/> <step_performance_table/> <use_batchid>Y</use_batchid> <use_logfield>N</use_logfield> <size_limit_lines/> </log> <maxdate> <connection/> <table/> <field/> <offset>0.0</offset> <maxdiff>0.0</maxdiff> </maxdate> <size_rowset>10000</size_rowset> <sleep_time_empty>50</sleep_time_empty> <sleep_time_full>50</sleep_time_full> <unique_connections>N</unique_connections> <feedback_shown>Y</feedback_shown> <feedback_size>50000</feedback_size> <using_thread_priorities>Y</using_thread_priorities> <shared_objects_file/> <capture_step_performance>N</capture_step_performance> <step_performance_capturing_delay>1000</step_performance_capturing_delay> <dependencies> </dependencies> <partitionschemas> </partitionschemas> <slaveservers> </slaveservers> <clusterschemas> </clusterschemas> <modified_user>-</modified_user> <modified_date>2010/08/24 11:58:23.312</modified_date> </info> <notepads> </notepads> <order> </order> <step_error_handling> </step_error_handling> <slave-step-copy-partition-distribution> </slave-step-copy-partition-distribution> <slave_transformation>N</slave_transformation> </transformation>
empty kjb file
<?xml version="1.0" encoding="UTF-8"?> <job> <name>empty</name> <description/> <extended_description/> <job_version/> <directory>/</directory> <created_user>-</created_user> <created_date>2010/08/24 12:09:26.750</created_date> <modified_user>-</modified_user> <modified_date>2010/08/24 12:09:26.750</modified_date> <parameters> </parameters> <slaveservers> </slaveservers> <logconnection/> <logtable/> <size_limit_lines/> <use_batchid>Y</use_batchid> <pass_batchid>N</pass_batchid> <use_logfield>Y</use_logfield> <shared_objects_file/> <entries> </entries> <hops> </hops> <notepads> </notepads> </job>
XSLT transformation script
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <!-- This xslt transform dynamically transforms ktr and kjb file to be viewed in the browser. Dependencies: The following files must be located in the home directory that the .ktr/.kjb is launched 1. pentaho.css 2. ui/images 3. ui/script/collapse_expand_single_item.js Issues: .ktr and .kjb cannot be opened by internet explorer. internet explorer renders correctly if .ktr is changed to .xml --> <xsl:output method="html" version="4.0" encoding="UTF-8" omit-xml-declaration="yes" media-type="text/html" indent="yes" doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN" doctype-system="http://www.w3.org/TR/html4/loose.dtd" /> <xsl:preserve-space elements="*"/> <xsl:variable name="newline"> <!-- ie does not recognize white space so we explicitly define linefeed (newline) char here --> <xsl:text>
</xsl:text> </xsl:variable> <!-- ================================================================== START of matching ======================================================================= --> <xsl:template match="/"> <!-- Use this snippet to hide and show a section by clicking <img src="ui/images/u.gif" name="imgfirst" width="9" height="9" border="0" > <a href="#first" onClick="shoh('first');" >Customer Support</a> <div style="display: none;" id="first" > Here is the content you want to collapse or expand. You can place tables here, images, anything. </div> --> <html> <!-- Use CSS from pentaho website --> <head> <link rel="stylesheet" type="text/css" href="ui/pentaho.css" media="all"/> <script language="JavaScript" src="ui/script/collapse_expand_single_item.js"></script> </head> <body style="background-color:white"> <a href="http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation"> <h1>Pentaho Data Integration Documentation</h1> </a> <!-- Call this template to process all nodes recursively --> <xsl:call-template name="node"/> </body> </html> </xsl:template> <xsl:template name="node" > <!-- Process leafs then process child nodes --> <xsl:call-template name="leafs"/> <!-- Process child nodes --> <xsl:for-each select="*[count(*) > 0]"> <!-- HEADER --> <!-- Start new div and show name of node in caps --> <div class="wiki-content" style="padding-left:+20px; text-align:left;"> <!-- Set heading type according to Depth of tree --> <xsl:choose> <!-- Header for high level groups levels 1-2 or job entry --> <xsl:when test="(count(ancestor::*) < 3 and name() != 'connection') or name()='entry'"> <h2 style="text-align:left"> <!-- Header for Trans or Job, info section, steps or entry --> <xsl:choose> <!-- level 1 Header for Transformation Block --> <xsl:when test="name()='transformation'"> <xsl:call-template name="trans"/> </xsl:when> <!-- level 1 Header for Job Block --> <xsl:when test="name()='job'"> <xsl:call-template name="job"/> </xsl:when> <!-- level 2 Header for Info Block, Trans or Job --> <xsl:when test="name()='info'"> <xsl:call-template name="info"/> </xsl:when> <!-- Header for step or entry --> <xsl:when test="name()='step' or name()='entry'"> <!-- STEP/ENTRY In CAPS --> <span style="text-transform:uppercase"> <xsl:value-of select="name()"/> </span> <xsl:text> </xsl:text> <!-- add image link --> <xsl:call-template name="img"> <xsl:with-param name="name"> <xsl:value-of select="./type" /> </xsl:with-param> </xsl:call-template> <!-- Name of the step or entry in [] --> <xsl:text> [</xsl:text> <xsl:value-of select="./name"/> <xsl:text>] </xsl:text> </xsl:when> <xsl:otherwise> <span style="text-transform:uppercase"> <xsl:value-of select="name()"/> </span> </xsl:otherwise> </xsl:choose> </h2> </xsl:when> <!-- Lower level blocks --> <xsl:otherwise> <h4 style="text-transform:uppercase; text-align:left; background:white"> <xsl:value-of select="name()"/> <xsl:if test="name"> <xsl:text> [</xsl:text><xsl:value-of select="name"/><xsl:text>]</xsl:text> </xsl:if> </h4> </xsl:otherwise> </xsl:choose> <!-- bread crumbs <code><xsl:for-each select="ancestor::*"><xsl:value-of select="name()"/>::</xsl:for-each></code> --> <!-- END OF HEADERS --> <!-- "Show Hide" section --> <a href="#{generate-id(.)}" onClick="shoh('{generate-id(.)}');" > <img src="ui/images/u.gif" name="img{generate-id(.)}" width="9" height="9" border="0" /> </a> <div style="display:none" id="{generate-id(.)}" > <!-- Start of DIV, match to closing DIV --> <!-- DETAILS --> <xsl:choose> <!-- Process special nodes where we pivot the attribute value pairs into a table --> <!-- Connection attributes --> <xsl:when test="name() = 'attributes'"> <xsl:call-template name="attr"/> </xsl:when> <!-- hops and order in trans and job --> <xsl:when test="name() = 'order' or name() = 'hops'"> <xsl:call-template name="order"/> </xsl:when> <!-- all GUI XLOC and YLOC --> <xsl:when test="name() = 'GUI'"> <xsl:call-template name="gui"/> </xsl:when> <!-- All instances of fields --> <xsl:when test="name() = 'fields'"> <xsl:call-template name="leafs"/> <h4 style="background:white">SELECT</h4> <xsl:call-template name="fields"/> <h4 style="background:white">METADATA</h4> <xsl:call-template name="meta_fields"/> </xsl:when> <!-- Trans Lookup step --> <xsl:when test="name() = 'lookup'"> <xsl:call-template name="leafs"/> <h4 style="background:white">KEYS</h4> <xsl:call-template name="keys"/> <h4 style="background:white">VALUES</h4> <xsl:call-template name="values"/> </xsl:when> <!-- Database connections --> <xsl:when test="name() = 'connection'"> <xsl:call-template name="leafs"/> </xsl:when> <!-- Default: Process a child node (generate details) --> <xsl:otherwise> <xsl:call-template name="node"/> </xsl:otherwise> </xsl:choose> </div> <!-- Details --> </div> <!-- NODE --> </xsl:for-each> </xsl:template> <!-- ================================================================= Display routines ==================================================================== --> <!-- Process all leaf nodes of current node --> <xsl:template name="leafs"> <!-- The leafs are laid out in a table of Element: Value pair --> <table class="confluenceTable"><tbody> <xsl:for-each select="*[count(text())=1]"> <!-- Show only non-empty elements --> <tr> <td valign="top" style="text-transform:uppercase" class="confluenceTd"> <xsl:value-of select="name()"/> </td> <td class="confluenceTd"> <xsl:choose> <xsl:when test="name()='type'"> <!-- Lookup help page for the step/entry --> <xsl:call-template name="wiki-pentaho"> <xsl:with-param name="name"> <xsl:value-of select="." /> </xsl:with-param> </xsl:call-template> </xsl:when> <!-- Display code or multi line notes --> <xsl:when test="name()='sql' or name()='jsScript_script' or name()='note'"> <code> <xsl:call-template name="string-newline"> <xsl:with-param name="original"> <xsl:value-of select="."/> </xsl:with-param> </xsl:call-template> </code> </xsl:when> <xsl:otherwise> <xsl:value-of select="."/> </xsl:otherwise> </xsl:choose> </td> </tr> </xsl:for-each> </tbody></table> </xsl:template> <!-- Pivot table style 1: <table-name> <row> <col-1> <col-2> <row> <col1> <col2> --> <xsl:template name="pivot1"> <table class="confluenceTable"><tbody> <!-- Table Header --> <xsl:if test="*[1]"> <xsl:for-each select="*[1]/*"> <th style="text-transform:uppercase" class="confluenceTh"> <xsl:value-of select="name()"/> </th> </xsl:for-each> </xsl:if> <!-- Table Rows --> <xsl:for-each select="*"> <tr> <xsl:for-each select="./*"> <td class="confluenceTd"> <xsl:value-of select="."/> </td> </xsl:for-each> </tr> </xsl:for-each> </tbody></table> </xsl:template> <xsl:template name="table-row"> <tr> <xsl:for-each select="*"> <td class="confluenceTd"> <xsl:value-of select="."/> </td> </xsl:for-each> </tr> </xsl:template> <!-- Pivot table style 2: single row table <table-name> <col-1> <col-2> <col-3> --> <xsl:template name="pivot2"> <table class="confluenceTable"><tbody> <!-- Header - name of the nodes --> <xsl:for-each select="*"> <th style="text-transform:uppercase" class="confluenceTh"> <xsl:value-of select="name()"/> </th> </xsl:for-each> <!-- Single row --> <tr> <xsl:for-each select="*"> <td class="confluenceTd"> <xsl:value-of select="."/> </td> </xsl:for-each> </tr> </tbody></table> </xsl:template> <!-- Pivot table style 3: Same as Style 1 but mixed rows <group-of-tables> <table-name-1> <col-1> <col-2> <col-3> <table-name-1> <col-1> <col-2> <col-3> <table-name-2> <col-1> <col-2> <col-3> <table-name-2> <col-1> <col-2> <col-3> Parameter1 table-name --> <xsl:template name="pivot3"> <xsl:param name="group"/> <table class="confluenceTable"><tbody> <!-- Table Header --> <xsl:if test="*[name()=$group][1]"> <xsl:for-each select="*[name()=$group][1]/*"> <th style="text-transform:uppercase" class="confluenceTh"> <xsl:value-of select="name()"/> </th> </xsl:for-each> </xsl:if> <!-- Table Rows --> <xsl:for-each select="*[name()=$group]"> <tr> <xsl:for-each select="*"> <td class="confluenceTd"> <xsl:value-of select="."/> </td> </xsl:for-each> </tr> </xsl:for-each> </tbody></table> </xsl:template> <!-- Transformation header --> <xsl:template name = "trans"> <h1 style="text-align:left"> <img src="ui/images/TRN.png"/> <a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Steps"> <xsl:value-of select="./info/name/text()" /> </a> <xsl:if test="./info/capture_step_performance/text()='Y'"> <img src="ui/images/perfmon2.jpeg"/> </xsl:if> </h1> </xsl:template> <!-- Job header --> <xsl:template name = "job"> <h1 style="text-align:left"> <img src="ui/images/JOB.png"/> <a href="http://wiki.pentaho.com/display/EAI/Pentaho+Data+Integration+Job+Entries"> <xsl:value-of select="./name/text()" /> </a> </h1> </xsl:template> <!-- Info header --> <xsl:template name = "info"> <h1 style="text-align:left"> INFORMATION </h1> </xsl:template> <!-- Code attribute values in Connection --> <xsl:template name="attr"> <xsl:call-template name="pivot1"/> </xsl:template> <!-- From To laid out in a table on the orders --> <xsl:template name="order"> <xsl:call-template name="pivot1"/> </xsl:template> <!-- GUI coords, laid out in a single row table --> <xsl:template name="gui"> <xsl:call-template name="pivot2"/> </xsl:template> <!-- Fields in a select step --> <xsl:template name="fields"> <xsl:call-template name="pivot3"> <xsl:with-param name="group">field</xsl:with-param> </xsl:call-template> </xsl:template> <!-- Meta of fields in a select step --> <xsl:template name="meta_fields"> <xsl:call-template name="pivot3"> <xsl:with-param name="group">meta</xsl:with-param> </xsl:call-template> </xsl:template> <!-- keys in lookup step --> <xsl:template name="keys"> <xsl:call-template name="pivot3"> <xsl:with-param name="group">key</xsl:with-param> </xsl:call-template> </xsl:template> <!-- Values in lookup step --> <xsl:template name="values"> <xsl:call-template name="pivot3"> <xsl:with-param name="group">value</xsl:with-param> </xsl:call-template> </xsl:template> <!-- Replace String --> <xsl:template name="replace-substring"> <xsl:param name="original"/> <xsl:param name="substring"/> <xsl:param name="replacement" select="''"/> <xsl:variable name="first"> <xsl:choose> <xsl:when test="contains($original, $substring)"> <xsl:value-of select="substring-before($original, $substring)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$original"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="middle"> <xsl:choose> <xsl:when test="contains($original, $substring)"> <xsl:value-of select="$replacement"/> </xsl:when> <xsl:otherwise> <xsl:text></xsl:text> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="last"> <xsl:choose> <xsl:when test="contains($original, $substring)"> <xsl:choose> <xsl:when test="contains(substring-after($original, $substring),$substring)"> <xsl:call-template name="replace-substring"> <xsl:with-param name="original"> <xsl:value-of select="substring-after($original, $substring)"/> </xsl:with-param> <xsl:with-param name="substring"> <xsl:value-of select="$substring"/> </xsl:with-param> <xsl:with-param name="replacement"> <xsl:value-of select="$replacement"/> </xsl:with-param> </xsl:call-template> </xsl:when> <xsl:otherwise> <xsl:value-of select="substring-after($original, $substring)"/> </xsl:otherwise> </xsl:choose> </xsl:when> <xsl:otherwise> <xsl:text></xsl:text> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:value-of select="concat($first, $middle, $last)"/> </xsl:template> <!-- Print line separated by newline --> <xsl:template name="string-newline"> <xsl:param name="original"/> <xsl:variable name="first"> <xsl:choose> <xsl:when test="contains($original, $newline)"> <xsl:value-of select="substring-before($original, $newline)"/> </xsl:when> <xsl:otherwise> <xsl:value-of select="$original"/> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:variable name="last"> <xsl:choose> <xsl:when test="contains($original, $newline)"> <xsl:value-of select="substring-after($original, $newline)"/> </xsl:when> <xsl:otherwise> <xsl:text></xsl:text> </xsl:otherwise> </xsl:choose> </xsl:variable> <xsl:value-of select="$first"/><br/> <xsl:if test="string-length($last) > 0"> <xsl:call-template name="string-newline"> <xsl:with-param name="original"> <xsl:value-of select="$last"/> </xsl:with-param> </xsl:call-template> </xsl:if> </xsl:template> <!-- Lookup to get anchor for step/entry images --> <xsl:template name="img"> <xsl:param name="name"/> <xsl:variable name="name-caps"> <xsl:value-of select="translate( $name , 'abcdefghijklmnopqrstuvwxyz' , 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' )" /> </xsl:variable> <xsl:variable name="fname"> <xsl:choose> <xsl:when test="$name-caps='DUMMY'"><xsl:text>ui/images/DUM.png</xsl:text></xsl:when> <xsl:when test="$name-caps='APPEND'"><xsl:text>ui/images/APP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEINPUT'"><xsl:text>ui/images/TIP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SOCKETREADER'"><xsl:text>ui/images/SKR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SOCKETWRITER'"><xsl:text>ui/images/SKW.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SELECTVALUES'"><xsl:text>ui/images/SEL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TEXTFILEINPUT'"><xsl:text>ui/images/TFI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CALCULATOR'"><xsl:text>ui/images/CLC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CONSTANT'"><xsl:text>ui/images/CST.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ABORT'"><xsl:text>ui/images/ABR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SEQUENCE'"><xsl:text>ui/images/SEQ.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEOUTPUT'"><xsl:text>ui/images/TOP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='INFOBRIGHTOUTPUT'"><xsl:text>ui/images/IBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SORTROWS'"><xsl:text>ui/images/SRT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ORABULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='INJECTOR'"><xsl:text>ui/images/INJ.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILTERROWS'"><xsl:text>ui/images/FLT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TEXTFILEOUTPUT'"><xsl:text>ui/images/TFO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SYSTEMINFO'"><xsl:text>ui/images/SYS.png</xsl:text></xsl:when> <xsl:when test="$name-caps='STREAMLOOKUP'"><xsl:text>ui/images/SLU.png</xsl:text></xsl:when> <xsl:when test="$name-caps='UNIQUE'"><xsl:text>ui/images/UNQ.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DBLOOKUP'"><xsl:text>ui/images/DLU.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DBJOIN'"><xsl:text>ui/images/DBJ.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DIMENSIONLOOKUP'"><xsl:text>ui/images/DIM.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EXCELINPUT'"><xsl:text>ui/images/XLI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COMBINATIONLOOKUP'"><xsl:text>ui/images/CMB.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SCRIPTVALUEMOD'"><xsl:text>ui/images/SCR_mod.png</xsl:text></xsl:when> <xsl:when test="$name-caps='JOINROWS'"><xsl:text>ui/images/JRW.png</xsl:text></xsl:when> <xsl:when test="$name-caps='UPDATE'"><xsl:text>ui/images/UPD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='INSERTUPDATE'"><xsl:text>ui/images/INU.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE'"><xsl:text>ui/images/Delete.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPINGINPUT'"><xsl:text>ui/images/MPI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPING'"><xsl:text>ui/images/MAP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPINGOUTPUT'"><xsl:text>ui/images/MPO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SETVARIABLE'"><xsl:text>ui/images/SVA.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GETVARIABLE'"><xsl:text>ui/images/GVA.png</xsl:text></xsl:when> <xsl:when test="$name-caps='NULLIF'"><xsl:text>ui/images/NUI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EXECSQL'"><xsl:text>ui/images/SQL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ROWSFROMRESULT'"><xsl:text>ui/images/FCH.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ROWSTORESULT'"><xsl:text>ui/images/TCH.png</xsl:text></xsl:when> <xsl:when test="$name-caps='BLOCKINGSTEP'"><xsl:text>ui/images/BLK.png</xsl:text></xsl:when> <xsl:when test="$name-caps='HTTP'"><xsl:text>ui/images/WEB.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MERGEROWS'"><xsl:text>ui/images/MRG.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GETFILENAMES'"><xsl:text>ui/images/GFN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILESFROMRESULT'"><xsl:text>ui/images/FFR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILESTORESULT'"><xsl:text>ui/images/FTR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GROUPBY'"><xsl:text>ui/images/GRP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ANALYTICQUERY'"><xsl:text>ui/images/AQI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MERGEJOIN'"><xsl:text>ui/images/MJOIN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SORTEDMERGE'"><xsl:text>ui/images/SMG.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XMLINPUT'"><xsl:text>ui/images/XIN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XMLINPUTSAX'"><xsl:text>ui/images/XIS.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XMLOUTPUT'"><xsl:text>ui/images/XOU.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EXCELOUTPUT'"><xsl:text>ui/images/XLO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DBPROC'"><xsl:text>ui/images/PRC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DENORMALISER'"><xsl:text>ui/images/UNP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='NORMALISER'"><xsl:text>ui/images/NRM.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FLATTENER'"><xsl:text>ui/images/FLA.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XBASEINPUT'"><xsl:text>ui/images/XBI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ACCESSOUTPUT'"><xsl:text>ui/images/ACO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='REGEXEVAL'"><xsl:text>ui/images/RGE.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ACCESSINPUT'"><xsl:text>ui/images/ACI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ADDXML'"><xsl:text>ui/images/XIN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='AGGREGATEROWS'"><xsl:text>ui/images/AGG.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MONDRIANINPUT'"><xsl:text>ui/images/MON.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GETFILESROWSCOUNT'"><xsl:text>ui/images/FRC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='LDAPINPUT'"><xsl:text>ui/images/LIP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GETXMLDATA'"><xsl:text>ui/images/GXD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XSDVALIDATOR'"><xsl:text>ui/images/XSD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XSLT'"><xsl:text>ui/images/XSLT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='VALIDATOR'"><xsl:text>ui/images/VLD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SQLFILEOUTPUT'"><xsl:text>ui/images/SFO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SPLITFIELDTOROWS'"><xsl:text>ui/images/SFtR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='PROPERTYINPUT'"><xsl:text>ui/images/PFI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GPBULKLOADER'"><xsl:text>ui/images/GBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='PGBULKLOADER'"><xsl:text>ui/images/PGBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='LDIFINPUT'"><xsl:text>ui/images/LDI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='PROPERTYOUTPUT'"><xsl:text>ui/images/PFO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='VALUEMAPPER'"><xsl:text>ui/images/SWC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SWITCHCASE'"><xsl:text>ui/images/SWC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XMLJOIN'"><xsl:text>ui/images/XJN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='STEPMETASTRUCTURE'"><xsl:text>ui/images/STMD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEEXISTS'"><xsl:text>ui/images/TEX.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COLUMNEXISTS'"><xsl:text>ui/images/CEX.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILEEXISTS'"><xsl:text>ui/images/FEX.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CLONEROW'"><xsl:text>ui/images/CLR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELAY'"><xsl:text>ui/images/DLT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CHECKSUM'"><xsl:text>ui/images/CSM.png</xsl:text></xsl:when> <xsl:when test="$name-caps='RANDOMVALUE'"><xsl:text>ui/images/RVA.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GETSUBFOLDERS'"><xsl:text>ui/images/LSF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MONETDBBULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MAILVALIDATOR'"><xsl:text>ui/images/MAV.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MAIL'"><xsl:text>ui/images/MAIL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CREDITCARDVALIDATOR'"><xsl:text>ui/images/CCV.png</xsl:text></xsl:when> <xsl:when test="$name-caps='PROCESSFILES'"><xsl:text>ui/images/PPF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DETECTLASTROW'"><xsl:text>ui/images/DLR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DETECTEMPTYSTREAM'"><xsl:text>ui/images/EMS.png</xsl:text></xsl:when> <xsl:when test="$name-caps='WRITETOLOG'"><xsl:text>ui/images/WTL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SAMPLEROWS'"><xsl:text>ui/images/SR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GETPREVIOUSROWFIELD'"><xsl:text>ui/images/PRV.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EXECSQLROW'"><xsl:text>ui/images/SQLR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DYNAMICSQLROW'"><xsl:text>ui/images/DSR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='NUMBERRANGE'"><xsl:text>ui/images/NRI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SYNCHRONIZEAFTERMERGE'"><xsl:text>ui/images/SAM.png</xsl:text></xsl:when> <xsl:when test="$name-caps='LUCIDDBBULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MYSQLBULKLOADER'"><xsl:text>ui/images/OBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='REPLACESTRING'"><xsl:text>ui/images/RST.png</xsl:text></xsl:when> <xsl:when test="$name-caps='STRINGCUT'"><xsl:text>ui/images/SRC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='IFNULL'"><xsl:text>ui/images/IFN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='RSSOUTPUT'"><xsl:text>ui/images/RRO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='RSSINPUT'"><xsl:text>ui/images/RIN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SALESFORCEINPUT'"><xsl:text>ui/images/SFI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FORMULA'"><xsl:text>ui/images/FRM.png</xsl:text></xsl:when> <xsl:when test="$name-caps='JANINO'"><xsl:text>ui/images/janino.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SCRIPTVALUEMOD'"><xsl:text>ui/images/janino.png</xsl:text></xsl:when> <xsl:when test="$name-caps='RESERVOIRSAMPLING'"><xsl:text>ui/images/RS.png</xsl:text></xsl:when> <xsl:when test="$name-caps='UNIVARIATESTATS'"><xsl:text>ui/images/US.png</xsl:text></xsl:when> <xsl:when test="$name-caps='UNIQUEROWSBYHASHSET'"><xsl:text>ui/images/URH.png</xsl:text></xsl:when> <xsl:when test="$name-caps='HTTPPOST'"><xsl:text>ui/images/HTP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SETVALUECONSTANT'"><xsl:text>ui/images/SVC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SETVALUEFIELD'"><xsl:text>ui/images/SVF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EXECPROCESS'"><xsl:text>ui/images/RPL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='WEBSERVICELOOKUP'"><xsl:text>ui/images/WSL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CSVINPUT'"><xsl:text>ui/images/TFI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='PARALLELGZIPCSVINPUT'"><xsl:text>ui/images/TFI.png</xsl:text></xsl:when> <xsl:when test="$name-caps='JOB'"><xsl:text>ui/images/JOB.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TRANS'"><xsl:text>ui/images/TRN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SHELL'"><xsl:text>ui/images/SHL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MAIL'"><xsl:text>ui/images/MAIL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SQL'"><xsl:text>ui/images/SQL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FTP'"><xsl:text>ui/images/FTP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TABLE_EXISTS'"><xsl:text>ui/images/TEX.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILE_EXISTS'"><xsl:text>ui/images/FEX.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EVAL'"><xsl:text>ui/images/RES.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SPECIAL'"><xsl:text>ui/images/STR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SFTP'"><xsl:text>ui/images/SFT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='HTTP'"><xsl:text>ui/images/WEB.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CREATE_FILE'"><xsl:text>ui/images/CFJ.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FILE'"><xsl:text>ui/images/DFJ.png</xsl:text></xsl:when> <xsl:when test="$name-caps='WAIT_FOR_FILE'"><xsl:text>ui/images/WFF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SFTPPUT'"><xsl:text>ui/images/SFP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILE_COMPARE'"><xsl:text>ui/images/BFC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MYSQL_BULK_LOAD'"><xsl:text>ui/images/MBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MSGBOX_INFO'"><xsl:text>ui/images/INF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELAY'"><xsl:text>ui/images/DLT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ZIP_FILE'"><xsl:text>ui/images/ZIP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XSLT'"><xsl:text>ui/images/XSLT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MYSQL_BULK_FILE'"><xsl:text>ui/images/MBF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ABORT'"><xsl:text>ui/images/ABR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='GET_POP'"><xsl:text>ui/images/GETPOP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='PING'"><xsl:text>ui/images/PNG.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FILES'"><xsl:text>ui/images/DFS.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SUCCESS'"><xsl:text>ui/images/SUC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='XSD_VALIDATOR'"><xsl:text>ui/images/XSD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='WRITE_TO_LOG'"><xsl:text>ui/images/WTL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COPY_FILES'"><xsl:text>ui/images/CPY.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DTD_VALIDATOR'"><xsl:text>ui/images/DTD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FTP_PUT'"><xsl:text>ui/images/PFP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='UNZIP'"><xsl:text>ui/images/UZP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CREATE_FOLDER'"><xsl:text>ui/images/CRF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FOLDER_IS_EMPTY'"><xsl:text>ui/images/EFO.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FILES_EXIST'"><xsl:text>ui/images/LFE.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FOLDERS_COMPARE'"><xsl:text>ui/images/FCP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='ADD_RESULT_FILENAMES'"><xsl:text>ui/images/AFN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_RESULT_FILENAMES'"><xsl:text>ui/images/DFN.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MSSQL_BULK_LOAD'"><xsl:text>ui/images/MBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MOVE_FILES'"><xsl:text>ui/images/MVF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COPY_MOVE_RESULT_FILENAMES'"><xsl:text>ui/images/CMR.png</xsl:text></xsl:when> <xsl:when test="$name-caps='JOBCATEGORY.CATEGORY.XML_WELL_FORMED'"><xsl:text>ui/images/XFC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SSH2_GET'"><xsl:text>ui/images/SHG.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SSH2_PUT'"><xsl:text>ui/images/SHP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='FTP_DELETE'"><xsl:text>ui/images/FTPD.png</xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FOLDERS'"><xsl:text>ui/images/DSF.png</xsl:text></xsl:when> <xsl:when test="$name-caps='COLUMNS_EXIST'"><xsl:text>ui/images/CEX.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EXPORT_REPOSITORY'"><xsl:text>ui/images/EREP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='CONNECTED_TO_REPOSITORY'"><xsl:text>ui/images/CREP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='TRUNCATE_TABLES'"><xsl:text>ui/images/TRT.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SET_VARIABLES'"><xsl:text>ui/images/SVA.png</xsl:text></xsl:when> <xsl:when test="$name-caps='MS_ACCESS_BULK_LOAD'"><xsl:text>ui/images/MBL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='WAIT_FOR_SQL'"><xsl:text>ui/images/WSQL.png</xsl:text></xsl:when> <xsl:when test="$name-caps='EVAL_TABLE_CONTENT'"><xsl:text>ui/images/ETC.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SIMPLE_EVAL'"><xsl:text>ui/images/SEV.png</xsl:text></xsl:when> <xsl:when test="$name-caps='SNMP_TRAP'"><xsl:text>ui/images/SNMP.png</xsl:text></xsl:when> <xsl:when test="$name-caps='JOBCATEGORY.CATEGORY.MAIL_VALIDATOR'"><xsl:text>ui/images/MAV.png</xsl:text></xsl:when> <xsl:otherwise><xsl:text>ui/images/spoon32.png</xsl:text></xsl:otherwise> </xsl:choose> </xsl:variable> <img> <xsl:attribute name="src"> <xsl:value-of select="$fname"/> </xsl:attribute> <xsl:attribute name="style"> <xsl:text>border:1px solid black</xsl:text> </xsl:attribute> </img> </xsl:template> <!-- Lookup to get anchor for step/entry help page on wiki.pentaho --> <xsl:template name="wiki-pentaho"> <xsl:param name="name"/> <xsl:variable name="name-caps"> <xsl:value-of select="translate( $name , 'abcdefghijklmnopqrstuvwxyz' , 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' )" /> </xsl:variable> <xsl:variable name="web-addr"> <xsl:choose> <xsl:when test="$name-caps='SPECIAL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Start </xsl:text></xsl:when> <xsl:when test="$name-caps='DUMMY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Dummy+Job+Entry </xsl:text></xsl:when> <xsl:when test="$name-caps='ABORT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Abort+Job </xsl:text></xsl:when> <xsl:when test="$name-caps='MSGBOX_INFO'"><xsl:text>http://wiki.pentaho.com/display/EAI/Display+Msgbox+info </xsl:text></xsl:when> <xsl:when test="$name-caps='JOB'"><xsl:text>http://wiki.pentaho.com/display/EAI/Job+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='PING'"><xsl:text>http://wiki.pentaho.com/display/EAI/Ping+a+host </xsl:text></xsl:when> <xsl:when test="$name-caps='SUCCESS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Success </xsl:text></xsl:when> <xsl:when test="$name-caps='TRAN'"><xsl:text>http://wiki.pentaho.com/display/EAI/Transformation+%28job+entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='WRITE_TO_LOG'"><xsl:text>http://wiki.pentaho.com/display/EAI/Write+to+log </xsl:text></xsl:when> <xsl:when test="$name-caps='GET_POP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Mails+from+POP </xsl:text></xsl:when> <xsl:when test="$name-caps='MAIL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mail </xsl:text></xsl:when> <xsl:when test="$name-caps='ADD_RESULT_FILENAMES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+filenames+to+result </xsl:text></xsl:when> <xsl:when test="$name-caps='VALUEMAPPER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Value+Mapper </xsl:text></xsl:when> <xsl:when test="$name-caps='COPY_FILES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Copy+Files </xsl:text></xsl:when> <xsl:when test="$name-caps='CREATE_FOLDER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Create+a+folder </xsl:text></xsl:when> <xsl:when test="$name-caps='CREATE_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Create+a+file </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+a+file </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_RESULT_FILENAMES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+filenames+from+result </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FILES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+Files </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE_FOLDERS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete+folders </xsl:text></xsl:when> <xsl:when test="$name-caps='FILE_COMPARE'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+compare </xsl:text></xsl:when> <xsl:when test="$name-caps='HTTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/HTTP </xsl:text></xsl:when> <xsl:when test="$name-caps='MOVE_FILES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Move+files </xsl:text></xsl:when> <xsl:when test="$name-caps='UNZIP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Unzip+file </xsl:text></xsl:when> <xsl:when test="$name-caps='WAIT_FOR_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Wait+for+a+file </xsl:text></xsl:when> <xsl:when test="$name-caps='ZIP_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Zip+files </xsl:text></xsl:when> <xsl:when test="$name-caps='TRUNCATE_TABLES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Truncate+tables </xsl:text></xsl:when> <xsl:when test="$name-caps='FOLDER_IS_EMPTY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Check+if+a+folder+is+empty </xsl:text></xsl:when> <xsl:when test="$name-caps='FILES_EXIST'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+Exists+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='COLUMNS_EXIST'"><xsl:text>http://wiki.pentaho.com/display/EAI/Columns+exist+in+a+table </xsl:text></xsl:when> <xsl:when test="$name-caps='FILE_EXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+Exists+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLE_EXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Exists+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='WAIT_FOR_FILE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Wait+for </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Evaluating+conditions+in+The+JavaScript+job+entry </xsl:text></xsl:when> <xsl:when test="$name-caps='SQL'"><xsl:text>http://wiki.pentaho.com/display/EAI/SQL </xsl:text></xsl:when> <xsl:when test="$name-caps='SHELL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Shell </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Bulkload+into+MySQL </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Check+if+XML+file+is+well+formed </xsl:text></xsl:when> <xsl:when test="$name-caps='DTD_VALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/DTD+Validator+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='XSD_VALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSD+Validator+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='XSLT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSL+Transformation+%28Job+Entry%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='FTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+a+file+with+FTP </xsl:text></xsl:when> <xsl:when test="$name-caps='SFTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+a+file+with+SFTP </xsl:text></xsl:when> <xsl:when test="$name-caps='ACCESSINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Access+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='CSVINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/CSV+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/De-serialize+from+file </xsl:text></xsl:when> <xsl:when test="$name-caps='EXCELINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Excel+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Fixed+File+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Generate+Rows </xsl:text></xsl:when> <xsl:when test="$name-caps='RANDOMVALUE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Generate+Random+Value </xsl:text></xsl:when> <xsl:when test="$name-caps='GETFILENAMES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+File+Names </xsl:text></xsl:when> <xsl:when test="$name-caps='GETFILESROWSCOUNT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Files+Row+Count </xsl:text></xsl:when> <xsl:when test="$name-caps='SYSTEMINFO'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+System+Info </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Data+From+XML </xsl:text></xsl:when> <xsl:when test="$name-caps='LDAPINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/LDAP+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='LDIFINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/LDIF+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='MONDRIANINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mondrian+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='PROPERTYINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Property+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='RSSINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/RSS+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Streaming+XML+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='TEXTFILEINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Text+File+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='XBASEINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XBase+Input </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/XML+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='ACCESSOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Access+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='DELETE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delete </xsl:text></xsl:when> <xsl:when test="$name-caps='EXCELOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Excel+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='INSERTUPDATE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Insert+-+Update </xsl:text></xsl:when> <xsl:when test="$name-caps='PROPERTYOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Property+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='SQLFILEOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/SQL+File+Output </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Serialize+to+file </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='TEXTFILEOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Text+File+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='UPDATE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Update </xsl:text></xsl:when> <xsl:when test="$name-caps='XMLOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XML+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='ABORT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Abort </xsl:text></xsl:when> <xsl:when test="$name-caps='ADDXML'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+XML </xsl:text></xsl:when> <xsl:when test="$name-caps='CHECKSUM'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+a+checksum </xsl:text></xsl:when> <xsl:when test="$name-caps='CONSTANT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+Constants </xsl:text></xsl:when> <xsl:when test="$name-caps='SEQUENCE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Add+sequence </xsl:text></xsl:when> <xsl:when test="$name-caps='ANALYTICQUERY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Analytic+Query </xsl:text></xsl:when> <xsl:when test="$name-caps='APPEND'"><xsl:text>http://wiki.pentaho.com/display/EAI/Append+streams </xsl:text></xsl:when> <xsl:when test="$name-caps='BLOCKINGSTEP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Blocking+step </xsl:text></xsl:when> <xsl:when test="$name-caps='CALCULATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/Calculator </xsl:text></xsl:when> <xsl:when test="$name-caps='CLONEROW'"><xsl:text>http://wiki.pentaho.com/display/EAI/Clone+row </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Closure+Generator </xsl:text></xsl:when> <xsl:when test="$name-caps='VALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/Data+Validator </xsl:text></xsl:when> <xsl:when test="$name-caps='DELAY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Delay+row </xsl:text></xsl:when> <xsl:when test="$name-caps='DUMMY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Dummy+%28do+nothing%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='FILTERROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Filter+rows </xsl:text></xsl:when> <xsl:when test="$name-caps='GROUPBY'"><xsl:text>http://wiki.pentaho.com/display/EAI/Group+By </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Metadata+Structure </xsl:text></xsl:when> <xsl:when test="$name-caps='NULLIF'"><xsl:text>http://wiki.pentaho.com/display/EAI/Null+If </xsl:text></xsl:when> <xsl:when test="$name-caps='NORMALISER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Row+Normalizer </xsl:text></xsl:when> <xsl:when test="$name-caps='DENORMALISER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Row+De-normalizer </xsl:text></xsl:when> <xsl:when test="$name-caps='FLATTENER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Flattener </xsl:text></xsl:when> <xsl:when test="$name-caps='SELECTVALUES'"><xsl:text>http://wiki.pentaho.com/display/EAI/Select+Values </xsl:text></xsl:when> <xsl:when test="$name-caps='SORTROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Sort+rows </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Field+Splitter </xsl:text></xsl:when> <xsl:when test="$name-caps='SPLITFIELDTOROWS3'"><xsl:text>http://wiki.pentaho.com/display/EAI/Split+field+to+rows </xsl:text></xsl:when> <xsl:when test="$name-caps='SWITCHCASE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Switch-Case </xsl:text></xsl:when> <xsl:when test="$name-caps='UNIQUE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Unique+Rows </xsl:text></xsl:when> <xsl:when test="$name-caps=''"><xsl:text>http://wiki.pentaho.com/display/EAI/Value+Mapper </xsl:text></xsl:when> <xsl:when test="$name-caps='XSDVALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSD+Validator </xsl:text></xsl:when> <xsl:when test="$name-caps='XSLT'"><xsl:text>http://wiki.pentaho.com/display/EAI/XSL+Transformation </xsl:text></xsl:when> <xsl:when test="$name-caps='DBPROC'"><xsl:text>http://wiki.pentaho.com/display/EAI/Call+DB+Procedure </xsl:text></xsl:when> <xsl:when test="$name-caps='COLUMNEXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Check+if+a+column+exists </xsl:text></xsl:when> <xsl:when test="$name-caps='DBJOIN'"><xsl:text>http://wiki.pentaho.com/display/EAI/Database+Join </xsl:text></xsl:when> <xsl:when test="$name-caps='DBLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Database+lookup </xsl:text></xsl:when> <xsl:when test="$name-caps='FILEEXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/File+exists </xsl:text></xsl:when> <xsl:when test="$name-caps='HTTP'"><xsl:text>http://wiki.pentaho.com/display/EAI/HTTP+Client </xsl:text></xsl:when> <xsl:when test="$name-caps='STREAMLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Stream+Lookup </xsl:text></xsl:when> <xsl:when test="$name-caps='TABLEEXISTS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Table+Exists </xsl:text></xsl:when> <xsl:when test="$name-caps='WEBSERVICELOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Web+services+lookup </xsl:text></xsl:when> <xsl:when test="$name-caps='JOINROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Join+Rows+%28Cartesian+product%29 </xsl:text></xsl:when> <xsl:when test="$name-caps='MERGEJOIN'"><xsl:text>http://wiki.pentaho.com/display/EAI/Merge+Join </xsl:text></xsl:when> <xsl:when test="$name-caps='MERGEROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Merge+rows </xsl:text></xsl:when> <xsl:when test="$name-caps='SORTEDMERGE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Sorted+Merge </xsl:text></xsl:when> <xsl:when test="$name-caps='XMLJOIN'"><xsl:text>http://wiki.pentaho.com/display/EAI/XML+Join </xsl:text></xsl:when> <xsl:when test="$name-caps='EXECSQL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Execute+SQL+script </xsl:text></xsl:when> <xsl:when test="$name-caps='SCRIPTVALUEMOD'"><xsl:text>http://wiki.pentaho.com/display/EAI/Modified+Java+Script+Value </xsl:text></xsl:when> <xsl:when test="$name-caps='REGEXEVAL'"><xsl:text>http://wiki.pentaho.com/display/EAI/Regex+Evaluation </xsl:text></xsl:when> <xsl:when test="$name-caps='FORMULA'"><xsl:text>http://wiki.pentaho.com/display/EAI/Formula </xsl:text></xsl:when> <xsl:when test="$name-caps='COMBINATIONLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Combination+lookup-update </xsl:text></xsl:when> <xsl:when test="$name-caps='DIMENSIONLOOKUP'"><xsl:text>http://wiki.pentaho.com/display/EAI/Dimension+Lookup-Update </xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPING'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mapping </xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPINGINPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mapping+Input </xsl:text></xsl:when> <xsl:when test="$name-caps='MAPPINGOUTPUT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mapping+Output </xsl:text></xsl:when> <xsl:when test="$name-caps='ROWSTORESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Copy+rows+to+result </xsl:text></xsl:when> <xsl:when test="$name-caps='GETVARIABLE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+Variable </xsl:text></xsl:when> <xsl:when test="$name-caps='FILESFROMRESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+files+from+result </xsl:text></xsl:when> <xsl:when test="$name-caps='ROWSFROMRESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Get+rows+from+result </xsl:text></xsl:when> <xsl:when test="$name-caps='SETVARIABLE'"><xsl:text>http://wiki.pentaho.com/display/EAI/Set+Variable </xsl:text></xsl:when> <xsl:when test="$name-caps='FILESTORESULT'"><xsl:text>http://wiki.pentaho.com/display/EAI/Set+files+in+result </xsl:text></xsl:when> <xsl:when test="$name-caps='MAILVALIDATOR'"><xsl:text>http://wiki.pentaho.com/display/EAI/Mail+Validator </xsl:text></xsl:when> <xsl:when test="$name-caps='AGGREGATEROWS'"><xsl:text>http://wiki.pentaho.com/display/EAI/Aggregate+Rows </xsl:text></xsl:when> <xsl:when test="$name-caps='ORABULKLOADER'"><xsl:text>http://wiki.pentaho.com/display/EAI/Oracle+Bulk+Loader </xsl:text></xsl:when> <xsl:otherwise><xsl:text>http://wiki.pentaho.com/display/EAI/Latest+Pentaho+Data+Integration+%28aka+Kettle%29+Documentation</xsl:text></xsl:otherwise> </xsl:choose> </xsl:variable> <a> <xsl:attribute name="href"> <xsl:value-of select="$web-addr"/> </xsl:attribute> <xsl:value-of select="$name"/> </a> </xsl:template> </xsl:stylesheet> testing 1 2123 3
Related content
XSL Transformation (Job Entry)
XSL Transformation (Job Entry)
Read with this
03. Hello World Example
03. Hello World Example
More like this
Pentaho Data Integration Job Entries
Pentaho Data Integration Job Entries
Read with this
XML Output
XML Output
More like this
Transformation Executor
Transformation Executor
More like this
Mapping
Mapping
More like this