From 7060ef6d6ebb8224bbbfd35dcfb3ea20acc4233c Mon Sep 17 00:00:00 2001 From: "stefan.eichenberger59" Date: Sun, 28 Apr 2013 16:54:25 +0000 Subject: [PATCH] changes kettle-report.xslt should fix issues 37 and 40 (except for plug-ins) more details in changes are found in change_log.txt --- change_log.txt | 57 + constructor/AllOperators/Jobs/BigData.kjb | 253 ++ constructor/AllOperators/Jobs/BulkLoading.kjb | 143 ++ constructor/AllOperators/Jobs/Conditions.kjb | 223 ++ .../AllOperators/Jobs/FileEncryption.kjb | 126 + .../AllOperators/Jobs/FileManagement.kjb | 381 +++ .../AllOperators/Jobs/FileTransfer.kjb | 347 +++ constructor/AllOperators/Jobs/General.kjb | 179 ++ constructor/AllOperators/Jobs/Mail.kjb | 144 ++ constructor/AllOperators/Jobs/Repository.kjb | 81 + constructor/AllOperators/Jobs/Scripting.kjb | 91 + constructor/AllOperators/Jobs/Utility.kjb | 208 ++ constructor/AllOperators/Jobs/XML.kjb | 104 + .../AllOperators/Transformations/Agile.ktr | 142 ++ .../AllOperators/Transformations/BigData.ktr | 517 ++++ .../Transformations/BulkLoading.ktr | 439 ++++ .../Transformations/DataWarehouse.ktr | 157 ++ .../Transformations/Deprecated.ktr | 207 ++ .../Transformations/Experimental.ktr | 197 ++ .../AllOperators/Transformations/Flow.ktr | 362 +++ .../AllOperators/Transformations/Inline.ktr | 139 ++ .../AllOperators/Transformations/Input.ktr | 1400 +++++++++++ .../AllOperators/Transformations/Job.ktr | 192 ++ .../AllOperators/Transformations/Joins.ktr | 208 ++ .../AllOperators/Transformations/Lookups.ktr | 502 ++++ .../AllOperators/Transformations/Mapping.ktr | 159 ++ .../AllOperators/Transformations/Output.ktr | 909 ++++++++ .../AllOperators/Transformations/Palo.ktr | 175 ++ .../Transformations/Scripting.ktr | 247 ++ .../Transformations/Statistics.ktr | 239 ++ .../Transformations/Transform.ktr | 725 ++++++ .../AllOperators/Transformations/Utility.ktr | 421 ++++ .../Transformations/Validation.ktr | 180 ++ constructor/Create_Files.kjb | 225 ++ constructor/Create_IO_list.xsl | 65 + constructor/Create_job_css.xsl | 123 + constructor/Create_transformation_css.xsl | 125 + constructor/kettle-job-entries.xml | 554 +++++ constructor/kettle-steps.xml | 1477 ++++++++++++ pdi/document-folder.kjb | 996 ++++---- pdi/process-files.ktr | 100 +- template/css/default.css | 4 +- template/css/job.css | 817 +++---- template/css/kettle.css | 5 +- template/css/transformation.css | 1679 ++++++------- template/images/CCG.png | Bin 0 -> 2434 bytes template/images/ConcatFields.png | Bin 0 -> 459 bytes template/images/DTU.png | Bin 0 -> 1066 bytes template/images/EDI2XML.png | Bin 0 -> 4041 bytes template/images/ESB.png | Bin 0 -> 1605 bytes template/images/GAN.png | Bin 0 -> 1337 bytes template/images/GPGDecrypt.png | Bin 0 -> 1775 bytes template/images/GPGEncrypt.png | Bin 0 -> 1996 bytes template/images/GRN.png | Bin 0 -> 982 bytes template/images/HTOP.png | Bin 0 -> 2581 bytes template/images/JFR.png | Bin 0 -> 2620 bytes template/images/JSI.png | Bin 0 -> 2042 bytes template/images/JSO.png | Bin 0 -> 2157 bytes template/images/LDO.png | Bin 0 -> 1681 bytes template/images/MJOINS.png | Bin 0 -> 934 bytes template/images/PGPVerif.png | Bin 0 -> 1821 bytes template/images/PRS.png | Bin 0 -> 702 bytes template/images/REST.png | Bin 0 -> 1987 bytes template/images/SASInput.png | Bin 0 -> 2009 bytes template/images/SCE.png | Bin 0 -> 913 bytes template/images/SCG.png | Bin 0 -> 950 bytes template/images/SSTAS.png | Bin 0 -> 481 bytes template/images/STM.png | Bin 0 -> 924 bytes template/images/TJE.png | Bin 0 -> 1468 bytes template/images/WFS.png | Bin 0 -> 1608 bytes template/images/XWS.png | Bin 0 -> 4203 bytes template/images/YamlI.png | Bin 0 -> 1297 bytes template/images/addSmall.png | Bin 0 -> 281 bytes template/images/add_xml.png | Bin 0 -> 1232 bytes template/images/autodoc.png | Bin 0 -> 1972 bytes template/images/copySmall.png | Bin 0 -> 421 bytes template/images/deleteSmall.png | Bin 0 -> 431 bytes template/images/edfScript.png | Bin 0 -> 541 bytes template/images/history_get_all.png | Bin 0 -> 402 bytes template/images/history_get_next.png | Bin 0 -> 323 bytes template/images/mongodb-input.png | Bin 0 -> 1403 bytes template/images/ssh.png | Bin 0 -> 745 bytes template/images/xml_input_stream.png | Bin 0 -> 627 bytes template/index.html | 2 +- xslt/file.xslt | 1 + xslt/io_steps.xslt | 15 + xslt/kettle-report.xslt | 2076 +++++++++-------- xslt/shared.xslt | 30 +- xslt/toc.xslt | 495 ++-- 89 files changed, 15747 insertions(+), 2896 deletions(-) create mode 100644 change_log.txt create mode 100644 constructor/AllOperators/Jobs/BigData.kjb create mode 100644 constructor/AllOperators/Jobs/BulkLoading.kjb create mode 100644 constructor/AllOperators/Jobs/Conditions.kjb create mode 100644 constructor/AllOperators/Jobs/FileEncryption.kjb create mode 100644 constructor/AllOperators/Jobs/FileManagement.kjb create mode 100644 constructor/AllOperators/Jobs/FileTransfer.kjb create mode 100644 constructor/AllOperators/Jobs/General.kjb create mode 100644 constructor/AllOperators/Jobs/Mail.kjb create mode 100644 constructor/AllOperators/Jobs/Repository.kjb create mode 100644 constructor/AllOperators/Jobs/Scripting.kjb create mode 100644 constructor/AllOperators/Jobs/Utility.kjb create mode 100644 constructor/AllOperators/Jobs/XML.kjb create mode 100644 constructor/AllOperators/Transformations/Agile.ktr create mode 100644 constructor/AllOperators/Transformations/BigData.ktr create mode 100644 constructor/AllOperators/Transformations/BulkLoading.ktr create mode 100644 constructor/AllOperators/Transformations/DataWarehouse.ktr create mode 100644 constructor/AllOperators/Transformations/Deprecated.ktr create mode 100644 constructor/AllOperators/Transformations/Experimental.ktr create mode 100644 constructor/AllOperators/Transformations/Flow.ktr create mode 100644 constructor/AllOperators/Transformations/Inline.ktr create mode 100644 constructor/AllOperators/Transformations/Input.ktr create mode 100644 constructor/AllOperators/Transformations/Job.ktr create mode 100644 constructor/AllOperators/Transformations/Joins.ktr create mode 100644 constructor/AllOperators/Transformations/Lookups.ktr create mode 100644 constructor/AllOperators/Transformations/Mapping.ktr create mode 100644 constructor/AllOperators/Transformations/Output.ktr create mode 100644 constructor/AllOperators/Transformations/Palo.ktr create mode 100644 constructor/AllOperators/Transformations/Scripting.ktr create mode 100644 constructor/AllOperators/Transformations/Statistics.ktr create mode 100644 constructor/AllOperators/Transformations/Transform.ktr create mode 100644 constructor/AllOperators/Transformations/Utility.ktr create mode 100644 constructor/AllOperators/Transformations/Validation.ktr create mode 100644 constructor/Create_Files.kjb create mode 100644 constructor/Create_IO_list.xsl create mode 100644 constructor/Create_job_css.xsl create mode 100644 constructor/Create_transformation_css.xsl create mode 100644 constructor/kettle-job-entries.xml create mode 100644 constructor/kettle-steps.xml create mode 100644 template/images/CCG.png create mode 100644 template/images/ConcatFields.png create mode 100644 template/images/DTU.png create mode 100644 template/images/EDI2XML.png create mode 100644 template/images/ESB.png create mode 100644 template/images/GAN.png create mode 100644 template/images/GPGDecrypt.png create mode 100644 template/images/GPGEncrypt.png create mode 100644 template/images/GRN.png create mode 100644 template/images/HTOP.png create mode 100644 template/images/JFR.png create mode 100644 template/images/JSI.png create mode 100644 template/images/JSO.png create mode 100644 template/images/LDO.png create mode 100644 template/images/MJOINS.png create mode 100644 template/images/PGPVerif.png create mode 100644 template/images/PRS.png create mode 100644 template/images/REST.png create mode 100644 template/images/SASInput.png create mode 100644 template/images/SCE.png create mode 100644 template/images/SCG.png create mode 100644 template/images/SSTAS.png create mode 100644 template/images/STM.png create mode 100644 template/images/TJE.png create mode 100644 template/images/WFS.png create mode 100644 template/images/XWS.png create mode 100644 template/images/YamlI.png create mode 100644 template/images/addSmall.png create mode 100644 template/images/add_xml.png create mode 100644 template/images/autodoc.png create mode 100644 template/images/copySmall.png create mode 100644 template/images/deleteSmall.png create mode 100644 template/images/edfScript.png create mode 100644 template/images/history_get_all.png create mode 100644 template/images/history_get_next.png create mode 100644 template/images/mongodb-input.png create mode 100644 template/images/ssh.png create mode 100644 template/images/xml_input_stream.png create mode 100644 xslt/io_steps.xslt diff --git a/change_log.txt b/change_log.txt new file mode 100644 index 0000000..698aff6 --- /dev/null +++ b/change_log.txt @@ -0,0 +1,57 @@ +This file lists changes done ontop of r79 + +xslt/Kettle_Report.xslt + - added imported io_steps.xslt + - unconditionally display connections ( removed) + - fixed some bugs + - removed some un-used code + - some incorrect XPaths + - connections now reported as links + - steps in highlevel flow diagram now reported as links + - info section for transformations was missing + - Highlevel flow diagram now contains links to steps + - outcommented flat files (not yet supported) + - improved reporting of steps: + - steps separated with horizontal lines + - steps now report hops (to/from) in a separate sub-section + - mappings (ETL Metadata Injection), lookups, database tables + (this solves most of issue 37), all tabs of 'Select Values' step + +xslt/files.xslt + - define variable 'modified_date' based on file property + +xslt/shared.xslt + - template description changed + - maintain formatting with
+     - different font if 'no description'
+
+xslt/toc.xslt
+   - outcommented yet unsupported sections
+
+document-folder.kjb
+   - none
+
+process-files.ktr
+   - added (but disabled) flow for full re-build (instead of 'make')
+
+template/index.html
+   - space reserved for frame on left adapted
+
+template/default.css
+   - a:hover constrained to [href]
+
+template/kettle.css
+   - changed font for .description, .extended-description to courier (blue)
+
+template/kettle.css, job.css
+   - created with constructor job
+
+template/images
+   - updated to kettle 4.4.0
+   
+constructor/*
+   - used to adapt kettle-cookbook to new versions of kettle
+     (see job descritption of Create_Files.kjb for details)
+   - contains sub-dir ./AllOperators with a bunch of jobs and transformations
+     simply instantiating all operators - helps visualizing what the constructor
+     misses (namely, plug-ins)
\ No newline at end of file
diff --git a/constructor/AllOperators/Jobs/BigData.kjb b/constructor/AllOperators/Jobs/BigData.kjb
new file mode 100644
index 0000000..769e4ca
--- /dev/null
+++ b/constructor/AllOperators/Jobs/BigData.kjb
@@ -0,0 +1,253 @@
+
+
+  BigData
+    
+    
+    
+  /
+  -
+  2013/04/10 22:24:27.968
+  -
+  2013/04/10 22:24:27.968
+    
+    
+    
+    
+
+
+
+
+
+
+ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD
+
+
+
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + Amazon EMR Job Executor + + EMRJobExecutorPlugin + + + + Encrypted + Encrypted + + 2 + Small [m1.small] + Small [m1.small] + + N + 60 + + N + Y + 0 + 90 + 30 + + + Amazon Hive Job Executor + + HiveJobExecutorPlugin + + + + Encrypted + Encrypted + + + 2 + Small [m1.small] + Small [m1.small] + + N + N + 60 + + N + Y + 0 + 220 + 30 + + + Hadoop Copy Files + + HadoopCopyFilesPlugin + Y + N + N + N + N + N + N + N + + + N + Y + 0 + 350 + 30 + + + Hadoop Job Executor + + HadoopJobExecutorPlugin + + Y + + + N + N + 60 + 60 + + + + + + + + + + + + + + + 1 + 1 + + + N + Y + 0 + 470 + 30 + + + Oozie Job Executor + + OozieJobExecutor + Oozie Job Executor + 300 + true + N + Y + 0 + 590 + 30 + + + Pentaho MapReduce + + HadoopTransJobExecutorPlugin + + + + + + + + + + Y + + + + + Y + + + + + + + N + 60 + + + + N + N + N + N + N + + + + + + 1 + 1 + + + N + Y + 0 + 90 + 110 + + + Pig Script Executor + + HadoopPigScriptExecutorPlugin + + + + + + N + N + + + N + Y + 0 + 220 + 110 + + + Sqoop Export + + SqoopExport + Sqoop Export + 300 + true + N + Y + 0 + 350 + 110 + + + Sqoop Import + + SqoopImport + Sqoop Import + 300 + true + N + Y + 0 + 470 + 110 + + + + + + + diff --git a/constructor/AllOperators/Jobs/BulkLoading.kjb b/constructor/AllOperators/Jobs/BulkLoading.kjb new file mode 100644 index 0000000..dd0b328 --- /dev/null +++ b/constructor/AllOperators/Jobs/BulkLoading.kjb @@ -0,0 +1,143 @@ + + + BulkLoading + + + + / + - + 2013/04/10 22:24:02.792 + - + 2013/04/10 22:24:02.792 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + BulkLoad from Mysql into file + + MYSQL_BULK_FILE + + + + + + N + + 0 + + Y + 0 + 2 + N + + N + Y + 0 + 90 + 30 + + + BulkLoad into MSSQL + + MSSQL_BULK_LOAD + + + + char + + + OEM + + + N + N + N + N + N + 0 + 0 + + Asc + 0 + 0 + 0 + + N + N + N + + N + Y + 0 + 210 + 30 + + + BulkLoad into Mysql + + MYSQL_BULK_LOAD + + + + + + + + + Y + 0 + + Y + 0 + N + + N + Y + 0 + 330 + 30 + + + MS Access Bulk Load + + MS_ACCESS_BULK_LOAD + N + N + N + 10 + success_if_no_errors + + + N + Y + 0 + 440 + 30 + + + + + + + diff --git a/constructor/AllOperators/Jobs/Conditions.kjb b/constructor/AllOperators/Jobs/Conditions.kjb new file mode 100644 index 0000000..8c77c41 --- /dev/null +++ b/constructor/AllOperators/Jobs/Conditions.kjb @@ -0,0 +1,223 @@ + + + Conditions + + + + / + - + 2013/04/10 22:23:06.089 + - + 2013/04/10 22:23:06.089 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + Check Db connections + + CHECK_DB_CONNECTIONS + + + N + Y + 0 + 90 + 40 + + + Check files locked + + CHECK_FILES_LOCKED + N + N + + + N + Y + 0 + 200 + 40 + + + Check if a folder is empty + + FOLDER_IS_EMPTY + + N + N + + N + Y + 0 + 310 + 40 + + + Check webservice availability + + WEBSERVICE_AVAILABLE + + 0 + 0 + N + Y + 0 + 420 + 40 + + + Checks if files exist + + FILES_EXIST + + + + N + Y + 0 + 530 + 40 + + + Columns exist in a table + + COLUMNS_EXIST + + + + + + N + Y + 0 + 640 + 40 + + + Evaluate files metrics + + EVAL_FILES_METRICS + + + + + + + + + + greater + files + size + bytes + N + Y + 0 + 760 + 40 + + + Evaluate rows number in a table + + EVAL_TABLE_CONTENT + + + + rows_count_greater + 0 + N + N + + N + Y + N + Y + 0 + 90 + 120 + + + File Exists + + FILE_EXISTS + + N + Y + 0 + 200 + 120 + + + Simple evaluation + + SIMPLE_EVAL + field + + + string + + + + + equal + equal + false + N + N + Y + 0 + 310 + 120 + + + Table exists + + TABLE_EXISTS + + + + N + Y + 0 + 420 + 120 + + + Wait for + + DELAY + + 0 + N + Y + 0 + 530 + 120 + + + + + + + diff --git a/constructor/AllOperators/Jobs/FileEncryption.kjb b/constructor/AllOperators/Jobs/FileEncryption.kjb new file mode 100644 index 0000000..a4d5de3 --- /dev/null +++ b/constructor/AllOperators/Jobs/FileEncryption.kjb @@ -0,0 +1,126 @@ + + + FileEncryption + + + + / + - + 2013/04/10 22:28:42.494 + - + 2013/04/10 22:28:42.494 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + Decrypt files with PGP + + PGP_DECRYPT_FILES + + N + N + N + N + N + N + N + N + + 10 + success_if_no_errors + N + N + do_nothing + + do_nothing + + N + N + N + N + N + + + N + Y + 0 + 80 + 40 + + + Encrypt files with PGP + + PGP_ENCRYPT_FILES + + N + N + N + N + N + N + N + N + + 10 + success_if_no_errors + N + N + do_nothing + + do_nothing + + N + N + N + N + N + N + + + N + Y + 0 + 200 + 40 + + + Verify file signature with PGP + + PGP_VERIFY_FILES + + + + N + N + Y + 0 + 310 + 40 + + + + + + + diff --git a/constructor/AllOperators/Jobs/FileManagement.kjb b/constructor/AllOperators/Jobs/FileManagement.kjb new file mode 100644 index 0000000..939e69a --- /dev/null +++ b/constructor/AllOperators/Jobs/FileManagement.kjb @@ -0,0 +1,381 @@ + + + FileManagement + + + + / + - + 2013/04/10 22:21:49.769 + - + 2013/04/10 22:21:49.769 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + Add filenames to result + + ADD_RESULT_FILENAMES + N + N + N + + + N + Y + 0 + 80 + 40 + + + Compare folders + + FOLDERS_COMPARE + N + N + N + all + + + + N + Y + 0 + 190 + 40 + + + Convert file between DOS and UNIX + + DOS_UNIX_CONVERTER + N + N + 10 + success_if_no_errors + all_filenames + + + N + Y + 0 + 310 + 40 + + + Copy Files + + COPY_FILES + Y + N + N + N + N + N + N + N + + + N + Y + 0 + 420 + 40 + + + Copy or Move result filenames + + COPY_MOVE_RESULT_FILENAMES + + N + + + + 10 + success_if_no_errors + N + N + N + + copy + N + N + N + Y + Y + N + Y + 0 + 530 + 40 + + + Create a folder + + CREATE_FOLDER + + Y + N + Y + 0 + 640 + 40 + + + Create file + + CREATE_FILE + + Y + N + N + Y + 0 + 750 + 40 + + + Delete file + + DELETE_FILE + + N + N + Y + 0 + 850 + 40 + + + Delete filenames from result + + DELETE_RESULT_FILENAMES + + N + + + N + Y + 0 + 80 + 120 + + + Delete files + + DELETE_FILES + N + N + + + N + Y + 0 + 190 + 120 + + + Delete folders + + DELETE_FOLDERS + N + success_if_no_errors + 10 + + + N + Y + 0 + 310 + 120 + + + File Compare + + FILE_COMPARE + + + N + N + Y + 0 + 420 + 120 + + + HTTP + + HTTP + + + N + N + + + + N + + Encrypted + + + + Y + + + N + Y + 0 + 530 + 120 + + + Move Files + + MOVE_FILES + Y + N + N + N + N + N + N + N + N + + 10 + success_if_no_errors + N + N + do_nothing + + do_nothing + + N + N + N + N + N + N + + + N + Y + 0 + 640 + 120 + + + Unzip file + + UNZIP + + + + + + 0 + N + N + N + N + N + N + + N + N + 10 + + success_if_no_errors + SKIP + N + N + N + Y + 0 + 750 + 120 + + + Wait for file + + WAIT_FOR_FILE + + 0 + 60 + N + N + N + N + Y + 0 + 850 + 120 + + + Write to file + + WRITE_TO_FILE + + N + N + + + N + Y + 0 + 80 + 200 + + + Zip file + + ZIP_FILE + + 1 + 2 + + + + + 0 + N + N + N + N + N + N + + N + Y + N + Y + 0 + 190 + 200 + + + + + + + diff --git a/constructor/AllOperators/Jobs/FileTransfer.kjb b/constructor/AllOperators/Jobs/FileTransfer.kjb new file mode 100644 index 0000000..95bfcf4 --- /dev/null +++ b/constructor/AllOperators/Jobs/FileTransfer.kjb @@ -0,0 +1,347 @@ + + + FileTransfer + + + + 0 + / + - + 2013/04/10 22:26:40.215 + - + 2013/04/10 22:26:40.215 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + FTP Delete + + FTP_DELETE + FTP + + 21 + + Encrypted + + + 0 + N + N + + + + Encrypted + N + + + 10 + success_is_all_files_downloaded + N + FTP_CONNECTION + + 1080 + + Encrypted + N + Y + 0 + 80 + 30 + + + Get a file with FTP + + FTP + 21 + + + Encrypted + + + + N + 0 + N + N + N + ISO-8859-1 + N + + N + N + N + + N + Y + N + + + + Encrypted + + 1080 + + Encrypted + ifFileExistsSkip + 10 + success_if_no_errors + N + Y + 0 + 190 + 30 + + + Get a file with FTPS + + FTPS_GET + 21 + + + Encrypted + + + + N + 0 + N + N + N + N + + N + N + N + + N + Y + N + + + + Encrypted + ifFileExistsSkip + 10 + success_if_no_errors + FTP_CONNECTION + N + Y + 0 + 300 + 30 + + + Get a file with SFTP + + SFTP + + 22 + + Encrypted + + + + N + Y + N + N + N + + Encrypted + none + + + + + Encrypted + N + Y + 0 + 410 + 30 + + + Put a file with FTP + + FTP_PUT + + 21 + + Encrypted + + + + N + 0 + N + N + N + ISO-8859-1 + + + + Encrypted + + 1080 + + Encrypted + N + Y + 0 + 520 + 30 + + + Put a file with SFTP + + SFTPPUT + + 22 + + Encrypted + + + + N + N + N + + Encrypted + none + + + + + Encrypted + N + nothing + + N + N + N + Y + 0 + 630 + 30 + + + SSH2 Get + + SSH2_GET + + + Encrypted + 22 + + + + N + N + + + + + N + + + N + do_nothing + + N + N + 0 + N + N + N + Y + 0 + 80 + 120 + + + SSH2 Put + + SSH2_PUT + + + Encrypted + 22 + + + + N + N + + + + + N + + + N + N + do_nothing + + N + N + 0 + N + Y + 0 + 190 + 120 + + + Upload files to FTPS + + FTPS_PUT + + 21 + + Encrypted + + + + N + 0 + N + N + N + + + + + FTP_CONNECTION + N + Y + 0 + 300 + 120 + + + + + + + diff --git a/constructor/AllOperators/Jobs/General.kjb b/constructor/AllOperators/Jobs/General.kjb new file mode 100644 index 0000000..afc27f7 --- /dev/null +++ b/constructor/AllOperators/Jobs/General.kjb @@ -0,0 +1,179 @@ + + + General + + + + / + - + 2013/04/10 22:20:59.721 + - + 2013/04/10 22:20:59.721 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + START + + SPECIAL + Y + N + N + 0 + 0 + 60 + 12 + 0 + 1 + 1 + N + Y + 0 + 80 + 30 + + + DUMMY + + SPECIAL + N + Y + N + 0 + 0 + 60 + 12 + 0 + 1 + 1 + N + Y + 0 + 190 + 30 + + + Example plugin + + DummyJob + + + + N + Y + 0 + 290 + 30 + + + Job + + JOB + filename + + + + N + N + N + N + + + N + N + Nothing + + Y + N + N + N + N + N + Y + 0 + 390 + 30 + + + Set variables + + SET_VARIABLES + Y + + JVM + + + N + Y + 0 + 490 + 30 + + + Success + + SUCCESS + N + Y + 0 + 590 + 30 + + + Transformation + + TRANS + filename + + + + N + N + N + N + N + N + + + N + N + Basic + N + + N + Y + N + N + N + Y + 0 + 690 + 30 + + + + + + + diff --git a/constructor/AllOperators/Jobs/Mail.kjb b/constructor/AllOperators/Jobs/Mail.kjb new file mode 100644 index 0000000..b5388d1 --- /dev/null +++ b/constructor/AllOperators/Jobs/Mail.kjb @@ -0,0 +1,144 @@ + + + Mail + + + + / + - + 2013/04/10 22:21:31.489 + - + 2013/04/10 22:21:31.489 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + Get mails (POP3/IMAP) + + GET_POP + + + Encrypted + N + + + name_{SYS|hhmmss_MMddyyyy|}_#IdFile#.mail + 0 + + N + Y + Y + N + POP3 + + + imaplistall + 0 + + + N + + N + + N + + N + ignore + N + + + get + + N + N + nothing + N + N + + N + Y + 0 + 80 + 30 + + + Mail + + MAIL + + + + + + + + + N + + + + N + N + + N + N + + Encrypted + N + N + N + + + + + + + + N + Y + 0 + 210 + 30 + + + N + 0 + + noreply@domain.com + + Mail validator + + MAIL_VALIDATOR + N + Y + 0 + 330 + 30 + + + + + + + diff --git a/constructor/AllOperators/Jobs/Repository.kjb b/constructor/AllOperators/Jobs/Repository.kjb new file mode 100644 index 0000000..1a9e1a5 --- /dev/null +++ b/constructor/AllOperators/Jobs/Repository.kjb @@ -0,0 +1,81 @@ + + + Repository + + + + / + - + 2013/04/10 22:26:23.943 + - + 2013/04/10 22:26:23.943 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + N + + N + + Check if connected to repository + + CONNECTED_TO_REPOSITORY + N + Y + 0 + 80 + 30 + + + Export repository to XML file + + EXPORT_REPOSITORY + + + Encrypted + + if_file_exists_skip + export_all + + N + N + N + + N + N + N + 10 + success_if_no_errors + N + Y + 0 + 200 + 30 + + + + + + + diff --git a/constructor/AllOperators/Jobs/Scripting.kjb b/constructor/AllOperators/Jobs/Scripting.kjb new file mode 100644 index 0000000..93af4b1 --- /dev/null +++ b/constructor/AllOperators/Jobs/Scripting.kjb @@ -0,0 +1,91 @@ + + + Scripting + + + + / + - + 2013/04/10 22:23:44.521 + - + 2013/04/10 22:23:44.521 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + JavaScript + + EVAL + + result + N + N + Y + N + N + N + N + N + N + N + + + + + 570 + 30 + Y + + + + + User Defined Java Class + UserDefinedJavaClass + + Y + 1 + + none + + + + + + + N + + + 690 + 30 + Y + + + + + User Defined Java Expression + Janino + + Y + 1 + + none + + + + + 820 + 30 + Y + + + + + + + + N + diff --git a/constructor/AllOperators/Transformations/Statistics.ktr b/constructor/AllOperators/Transformations/Statistics.ktr new file mode 100644 index 0000000..deb6425 --- /dev/null +++ b/constructor/AllOperators/Transformations/Statistics.ktr @@ -0,0 +1,239 @@ + + + + Statistics + + + + Normal + / + + + + + +
+ + + +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDTRANSNAMEYTRANSNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ + +ID_BATCHYID_BATCHSEQ_NRYSEQ_NRLOGDATEYLOGDATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSINPUT_BUFFER_ROWSYINPUT_BUFFER_ROWSOUTPUT_BUFFER_ROWSYOUTPUT_BUFFER_ROWS + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSLOG_FIELDNLOG_FIELD + + + +
+ + 0.0 + 0.0 + + 10000 + 50 + 50 + N + Y + 50000 + Y + + N + 1000 + 100 + + + + + + + + + - + 2013/04/10 22:14:13.572 + - + 2013/04/10 22:14:13.572 + + + + + + + Analytic Query + AnalyticQuery + + Y + 1 + + none + + + + + + + + + 90 + 30 + Y + + + + + Group by + GroupBy + + Y + 1 + + none + + + N + N + + %%java.io.tmpdir%% + grp + N + + N + + + + + + + 210 + 30 + Y + + + + + Memory Group by + MemoryGroupBy + + Y + 1 + + none + + + N + + + + + + + 330 + 30 + Y + + + + + Output steps metrics + StepsMetrics + + Y + 1 + + none + + + + + Step name + Step id + Lines input + Lines output + Lines red + Lines updated + Lines written + Lines rejected + Duration + + + 460 + 30 + Y + + + + + Reservoir Sampling + ReservoirSampling + + Y + 1 + + none + + +100 +1 + + + 590 + 30 + Y + + + + + Sample rows + SampleRows + + Y + 1 + + none + + + 1 + + + + 710 + 30 + Y + + + + + Univariate Statistics + UnivariateStats + + Y + 1 + + none + + + + + 830 + 30 + Y + + + + + + + + N + diff --git a/constructor/AllOperators/Transformations/Transform.ktr b/constructor/AllOperators/Transformations/Transform.ktr new file mode 100644 index 0000000..3115112 --- /dev/null +++ b/constructor/AllOperators/Transformations/Transform.ktr @@ -0,0 +1,725 @@ + + + + Transforms + + + + Normal + / + + + + + +
+ + + +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDTRANSNAMEYTRANSNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ + +ID_BATCHYID_BATCHSEQ_NRYSEQ_NRLOGDATEYLOGDATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSINPUT_BUFFER_ROWSYINPUT_BUFFER_ROWSOUTPUT_BUFFER_ROWSYOUTPUT_BUFFER_ROWS + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSLOG_FIELDNLOG_FIELD + + + +
+ + 0.0 + 0.0 + + 10000 + 50 + 50 + N + Y + 50000 + Y + + N + 1000 + 100 + + + + + + + + + - + 2013/04/10 22:06:52.556 + - + 2013/04/10 22:06:52.556 + + + + + + + Add a checksum + CheckSum + + Y + 1 + + none + + + CRC32 + + hexadecimal + N + + + + + 100 + 30 + Y + + + + + Add constants + Constant + + Y + 1 + + none + + + + + + + 200 + 30 + Y + + + + + Add sequence + Sequence + + Y + 1 + + none + + + valuename + N + + + SEQ_ + Y + + 1 + 1 + 999999999 + + + 310 + 30 + Y + + + + + Add value fields changing sequence + FieldsChangeSequence + + Y + 1 + + none + + + 1 + 1 + + + + + + 420 + 30 + Y + + + + + Add XML + AddXML + + Y + 1 + + none + + + UTF-8 + xmlvaluename + Row + + Y + N + + + + + + 530 + 30 + Y + + + + + Calculator + Calculator + + Y + 1 + + none + + + + + 640 + 30 + Y + + + + + Closure Generator + ClosureGenerator + + Y + 1 + + none + + + + + + N + + + 740 + 30 + Y + + + + + Concat Fields + ConcatFields + + Y + 1 + + none + + + ; + " + N + N +
N
+
N
+ DOS + None + + + N + + Y + + file + N + N + N + txt + N + N + N + N + N + N + + Y + N + N + 0 + + + + + +0 +N + + + + 100 + 110 + Y + +
+ + + Example plugin + DummyPlugin + + Y + 1 + + none + + + +valuenameNumber123.456124N#.#;-#.# + + + 200 + 110 + Y + + + + + Get ID from slave server + GetSlaveSequence + + Y + 1 + + none + + + id + slave server name + Slave Sequence Name -- To be configured + 10000 + + + 310 + 110 + Y + + + + + Number range + NumberRange + + Y + 1 + + none + + + + range + unknown + + + -1.7976931348623157E308 + 5.0 + Less than 5 + + + 5.0 + 10.0 + 5-10 + + + 10.0 + 1.7976931348623157E308 + More than 10 + + + + + 420 + 110 + Y + + + + + Replace in string + ReplaceString + + Y + 1 + + none + + + + + + + 530 + 110 + Y + + + + + Row denormaliser + Denormaliser + + Y + 1 + + none + + + + + + + + + + 640 + 110 + Y + + + + + Row flattener + Flattener + + Y + 1 + + none + + + + + + + + 740 + 110 + Y + + + + + Row Normaliser + Normaliser + + Y + 1 + + none + + + typefield + + + 100 + 200 + Y + + + + + Select values + SelectValues + + Y + 1 + + none + + + N + + + 200 + 200 + Y + + + + + Set field value + SetValueField + + Y + 1 + + none + + + + + + + 310 + 200 + Y + + + + + Set field value to a constant + SetValueConstant + + Y + 1 + + none + + + N + + + + + 420 + 200 + Y + + + + + Sort rows + SortRows + + Y + 1 + + none + + + %%java.io.tmpdir%% + out + 1000000 + + N + + N + + + + + 530 + 200 + Y + + + + + Split field to rows + SplitFieldToRows3 + + Y + 1 + + none + + + + ; + + N + + Y + N + + + 640 + 200 + Y + + + + + Split Fields + FieldSplitter + + Y + 1 + + none + + + + , + + + 740 + 200 + Y + + + + + String operations + StringOperations + + Y + 1 + + none + + + + + + + 100 + 290 + Y + + + + + Strings cut + StringCut + + Y + 1 + + none + + + + + + + 200 + 290 + Y + + + + + Unique rows + Unique + + Y + 1 + + none + + + N + + N + + + + 310 + 290 + Y + + + + + Unique rows (HashSet) + UniqueRowsByHashSet + + Y + 1 + + none + + + N + N + + + + 420 + 290 + Y + + + + + Value Mapper + ValueMapper + + Y + 1 + + none + + + + + + + + + + 530 + 290 + Y + + + + + XSL Transformation + XSLT + + Y + 1 + + none + + + + + result + + N + Y + JAXP + + + + + + + 640 + 290 + Y + + + + + + + + N + diff --git a/constructor/AllOperators/Transformations/Utility.ktr b/constructor/AllOperators/Transformations/Utility.ktr new file mode 100644 index 0000000..475e3ac --- /dev/null +++ b/constructor/AllOperators/Transformations/Utility.ktr @@ -0,0 +1,421 @@ + + + + Utilities + + + + Normal + / + + + + + +
+ + + +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDTRANSNAMEYTRANSNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ + +ID_BATCHYID_BATCHSEQ_NRYSEQ_NRLOGDATEYLOGDATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSINPUT_BUFFER_ROWSYINPUT_BUFFER_ROWSOUTPUT_BUFFER_ROWSYOUTPUT_BUFFER_ROWS + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSLOG_FIELDNLOG_FIELD + + + +
+ + 0.0 + 0.0 + + 10000 + 50 + 50 + N + Y + 50000 + Y + + N + 1000 + 100 + + + + + + + + + - + 2013/04/10 22:08:28.023 + - + 2013/04/10 22:08:28.023 + + + + + + + Change file encoding + ChangeFileEncoding + + Y + 1 + + none + + + + + Cp1252 + + N + N + N + + + 90 + 30 + Y + + + + + Clone row + CloneRow + + Y + 1 + + none + + + 0 + N + + N + + N + + + + 200 + 30 + Y + + + + + Delay row + Delay + + Y + 1 + + none + + + 1 + seconds + + + 320 + 30 + Y + + + + + Edi to XML + TypeExitEdi2XmlStep + + Y + 1 + + none + + + + edi_xml + + + 430 + 30 + Y + + + + + Execute a process + ExecProcess + + Y + 1 + + none + + + + Result output + Error output + Exit value + N + + + 530 + 30 + Y + + + + + If field value is null + IfNull + + Y + 1 + + none + + + + + N + N + + + + + + + 630 + 30 + Y + + + + + Mail + Mail + + Y + 1 + + none + + + + + + + + + + + + N + N + N + N + + + + + + + + + N + N + + + N + N + + Encrypted + N + N + N + + + + + + + + + 740 + 30 + Y + + + + + Metadata structure of stream + StepMetastructure + + Y + 1 + + none + + + N + + + + 90 + 120 + Y + + + + + Null if... + NullIf + + Y + 1 + + none + + + + + + + 200 + 120 + Y + + + + + Process files + ProcessFiles + + Y + 1 + + none + + + + + copy + N + N + N + Y + + + 320 + 120 + Y + + + + + Run SSH commands + SSH + + Y + 1 + + none + + + N + + + 22 + + + Encrypted + Y + + + stdOut + stdErr + 0 + + + + Encrypted + + + 430 + 120 + Y + + + + + Send message to Syslog + SyslogMessage + + Y + 1 + + none + + + + 514 + + KERNEL + EMERGENCY + Y + MMM dd HH:mm:ss + Y + + + 530 + 120 + Y + + + + + Write to log + WriteToLog + + Y + 1 + + none + + + log_level_basic + Y + + + + + + 630 + 120 + Y + + + + + + + + N + diff --git a/constructor/AllOperators/Transformations/Validation.ktr b/constructor/AllOperators/Transformations/Validation.ktr new file mode 100644 index 0000000..6ba5160 --- /dev/null +++ b/constructor/AllOperators/Transformations/Validation.ktr @@ -0,0 +1,180 @@ + + + + Validation + + + + Normal + / + + + + + +
+ + + +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDTRANSNAMEYTRANSNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ + +ID_BATCHYID_BATCHSEQ_NRYSEQ_NRLOGDATEYLOGDATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSINPUT_BUFFER_ROWSYINPUT_BUFFER_ROWSOUTPUT_BUFFER_ROWSYOUTPUT_BUFFER_ROWS + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSLOG_FIELDNLOG_FIELD + + + +
+ + 0.0 + 0.0 + + 10000 + 50 + 50 + N + Y + 50000 + Y + + N + 1000 + 100 + + + + + + + + + - + 2013/04/10 22:13:46.445 + - + 2013/04/10 22:13:46.445 + + + + + + + Credit card validator + CreditCardValidator + + Y + 1 + + none + + + + result + card type + N + not valid message + + + 90 + 30 + Y + + + + + Data Validator + Validator + + Y + 1 + + none + + +N +N +| + + + 210 + 30 + Y + + + + + Mail Validator + MailValidator + + Y + 1 + + none + + + + result + N + N + email address is valid + email address is not valid + Error message + 0 + + noreply@domain.com + + N + + + 330 + 30 + Y + + + + + XSD Validator + XSDValidator + + Y + 1 + + none + + + + + result + N + ValidationMsgField + + + N + N + + filename + + + 450 + 30 + Y + + + + + + + + N + diff --git a/constructor/Create_Files.kjb b/constructor/Create_Files.kjb new file mode 100644 index 0000000..357b395 --- /dev/null +++ b/constructor/Create_Files.kjb @@ -0,0 +1,225 @@ + + + Create_Files + + This job constructs three files used by the kettle-cookbook: + transformation.css + job.css +are used to render transformations and jobs respectively and must +include references to all relevant .png files as background images + +io_steps.xslt is imported by kettle-report.xslt and contains a list +of all input and output steps, stored in a variable. + +These files are created based on + kettle-steps.xml + kettle-job-entries.xml +which are found in the pdi source distribution (./src) + +This makes it simple to adapt the cookbook to a new version of Kettle: + 1. copy kettle-steps.xml, kettle-job-entries.xml to this job directory + 2. run this job + 3. copy new images from source Kettle distribution (./ui/images) to + kettle-cookbook/template/images + 4. done + + 0 + / + - + 2013/04/16 22:50:14.876 + - + 2013/04/16 22:50:14.876 + + + + + + +
+ + + +ID_JOBYID_JOBCHANNEL_IDYCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDYLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + START + + SPECIAL + Y + N + N + 0 + 0 + 60 + 12 + 0 + 1 + 1 + N + Y + 0 + 90 + 70 + + + XSL transformation.css + + XSLT + ${Internal.Job.Filename.Directory}/kettle-steps.xml + ${Internal.Job.Filename.Directory}/Create_transformation_css.xsl + ${Internal.Job.Filename.Directory}/../template/css/transformation.css + 1 + N + N + SAXON + + + + + N + Y + 0 + 330 + 70 + + + Delete files + + DELETE_FILES + N + N + + + ${Internal.Job.Filename.Directory}/../template/css + transformation.css + + + ${Internal.Job.Filename.Directory}/../template/css + job.css + + + ${Internal.Job.Filename.Directory}/../xslt + is_steps.xslt + + + N + Y + 0 + 210 + 70 + + + XSL job.css + + XSLT + ${Internal.Job.Filename.Directory}/kettle-job-entries.xml + ${Internal.Job.Filename.Directory}/Create_job_css.xsl + ${Internal.Job.Filename.Directory}/../template/css/job.css + 1 + N + N + SAXON + + + + + N + Y + 0 + 460 + 70 + + + XSL io_steps + + XSLT + ${Internal.Job.Filename.Directory}/kettle-steps.xml + ${Internal.Job.Filename.Directory}/Create_IO_list.xsl + ${Internal.Job.Filename.Directory}/../xslt/io_steps.xslt + 1 + N + N + SAXON + + + + + N + Y + 0 + 590 + 70 + + + Success + + SUCCESS + N + Y + 0 + 710 + 70 + + + + + START + Delete files + 0 + 0 + Y + Y + Y + + + Delete files + XSL transformation.css + 0 + 0 + Y + Y + N + + + XSL transformation.css + XSL job.css + 0 + 0 + Y + Y + N + + + XSL job.css + XSL io_steps + 0 + 0 + Y + Y + N + + + XSL io_steps + Success + 0 + 0 + Y + Y + N + + + + + diff --git a/constructor/Create_IO_list.xsl b/constructor/Create_IO_list.xsl new file mode 100644 index 0000000..8d103bb --- /dev/null +++ b/constructor/Create_IO_list.xsl @@ -0,0 +1,65 @@ + + + + + + + + + 1.0 + + high-level-data-flow-diagram + + steps + $document/transformation/step[GUI/draw/text()!='N'] + + + + input-steps + $steps[ + + + or + type = '' + ] + + + + + output-steps + $steps[ + + + or + type = '' + ] + + + + + high-level-data-flow-diagram-execute + + input-steps + $input-steps + + + output-steps + $output-steps + + + + + + diff --git a/constructor/Create_job_css.xsl b/constructor/Create_job_css.xsl new file mode 100644 index 0000000..82e53b0 --- /dev/null +++ b/constructor/Create_job_css.xsl @@ -0,0 +1,123 @@ + + + + + + /** + * This is job.css. This is part of kettle-cookbook. + * Kettle-cookbook is distributed on http://code.google.com/p/kettle-cookbook/ + * + * job.css - a cascading stylesheet file that marks up job documentation + * + * Copyright (C) 2010 + * Roland Bouman Roland.Bouman@gmail.com - http://rpbouman.blogspot.com/ + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + + * This library is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with this library; if not, write to + * the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA + * + */ + .entry-hops { + display:none; + } + + .entry-hidden , .entry-label-hidden{ + display:none; + } + + .entry-heading { + background-repeat: no-repeat; + text-indent: 38px; + height: 40px; + } + + .entry-icon { + position: absolute; + border-style: solid; + border-width: 1px; + border-color: rgb(125,125,125); + height: 32px; + width: 32px; + margin-left: auto; + margin-right: auto; + background-repeat: no-repeat; + z-index:100; + } + + .entry-label { + margin-top:2px; + font-size: 8pt !important; + white-space: nowrap; + position: absolute; + z-index:100; + background-color:white; + } + + .entry-hidden { + display: none; + } + + .entry-label-hidden { + display: none; + } + + .entry-hop { + background-color: black; + } + + .entry-hop-unconditional { + background-color: black; + } + + .entry-hop-unconditional-icon { + position:absolute; + width: 16px; + height: 16px; + background-image: url(../images/unconditional-hop.png); + z-index:500 !important; + } + + .entry-hop-true { + background-color: green; + } + .entry-hop-false { + background-color: red; + } + + /* following two general entries don't seem to be part of 'kettle-job-entries.xml' */ + + .entry-icon-START { + background-image: url(../images/STR.png); + } + + .entry-icon-DUMMY { + background-image: url(../images/DUM.png); + } + + + + + /* */ + + + + + + + .entry-icon-{ + background-image: url(../images/); + } + + \ No newline at end of file diff --git a/constructor/Create_transformation_css.xsl b/constructor/Create_transformation_css.xsl new file mode 100644 index 0000000..6c590a9 --- /dev/null +++ b/constructor/Create_transformation_css.xsl @@ -0,0 +1,125 @@ + + + + + + /** + * This is transformation.css. This is part of kettle-cookbook. + * Kettle-cookbook is distributed on http://code.google.com/p/kettle-cookbook/ + * + * transformation.css - a cascading stylesheet file that marks up transformation documentation + * + * Copyright (C) 2010 + * Roland Bouman Roland.Bouman@gmail.com - http://rpbouman.blogspot.com/ + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + + * This library is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with this library; if not, write to + * the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA + * + */ + .step-hops { + display:none; + } + + .step-hidden , .step-label-hidden{ + display:none; + } + + .step-heading { + margin-top: 20px; + background-repeat: no-repeat; + text-indent: 38px; + height: 40px; + } + + .step-icon { + position: absolute; + border-style: solid; + border-width: 1px; + border-color: rgb(125,125,125); + height: 32px; + width: 32px; + margin-left: auto; + margin-right: auto; + background-repeat: no-repeat; + z-index:100; + } + + .step-label { + margin-top:2px; + font-size: 8pt !important; + white-space: nowrap; + position: absolute; + z-index:100; + background-color:white; + } + + .step-hop { + } + + .step-hop-enabled { + background-color: black; + } + + .step-hop-disabled { + background-color: rgb(200,200,200); + } + + .step-error { + background-color: red; + border-color: red !important; + } + + .step-hop-error { + background-color: red!important; + } + + .step-hop-copy-data-icon { + position:absolute; + width: 16px; + height: 16px; + background-image: url(../images/copy-hop.png); + z-index:500 !important; + } + + .step-hop-distribute-data { + } + + .step-hop-copy-data { + } + + .step-hop-true { + background-color: green; + } + + .step-hop-false { + background-color: red; + } + + + + + /* */ + + + + + + + .step-icon-{ + background-image: url(../images/); + } + + \ No newline at end of file diff --git a/constructor/kettle-job-entries.xml b/constructor/kettle-job-entries.xml new file mode 100644 index 0000000..048975b --- /dev/null +++ b/constructor/kettle-job-entries.xml @@ -0,0 +1,554 @@ + + + + + + + i18n:org.pentaho.di.job.entry:JobEntry.Trans.TypeDesc + org.pentaho.di.job.entries.trans.JobEntryTrans + i18n:org.pentaho.di.job:JobCategory.Category.General + i18n:org.pentaho.di.job.entry:JobEntry.Trans.Tooltip + ui/images/TRN.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Job.TypeDesc + org.pentaho.di.job.entries.job.JobEntryJob + i18n:org.pentaho.di.job:JobCategory.Category.General + i18n:org.pentaho.di.job.entry:JobEntry.Job.Tooltip + ui/images/JOB.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Shell.TypeDesc + org.pentaho.di.job.entries.shell.JobEntryShell + i18n:org.pentaho.di.job:JobCategory.Category.Scripting + i18n:org.pentaho.di.job.entry:JobEntry.Shell.Tooltip + ui/images/SHL.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Mail.TypeDesc + org.pentaho.di.job.entries.mail.JobEntryMail + i18n:org.pentaho.di.job:JobCategory.Category.Mail + i18n:org.pentaho.di.job.entry:JobEntry.Mail.Tooltip + ui/images/MAIL.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.SQL.TypeDesc + org.pentaho.di.job.entries.sql.JobEntrySQL + i18n:org.pentaho.di.job:JobCategory.Category.Scripting + i18n:org.pentaho.di.job.entry:JobEntry.SQL.Tooltip + ui/images/SQL.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.FTP.TypeDesc + org.pentaho.di.job.entries.ftp.JobEntryFTP + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.FTP.Tooltip + ui/images/FTP.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.TableExists.TypeDesc + org.pentaho.di.job.entries.tableexists.JobEntryTableExists + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.TableExists.Tooltip + ui/images/TEX.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.FileExists.TypeDesc + org.pentaho.di.job.entries.fileexists.JobEntryFileExists + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.FileExists.Tooltip + ui/images/FEX.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Evaluation.TypeDesc + org.pentaho.di.job.entries.eval.JobEntryEval + i18n:org.pentaho.di.job:JobCategory.Category.Scripting + i18n:org.pentaho.di.job.entry:JobEntry.Evaluation.Tooltip + ui/images/RES.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Special.TypeDesc + org.pentaho.di.job.entries.special.JobEntrySpecial + i18n:org.pentaho.di.job:JobCategory.Category.General + i18n:org.pentaho.di.job.entry:JobEntry.Special.Tooltip + + + + + i18n:org.pentaho.di.job.entry:JobEntry.SFTP.TypeDesc + org.pentaho.di.job.entries.sftp.JobEntrySFTP + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.SFTP.Tooltip + ui/images/SFT.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.HTTP.TypeDesc + org.pentaho.di.job.entries.http.JobEntryHTTP + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.HTTP.Tooltip + ui/images/WEB.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.CreateFile.TypeDesc + org.pentaho.di.job.entries.createfile.JobEntryCreateFile + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.CreateFile.Tooltip + ui/images/CFJ.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.DeleteFile.TypeDesc + org.pentaho.di.job.entries.deletefile.JobEntryDeleteFile + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.DeleteFile.Tooltip + ui/images/DFJ.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.WaitForFile.TypeDesc + org.pentaho.di.job.entries.waitforfile.JobEntryWaitForFile + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.WaitForFile.Tooltip + ui/images/WFF.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.SFTPPut.TypeDesc + org.pentaho.di.job.entries.sftpput.JobEntrySFTPPUT + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.SFTPPut.Tooltip + ui/images/SFP.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.FileCompare.TypeDesc + org.pentaho.di.job.entries.filecompare.JobEntryFileCompare + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.FileCompare.Tooltip + ui/images/BFC.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.MysqlBulkLoad.TypeDesc + org.pentaho.di.job.entries.mysqlbulkload.JobEntryMysqlBulkLoad + i18n:org.pentaho.di.job:JobCategory.Category.BulkLoading + i18n:org.pentaho.di.job.entry:JobEntry.MysqlBulkLoad.Tooltip + ui/images/MBL.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.MsgBoxInfo.TypeDesc + org.pentaho.di.job.entries.msgboxinfo.JobEntryMsgBoxInfo + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.MsgBoxInfo.Tooltip + ui/images/INF.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Delay.TypeDesc + org.pentaho.di.job.entries.delay.JobEntryDelay + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.Delay.Tooltip + ui/images/DLT.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.ZipFile.TypeDesc + org.pentaho.di.job.entries.zipfile.JobEntryZipFile + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.ZipFile.Tooltip + ui/images/ZIP.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.XSLT.TypeDesc + org.pentaho.di.job.entries.xslt.JobEntryXSLT + i18n:org.pentaho.di.job:JobCategory.Category.XML + i18n:org.pentaho.di.job.entry:JobEntry.XSLT.Tooltip + ui/images/XSLT.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.MysqlBulkFile.TypeDesc + org.pentaho.di.job.entries.mysqlbulkfile.JobEntryMysqlBulkFile + i18n:org.pentaho.di.job:JobCategory.Category.BulkLoading + i18n:org.pentaho.di.job.entry:JobEntry.MysqlBulkFile.Tooltip + ui/images/MBF.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Abort.TypeDesc + org.pentaho.di.job.entries.abort.JobEntryAbort + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.Abort.Tooltip + ui/images/ABR.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.GetPOP.TypeDesc + org.pentaho.di.job.entries.getpop.JobEntryGetPOP + i18n:org.pentaho.di.job:JobCategory.Category.Mail + i18n:org.pentaho.di.job.entry:JobEntry.GetPOP.Tooltip + ui/images/GETPOP.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Ping.TypeDesc + org.pentaho.di.job.entries.ping.JobEntryPing + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.Ping.Tooltip + ui/images/PNG.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.DeleteFiles.TypeDesc + org.pentaho.di.job.entries.deletefiles.JobEntryDeleteFiles + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.DeleteFiles.Tooltip + ui/images/DFS.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.Success.TypeDesc + org.pentaho.di.job.entries.success.JobEntrySuccess + i18n:org.pentaho.di.job:JobCategory.Category.General + i18n:org.pentaho.di.job.entry:JobEntry.Success.Tooltip + ui/images/SUC.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.XSDValidator.TypeDesc + org.pentaho.di.job.entries.xsdvalidator.JobEntryXSDValidator + i18n:org.pentaho.di.job:JobCategory.Category.XML + i18n:org.pentaho.di.job.entry:JobEntry.XSDValidator.Tooltip + ui/images/XSD.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.WriteToLog.TypeDesc + org.pentaho.di.job.entries.writetolog.JobEntryWriteToLog + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.WriteToLog.Tooltip + ui/images/WTL.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.CopyFiles.TypeDesc + org.pentaho.di.job.entries.copyfiles.JobEntryCopyFiles + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.CopyFiles.Tooltip + ui/images/CPY.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.DTDValidator.TypeDesc + org.pentaho.di.job.entries.dtdvalidator.JobEntryDTDValidator + i18n:org.pentaho.di.job:JobCategory.Category.XML + i18n:org.pentaho.di.job.entry:JobEntry.DTDValidator.Tooltip + ui/images/DTD.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.FTPPUT.TypeDesc + org.pentaho.di.job.entries.ftpput.JobEntryFTPPUT + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.FTPPUT.Tooltip + ui/images/PFP.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.UnZip.TypeDesc + org.pentaho.di.job.entries.unzip.JobEntryUnZip + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.UnZip.Tooltip + ui/images/UZP.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.CreateFolder.TypeDesc + org.pentaho.di.job.entries.createfolder.JobEntryCreateFolder + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.CreateFolder.Tooltip + ui/images/CRF.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.FolderIsEmpty.TypeDesc + org.pentaho.di.job.entries.folderisempty.JobEntryFolderIsEmpty + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.FolderIsEmpty.Tooltip + ui/images/EFO.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.FilesExist.TypeDesc + org.pentaho.di.job.entries.filesexist.JobEntryFilesExist + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.FilesExist.Tooltip + ui/images/LFE.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.FoldersCompare.TypeDesc + org.pentaho.di.job.entries.folderscompare.JobEntryFoldersCompare + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.FoldersCompare.Tooltip + ui/images/FCP.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.AddResultFilenames.TypeDesc + org.pentaho.di.job.entries.addresultfilenames.JobEntryAddResultFilenames + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.AddResultFilenames.Tooltip + ui/images/AFN.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.DeleteResultFilenames.TypeDesc + org.pentaho.di.job.entries.deleteresultfilenames.JobEntryDeleteResultFilenames + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.DeleteResultFilenames.Tooltip + ui/images/DFN.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.MssqlBulkLoad.TypeDesc + org.pentaho.di.job.entries.mssqlbulkload.JobEntryMssqlBulkLoad + i18n:org.pentaho.di.job:JobCategory.Category.BulkLoading + i18n:org.pentaho.di.job.entry:JobEntry.MssqlBulkLoad.Tooltip + ui/images/MBL.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.MoveFiles.TypeDesc + org.pentaho.di.job.entries.movefiles.JobEntryMoveFiles + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.MoveFiles.Tooltip + ui/images/MVF.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.CopyMoveResultFilenames.TypeDesc + org.pentaho.di.job.entries.copymoveresultfilenames.JobEntryCopyMoveResultFilenames + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.CopyMoveResultFilenames.Tooltip + ui/images/CMR.png + + + i18n:org.pentaho.di.job.entry:JobEntry.XMLWellFormed.TypeDesc + org.pentaho.di.job.entries.xmlwellformed.JobEntryXMLWellFormed + i18n:org.pentaho.di.job:JobCategory.Category.XML + i18n:org.pentaho.di.job.entry:JobEntry.XMLWellFormed.Tooltip + ui/images/XFC.png + + + i18n:org.pentaho.di.job.entry:JobEntry.SSH2GET.TypeDesc + org.pentaho.di.job.entries.ssh2get.JobEntrySSH2GET + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.SSH2GET.Tooltip + ui/images/SHG.png + + + i18n:org.pentaho.di.job.entry:JobEntry.SSH2PUT.TypeDesc + org.pentaho.di.job.entries.ssh2put.JobEntrySSH2PUT + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.SSH2PUT.Tooltip + ui/images/SHP.png + + + i18n:org.pentaho.di.job.entry:JobEntry.FTPDELETE.TypeDesc + org.pentaho.di.job.entries.ftpdelete.JobEntryFTPDelete + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.FTPDELETE.Tooltip + ui/images/FTPD.png + + + + i18n:org.pentaho.di.job.entry:JobEntry.DeleteFolders.TypeDesc + org.pentaho.di.job.entries.deletefolders.JobEntryDeleteFolders + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.DeleteFolders.Tooltip + ui/images/DSF.png + + + i18n:org.pentaho.di.job.entry:JobEntry.ColumnsExist.TypeDesc + org.pentaho.di.job.entries.columnsexist.JobEntryColumnsExist + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.ColumnsExist.Tooltip + ui/images/CEX.png + + + i18n:org.pentaho.di.job.entry:JobEntry.ExportRepository.TypeDesc + org.pentaho.di.job.entries.exportrepository.JobEntryExportRepository + i18n:org.pentaho.di.job:JobCategory.Category.Repository + i18n:org.pentaho.di.job.entry:JobEntry.ExportRepository.Tooltip + ui/images/EREP.png + + + i18n:org.pentaho.di.job.entry:JobEntry.ConnectedToRepository.TypeDesc + org.pentaho.di.job.entries.connectedtorepository.JobEntryConnectedToRepository + i18n:org.pentaho.di.job:JobCategory.Category.Repository + i18n:org.pentaho.di.job.entry:JobEntry.ConnectedToRepository.Tooltip + ui/images/CREP.png + + + i18n:org.pentaho.di.job.entry:JobEntry.TruncateTables.TypeDesc + org.pentaho.di.job.entries.truncatetables.JobEntryTruncateTables + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.TruncateTables.Tooltip + ui/images/TRT.png + + + i18n:org.pentaho.di.job.entry:JobEntry.SetVariables.TypeDesc + org.pentaho.di.job.entries.setvariables.JobEntrySetVariables + i18n:org.pentaho.di.job:JobCategory.Category.General + i18n:org.pentaho.di.job.entry:JobEntry.SetVariables.Tooltip + ui/images/SVA.png + + + i18n:org.pentaho.di.job.entry:JobEntry.MSAccessBulkLoad.TypeDesc + org.pentaho.di.job.entries.msaccessbulkload.JobEntryMSAccessBulkLoad + i18n:org.pentaho.di.job:JobCategory.Category.BulkLoading + i18n:org.pentaho.di.job.entry:JobEntry.MSAccessBulkLoad.Tooltip + ui/images/MBL.png + + + i18n:org.pentaho.di.job.entry:JobEntry.WaitForSQL.TypeDesc + org.pentaho.di.job.entries.waitforsql.JobEntryWaitForSQL + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.WaitForSQL.Tooltip + ui/images/WSQL.png + + + i18n:org.pentaho.di.job.entry:JobEntry.EvalTableContent.TypeDesc + org.pentaho.di.job.entries.evaluatetablecontent.JobEntryEvalTableContent + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.EvalTableContent.Tooltip + ui/images/ETC.png + + + i18n:org.pentaho.di.job.entry:JobEntry.SimpleEval.TypeDesc + org.pentaho.di.job.entries.simpleeval.JobEntrySimpleEval + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.SimpleEval.Tooltip + ui/images/SEV.png + + + i18n:org.pentaho.di.job.entry:JobEntry.SNMPTrap.TypeDesc + org.pentaho.di.job.entries.snmptrap.JobEntrySNMPTrap + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.SNMPTrap.Tooltip + ui/images/SNMP.png + + + i18n:org.pentaho.di.job.entry:JobEntry.MailValidator.TypeDesc + org.pentaho.di.job.entries.mailvalidator.JobEntryMailValidator + i18n:org.pentaho.di.job:JobCategory.Category.Mail + i18n:org.pentaho.di.job.entry:JobEntry.MailValidator.Tooltip + ui/images/MAV.png + + + i18n:org.pentaho.di.job.entry:JobEntry.FTPSGet.TypeDesc + org.pentaho.di.job.entries.ftpsget.JobEntryFTPSGet + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.FTPSGet.Tooltip + ui/images/FTPG.png + + + i18n:org.pentaho.di.job.entry:JobEntry.FTPSPut.TypeDesc + org.pentaho.di.job.entries.ftpsput.JobEntryFTPSPUT + i18n:org.pentaho.di.job:JobCategory.Category.FileTransfer + i18n:org.pentaho.di.job.entry:JobEntry.FTPSPut.Tooltip + ui/images/FTPSPut.png + + + i18n:org.pentaho.di.job.entry:JobEntry.CheckDbConnections.TypeDesc + org.pentaho.di.job.entries.checkdbconnection.JobEntryCheckDbConnections + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.CheckDbConnections.Tooltip + ui/images/CDBC.png + + + i18n:org.pentaho.di.job.entry:JobEntry.Syslog.TypeDesc + org.pentaho.di.job.entries.syslog.JobEntrySyslog + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.Syslog.TypeDesc.Tooltip + ui/images/SYL.png + + + i18n:org.pentaho.di.job.entry:JobEntry.EvalFilesMetrics.TypeDesc + org.pentaho.di.job.entries.evalfilesmetrics.JobEntryEvalFilesMetrics + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.EvalFilesMetrics.Tooltip + ui/images/CFS.png + + + i18n:org.pentaho.di.job.entry:JobEntry.CheckFilesLocked.TypeDesc + org.pentaho.di.job.entries.checkfilelocked.JobEntryCheckFilesLocked + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.CheckFilesLocked.Tooltip + ui/images/CFL.png + + + i18n:org.pentaho.di.job.entry:JobEntry.WebServiceAvailable.TypeDesc + org.pentaho.di.job.entries.webserviceavailable.JobEntryWebServiceAvailable + i18n:org.pentaho.di.job:JobCategory.Category.Conditions + i18n:org.pentaho.di.job.entry:JobEntry.WebServiceAvailable.Tooltip + ui/images/WSA.png + + + i18n:org.pentaho.di.job.entry:JobEntry.WriteToFile.TypeDesc + org.pentaho.di.job.entries.writetofile.JobEntryWriteToFile + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.WriteToFile.Tooltip + ui/images/TFO.png + + + i18n:org.pentaho.di.job.entry:JobEntry.TalendJobExec.TypeDesc + org.pentaho.di.job.entries.talendjobexec.JobEntryTalendJobExec + i18n:org.pentaho.di.job:JobCategory.Category.Utility + i18n:org.pentaho.di.job.entry:JobEntry.TalendJobExec.Tooltip + ui/images/TJE.png + + + i18n:org.pentaho.di.job.entry:JobEntry.DosUnixConverter.TypeDesc + org.pentaho.di.job.entries.dostounix.JobEntryDosToUnix + i18n:org.pentaho.di.job:JobCategory.Category.FileManagement + i18n:org.pentaho.di.job.entry:JobEntry.DosUnixConverter.Tooltip + ui/images/DTU.png + + + i18n:org.pentaho.di.job.entry:JobEntry.PGPDecryptFiles.TypeDesc + org.pentaho.di.job.entries.pgpdecryptfiles.JobEntryPGPDecryptFiles + i18n:org.pentaho.di.job:JobCategory.Category.FileEncryption + i18n:org.pentaho.di.job.entry:JobEntry.PGPDecryptFiles.Tooltip + ui/images/GPGDecrypt.png + + + i18n:org.pentaho.di.job.entry:JobEntry.PGPEncryptFiles.TypeDesc + org.pentaho.di.job.entries.pgpencryptfiles.JobEntryPGPEncryptFiles + i18n:org.pentaho.di.job:JobCategory.Category.FileEncryption + i18n:org.pentaho.di.job.entry:JobEntry.PGPEncryptFiles.Tooltip + ui/images/GPGEncrypt.png + + + i18n:org.pentaho.di.job.entry:JobEntry.PGPVerify.TypeDesc + org.pentaho.di.job.entries.pgpverify.JobEntryPGPVerify + i18n:org.pentaho.di.job:JobCategory.Category.FileEncryption + i18n:org.pentaho.di.job.entry:JobEntry.PGPVerify.Tooltip + ui/images/PGPVerif.png + + diff --git a/constructor/kettle-steps.xml b/constructor/kettle-steps.xml new file mode 100644 index 0000000..6ecb184 --- /dev/null +++ b/constructor/kettle-steps.xml @@ -0,0 +1,1477 @@ + + + + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Dummy + org.pentaho.di.trans.steps.dummytrans.DummyTransMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Dummy + ui/images/DUM.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Append + org.pentaho.di.trans.steps.append.AppendMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Append + ui/images/APP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TableInput + org.pentaho.di.trans.steps.tableinput.TableInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TableInput + ui/images/TIP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SocketReader + org.pentaho.di.trans.steps.socketreader.SocketReaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Inline + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SocketReader + ui/images/SKR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SocketWriter + org.pentaho.di.trans.steps.socketwriter.SocketWriterMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Inline + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SocketWriter + ui/images/SKW.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SelectValues + org.pentaho.di.trans.steps.selectvalues.SelectValuesMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SelectValues + ui/images/SEL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TextFileInput + org.pentaho.di.trans.steps.textfileinput.TextFileInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TextInputFile + ui/images/TFI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Caculator + org.pentaho.di.trans.steps.calculator.CalculatorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Calculator + Database join + ui/images/CLC.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AddConstants + org.pentaho.di.trans.steps.constant.ConstantMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Addconstants + ui/images/CST.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Abort + org.pentaho.di.trans.steps.abort.AbortMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Abort + ui/images/ABR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AddSequence + org.pentaho.di.trans.steps.addsequence.AddSequenceMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Addsequence + ui/images/SEQ.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetSlaveSequence + org.pentaho.di.trans.steps.getslavesequence.GetSlaveSequenceMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetSlavesequence + ui/images/SEQ.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Output + org.pentaho.di.trans.steps.tableoutput.TableOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TableOutput + ui/images/TOP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TableAgileMart + org.pentaho.di.trans.steps.tableagilemart.TableAgileMartMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Agile + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TableAgileMart + ui/images/TOP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.InfobrightOutput + org.pentaho.di.trans.steps.infobrightoutput.InfobrightLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.InfobrightOutput + ui/images/IBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SortRows + org.pentaho.di.trans.steps.sort.SortRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Sortrows + ui/images/SRT.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.OraBulkLoader + org.pentaho.di.trans.steps.orabulkloader.OraBulkLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.OraBulkLoader + ui/images/BulkIn.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Injector + org.pentaho.di.trans.steps.injector.InjectorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Inline + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Injector + ui/images/INJ.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FilterRows + org.pentaho.di.trans.steps.filterrows.FilterRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FilterRows + ui/images/FLT.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.JavaFilter + org.pentaho.di.trans.steps.javafilter.JavaFilterMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.JavaFilter + ui/images/JLT.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TextFileOutput + org.pentaho.di.trans.steps.textfileoutput.TextFileOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TextOutputFile + ui/images/TFO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetSystemInfo + org.pentaho.di.trans.steps.systemdata.SystemDataMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetSystemInfo + ui/images/SYS.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.StreamLookup + org.pentaho.di.trans.steps.streamlookup.StreamLookupMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Streamlookup + ui/images/SLU.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.UniqueRows + org.pentaho.di.trans.steps.uniquerows.UniqueRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Uniquerows + ui/images/UNQ.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.DatabaseLookup + org.pentaho.di.trans.steps.databaselookup.DatabaseLookupMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Databaselookup + ui/images/DLU.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.DatabaseJoin + org.pentaho.di.trans.steps.databasejoin.DatabaseJoinMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Databasejoin + ui/images/DBJ.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.DimensionUpdate + org.pentaho.di.trans.steps.dimensionlookup.DimensionLookupMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.DataWarehouse + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Dimensionupdate + ui/images/DIM.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ExcelInput + org.pentaho.di.trans.steps.excelinput.ExcelInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ExcelInput + ui/images/XLI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CombinationUpdate + org.pentaho.di.trans.steps.combinationlookup.CombinationLookupMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.DataWarehouse + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.CombinationUpdate + ui/images/CMB.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.JavaScriptMod + org.pentaho.di.trans.steps.scriptvalues_mod.ScriptValuesMetaMod + i18n:org.pentaho.di.trans.step:BaseStep.Category.Scripting + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.JavaScriptValueMod + ui/images/SCR_mod.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.JoinRows + org.pentaho.di.trans.steps.joinrows.JoinRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Joins + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.JoinRows + ui/images/JRW.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Update + org.pentaho.di.trans.steps.update.UpdateMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Update + ui/images/UPD.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.InsertOrUpdate + org.pentaho.di.trans.steps.insertupdate.InsertUpdateMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.InsertOrUpdate + ui/images/INU.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Delete + org.pentaho.di.trans.steps.delete.DeleteMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Delete + ui/images/Delete.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MappingInput + org.pentaho.di.trans.steps.mappinginput.MappingInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Mapping + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MappingInputSpecification + ui/images/MPI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MappingSubTransformation + org.pentaho.di.trans.steps.mapping.MappingMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Mapping + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MappingSubTransformation + ui/images/MAP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MappingOutput + org.pentaho.di.trans.steps.mappingoutput.MappingOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Mapping + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MappingOutputSpecification + ui/images/MPO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SetVariable + org.pentaho.di.trans.steps.setvariable.SetVariableMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Job + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SetVariable + ui/images/SVA.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetVariable + org.pentaho.di.trans.steps.getvariable.GetVariableMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Job + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetVariable + ui/images/GVA.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.NullIf + org.pentaho.di.trans.steps.nullif.NullIfMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Nullif + ui/images/NUI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ExcuteSQL + org.pentaho.di.trans.steps.sql.ExecSQLMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Scripting + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ExecuteSQL + ui/images/SQL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetRows + org.pentaho.di.trans.steps.rowsfromresult.RowsFromResultMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Job + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetRowsFromResult + ui/images/FCH.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CopyRows + org.pentaho.di.trans.steps.rowstoresult.RowsToResultMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Job + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.CopyRowsToResult + ui/images/TCH.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.BlockingStep + org.pentaho.di.trans.steps.blockingstep.BlockingStepMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.BlockingStep + ui/images/BLK.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.HTTP + org.pentaho.di.trans.steps.http.HTTPMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.HTTP + ui/images/WEB.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MergeRows + org.pentaho.di.trans.steps.mergerows.MergeRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Joins + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MergeRows + ui/images/MRG.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetFileNames + org.pentaho.di.trans.steps.getfilenames.GetFileNamesMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetFileNames + ui/images/GFN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FilesFromResult + org.pentaho.di.trans.steps.filesfromresult.FilesFromResultMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Job + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FilesFromResult + ui/images/FFR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FilesToResult + org.pentaho.di.trans.steps.filestoresult.FilesToResultMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Job + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FilesToResult + ui/images/FTR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GroupBy + org.pentaho.di.trans.steps.groupby.GroupByMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Statistics + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Groupby + ui/images/GRP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MemoryGroupBy + org.pentaho.di.trans.steps.memgroupby.MemoryGroupByMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Statistics + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MemoryGroupby + ui/images/MGB.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AnalyticQuery + org.pentaho.di.trans.steps.analyticquery.AnalyticQueryMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Statistics + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.AnalyticQuery + ui/images/AQI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MergeJoin + org.pentaho.di.trans.steps.mergejoin.MergeJoinMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Joins + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MergeJoin + ui/images/MJOIN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SortedMerge + org.pentaho.di.trans.steps.sortedmerge.SortedMergeMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Joins + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SortedMerge + ui/images/SMG.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XMLInput + org.pentaho.di.trans.steps.xmlinput.XMLInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Deprecated + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XMLInput + ui/images/XIN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XMLInputSax + org.pentaho.di.trans.steps.xmlinputsax.XMLInputSaxMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Deprecated + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XMLInputSax + ui/images/XIS.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XMLOutput + org.pentaho.di.trans.steps.xmloutput.XMLOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XMLOutput + ui/images/XOU.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ExcelOutput + org.pentaho.di.trans.steps.exceloutput.ExcelOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ExcelOutput + ui/images/XLO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CallDBProcedure + org.pentaho.di.trans.steps.dbproc.DBProcMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.CallDBProcedure + ui/images/PRC.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RowDenormaliser + org.pentaho.di.trans.steps.denormaliser.DenormaliserMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RowsDenormalises + ui/images/UNP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RowNormaliser + org.pentaho.di.trans.steps.normaliser.NormaliserMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RowNormaliser + ui/images/NRM.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RowFalttener + org.pentaho.di.trans.steps.flattener.FlattenerMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Rowflattener + ui/images/FLA.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XBaseInput + org.pentaho.di.trans.steps.xbaseinput.XBaseInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XBaseinput + ui/images/XBI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AccessOutput + org.pentaho.di.trans.steps.accessoutput.AccessOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.AccessOutput + ui/images/ACO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RegexEval + org.pentaho.di.trans.steps.regexeval.RegexEvalMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Scripting + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RegexEval + ui/images/RGE.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AccessInput + org.pentaho.di.trans.steps.accessinput.AccessInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.AccessInput + ui/images/ACI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AddXML + org.pentaho.di.trans.steps.addxml.AddXMLMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.AddXML + ui/images/add_xml.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AggregateRows + org.pentaho.di.trans.steps.aggregaterows.AggregateRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Deprecated + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.AggregateRows + ui/images/AGG.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MondrianInput + org.pentaho.di.trans.steps.mondrianinput.MondrianInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MondrianInput + ui/images/MON.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.OlapInput + org.pentaho.di.trans.steps.olapinput.OlapInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.OlapInput + ui/images/MON.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetFilesRowsCount + org.pentaho.di.trans.steps.getfilesrowscount.GetFilesRowsCountMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetFilesRowsCount + ui/images/FRC.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.LDAPInput + org.pentaho.di.trans.steps.ldapinput.LDAPInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.LDAPInput + ui/images/LIP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetXMLData + org.pentaho.di.trans.steps.getxmldata.GetXMLDataMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetXMLData + ui/images/GXD.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XSDValidator + org.pentaho.di.trans.steps.xsdvalidator.XsdValidatorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Validation + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XSDValidator + ui/images/XSD.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XSLT + org.pentaho.di.trans.steps.xslt.XsltMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XSLT + ui/images/XSLT.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Validator + org.pentaho.di.trans.steps.validator.ValidatorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Validation + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Validator + ui/images/VLD.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SQLFileOutput + org.pentaho.di.trans.steps.sqlfileoutput.SQLFileOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SQLFileOutput + ui/images/SFO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SplitFieldToRows3 + org.pentaho.di.trans.steps.splitfieldtorows.SplitFieldToRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SplitFieldToRows3 + ui/images/SFtR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.PropertyInput + org.pentaho.di.trans.steps.propertyinput.PropertyInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.PropertyInput + ui/images/PFI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GPBulkLoader + org.pentaho.di.trans.steps.gpbulkloader.GPBulkLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GPBulkLoader + ui/images/GBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.PGBulkLoader + org.pentaho.di.trans.steps.pgbulkloader.PGBulkLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.PGBulkLoader + ui/images/PGBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.LDIFInput + org.pentaho.di.trans.steps.ldifinput.LDIFInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.LDIFInput + ui/images/LDI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.PropertyOutput + org.pentaho.di.trans.steps.propertyoutput.PropertyOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.PropertyOutput + ui/images/PFO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SwitchCase + org.pentaho.di.trans.steps.switchcase.SwitchCaseMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SwitchCase + ui/images/SWC.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XMLJoin + org.pentaho.di.trans.steps.xmljoin.XMLJoinMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Joins + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XMLJoin + ui/images/XJN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.StepMetastructure + org.pentaho.di.trans.steps.stepmeta.StepMetastructureMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.StepMetastructure + ui/images/STMD.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TableExists + org.pentaho.di.trans.steps.tableexists.TableExistsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TableExists + ui/images/TEX.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ColumnExists + org.pentaho.di.trans.steps.columnexists.ColumnExistsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ColumnExists + ui/images/CEX.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FileExists + org.pentaho.di.trans.steps.fileexists.FileExistsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FileExists + ui/images/FEX.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CloneRow + org.pentaho.di.trans.steps.clonerow.CloneRowMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.CloneRow + ui/images/CLR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Delay + org.pentaho.di.trans.steps.delay.DelayMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Delay + ui/images/DLT.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CheckSum + org.pentaho.di.trans.steps.checksum.CheckSumMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.CheckSum + ui/images/CSM.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RandomValue + org.pentaho.di.trans.steps.randomvalue.RandomValueMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RandomValue + ui/images/RVA.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetSubFolders + org.pentaho.di.trans.steps.getsubfolders.GetSubFoldersMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetSubFolders + ui/images/LSF.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MonetDBBulkLoader + org.pentaho.di.trans.steps.monetdbbulkloader.MonetDBBulkLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MonetDBBulkLoader + ui/images/OBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MonetDBAgileMart + org.pentaho.di.trans.steps.monetdbagilemart.MonetDBAgileMartMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Agile + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MonetDBAgileMart + ui/images/OBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MailValidator + org.pentaho.di.trans.steps.mailvalidator.MailValidatorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Validation + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MailValidator + ui/images/MAV.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Mail + org.pentaho.di.trans.steps.mail.MailMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Mail + ui/images/MAIL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CreditCardValidator + org.pentaho.di.trans.steps.creditcardvalidator.CreditCardValidatorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Validation + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.CreditCardValidator + ui/images/CCV.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ProcessFiles + org.pentaho.di.trans.steps.processfiles.ProcessFilesMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ProcessFiles + ui/images/PPF.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.DetectLastRow + org.pentaho.di.trans.steps.detectlastrow.DetectLastRowMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.DetectLastRow + ui/images/DLR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.DetectEmptyStream + org.pentaho.di.trans.steps.detectemptystream.DetectEmptyStreamMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.DetectEmptyStream + ui/images/EMS.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.WriteToLog + org.pentaho.di.trans.steps.writetolog.WriteToLogMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.WriteToLog + ui/images/WTL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SampleRows + org.pentaho.di.trans.steps.samplerows.SampleRowsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Statistics + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SampleRows + ui/images/SR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetPreviousRowField + org.pentaho.di.trans.steps.getpreviousrowfield.GetPreviousRowFieldMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Deprecated + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetPreviousRowField + ui/images/PRV.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ExecSQLRow + org.pentaho.di.trans.steps.execsqlrow.ExecSQLRowMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Scripting + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ExecSQLRow + ui/images/SQLR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.DynamicSQLRow + org.pentaho.di.trans.steps.dynamicsqlrow.DynamicSQLRowMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.DynamicSQLRow + ui/images/DSR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.NumberRange + org.pentaho.di.trans.steps.numberrange.NumberRangeMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.NumberRange + ui/images/NRI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SynchronizeAfterMerge + org.pentaho.di.trans.steps.synchronizeaftermerge.SynchronizeAfterMergeMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SynchronizeAfterMerge + ui/images/SAM.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.LucidDBBulkLoader + org.pentaho.di.trans.steps.luciddbbulkloader.LucidDBBulkLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Deprecated + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.LucidDBBulkLoader + ui/images/OBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MySQLBulkLoader + org.pentaho.di.trans.steps.mysqlbulkloader.MySQLBulkLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MySQLBulkLoader + ui/images/OBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ReplaceString + org.pentaho.di.trans.steps.replacestring.ReplaceStringMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ReplaceString + ui/images/RST.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.StringCut + org.pentaho.di.trans.steps.stringcut.StringCutMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.StringCut + ui/images/SRC.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.IfNull + org.pentaho.di.trans.steps.ifnull.IfNullMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.IfNull + ui/images/IFN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RssOutput + org.pentaho.di.trans.steps.rssoutput.RssOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RssOutput + ui/images/RRO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RssInput + org.pentaho.di.trans.steps.rssinput.RssInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RssInput + ui/images/RIN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SalesforceInput + org.pentaho.di.trans.steps.salesforceinput.SalesforceInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SalesforceInput + ui/images/SFI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Formula + org.pentaho.di.trans.steps.formula.FormulaMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Scripting + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Formula + ui/images/FRM.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Janino + org.pentaho.di.trans.steps.janino.JaninoMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Scripting + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Janino + ui/images/janino.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ReservoirSampling + org.pentaho.di.trans.steps.reservoirsampling.ReservoirSamplingMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Statistics + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ReservoirSampling + ui/images/RS.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.UnivariateStats + org.pentaho.di.trans.steps.univariatestats.UnivariateStatsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Statistics + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.UnivariateStats + ui/images/US.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.UniqueRowsByHashSet + org.pentaho.di.trans.steps.uniquerowsbyhashset.UniqueRowsByHashSetMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.UniqueRowsByHashSet + ui/images/URH.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.HTTPPOST + org.pentaho.di.trans.steps.httppost.HTTPPOSTMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.HTTPPOST + ui/images/HTP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SetValueConstant + org.pentaho.di.trans.steps.setvalueconstant.SetValueConstantMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SetValueConstant + ui/images/SVC.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SetValueField + org.pentaho.di.trans.steps.setvaluefield.SetValueFieldMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SetValueField + ui/images/SVF.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ExecProcess + org.pentaho.di.trans.steps.execprocess.ExecProcessMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ExecProcess + ui/images/RPL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.WebServiceLookup + org.pentaho.di.trans.steps.webservices.WebServiceMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.WebServiceLookup + ui/images/WSL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CsvInput + org.pentaho.di.trans.steps.csvinput.CsvInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.CsvInput + ui/images/TFI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ParallelGzipCsvInput + org.pentaho.di.trans.steps.parallelgzipcsv.ParGzipCsvInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ParallelGzipCsvInput + ui/images/TFI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MailInput + org.pentaho.di.trans.steps.mailinput.MailInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MailInput + ui/images/GETPOP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetTableNames + org.pentaho.di.trans.steps.gettablenames.GetTableNamesMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetTableNames + ui/images/GTN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SalesforceUpsert + org.pentaho.di.trans.steps.salesforceupsert.SalesforceUpsertMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SalesforceUpsert + ui/images/SFU.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SalesforceInsert + org.pentaho.di.trans.steps.salesforceinsert.SalesforceInsertMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SalesforceInsert + ui/images/FFO.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SalesforceUpdate + org.pentaho.di.trans.steps.salesforceupdate.SalesforceUpdateMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SalesforceUpdate + ui/images/SFUD.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SalesforceDelete + org.pentaho.di.trans.steps.salesforcedelete.SalesforceDeleteMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SalesforceDelete + ui/images/SFD.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.LucidDBStreamingLoader + org.pentaho.di.trans.steps.luciddbstreamingloader.LucidDBStreamingLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.LucidDBStreamingLoader + ui/images/OBL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.UserDefinedJavaClass + org.pentaho.di.trans.steps.userdefinedjavaclass.UserDefinedJavaClassMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Scripting + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.UserDefinedJavaClass + ui/images/sScript.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.DataGrid + org.pentaho.di.trans.steps.datagrid.DataGridMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.DataGrid + ui/images/GNR.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Script + org.pentaho.di.trans.steps.script.ScriptMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Experimental + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Script + ui/images/SCR_mod.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TeraFast + org.pentaho.di.trans.steps.terafast.TeraFastMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TeraFast + ui/images/BulkIn.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SapInput + org.pentaho.di.trans.steps.sapinput.SapInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SapInput + ui/images/SIP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ClosureGenerator + org.pentaho.di.trans.steps.closure.ClosureGeneratorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ClosureGenerator + ui/images/CLG.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CubeInput + org.pentaho.di.trans.steps.cubeinput.CubeInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Cubeinput + ui/images/CIP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.CubeOutput + org.pentaho.di.trans.steps.cubeoutput.CubeOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Cubeoutput + ui/images/COP.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FieldsChangeSequence + org.pentaho.di.trans.steps.fieldschangesequence.FieldsChangeSequenceMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FieldsChangeSequence + ui/images/CSEQ.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SplitFields + org.pentaho.di.trans.steps.fieldsplitter.FieldSplitterMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SplitFields + ui/images/SPL.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FixedInput + org.pentaho.di.trans.steps.fixedinput.FixedInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FixedInput + ui/images/TFI.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GenerateRows + org.pentaho.di.trans.steps.rowgenerator.RowGeneratorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GenerateRows + ui/images/GEN.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ValueMapper + org.pentaho.di.trans.steps.valuemapper.ValueMapperMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MapValues + ui/images/VMP.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SyslogMessage + org.pentaho.di.trans.steps.syslog.SyslogMessageMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SyslogMessage + ui/images/SYL.png + + + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FileLocked + org.pentaho.di.trans.steps.filelocked.FileLockedMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FileLocked + ui/images/CFL.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.WebServiceAvailable + org.pentaho.di.trans.steps.webserviceavailable.WebServiceAvailableMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.WebServiceAvailable + ui/images/WSA.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.LoadFileInput + org.pentaho.di.trans.steps.loadfileinput.LoadFileInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.LoadFileInput + ui/images/LFI.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ChangeFileEncoding + org.pentaho.di.trans.steps.changefileencoding.ChangeFileEncodingMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ChangeFileEncoding + ui/images/CFE.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.FuzzyMatch + org.pentaho.di.trans.steps.fuzzymatch.FuzzyMatchMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.FuzzyMatch + ui/images/FZM.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RuleExecutor + org.pentaho.di.trans.steps.rules.RulesMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Experimental + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RuleExecutor + ui/images/SCR_mod.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SSH + org.pentaho.di.trans.steps.ssh.SSHMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SSH + ui/images/ssh.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.RandomCCNumberGenerator + org.pentaho.di.trans.steps.randomccnumber.RandomCCNumberGeneratorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.RandomCCNumberGenerator + ui/images/CCG.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.JsonInput + org.pentaho.di.trans.steps.jsoninput.JsonInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.JsonInput + ui/images/JSI.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.JsonOutput + org.pentaho.di.trans.steps.jsonoutput.JsonOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.JsonOutput + ui/images/JSO.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.LDAPOutput + org.pentaho.di.trans.steps.ldapoutput.LDAPOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.LDAPOutput + ui/images/LDO.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MetaInject + org.pentaho.di.trans.steps.metainject.MetaInjectMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MetaInject + ui/images/GenericTransform.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.StringOperations + org.pentaho.di.trans.steps.stringoperations.StringOperationsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.StringOperations + ui/images/STM.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.YamlInput + org.pentaho.di.trans.steps.yamlinput.YamlInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.YamlInput + ui/images/YamlI.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.BlockUntilStepsFinish + org.pentaho.di.trans.steps.blockuntilstepsfinish.BlockUntilStepsFinishMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.BlockUntilStepsFinish + ui/images/WFS.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.StepsMetrics + org.pentaho.di.trans.steps.stepsmetrics.StepsMetricsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Statistics + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.StepsMetrics + ui/images/SSTAS.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ElasticSearchBulk + org.pentaho.di.trans.steps.elasticsearchbulk.ElasticSearchBulkMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ElasticSearchBulk + ui/images/ESB.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TypeExitExcelWriterStep + org.pentaho.di.trans.steps.excelwriter.ExcelWriterStepMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TypeExitExcelWriterStep + ui/images/XWS.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.TypeExitGoogleAnalyticsStep + org.pentaho.di.trans.steps.googleanalytics.GaInputStepMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.TypeExitGoogleAnalyticsStep + ui/images/GAN.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.PrioritizeStreams + org.pentaho.di.trans.steps.prioritizestreams.PrioritizeStreamsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.PrioritizeStreams + ui/images/PRS.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.VectorWiseBulkLoader + org.pentaho.di.trans.steps.ivwloader.IngresVectorwiseLoaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Bulk + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.VectorWiseBulkLoader + ui/images/BulkIn.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Rest + org.pentaho.di.trans.steps.rest.RestMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Lookup + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Rest + ui/images/REST.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.GetRepositoryNames + org.pentaho.di.trans.steps.getrepositorynames.GetRepositoryNamesMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.GetRepositoryNames + ui/images/GRN.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.PentahoReportingOutput + org.pentaho.di.trans.steps.pentahoreporting.PentahoReportingOutputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.PentahoReportingOutput + ui/images/JFR.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.AutoDoc + org.pentaho.di.trans.steps.autodoc.AutoDocMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Output + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.AutoDoc + ui/images/autodoc.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SingleThreader + org.pentaho.di.trans.steps.singlethreader.SingleThreaderMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Flow + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SingleThreader + ui/images/MAP.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.XMLInputStreamStAX + org.pentaho.di.trans.steps.xmlinputstream.XMLInputStreamMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.XMLInputStreamStAX + ui/images/xml_input_stream.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.MultiwayMergeJoin + org.pentaho.di.trans.steps.multimerge.MultiMergeJoinMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Experimental + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.MultiwayMergeJoin + ui/images/MJOINS.png + + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SymmetricCryptography + org.pentaho.di.trans.steps.symmetriccrypto.symmetriccryptotrans.SymmetricCryptoTransMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Experimental + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SymmetricCryptography + ui/images/SCE.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SecretKeyGenerator + org.pentaho.di.trans.steps.symmetriccrypto.secretkeygenerator.SecretKeyGeneratorMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Experimental + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SecretKeyGenerator + ui/images/SCG.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.Edi2Xml + org.pentaho.di.trans.steps.edi2xml.Edi2XmlMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Utility + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.Edi2Xml + ui/images/EDI2XML.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.SASInput + org.pentaho.di.trans.steps.sasinput.SasInputMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Input + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.SASInput + ui/images/SASInput.png + + + i18n:org.pentaho.di.trans.step:BaseStep.TypeLongDesc.ConcatFields + org.pentaho.di.trans.steps.concatfields.ConcatFieldsMeta + i18n:org.pentaho.di.trans.step:BaseStep.Category.Transform + i18n:org.pentaho.di.trans.step:BaseStep.TypeTooltipDesc.ConcatFields + ui/images/ConcatFields.png + + diff --git a/pdi/document-folder.kjb b/pdi/document-folder.kjb index 56335dc..b0d0e4a 100644 --- a/pdi/document-folder.kjb +++ b/pdi/document-folder.kjb @@ -1,443 +1,443 @@ - - - document-folder - - - 1.0 - 2 - / - - - 2010/10/06 01:02:24.031 - - - 2010/10/06 01:02:24.031 - - - INPUT_DIR - /home/rbouman/projects/kettle-cookbook/pdi - Directory where the BI content (ktr, kjb, xaction etc.) files reside - - - OUTPUT_DIR - /home/rbouman/projects/kettle-cookbook/docs - Directory where you want the documentation to be placed - - - SAXON - ./libext/saxon9.jar - Location of the saxon lib. Default location assumes you're running kettle from it's home directory. - - - - - - -
- - - -ID_JOBNID_JOBCHANNEL_IDNCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDNLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDNLOG_FIELD - - -
- -ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR - - -
- -ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID - N - - - - START - Special entries - SPECIAL - Y - N - N - 0 - 0 - 60 - 12 - 0 - 1 - 1 - N - Y - 0 - 54 - 134 - - - Create ${OUTPUT_DIR} and Copy Template + + + document-folder + + + 1.0 + 2 + / + - + 2010/10/06 01:02:24.031 + - + 2010/10/06 01:02:24.031 + + + INPUT_DIR + /home/rbouman/projects/kettle-cookbook/pdi + Directory where the BI content (ktr, kjb, xaction etc.) files reside + + + OUTPUT_DIR + /home/rbouman/projects/kettle-cookbook/docs + Directory where you want the documentation to be placed + + + SAXON + ./libext/saxon9.jar + Location of the saxon lib. Default location assumes you're running kettle from it's home directory. + + + + + + +
+ + + +ID_JOBNID_JOBCHANNEL_IDNCHANNEL_IDJOBNAMEYJOBNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDNLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDNLOG_FIELD + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATEJOBNAMEYTRANSNAMEJOBENTRYNAMEYSTEPNAMELINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSRESULTYRESULTNR_RESULT_ROWSYNR_RESULT_ROWSNR_RESULT_FILESYNR_RESULT_FILESLOG_FIELDNLOG_FIELDCOPY_NRNCOPY_NR + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + N + + + + START + Special entries + SPECIAL + Y + N + N + 0 + 0 + 60 + 12 + 0 + 1 + 1 + N + Y + 0 + 54 + 134 + + + Create ${OUTPUT_DIR} and Copy Template This job entry copies the static resources such as css and javascript files and images to the output directory. -These static resources are referenced by <script>, <link> and <img> tags in the generated HTML documentation. - COPY_FILES - Y - N - Y - Y - N - N - N - Y - - - ${Internal.Job.Filename.Directory}/../template - ${OUTPUT_DIR} - .+ - - - N - Y - 0 - 293 - 228 - - - process-files.ktr - Transformation - TRANS - filename - - ${Internal.Job.Filename.Directory}/process-files.ktr - - N - N - N - N - N - N - - - N - N - Nothing - N - - N - Y - N - N - Y - N - Y - 0 - 65 - 406 - - - create-output-subdir - Job - JOB - filename - - ${Internal.Job.Filename.Directory}/create-output-subdir.kjb - - N - Y - Y - N - - - N - N - Nothing - - Y - N - N - N - N - OUTPUT_SUBDIR - output_directory - - N - N - Y - 0 - 215 - 406 - - - transform script exists? - File Exists - FILE_EXISTS - ${FULL_TRANSFORM_SCRIPT} - N - Y - 0 - 63 - 586 - - - Success 1 - Success - SUCCESS - N - Y - 0 - 348 - 921 - - - Execute transform script - Shell - SHELL - ${FULL_TRANSFORM_SCRIPT} - - N - N - N - - N - - N - N - N - - Nothing - N - Y - 0 - 348 - 731 - - - Delete transform script - Delete files - DELETE_FILES - N - N - - - ${FULL_TRANSFORM_SCRIPT} - - - - N - Y - 0 - 348 - 822 - - - is windows? - Simple evaluation - SIMPLE_EVAL - variable - - ${IS_WINDOWS} - string - - Y - - - equal - equal - true - N - N - Y - 0 - 213 - 586 - - - Make Executable - Shell - SHELL - - - N - N - N - - N - - N - N - Y - - Nothing - N - Y - 0 - 348 - 586 - - - substitute-variables-in-parameters.ktr - Transformation - TRANS - filename - - ${Internal.Job.Filename.Directory}/substitute-variables-in-parameters.ktr - - N - N - N - N - N - N - - - N - N - Nothing - N - - N - Y - N - N - Y - N - Y - 0 - 244 - 134 - - - - - process-files.ktr - create-output-subdir - 0 - 0 - Y - Y - N - - - Create ${OUTPUT_DIR} and Copy Template - process-files.ktr - 0 - 0 - Y - Y - N - - - transform script exists? - Success 1 - 0 - 0 - Y - N - N - - - Execute transform script - Delete transform script - 0 - 0 - N - Y - N - - - Delete transform script - Success 1 - 0 - 0 - Y - Y - N - - - transform script exists? - is windows? - 0 - 0 - Y - Y - N - - - is windows? - Execute transform script - 0 - 0 - Y - Y - N - - - is windows? - Make Executable - 0 - 0 - Y - N - N - - - Make Executable - Execute transform script - 0 - 0 - Y - Y - N - - - create-output-subdir - transform script exists? - 0 - 0 - Y - Y - N - - - START - substitute-variables-in-parameters.ktr - 0 - 0 - Y - Y - Y - - - substitute-variables-in-parameters.ktr - Create ${OUTPUT_DIR} and Copy Template - 0 - 0 - Y - Y - N - - - - +These static resources are referenced by <script>, <link> and <img> tags in the generated HTML documentation. + COPY_FILES + Y + N + Y + Y + N + N + N + Y + + + ${Internal.Job.Filename.Directory}/../template + ${OUTPUT_DIR} + .+ + + + N + Y + 0 + 293 + 228 + + + process-files.ktr + Transformation + TRANS + filename + + ${Internal.Job.Filename.Directory}/process-files.ktr + + N + N + N + N + N + N + + + N + N + Nothing + N + + N + Y + N + N + Y + N + Y + 0 + 65 + 406 + + + create-output-subdir + Job + JOB + filename + + ${Internal.Job.Filename.Directory}/create-output-subdir.kjb + + N + Y + Y + N + + + N + N + Nothing + + Y + N + N + N + N + OUTPUT_SUBDIR + output_directory + + N + N + Y + 0 + 215 + 406 + + + transform script exists? + File Exists + FILE_EXISTS + ${FULL_TRANSFORM_SCRIPT} + N + Y + 0 + 63 + 586 + + + Success 1 + Success + SUCCESS + N + Y + 0 + 348 + 921 + + + Execute transform script + Shell + SHELL + ${FULL_TRANSFORM_SCRIPT} + + N + N + N + + N + + N + N + N + + Nothing + N + Y + 0 + 348 + 731 + + + Delete transform script + Delete files + DELETE_FILES + N + N + + + ${FULL_TRANSFORM_SCRIPT} + + + + N + Y + 0 + 348 + 822 + + + is windows? + Simple evaluation + SIMPLE_EVAL + variable + + ${IS_WINDOWS} + string + + Y + + + equal + equal + true + N + N + Y + 0 + 213 + 586 + + + Make Executable + Shell + SHELL + + + N + N + N + + N + + N + N + Y + + Nothing + N + Y + 0 + 348 + 586 + + + substitute-variables-in-parameters.ktr + Transformation + TRANS + filename + + ${Internal.Job.Filename.Directory}/substitute-variables-in-parameters.ktr + + N + N + N + N + N + N + + + N + N + Nothing + N + + N + Y + N + N + Y + N + Y + 0 + 244 + 134 + + + + + process-files.ktr + create-output-subdir + 0 + 0 + Y + Y + N + + + Create ${OUTPUT_DIR} and Copy Template + process-files.ktr + 0 + 0 + Y + Y + N + + + transform script exists? + Success 1 + 0 + 0 + Y + N + N + + + Execute transform script + Delete transform script + 0 + 0 + N + Y + N + + + Delete transform script + Success 1 + 0 + 0 + Y + Y + N + + + transform script exists? + is windows? + 0 + 0 + Y + Y + N + + + is windows? + Execute transform script + 0 + 0 + Y + Y + N + + + is windows? + Make Executable + 0 + 0 + Y + N + N + + + Make Executable + Execute transform script + 0 + 0 + Y + Y + N + + + create-output-subdir + transform script exists? + 0 + 0 + Y + Y + N + + + START + substitute-variables-in-parameters.ktr + 0 + 0 + Y + Y + Y + + + substitute-variables-in-parameters.ktr + Create ${OUTPUT_DIR} and Copy Template + 0 + 0 + Y + Y + N + + + + Phase 1: create the destination and copy all static resources. Static resources are the stylesheets, javascripts and images required to render HTML docs All these are stored in the template directory (this sits immediately beneath the root dir of the kettle-cookbook dir), which is always copied in its entirety to the output dir. -The template dir also contains an (empty) html dir: this is the actual destination dir for the generated documentation. - 442 - 172 - 1122 - 112 - - -1 - N - N - 0 - 0 - 0 - 255 - 165 - 0 - 100 - 100 - 100 - N - - +The template dir also contains an (empty) html dir: this is the actual destination dir for the generated documentation. + 440 + 170 + 978 + 100 + Arial + 10 + N + N + 0 + 0 + 0 + 255 + 165 + 0 + 100 + 100 + 100 + N + + Phase 2: process files and create output subdirectories: In this phase, the contents of the input dir, including its subdirectories, are scanned for files for which we generate documentation (the input files). @@ -458,27 +458,27 @@ The XSLT commands are always applied to index.xml. This phase also creates the required directory structure in the html director beneath the output dir. To do this, the process-files transformation copies the list of new directories to the result. The create-output-subdir runs for each result, and actually creates the subdirectory. - - 443 - 279 - 1062 - 367 - - -1 - N - N - 0 - 0 - 0 - 255 - 165 - 0 - 100 - 100 - 100 - N - - + + 440 + 290 + 938 + 309 + Arial + 10 + N + N + 0 + 0 + 0 + 255 + 165 + 0 + 100 + 100 + 100 + N + + Phase 3: actually generate documentation. Actual documentation generation is done by the transform script generated in phase 2. @@ -489,51 +489,51 @@ For non-windows systems, the transform script needs to be given the execute attr Finally, the transform script is actually executed, and if that finishes without errors, it is cleaned up by deleting it. -This concludes the main job of the kettle-cookbook documentation generation process. - 443 - 578 - 914 - 197 - - -1 - N - N - 0 - 0 - 0 - 255 - 165 - 0 - 100 - 100 - 100 - N - - +This concludes the main job of the kettle-cookbook documentation generation process. + 440 + 620 + 807 + 174 + Arial + 10 + N + N + 0 + 0 + 0 + 255 + 165 + 0 + 100 + 100 + 100 + N + + This is document-folder. This job generates documentation for a folder of pentaho bi-content. This job takes 2 parameters: INPUT_DIR: the directory that contains the files (.ktr, .kjb, .xaction, .xcdf, .prpt) that you want to generate documentation for. -OUTPUT_DIR: the directory that is to contain the generated documentation. - 5 - 11 - 740 - 106 - - -1 - N - N - 0 - 0 - 0 - 255 - 165 - 0 - 100 - 100 - 100 - N - - - +OUTPUT_DIR: the directory that is to contain the generated documentation. + 5 + 11 + 740 + 106 + + -1 + N + N + 0 + 0 + 0 + 255 + 165 + 0 + 100 + 100 + 100 + N + + + diff --git a/pdi/process-files.ktr b/pdi/process-files.ktr index 3cd43dd..da4cd19 100644 --- a/pdi/process-files.ktr +++ b/pdi/process-files.ktr @@ -5,6 +5,7 @@ + Normal 0 / @@ -20,23 +21,34 @@ SAXON - ./libext/saxon8.jar - + ./libext/saxon8.jar + - - - - - - - -
- - Y - N - + + +
+ + + +ID_BATCHYID_BATCHCHANNEL_IDNCHANNEL_IDTRANSNAMEYTRANSNAMESTATUSYSTATUSLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDNLINES_REJECTEDERRORSYERRORSSTARTDATEYSTARTDATEENDDATEYENDDATELOGDATEYLOGDATEDEPDATEYDEPDATEREPLAYDATEYREPLAYDATELOG_FIELDNLOG_FIELD + + +
+ + +ID_BATCHYID_BATCHSEQ_NRYSEQ_NRLOGDATEYLOGDATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSINPUT_BUFFER_ROWSYINPUT_BUFFER_ROWSOUTPUT_BUFFER_ROWSYOUTPUT_BUFFER_ROWS + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATELOGGING_OBJECT_TYPEYLOGGING_OBJECT_TYPEOBJECT_NAMEYOBJECT_NAMEOBJECT_COPYYOBJECT_COPYREPOSITORY_DIRECTORYYREPOSITORY_DIRECTORYFILENAMEYFILENAMEOBJECT_IDYOBJECT_IDOBJECT_REVISIONYOBJECT_REVISIONPARENT_CHANNEL_IDYPARENT_CHANNEL_IDROOT_CHANNEL_IDYROOT_CHANNEL_ID + + +
+ +ID_BATCHYID_BATCHCHANNEL_IDYCHANNEL_IDLOG_DATEYLOG_DATETRANSNAMEYTRANSNAMESTEPNAMEYSTEPNAMESTEP_COPYYSTEP_COPYLINES_READYLINES_READLINES_WRITTENYLINES_WRITTENLINES_UPDATEDYLINES_UPDATEDLINES_INPUTYLINES_INPUTLINES_OUTPUTYLINES_OUTPUTLINES_REJECTEDYLINES_REJECTEDERRORSYERRORSLOG_FIELDNLOG_FIELD @@ -55,6 +67,7 @@ N 1000 + @@ -63,13 +76,36 @@ + + 2013/04/06 23:41:02.490 - 2010/11/02 21:08:34.078 + + update all files, don't look at file modification date + 760 + 370 + 292 + 25 + Arial + 10 + N + N + 0 + 0 + 0 + 255 + 165 + 0 + 100 + 100 + 100 + Y + - Get ${INPUT_DIR} and ${OUTPUT_DIR}compare-files.ktrY compare-files.ktrdir diffY compare-files.ktrfile diffY compare-files.ktrinput dirY compare-files.ktrinput fileY compare-files.ktroutput fileY input dircreate-index.ktrY input filecreate-index.ktrY Get ${INPUT_DIR} and ${OUTPUT_DIR}create-index.ktrY file diffSwitch / CaseY Switch / CaseDelete fileY Switch / CaseLookup input lastmodifiedY input fileLookup input lastmodifiedY Lookup input lastmodifiedFile updated?Y File updated?Not updatedY Switch / Casenew filesY File updated?updated filesY updated filesfilesY new filesfilesY create-index.ktrDummy (do nothing)Y Dummy (do nothing)create-transform-script.ktrY Get ${INPUT_DIR} and ${OUTPUT_DIR}create-transform-script.ktrY dir diffnew directory?Y new directory?Not a new directoryY new directory?Copy rows to resultY input filepost-process-files.ktrY filesGet XSLT by file extensionY Get ${INPUT_DIR} and ${OUTPUT_DIR}post-process-files.ktrY Get XSLT by file extensioncreate-transform-script.ktrY + Get ${INPUT_DIR} and ${OUTPUT_DIR}compare-files.ktrY compare-files.ktrdir diffY compare-files.ktrfile diffY compare-files.ktrinput dirY compare-files.ktrinput fileY compare-files.ktroutput fileY input dircreate-index.ktrY input filecreate-index.ktrY Get ${INPUT_DIR} and ${OUTPUT_DIR}create-index.ktrY file diffSwitch / CaseY Switch / CaseDelete fileY Switch / CaseLookup input lastmodifiedY input fileLookup input lastmodifiedY Lookup input lastmodifiedFile updated?Y File updated?Not updatedY Switch / Casenew filesY File updated?updated filesY updated filesfilesY new filesfilesY create-index.ktrDummy (do nothing)Y Dummy (do nothing)create-transform-script.ktrY Get ${INPUT_DIR} and ${OUTPUT_DIR}create-transform-script.ktrY dir diffnew directory?Y new directory?Not a new directoryY new directory?Copy rows to resultY input filepost-process-files.ktrY filesGet XSLT by file extensionY Get ${INPUT_DIR} and ${OUTPUT_DIR}post-process-files.ktrY Get XSLT by file extensioncreate-transform-script.ktrY Lookup input lastmodifiedupdated filesN Copy rows to result RowsToResult @@ -153,8 +189,8 @@ - 687 - 323 + 680 + 360 Y @@ -278,7 +314,7 @@ Lookup input lastmodified StreamLookup - Y + N 1 none @@ -445,8 +481,8 @@ - 784 - 385 + 780 + 420 Y @@ -961,6 +997,8 @@ none + filename + ${Internal.Transformation.Filename.Directory}/compare-files.ktr @@ -1002,6 +1040,8 @@ Y + N + N 257 @@ -1020,6 +1060,8 @@ none + filename + ${Internal.Transformation.Filename.Directory}/create-index.ktr @@ -1051,6 +1093,8 @@ Y + N + N 687 @@ -1069,6 +1113,8 @@ none + filename + ${Internal.Transformation.Filename.Directory}/create-transform-script.ktr @@ -1095,6 +1141,8 @@ Y + N + N 1337 @@ -1246,8 +1294,8 @@ N - 784 - 451 + 790 + 520 Y @@ -1280,6 +1328,8 @@ none + filename + ${Internal.Transformation.Filename.Directory}/post-process-files.ktr @@ -1301,6 +1351,8 @@ Y + N + N 683 @@ -1334,8 +1386,8 @@ N - 784 - 323 + 780 + 320 Y diff --git a/template/css/default.css b/template/css/default.css index b4c70c2..f2a4bbf 100644 --- a/template/css/default.css +++ b/template/css/default.css @@ -67,12 +67,12 @@ p, ul, ol, div, table { font-size: 10pt; } -a:link , a:visited { +a:link, a:visited { text-decoration: underline; color: blue; } -a:hover { +a[href]:hover { text-decoration: underline; color: red; } diff --git a/template/css/job.css b/template/css/job.css index c2f98dc..c99c20d 100644 --- a/template/css/job.css +++ b/template/css/job.css @@ -1,403 +1,414 @@ -/** -* This is job.css. This is part of kettle-cookbook. -* Kettle-cookbook is distributed on http://code.google.com/p/kettle-cookbook/ -* -* job.css - a cascading stylesheet file that marks up job documentation -* -* Copyright (C) 2010 -* Roland Bouman Roland.Bouman@gmail.com - http://rpbouman.blogspot.com/ -* -* This library is free software; you can redistribute it and/or modify it under -* the terms of the GNU Lesser General Public License as published by the -* Free Software Foundation; either version 2.1 of the License, or (at your option) -* any later version. - -* This library is distributed in the hope that it will be useful, but WITHOUT ANY -* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License along -* with this library; if not, write to -* the Free Software Foundation, Inc., -* 59 Temple Place, Suite 330, -* Boston, MA 02111-1307 USA -* -*/ -.entry-hops { - display:none; -} - -.entry-hidden , .entry-label-hidden{ - display:none; -} - -.entry-heading { - background-repeat: no-repeat; - text-indent: 38px; - height: 40px; -} - -.entry-icon { - position: absolute; - border-style: solid; - border-width: 1px; - border-color: rgb(125,125,125); - height: 32px; - width: 32px; - margin-left: auto; - margin-right: auto; - background-repeat: no-repeat; - z-index:100; -} - -.entry-label { - margin-top:2px; - font-size: 8pt !important; - white-space: nowrap; - position: absolute; - z-index:100; - background-color:white; -} - -.entry-hidden { - display: none; -} - -.entry-label-hidden { - display: none; -} - -.entry-hop { - background-color: black; -} - -.entry-hop-unconditional { - background-color: black; -} - -.entry-hop-unconditional-icon { - position:absolute; - width: 16px; - height: 16px; - background-image: url(../images/unconditional-hop.png); - z-index:500 !important; -} - -.entry-hop-true { - background-color: green; -} -.entry-hop-false { - background-color: red; -} - -/* - Utility entries -*/ -.entry-icon-ABORT { - background-image: url(../images/ABR.png); -} - -.entry-icon-MSGBOX_INFO { - background-image: url(../images/INF.png); -} - -.entry-icon-PING { - background-image: url(../images/PNG.png); -} - -.entry-icon-SYSLOG{ - background-image: url(../images/SYL.png); -} - -.entry-icon-SNMP_TRAP{ - background-image: url(../images/SNMP.png); -} - -.entry-icon-TRUNCATE_TABLES{ - background-image: url(../images/TRT.png); -} - -.entry-icon-WAIT_FOR_SQL{ - background-image: url(../images/WSQL.png); -} - -.entry-icon-WRITE_TO_LOG{ - background-image: url(../images/WTL.png); -} - -/* - General entries -*/ -.entry-icon-START { - background-image: url(../images/STR.png); -} - -.entry-icon-DUMMY { - background-image: url(../images/DUM.png); -} - -.entry-icon-DUMMY { - background-image: url(../images/DUM.png); -} - -.entry-icon-JOB { - background-image: url(../images/JOB.png); -} - -.entry-icon-SET_VARIABLES { - background-image: url(../images/SVA.png); -} - -.entry-icon-SUCCESS { - background-image: url(../images/SUC.png); -} - -.entry-icon-TRANS { - background-image: url(../images/TRN.png); -} - -/* - Mail entries -*/ -.entry-icon-GET_POP { - background-image: url(../images/GETPOP.png); -} - -.entry-icon-MAIL { - background-image: url(../images/MAIL.png); -} - -.entry-icon-JobCategory.Category.Mail_VALIDATOR { - background-image: url(../images/MAV.png); -} - -/* - File Management Entries -*/ -.entry-icon-ADD_RESULT_FILENAMES { - background-image: url(../images/AFN.png); -} - -.entry-icon-FOLDERS_COMPARE { - background-image: url(../images/FCP.png); -} - -.entry-icon-COPY_FILES { - background-image: url(../images/CPY.png); -} - -.entry-icon-COPY_MOVE_RESULT_FILENAMES { - background-image: url(../images/CMR.png); -} - -.entry-icon-CREATE_FOLDER { - background-image: url(../images/CRF.png); -} - -.entry-icon-FOLDERS_COMPARE { - background-image: url(../images/FCP.png); -} - -.entry-icon-CREATE_FILE { - background-image: url(../images/CFJ.png); -} - -.entry-icon-DELETE_FILE { - background-image: url(../images/DFJ.png); -} - -.entry-icon-DELETE_RESULT_FILENAMES { - background-image: url(../images/DFN.png); -} - -.entry-icon-DELETE_FILES { - background-image: url(../images/DFS.png); -} - -.entry-icon-DELETE_FOLDERS{ - background-image: url(../images/DSF.png); -} - -.entry-icon-FILE_COMPARE{ - background-image: url(../images/BFC.png); -} - -.entry-icon-HTTP { - background-image: url(../images/WEB.png); -} - -.entry-icon-MOVE_FILES { - background-image: url(../images/MVF.png); -} - -.entry-icon-UNZIP{ - background-image: url(../images/UZP.png); -} - -.entry-icon-WAIT_FOR_FILE{ - background-image: url(../images/WFF.png); -} - -.entry-icon-ZIP{ - background-image: url(../images/ZIP.png); -} - -/* - Conditions -*/ - -.entry-icon-CHECK_DB_CONNECTIONS { - background-image: url(../images/CDBC.png); -} - -.entry-icon-CHECK_FILES_LOCKED { - background-image: url(../images/CFL.png); -} - -.entry-icon-FOLDER_IS_EMPTY { - background-image: url(../images/EFO.png); -} - -.entry-icon-WEBSERVICE_AVAILABLE { - background-image: url(../images/WSA.png); -} - -.entry-icon-FILES_EXIST { - background-image: url(../images/LFE.png); -} - -.entry-icon-COLUMNS_EXIST { - /* TODO */ - background-image: url(../images/CEX.png); -} - -.entry-icon-EVAL_FILES_METRICS{ - background-image: url(../images/CFS.png); -} - -.entry-icon-EVAL_TABLE_CONTENT{ - background-image: url(../images/ETC.png); -} - -.entry-icon-FILE_EXISTS{ - background-image: url(../images/FEX.png); -} - -.entry-icon-SIMPLE_EVAL{ - background-image: url(../images/SEV.png); -} - -.entry-icon-TABLE_EXISTS{ - background-image: url(../images/TEX.png); -} - -.entry-icon-DELAY{ - background-image: url(../images/DLT.png); -} - -/* - scripting -*/ -.entry-icon-EVAL{ - background-image: url(../images/SCR.png); -} - -.entry-icon-SHELL{ - background-image: url(../images/SHL.png); -} - -.entry-icon-SQL{ - background-image: url(../images/SQL.png); -} - -/* - bulk loading -*/ -.entry-icon-MYSQL_BULK_FILE{ - background-image: url(../images/MBF.png); -} - -.entry-icon-MSSQL_BULK_LOAD{ - background-image: url(../images/MBL.png); -} - -.entry-icon-MYSQL_BULK_LOAD{ - background-image: url(../images/MBL.png); -} - -.entry-icon-MS_ACCESS_BULK_LOAD{ - background-image: url(../images/MBL.png); -} - -/* - XML -*/ - -.entry-icon-JobCategory.Category.XML_WELL_FORMED{ - background-image: url(../images/XFC.png); -} - -.entry-icon-DTD_VALIDATOR{ - background-image: url(../images/DTD.png); -} - -.entry-icon-XSD_VALIDATOR{ - background-image: url(../images/XSD.png); -} - -.entry-icon-XSLT{ - background-image: url(../images/XSLT.png); -} - -/* - Repository -*/ - -.entry-icon-CONNECTED_TO_REPOSITORY{ - background-image: url(../images/CREP.png); -} - -.entry-icon-EXPORT_REPOSITORY{ - background-image: url(../images/EREP.png); -} - -/* - File transfer -*/ -.entry-icon-FTP_DELETE{ - background-image: url(../images/FTPD.png); -} - -.entry-icon-FTP{ - background-image: url(../images/FTP.png); -} - -.entry-icon-FTP_PUT{ - background-image: url(../images/PFP.png); -} - -.entry-icon-FTPS_GET{ - background-image: url(../images/FTPG.png); -} - -.entry-icon-SFTP{ - background-image: url(../images/SFT.png); -} - -.entry-icon-FTPS_PUT{ - background-image: url(../images/PFP.png); -} - -.entry-icon-SFTPPUT{ - background-image: url(../images/SFP.png); -} - -.entry-icon-SSH2_GET{ - background-image: url(../images/SHG.png); -} - -.entry-icon-SSH2_PUT{ - background-image: url(../images/SHP.png); -} - - + + /** + * This is job.css. This is part of kettle-cookbook. + * Kettle-cookbook is distributed on http://code.google.com/p/kettle-cookbook/ + * + * job.css - a cascading stylesheet file that marks up job documentation + * + * Copyright (C) 2010 + * Roland Bouman Roland.Bouman@gmail.com - http://rpbouman.blogspot.com/ + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + + * This library is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with this library; if not, write to + * the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA + * + */ + .entry-hops { + display:none; + } + + .entry-hidden , .entry-label-hidden{ + display:none; + } + + .entry-heading { + background-repeat: no-repeat; + text-indent: 38px; + height: 40px; + } + + .entry-icon { + position: absolute; + border-style: solid; + border-width: 1px; + border-color: rgb(125,125,125); + height: 32px; + width: 32px; + margin-left: auto; + margin-right: auto; + background-repeat: no-repeat; + z-index:100; + } + + .entry-label { + margin-top:2px; + font-size: 8pt !important; + white-space: nowrap; + position: absolute; + z-index:100; + background-color:white; + } + + .entry-hidden { + display: none; + } + + .entry-label-hidden { + display: none; + } + + .entry-hop { + background-color: black; + } + + .entry-hop-unconditional { + background-color: black; + } + + .entry-hop-unconditional-icon { + position:absolute; + width: 16px; + height: 16px; + background-image: url(../images/unconditional-hop.png); + z-index:500 !important; + } + + .entry-hop-true { + background-color: green; + } + .entry-hop-false { + background-color: red; + } + + /* following two general entries don't seem to be part of 'kettle-job-entries.xml' */ + + .entry-icon-START { + background-image: url(../images/STR.png); + } + + .entry-icon-DUMMY { + background-image: url(../images/DUM.png); + } + + + /* BulkLoading */ + + .entry-icon-MYSQL_BULK_LOAD{ + background-image: url(../images/MBL.png); + } + + .entry-icon-MYSQL_BULK_FILE{ + background-image: url(../images/MBF.png); + } + + .entry-icon-MSSQL_BULK_LOAD{ + background-image: url(../images/MBL.png); + } + + .entry-icon-MS_ACCESS_BULK_LOAD{ + background-image: url(../images/MBL.png); + } + + /* Conditions */ + + .entry-icon-TABLE_EXISTS{ + background-image: url(../images/TEX.png); + } + + .entry-icon-FILE_EXISTS{ + background-image: url(../images/FEX.png); + } + + .entry-icon-DELAY{ + background-image: url(../images/DLT.png); + } + + .entry-icon-FOLDER_IS_EMPTY{ + background-image: url(../images/EFO.png); + } + + .entry-icon-FILES_EXIST{ + background-image: url(../images/LFE.png); + } + + .entry-icon-COLUMNS_EXIST{ + background-image: url(../images/CEX.png); + } + + .entry-icon-EVAL_TABLE_CONTENT{ + background-image: url(../images/ETC.png); + } + + .entry-icon-SIMPLE_EVAL{ + background-image: url(../images/SEV.png); + } + + .entry-icon-CHECK_DB_CONNECTIONS{ + background-image: url(../images/CDBC.png); + } + + .entry-icon-EVAL_FILES_METRICS{ + background-image: url(../images/CFS.png); + } + + .entry-icon-CHECK_FILES_LOCKED{ + background-image: url(../images/CFL.png); + } + + .entry-icon-WEBSERVICE_AVAILABLE{ + background-image: url(../images/WSA.png); + } + + /* FileEncryption */ + + .entry-icon-PGP_DECRYPT_FILES{ + background-image: url(../images/GPGDecrypt.png); + } + + .entry-icon-PGP_ENCRYPT_FILES{ + background-image: url(../images/GPGEncrypt.png); + } + + .entry-icon-PGP_VERIFY_FILES{ + background-image: url(../images/PGPVerif.png); + } + + /* FileManagement */ + + .entry-icon-HTTP{ + background-image: url(../images/WEB.png); + } + + .entry-icon-CREATE_FILE{ + background-image: url(../images/CFJ.png); + } + + .entry-icon-DELETE_FILE{ + background-image: url(../images/DFJ.png); + } + + .entry-icon-WAIT_FOR_FILE{ + background-image: url(../images/WFF.png); + } + + .entry-icon-FILE_COMPARE{ + background-image: url(../images/BFC.png); + } + + .entry-icon-ZIP_FILE{ + background-image: url(../images/ZIP.png); + } + + .entry-icon-DELETE_FILES{ + background-image: url(../images/DFS.png); + } + + .entry-icon-COPY_FILES{ + background-image: url(../images/CPY.png); + } + + .entry-icon-UNZIP{ + background-image: url(../images/UZP.png); + } + + .entry-icon-CREATE_FOLDER{ + background-image: url(../images/CRF.png); + } + + .entry-icon-FOLDERS_COMPARE{ + background-image: url(../images/FCP.png); + } + + .entry-icon-ADD_RESULT_FILENAMES{ + background-image: url(../images/AFN.png); + } + + .entry-icon-DELETE_RESULT_FILENAMES{ + background-image: url(../images/DFN.png); + } + + .entry-icon-MOVE_FILES{ + background-image: url(../images/MVF.png); + } + + .entry-icon-COPY_MOVE_RESULT_FILENAMES{ + background-image: url(../images/CMR.png); + } + + .entry-icon-DELETE_FOLDERS{ + background-image: url(../images/DSF.png); + } + + .entry-icon-WRITE_TO_FILE{ + background-image: url(../images/TFO.png); + } + + .entry-icon-DOS_UNIX_CONVERTER{ + background-image: url(../images/DTU.png); + } + + /* FileTransfer */ + + .entry-icon-FTP{ + background-image: url(../images/FTP.png); + } + + .entry-icon-SFTP{ + background-image: url(../images/SFT.png); + } + + .entry-icon-SFTPPUT{ + background-image: url(../images/SFP.png); + } + + .entry-icon-FTP_PUT{ + background-image: url(../images/PFP.png); + } + + .entry-icon-SSH2_GET{ + background-image: url(../images/SHG.png); + } + + .entry-icon-SSH2_PUT{ + background-image: url(../images/SHP.png); + } + + .entry-icon-FTP_DELETE{ + background-image: url(../images/FTPD.png); + } + + .entry-icon-FTPS_GET{ + background-image: url(../images/FTPG.png); + } + + .entry-icon-FTPS_PUT{ + background-image: url(../images/FTPSPut.png); + } + + /* General */ + + .entry-icon-TRANS{ + background-image: url(../images/TRN.png); + } + + .entry-icon-JOB{ + background-image: url(../images/JOB.png); + } + + .entry-icon-SPECIAL{ + background-image: url(../images/); + } + + .entry-icon-SUCCESS{ + background-image: url(../images/SUC.png); + } + + .entry-icon-SET_VARIABLES{ + background-image: url(../images/SVA.png); + } + + /* Mail */ + + .entry-icon-MAIL{ + background-image: url(../images/MAIL.png); + } + + .entry-icon-GET_POP{ + background-image: url(../images/GETPOP.png); + } + + .entry-icon-MAIL_VALIDATOR,JobCategory.Category.Mail_VALIDATOR{ + background-image: url(../images/MAV.png); + } + + /* Repository */ + + .entry-icon-EXPORT_REPOSITORY{ + background-image: url(../images/EREP.png); + } + + .entry-icon-CONNECTED_TO_REPOSITORY{ + background-image: url(../images/CREP.png); + } + + /* Scripting */ + + .entry-icon-SHELL{ + background-image: url(../images/SHL.png); + } + + .entry-icon-SQL{ + background-image: url(../images/SQL.png); + } + + .entry-icon-EVAL{ + background-image: url(../images/RES.png); + } + + /* Utility */ + + .entry-icon-MSGBOX_INFO{ + background-image: url(../images/INF.png); + } + + .entry-icon-ABORT{ + background-image: url(../images/ABR.png); + } + + .entry-icon-PING{ + background-image: url(../images/PNG.png); + } + + .entry-icon-WRITE_TO_LOG{ + background-image: url(../images/WTL.png); + } + + .entry-icon-TRUNCATE_TABLES{ + background-image: url(../images/TRT.png); + } + + .entry-icon-WAIT_FOR_SQL{ + background-image: url(../images/WSQL.png); + } + + .entry-icon-SNMP_TRAP{ + background-image: url(../images/SNMP.png); + } + + .entry-icon-SYSLOG{ + background-image: url(../images/SYL.png); + } + + .entry-icon-TALEND_JOB_EXEC{ + background-image: url(../images/TJE.png); + } + + /* XML */ + + .entry-icon-XSLT{ + background-image: url(../images/XSLT.png); + } + + .entry-icon-XSD_VALIDATOR{ + background-image: url(../images/XSD.png); + } + + .entry-icon-DTD_VALIDATOR{ + background-image: url(../images/DTD.png); + } + + .entry-icon-XML_WELL_FORMED{ + background-image: url(../images/XFC.png); + } + \ No newline at end of file diff --git a/template/css/kettle.css b/template/css/kettle.css index a59fb6f..1ff1c50 100644 --- a/template/css/kettle.css +++ b/template/css/kettle.css @@ -47,10 +47,13 @@ body.kettle-file { font-family: sans-serif; font-size: 8pt; padding: 2px; + white-space: pre; } .description, .extended-description { - font-family: sans-serif; + font-family:courier; + font-size:9pt; + color:blue } .hop-true-icon { diff --git a/template/css/transformation.css b/template/css/transformation.css index c4dc963..c6b96a4 100644 --- a/template/css/transformation.css +++ b/template/css/transformation.css @@ -1,807 +1,874 @@ -/** -* This is transformation.css. This is part of kettle-cookbook. -* Kettle-cookbook is distributed on http://code.google.com/p/kettle-cookbook/ -* -* transformation.css - a cascading stylesheet file that marks up transformation documentation -* -* Copyright (C) 2010 -* Roland Bouman Roland.Bouman@gmail.com - http://rpbouman.blogspot.com/ -* -* This library is free software; you can redistribute it and/or modify it under -* the terms of the GNU Lesser General Public License as published by the -* Free Software Foundation; either version 2.1 of the License, or (at your option) -* any later version. -* This library is distributed in the hope that it will be useful, but WITHOUT ANY -* WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -* PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public License along -* with this library; if not, write to -* the Free Software Foundation, Inc., -* 59 Temple Place, Suite 330, -* Boston, MA 02111-1307 USA -* -*/ -.step-hops { - display:none; -} - -.step-hidden , .step-label-hidden{ - display:none; -} - -.step-heading { - margin-top: 20px; - background-repeat: no-repeat; - text-indent: 38px; - height: 40px; -} - -.step-icon { - position: absolute; - border-style: solid; - border-width: 1px; - border-color: rgb(125,125,125); - height: 32px; - width: 32px; - margin-left: auto; - margin-right: auto; - background-repeat: no-repeat; - z-index:100; -} - -.step-label { - margin-top:2px; - font-size: 8pt !important; - white-space: nowrap; - position: absolute; - z-index:100; - background-color:white; -} - -.step-hop { -} - -.step-hop-enabled { - background-color: black; -} - -.step-hop-disabled { - background-color: rgb(200,200,200); -} - -.step-error { - background-color: red; - border-color: red !important; -} - -.step-hop-error { - background-color: red!important; -} - -.step-hop-copy-data-icon { - position:absolute; - width: 16px; - height: 16px; - background-image: url(../images/copy-hop.png); - z-index:500 !important; -} - -.step-hop-distribute-data { -} - -.step-hop-copy-data { -} - -.step-hop-true { - background-color: green; -} - -.step-hop-false { - background-color: red; -} - -/* - Input steps -*/ -.step-icon-AccessInput { - background-image: url(../images/ACI.png); -} - -.step-icon-CsvInput { - background-image: url(../images/TFI.png); -} - -.step-icon-DataGrid { - background-image: url(../images/GNR.png); -} - -.step-icon-CubeInput { - background-image: url(../images/CIP.png); -} - -.step-icon-ShapeFileReader{ - /* TODO */ -} - -.step-icon-ExcelInput{ - background-image: url(../images/XLI.png); -} - -.step-icon-FixedInput{ - background-image: url(../images/TFI.png); -} - -.step-icon-RandomValue{ - background-image: url(../images/RVA.png); -} - -.step-icon-RowGenerator{ - background-image: url(../images/GEN.png); -} - -.step-icon-getXMLData{ - background-image: url(../images/XIN.png); -} - -.step-icon-GetFileNames{ - background-image: url(../images/GFN.png); -} - -.step-icon-GetFilesRowsCount{ - background-image: url(../images/FRC.png); -} - -.step-icon-GetSubFolders{ - background-image: url(../images/LSF.png); -} - -.step-icon-SystemInfo{ - background-image: url(../images/SYS.png); -} - -.step-icon-LDAPInput{ - background-image: url(../images/LIP.png); -} - -.step-icon-LDIFInput{ - background-image: url(../images/LDI.png); -} - -.step-icon-LoadFileInput{ - background-image: url(../images/LFI.png); -} - -.step-icon-MondrianInput{ - background-image: url(../images/MON.png); -} - -.step-icon-OlapInput{ - background-image: url(../images/MON.png); -} - -.step-icon-PaloCellInput{ - background-image: url(../images/PaloCellInput.png); -} - -.step-icon-PaloDimInput{ - background-image: url(../images/PaloDimInput.png); -} - -.step-icon-PropertyInput{ - background-image: url(../images/PFI.png); -} - -.step-icon-RssInput { - background-image: url(../images/RIN.png); -} - -.step-icon-S3CSVINPUT{ - background-image: url(../images/TFI.png); -} - -.step-icon-SalesforceInput{ - background-image: url(../images/SFI.png); -} - -.step-icon-SapInput { - background-image: url(../images/SIP.png); -} - -.step-icon-TableInput { - background-image: url(../images/TIP.png); -} - -.step-icon-TextFileInput{ - background-image: url(../images/TFI.png); -} - -.step-icon-XBaseInput{ - background-image: url(../images/XBI.png); -} - -/* - Output steps -*/ - -.step-icon-AccessOutput{ - background-image: url(../images/ACO.png); -} - -.step-icon-Delete{ - background-image: url(../images/Delete.png); -} - -.step-icon-ExcelOutput{ - background-image: url(../images/XLO.png); -} - -.step-icon-InsertUpdate{ - background-image: url(../images/INU.png); -} - -.step-icon-PaloCellOutput{ - background-image: url(../images/PaloCellOutput.png); -} - -.step-icon-PaloDimOutput{ - background-image: url(../images/PaloDimOutput.png); -} - -.step-icon-PropertyOutput{ - background-image: url(../images/PFO.png); -} - -.step-icon-RssOutput{ - background-image: url(../images/RRO.png); -} - -.step-icon-SalesforceDelete{ - background-image: url(../images/SFD.png); -} - -.step-icon-SalesforceInsert{ - background-image: url(../images/FFO.png); -} - -.step-icon-SalesforceUpdate{ - background-image: url(../images/SFUD.png); -} - -.step-icon-SalesforceUpsert{ - background-image: url(../images/SFU.png); -} - -.step-icon-CubeOutput { - background-image: url(../images/COP.png); -} - -.step-icon-SQLFileOutput { - background-image: url(../images/SFO.png); -} - -.step-icon-SynchronizeAfterMerge { - background-image: url(../images/SAM.png); -} - -.step-icon-TableOutput{ - background-image: url(../images/TOP.png); -} - -.step-icon-TextFileOutput { - background-image: url(../images/TFO.png); -} - -.step-icon-Update { - background-image: url(../images/UPD.png); -} - -.step-icon-XMLOutput { - background-image: url(../images/XOU.png); -} - -/* - Transform steps -*/ -.step-icon-CheckSum { - background-image: url(../images/CSM.png); -} - -.step-icon-Constant { - background-image: url(../images/CST.png); -} - -.step-icon-Sequence { - background-image: url(../images/SEQ.png); -} - -.step-icon-FieldsChangeSequence { - background-image: url(../images/CSEQ.png); -} - -.step-icon-AddXML { - background-image: url(../images/XIN.png); -} - -.step-icon-Calculator { - background-image: url(../images/CLC.png); -} - -.step-icon-ClosureGenerator{ - background-image: url(../images/CLG.png); -} - -.step-icon-DummyPlugin{ - /* TODO */ -} - -.step-icon-NumberRange{ - background-image: url(../images/NRI.png); -} - -.step-icon-ReplaceString{ - background-image: url(../images/RST.png); -} - -.step-icon-Denormaliser{ - background-image: url(../images/UNP.png); -} - -.step-icon-Flattener{ - background-image: url(../images/FLA.png); -} - -.step-icon-Normaliser{ - background-image: url(../images/NRM.png); -} - -.step-icon-SelectValues{ - background-image: url(../images/SEL.png); -} - -.step-icon-SortRows{ - background-image: url(../images/SRT.png); -} - -.step-icon-SplitFieldToRows3{ - background-image: url(../images/SFtR.png); -} - -.step-icon-FieldSplitter{ - background-image: url(../images/SPL.png); -} - -.step-icon-StringCut{ - background-image: url(../images/SRC.png); -} - -.step-icon-Unique{ - background-image: url(../images/UNQ.png); -} - -.step-icon-UniqueRowsByHashSet{ - background-image: url(../images/URH.png); -} - -.step-icon-ValueMapper{ - background-image: url(../images/VMP.png); -} - -.step-icon-XSLT{ - background-image: url(../images/XSLT.png); -} - -/* - Utility steps -*/ - -.step-icon-ChangeFileEncoding{ - background-image: url(../images/CFE.png); -} - -.step-icon-CloneRow{ - background-image: url(../images/CLR.png); -} - -.step-icon-Delay{ - background-image: url(../images/DLT.png); -} - -.step-icon-ExecProcess{ - background-image: url(../images/RPL.png); -} - -.step-icon-IfNull{ - background-image: url(../images/IFN.png); -} - -.step-icon-Mail{ - background-image: url(../images/MAIL.png); -} - -.step-icon-StepMetastructure{ - background-image: url(../images/STMD.png); -} - -.step-icon-NullIf{ - background-image: url(../images/NUI.png); -} - -.step-icon-ProcessFiles{ - background-image: url(../images/PPF.png); -} - -.step-icon-SyslogMessage{ - background-image: url(../images/SYL.png); -} - -.step-icon-WriteToLog{ - background-image: url(../images/WTL.png); -} - -/* - Flow steps -*/ -.step-icon-Abort{ - background-image: url(../images/ABR.png); -} - -.step-icon-Append{ - background-image: url(../images/APP.png); -} - -.step-icon-BlockingStep{ - background-image: url(../images/BLK.png); -} - -.step-icon-DetectEmptyStream{ - background-image: url(../images/EMS.png); -} - -.step-icon-Dummy{ - background-image: url(../images/DUM.png); -} - -.step-icon-FilterRows{ - background-image: url(../images/FLT.png); -} - -.step-icon-DetectLastRow{ - background-image: url(../images/DLR.png); -} - -.step-icon-JavaFilter{ - background-image: url(../images/JLT.png); -} - -.step-icon-SwitchCase{ - background-image: url(../images/SWC.png); -} - -/* - Scripting Steps -*/ -.step-icon-ExecSQLRow{ - background-image: url(../images/SQLR.png); -} - -.step-icon-ExecSQL{ - background-image: url(../images/SQL.png); -} - -.step-icon-Formula{ - background-image: url(../images/FRM.png); -} - -.step-icon-ScriptValueMod{ - background-image: url(../images/SCR_mod.png); -} - -.step-icon-RegexEval{ - background-image: url(../images/RGE.png); -} - -.step-icon-UserDefinedJavaClass{ - /* TODO */ - background-image: url(../images/eScript.png); -} - -.step-icon-Janino{ - /* TODO */ - background-image: url(../images/janino.png); -} - -/* - Lookup Steps -*/ -.step-icon-DBProc{ - background-image: url(../images/PRC.png); -} - -.step-icon-ColumnExists{ - background-image: url(../images/CEX.png); -} - -.step-icon-FileLocked{ - background-image: url(../images/CFL.png); -} - -.step-icon-WebServiceAvailable{ - background-image: url(../images/WSA.png); -} - -.step-icon-DBJoin{ - background-image: url(../images/DBJ.png); -} - -.step-icon-DBLookup{ - background-image: url(../images/DLU.png); -} - -.step-icon-DynamicSQLRow{ - background-image: url(../images/DSR.png); -} - -.step-icon-FileExists{ - background-image: url(../images/FEX.png); -} - -.step-icon-FuzzyMatch{ - background-image: url(../images/FZM.png); -} - -.step-icon-HTTP{ - background-image: url(../images/WEB.png); -} - -.step-icon-HTTPPOST{ - background-image: url(../images/HTP.png); -} - -.step-icon-StreamLookup { - background-image: url(../images/SLU.png); -} - -.step-icon-TableExists { - background-image: url(../images/TEX.png); -} - -.step-icon-WebServiceLookup { - background-image: url(../images/WSL.png); -} - -/* - Joins -*/ - -.step-icon-JoinRows { - background-image: url(../images/JRW.png); -} - -.step-icon-MergeJoin { - background-image: url(../images/MJOIN.png); -} - -.step-icon-MergeRows { - background-image: url(../images/MRG.png); -} - -.step-icon-SortedMerge { - background-image: url(../images/SMG.png); -} - -.step-icon-XMLJoin { - background-image: url(../images/XJN.png); -} - -/* - Datawarehouse -*/ - -.step-icon-CombinationLookup { - background-image: url(../images/CMB.png); -} - -.step-icon-DimensionLookup { - background-image: url(../images/DIM.png); -} - -/* - Validation -*/ -.step-icon-CreditCardValidator { - background-image: url(../images/CCV.png); -} - -.step-icon-Validator { - background-image: url(../images/VLD.png); -} -.step-icon-MailValidator { - background-image: url(../images/MAV.png); -} - -.step-icon-XSDValidator { - background-image: url(../images/XSD.png); -} - -/* - Validation -*/ -.step-icon-CreditCardValidator { - background-image: url(../images/CCV.png); -} - -.step-icon-Validator { - background-image: url(../images/VLD.png); -} -.step-icon-MailValidator { - background-image: url(../images/MAV.png); -} - -.step-icon-XSDValidator { - background-image: url(../images/XSD.png); -} - -/* - Statistics -*/ -.step-icon-AnalyticQuery{ - background-image: url(../images/AQI.png); -} - -.step-icon-GroupBy{ - background-image: url(../images/GRP.png); -} - -.step-icon-MemoryGroupBy{ - background-image: url(../images/MGB.png); -} - -.step-icon-ReservoirSampling{ - background-image: url(../images/RS.png); -} - -.step-icon-SampleRows{ - background-image: url(../images/SR.png); -} - -.step-icon-UnivariateStats { - background-image: url(../images/US.png); -} - -/* - Job -*/ -.step-icon-RowsToResult{ - background-image: url(../images/TCH.png); -} - -.step-icon-FilesFromResult{ - background-image: url(../images/FFR.png); -} - -.step-icon-RowsFromResult{ - background-image: url(../images/FCH.png); -} - -.step-icon-GetVariable{ - background-image: url(../images/GVA.png); -} - -.step-icon-FilesToResult{ - background-image: url(../images/FTR.png); -} - -.step-icon-SetVariable { - background-image: url(../images/SVA.png); -} - -/* - Mapping -*/ -.step-icon-Mapping{ - background-image: url(../images/MAP.png); -} - -.step-icon-MappingInput{ - background-image: url(../images/MPI.png); -} - -.step-icon-MappingOutput { - background-image: url(../images/MPO.png); -} - -/* - Inline -*/ -.step-icon-Injector{ - background-image: url(../images/MPI.png); -} - -.step-icon-SocketReader { - background-image: url(../images/MPO.png); -} - -.step-icon-SocketWriter { - background-image: url(../images/MPO.png); -} - -/* - Experimental -*/ -.step-icon-MailInput{ - background-image: url(../images/MPI.png); -} - -.step-icon-GetTableNames{ - background-image: url(../images/GTN.png); -} -.step-icon-GPBulkLoader{ - background-image: url(../images/BulkIn.png); -} -.step-icon-ParallelGzipCsvInput{ - background-image: url(../images/TFI.png); -} -.step-icon-MySQLBulkLoader{ - background-image: url(../images/BulkIn.png); -} -.step-icon-PGBulkLoader{ - background-image: url(../images/BulkIn.png); -} -.step-icon-Script{ - background-image: url(../images/SCR_mod.png); -} -.step-icon-SetValueField{ - background-image: url(../images/SVF.png); -} - -.step-icon-SetValueConstant{ - background-image: url(../images/SVC.png); -} - -/* - Deprecated -*/ -.step-icon-AggregateRows{ - background-image: url(../images/AGG.png); -} - -.step-icon-GetPreviousRowField{ - background-image: url(../images/PRV.png); -} - -.step-icon-LucidDBBulkLoader{ - background-image: url(../images/BulkIn.png); -} - -.step-icon-XMLInputSax{ - background-image: url(../images/XIS.png); -} - -.step-icon-XMLInput{ - background-image: url(../images/XIN.png); -} - -/* - Bulk loading -*/ -.step-icon-InfobrightOutput{ - background-image: url(../images/IBL.png); -} - -.step-icon-LucidDBStreamingLoader{ - background-image: url(../images/BulkIn.png); -} - -.step-icon-MonetDBBulkLoader{ - background-image: url(../images/BulkIn.png); -} - -.step-icon-OraBulkLoader{ - background-image: url(../images/BulkIn.png); -} - -.step-icon-TeraFast{ - background-image: url(../images/BulkIn.png); -} + /** + * This is transformation.css. This is part of kettle-cookbook. + * Kettle-cookbook is distributed on http://code.google.com/p/kettle-cookbook/ + * + * transformation.css - a cascading stylesheet file that marks up transformation documentation + * + * Copyright (C) 2010 + * Roland Bouman Roland.Bouman@gmail.com - http://rpbouman.blogspot.com/ + * + * This library is free software; you can redistribute it and/or modify it under + * the terms of the GNU Lesser General Public License as published by the + * Free Software Foundation; either version 2.1 of the License, or (at your option) + * any later version. + + * This library is distributed in the hope that it will be useful, but WITHOUT ANY + * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A + * PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License along + * with this library; if not, write to + * the Free Software Foundation, Inc., + * 59 Temple Place, Suite 330, + * Boston, MA 02111-1307 USA + * + */ + .step-hops { + display:none; + } + + .step-hidden , .step-label-hidden{ + display:none; + } + + .step-heading { + margin-top: 20px; + background-repeat: no-repeat; + text-indent: 38px; + height: 40px; + } + + .step-icon { + position: absolute; + border-style: solid; + border-width: 1px; + border-color: rgb(125,125,125); + height: 32px; + width: 32px; + margin-left: auto; + margin-right: auto; + background-repeat: no-repeat; + z-index:100; + } + + .step-label { + margin-top:2px; + font-size: 8pt !important; + white-space: nowrap; + position: absolute; + z-index:100; + background-color:white; + } + + .step-hop { + } + + .step-hop-enabled { + background-color: black; + } + + .step-hop-disabled { + background-color: rgb(200,200,200); + } + + .step-error { + background-color: red; + border-color: red !important; + } + + .step-hop-error { + background-color: red!important; + } + + .step-hop-copy-data-icon { + position:absolute; + width: 16px; + height: 16px; + background-image: url(../images/copy-hop.png); + z-index:500 !important; + } + + .step-hop-distribute-data { + } + + .step-hop-copy-data { + } + + .step-hop-true { + background-color: green; + } + + .step-hop-false { + background-color: red; + } + + + /* Agile */ + + .step-icon-TableAgileMart{ + background-image: url(../images/TOP.png); + } + + .step-icon-MonetDBAgileMart{ + background-image: url(../images/OBL.png); + } + + /* Bulk */ + + .step-icon-InfobrightOutput{ + background-image: url(../images/IBL.png); + } + + .step-icon-OraBulkLoader{ + background-image: url(../images/BulkIn.png); + } + + .step-icon-GPBulkLoader{ + background-image: url(../images/GBL.png); + } + + .step-icon-PGBulkLoader{ + background-image: url(../images/PGBL.png); + } + + .step-icon-MonetDBBulkLoader{ + background-image: url(../images/OBL.png); + } + + .step-icon-MySQLBulkLoader{ + background-image: url(../images/OBL.png); + } + + .step-icon-LucidDBStreamingLoader{ + background-image: url(../images/OBL.png); + } + + .step-icon-TeraFast,TeraFastPlugin{ + background-image: url(../images/BulkIn.png); + } + + .step-icon-ElasticSearchBulk{ + background-image: url(../images/ESB.png); + } + + .step-icon-VectorWiseBulkLoader{ + background-image: url(../images/BulkIn.png); + } + + /* DataWarehouse */ + + .step-icon-DimensionLookup{ + background-image: url(../images/DIM.png); + } + + .step-icon-CombinationLookup{ + background-image: url(../images/CMB.png); + } + + /* Deprecated */ + + .step-icon-XMLInput{ + background-image: url(../images/XIN.png); + } + + .step-icon-XMLInputSax{ + background-image: url(../images/XIS.png); + } + + .step-icon-AggregateRows{ + background-image: url(../images/AGG.png); + } + + .step-icon-GetPreviousRowField{ + background-image: url(../images/PRV.png); + } + + .step-icon-LucidDBBulkLoader{ + background-image: url(../images/OBL.png); + } + + /* Experimental */ + + .step-icon-Script{ + background-image: url(../images/SCR_mod.png); + } + + .step-icon-RuleExecutor{ + background-image: url(../images/SCR_mod.png); + } + + .step-icon-MultiwayMergeJoin{ + background-image: url(../images/MJOINS.png); + } + + .step-icon-SymmetricCryptoTrans{ + background-image: url(../images/SCE.png); + } + + .step-icon-SecretKeyGenerator{ + background-image: url(../images/SCG.png); + } + + /* Flow */ + + .step-icon-Dummy{ + background-image: url(../images/DUM.png); + } + + .step-icon-Append{ + background-image: url(../images/APP.png); + } + + .step-icon-Abort{ + background-image: url(../images/ABR.png); + } + + .step-icon-FilterRows{ + background-image: url(../images/FLT.png); + } + + .step-icon-JavaFilter{ + background-image: url(../images/JLT.png); + } + + .step-icon-BlockingStep{ + background-image: url(../images/BLK.png); + } + + .step-icon-SwitchCase{ + background-image: url(../images/SWC.png); + } + + .step-icon-DetectLastRow{ + background-image: url(../images/DLR.png); + } + + .step-icon-DetectEmptyStream{ + background-image: url(../images/EMS.png); + } + + .step-icon-MetaInject{ + background-image: url(../images/GenericTransform.png); + } + + .step-icon-BlockUntilStepsFinish{ + background-image: url(../images/WFS.png); + } + + .step-icon-PrioritizeStreams{ + background-image: url(../images/PRS.png); + } + + .step-icon-SingleThreader{ + background-image: url(../images/MAP.png); + } + + /* Inline */ + + .step-icon-SocketReader{ + background-image: url(../images/SKR.png); + } + + .step-icon-SocketWriter{ + background-image: url(../images/SKW.png); + } + + .step-icon-Injector{ + background-image: url(../images/INJ.png); + } + + /* Input */ + + .step-icon-TableInput{ + background-image: url(../images/TIP.png); + } + + .step-icon-TextFileInput{ + background-image: url(../images/TFI.png); + } + + .step-icon-SystemInfo{ + background-image: url(../images/SYS.png); + } + + .step-icon-ExcelInput{ + background-image: url(../images/XLI.png); + } + + .step-icon-GetFileNames{ + background-image: url(../images/GFN.png); + } + + .step-icon-XBaseInput{ + background-image: url(../images/XBI.png); + } + + .step-icon-AccessInput{ + background-image: url(../images/ACI.png); + } + + .step-icon-MondrianInput{ + background-image: url(../images/MON.png); + } + + .step-icon-OlapInput{ + background-image: url(../images/MON.png); + } + + .step-icon-GetFilesRowsCount{ + background-image: url(../images/FRC.png); + } + + .step-icon-LDAPInput{ + background-image: url(../images/LIP.png); + } + + .step-icon-getXMLData{ + background-image: url(../images/GXD.png); + } + + .step-icon-PropertyInput{ + background-image: url(../images/PFI.png); + } + + .step-icon-LDIFInput{ + background-image: url(../images/LDI.png); + } + + .step-icon-RandomValue{ + background-image: url(../images/RVA.png); + } + + .step-icon-GetSubFolders{ + background-image: url(../images/LSF.png); + } + + .step-icon-RssInput{ + background-image: url(../images/RIN.png); + } + + .step-icon-SalesforceInput{ + background-image: url(../images/SFI.png); + } + + .step-icon-CsvInput{ + background-image: url(../images/TFI.png); + } + + .step-icon-ParallelGzipCsvInput{ + background-image: url(../images/TFI.png); + } + + .step-icon-MailInput{ + background-image: url(../images/GETPOP.png); + } + + .step-icon-GetTableNames{ + background-image: url(../images/GTN.png); + } + + .step-icon-DataGrid{ + background-image: url(../images/GNR.png); + } + + .step-icon-SapInput{ + background-image: url(../images/SIP.png); + } + + .step-icon-CubeInput{ + background-image: url(../images/CIP.png); + } + + .step-icon-FixedInput{ + background-image: url(../images/TFI.png); + } + + .step-icon-RowGenerator{ + background-image: url(../images/GEN.png); + } + + .step-icon-LoadFileInput{ + background-image: url(../images/LFI.png); + } + + .step-icon-RandomCCNumberGenerator{ + background-image: url(../images/CCG.png); + } + + .step-icon-JsonInput{ + background-image: url(../images/JSI.png); + } + + .step-icon-YamlInput{ + background-image: url(../images/YamlI.png); + } + + .step-icon-TypeExitGoogleAnalyticsInputStep{ + background-image: url(../images/GAN.png); + } + + .step-icon-GetRepositoryNames{ + background-image: url(../images/GRN.png); + } + + .step-icon-XMLInputStream{ + background-image: url(../images/xml_input_stream.png); + } + + .step-icon-SASInput{ + background-image: url(../images/SASInput.png); + } + + /* Job */ + + .step-icon-SetVariable{ + background-image: url(../images/SVA.png); + } + + .step-icon-GetVariable{ + background-image: url(../images/GVA.png); + } + + .step-icon-RowsFromResult{ + background-image: url(../images/FCH.png); + } + + .step-icon-RowsToResult{ + background-image: url(../images/TCH.png); + } + + .step-icon-FilesFromResult{ + background-image: url(../images/FFR.png); + } + + .step-icon-FilesToResult{ + background-image: url(../images/FTR.png); + } + + /* Joins */ + + .step-icon-JoinRows{ + background-image: url(../images/JRW.png); + } + + .step-icon-MergeRows{ + background-image: url(../images/MRG.png); + } + + .step-icon-MergeJoin{ + background-image: url(../images/MJOIN.png); + } + + .step-icon-SortedMerge{ + background-image: url(../images/SMG.png); + } + + .step-icon-XMLJoin{ + background-image: url(../images/XJN.png); + } + + /* Lookup */ + + .step-icon-StreamLookup{ + background-image: url(../images/SLU.png); + } + + .step-icon-DBLookup{ + background-image: url(../images/DLU.png); + } + + .step-icon-DBJoin{ + background-image: url(../images/DBJ.png); + } + + .step-icon-HTTP{ + background-image: url(../images/WEB.png); + } + + .step-icon-DBProc{ + background-image: url(../images/PRC.png); + } + + .step-icon-TableExists{ + background-image: url(../images/TEX.png); + } + + .step-icon-ColumnExists{ + background-image: url(../images/CEX.png); + } + + .step-icon-FileExists{ + background-image: url(../images/FEX.png); + } + + .step-icon-DynamicSQLRow{ + background-image: url(../images/DSR.png); + } + + .step-icon-HTTPPOST{ + background-image: url(../images/HTP.png); + } + + .step-icon-WebServiceLookup{ + background-image: url(../images/WSL.png); + } + + .step-icon-FileLocked{ + background-image: url(../images/CFL.png); + } + + .step-icon-WebServiceAvailable{ + background-image: url(../images/WSA.png); + } + + .step-icon-FuzzyMatch{ + background-image: url(../images/FZM.png); + } + + .step-icon-Rest{ + background-image: url(../images/REST.png); + } + + /* Mapping */ + + .step-icon-MappingInput{ + background-image: url(../images/MPI.png); + } + + .step-icon-Mapping{ + background-image: url(../images/MAP.png); + } + + .step-icon-MappingOutput{ + background-image: url(../images/MPO.png); + } + + /* Output */ + + .step-icon-TableOutput{ + background-image: url(../images/TOP.png); + } + + .step-icon-TextFileOutput{ + background-image: url(../images/TFO.png); + } + + .step-icon-Update{ + background-image: url(../images/UPD.png); + } + + .step-icon-InsertUpdate{ + background-image: url(../images/INU.png); + } + + .step-icon-Delete{ + background-image: url(../images/Delete.png); + } + + .step-icon-XMLOutput{ + background-image: url(../images/XOU.png); + } + + .step-icon-ExcelOutput{ + background-image: url(../images/XLO.png); + } + + .step-icon-AccessOutput{ + background-image: url(../images/ACO.png); + } + + .step-icon-SQLFileOutput{ + background-image: url(../images/SFO.png); + } + + .step-icon-PropertyOutput{ + background-image: url(../images/PFO.png); + } + + .step-icon-SynchronizeAfterMerge{ + background-image: url(../images/SAM.png); + } + + .step-icon-RssOutput{ + background-image: url(../images/RRO.png); + } + + .step-icon-SalesforceUpsert{ + background-image: url(../images/SFU.png); + } + + .step-icon-SalesforceInsert{ + background-image: url(../images/FFO.png); + } + + .step-icon-SalesforceUpdate{ + background-image: url(../images/SFUD.png); + } + + .step-icon-SalesforceDelete{ + background-image: url(../images/SFD.png); + } + + .step-icon-CubeOutput{ + background-image: url(../images/COP.png); + } + + .step-icon-JsonOutput{ + background-image: url(../images/JSO.png); + } + + .step-icon-LDAPOutput{ + background-image: url(../images/LDO.png); + } + + .step-icon-TypeExitExcelWriterStep{ + background-image: url(../images/XWS.png); + } + + .step-icon-PentahoReportingOutput{ + background-image: url(../images/JFR.png); + } + + .step-icon-AutoDoc{ + background-image: url(../images/autodoc.png); + } + + /* Scripting */ + + .step-icon-ScriptValueMod,ScriptValue{ + background-image: url(../images/SCR_mod.png); + } + + .step-icon-ExecSQL{ + background-image: url(../images/SQL.png); + } + + .step-icon-RegexEval{ + background-image: url(../images/RGE.png); + } + + .step-icon-ExecSQLRow{ + background-image: url(../images/SQLR.png); + } + + .step-icon-Formula{ + background-image: url(../images/FRM.png); + } + + .step-icon-Janino{ + background-image: url(../images/janino.png); + } + + .step-icon-UserDefinedJavaClass{ + background-image: url(../images/sScript.png); + } + + /* Statistics */ + + .step-icon-GroupBy{ + background-image: url(../images/GRP.png); + } + + .step-icon-MemoryGroupBy{ + background-image: url(../images/MGB.png); + } + + .step-icon-AnalyticQuery{ + background-image: url(../images/AQI.png); + } + + .step-icon-SampleRows{ + background-image: url(../images/SR.png); + } + + .step-icon-ReservoirSampling{ + background-image: url(../images/RS.png); + } + + .step-icon-UnivariateStats{ + background-image: url(../images/US.png); + } + + .step-icon-StepsMetrics{ + background-image: url(../images/SSTAS.png); + } + + /* Transform */ + + .step-icon-SelectValues{ + background-image: url(../images/SEL.png); + } + + .step-icon-Calculator{ + background-image: url(../images/CLC.png); + } + + .step-icon-Constant{ + background-image: url(../images/CST.png); + } + + .step-icon-Sequence{ + background-image: url(../images/SEQ.png); + } + + .step-icon-GetSlaveSequence{ + background-image: url(../images/SEQ.png); + } + + .step-icon-SortRows{ + background-image: url(../images/SRT.png); + } + + .step-icon-Unique{ + background-image: url(../images/UNQ.png); + } + + .step-icon-Denormaliser{ + background-image: url(../images/UNP.png); + } + + .step-icon-Normaliser{ + background-image: url(../images/NRM.png); + } + + .step-icon-Flattener,Flatterner{ + background-image: url(../images/FLA.png); + } + + .step-icon-AddXML{ + background-image: url(../images/add_xml.png); + } + + .step-icon-XSLT{ + background-image: url(../images/XSLT.png); + } + + .step-icon-SplitFieldToRows3{ + background-image: url(../images/SFtR.png); + } + + .step-icon-CheckSum{ + background-image: url(../images/CSM.png); + } + + .step-icon-NumberRange{ + background-image: url(../images/NRI.png); + } + + .step-icon-ReplaceString{ + background-image: url(../images/RST.png); + } + + .step-icon-StringCut{ + background-image: url(../images/SRC.png); + } + + .step-icon-UniqueRowsByHashSet{ + background-image: url(../images/URH.png); + } + + .step-icon-SetValueConstant{ + background-image: url(../images/SVC.png); + } + + .step-icon-SetValueField{ + background-image: url(../images/SVF.png); + } + + .step-icon-ClosureGenerator{ + background-image: url(../images/CLG.png); + } + + .step-icon-FieldsChangeSequence{ + background-image: url(../images/CSEQ.png); + } + + .step-icon-FieldSplitter{ + background-image: url(../images/SPL.png); + } + + .step-icon-ValueMapper{ + background-image: url(../images/VMP.png); + } + + .step-icon-StringOperations{ + background-image: url(../images/STM.png); + } + + .step-icon-ConcatFields{ + background-image: url(../images/ConcatFields.png); + } + + /* Utility */ + + .step-icon-NullIf{ + background-image: url(../images/NUI.png); + } + + .step-icon-StepMetastructure{ + background-image: url(../images/STMD.png); + } + + .step-icon-CloneRow{ + background-image: url(../images/CLR.png); + } + + .step-icon-Delay{ + background-image: url(../images/DLT.png); + } + + .step-icon-Mail{ + background-image: url(../images/MAIL.png); + } + + .step-icon-ProcessFiles{ + background-image: url(../images/PPF.png); + } + + .step-icon-WriteToLog{ + background-image: url(../images/WTL.png); + } + + .step-icon-IfNull{ + background-image: url(../images/IFN.png); + } + + .step-icon-ExecProcess{ + background-image: url(../images/RPL.png); + } + + .step-icon-SyslogMessage{ + background-image: url(../images/SYL.png); + } + + .step-icon-ChangeFileEncoding{ + background-image: url(../images/CFE.png); + } + + .step-icon-SSH{ + background-image: url(../images/ssh.png); + } + + .step-icon-TypeExitEdi2XmlStep{ + background-image: url(../images/EDI2XML.png); + } + + /* Validation */ + + .step-icon-XSDValidator{ + background-image: url(../images/XSD.png); + } + + .step-icon-Validator{ + background-image: url(../images/VLD.png); + } + + .step-icon-MailValidator{ + background-image: url(../images/MAV.png); + } + + .step-icon-CreditCardValidator{ + background-image: url(../images/CCV.png); + } + \ No newline at end of file diff --git a/template/images/CCG.png b/template/images/CCG.png new file mode 100644 index 0000000000000000000000000000000000000000..9a04e4becddd0c79082cbad15eddcb24ac14832c GIT binary patch literal 2434 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 ANdN!< literal 0 HcmV?d00001 diff --git a/template/images/ConcatFields.png b/template/images/ConcatFields.png new file mode 100644 index 0000000000000000000000000000000000000000..3cd86693be2218915ea4347a214a607fab1bb48a GIT binary patch literal 459 zcmV;+0W|)JP)ul@sLYN!JNW1*uAhcDe{U>Ydj!vG7+HTZ!&gB0guhEsDA7=Tem zP@S>R1Dqk002ovPDHLkV1mwY BsptRz literal 0 HcmV?d00001 diff --git a/template/images/DTU.png b/template/images/DTU.png new file mode 100644 index 0000000000000000000000000000000000000000..227ba7c4914713cc5383ba964b71ef8a4d59bdaa GIT binary patch literal 1066 zcmV+_1l9YAP)t#z_C z^rG@Ve%zzXZF4kGtw+)0W1s);x#cA9ot>TCxYi4RYrSri)ZhQ$!*?=aaBl%1-AyLF zWD=!YQSQLHqfJ;i+z19~r=K{zp%X@i8%l;vp)6;V0lm>?FUsg_rjwYw{oTerXYmJDd$%-H z7XbY+=A8g=P#HMK$H%C?A0^pzMvwNgOg5c$NqzG4*_(p{TFj=?$@T*Qz>is>X#;8k zUGn{CMCvbo`~BCKuNY%LlXd6hyTA zy{WCsssO+fM-gZnRxpD2jYKnPrJ=KaqUZ&nr56BMtw=ee_LP_TKtm_lBYnyh1B zP;ssW>9qzk0RV$sS9Hi>=9p*;j*i7zORv%=lh&%Ty558#WM(7{Tdm8>0HuQbw*#Y8 kxAK3}(&PVsd+mUK0dui9SDr8H$p8QV07*qoM6N<$f_-E3hX4Qo literal 0 HcmV?d00001 diff --git a/template/images/EDI2XML.png b/template/images/EDI2XML.png new file mode 100644 index 0000000000000000000000000000000000000000..f4586a4a4b7fe32f6d778c3e2f9ad031fde0b209 GIT binary patch literal 4041 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 D3?~P# literal 0 HcmV?d00001 diff --git a/template/images/GAN.png b/template/images/GAN.png new file mode 100644 index 0000000000000000000000000000000000000000..bb2ad2f9eacf3ed603d2671368101e1a0377ad4b GIT binary patch literal 1337 zcmV-91;+Y`P)ph=^_1T`*zjXRCe1uJ#q!i2;}VuB0e!ni;eMnxB5AQ55$0b*;k1$haS z7CWVnnU~I`XC76ie_OP`oj@Q+j$!1k> zF#&w|e^|W+Y~Yr4h&t3D4C|E>-u!QbaK%6Y)~E6>lG0f z%Vf(6`=kAQPbvZszt|JyO7z`h*3k=GK)><&n!%n84ecv?g2AvL2={MmVzhg0VfUtq zgWqLN49S4d>{vQI?4&xjDk@*~1{$Gne`9{}D+(Gz2fBXVxjmKaTqlXrB2~Jb&hB{U zZp69u+7mNR?s&YVEh$M-0mPNnhc|iB7_7{bd|iE z0K|s6g)E1;uWqw><{*TZ695BB88az{fMtkcm^P*KUngY`11JK8&>;?RJ#ozRXJ!oq z*>VE-R4x|4#I!gBN|tbW6qmKRnsT{CqttQc7j>v*F=7E`n+t{JQocKGe9fTEkb{-e zx7EGb=@vCqEpORiXRjN_2JLL#PzCIh91ensIh$za-mTn=+eOTU7AP6+UhnzfR54Fn zwZr~#rSHm2ODh4Wg3VFK?!RFkJ3l)*F(zR{2dpojFn~0gF+2UE@og?wHde5TRZZMe zt;ScE1V!cwPT-S%vMn{)+}c)w7zjVshB|_jXdVG8ISuXm)S4{0Zc|#R-dz!m%N}o~ zrVqIT&!~RhDx0>*(KF+b!zWEr%2jd(==Vwu_3=b@bqBJ3`VxkY*({NGR4e+n=Fgo;S3J;vV<00000NkvXXu0mjf7aDO% literal 0 HcmV?d00001 diff --git a/template/images/GPGDecrypt.png b/template/images/GPGDecrypt.png new file mode 100644 index 0000000000000000000000000000000000000000..1b509e6d508d01daa9da26e7df69901f58f41965 GIT binary patch literal 1775 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 literal 0 HcmV?d00001 diff --git a/template/images/JFR.png b/template/images/JFR.png new file mode 100644 index 0000000000000000000000000000000000000000..f711fabfee43dbc1753403afe8b321c6728f6dad GIT binary patch literal 2620 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 literal 0 HcmV?d00001 diff --git a/template/images/JSI.png b/template/images/JSI.png new file mode 100644 index 0000000000000000000000000000000000000000..4bd261de517068407838252209cde1b486914569 GIT binary patch literal 2042 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 Q+oW;6}Wr>zNLjP3u;`F>SKvN zKP~zxR0PK&UX*O=X4OP{YpUXP0_t^7@7%)TyJya^;phE&j~gzK$?|bir}crN z94T)DrI4+b3S!Bd*QICQ&W(vr2KTRD&e*9U%lAZejN|8yP~7H?A3NZt9mGS_F6SoC zs#+ypsEbl`5mN;*RMF2$$d)d7M28w+VZ6yA?PgX^QtB0ZXLnnM<5asp@dPzVtk17f zaAzcbb{0Qz!OaJ8<2LSP!%B0B+?l9k0ZP@E@-)&ttVUrdBYRbfleSFIhLxl4R@Mw5 z#|xrBiJxn0l-;M!P~0AfTiySu+t(VjsMJh4R~O~$pymB z@MeVH``B+#-{- zsmu%hL35QfT0R4r%cGq%#HOR0#wxX(U&*_G6#|YYJ^i9$6QLKfW+q>z5Y6#(w3I={ z(#T8}ZJ&Xne_ZhBM$&k7L18iZDA2?Bn00000NkvXXu0mjf@vkFw literal 0 HcmV?d00001 diff --git a/template/images/MJOINS.png b/template/images/MJOINS.png new file mode 100644 index 0000000000000000000000000000000000000000..020dbf315128f980562d2703a666439ce8deade7 GIT binary patch literal 934 zcmV;X16lluP)E<_D1(%xyml^~YUklnk zuR-cbKg*DV}(de zV-{R#7F^IeplMhqsO{W^-38OM7-^-P8D&w&hCD&;9YJ!o+@1)8?7Jl>U=>s=SOh3) zT#U-L&DeTgu>QDwjRKIK!fIOIz8Obu3LN1e()pGt^l3OH)6_}F1er!~<_QZDE1{_o zRC{*fL31LqiUr#_mPr@~*U;Ed>2pwt*?fUY7BJ6#9KJpVLN_lPUW$9Z)nK!-Yux}Zo^COF4TMX;BDVtH2U`Aoi7W`zN2XMoj`kk9z6YL z(K%=+7di*r=;$witAf@m6L@;_ap+nIB3@ESda;{>?ISX60w?`$cm^1jVZ(#SH1apP z!TE+_JUHnN=LM>PC@vWT?InK@f0OfqXFX$U8!J(^kU#{H!1<=L8 zk0UZX{R{!DF#r|;ECN^rFu|-KgdR{9-C_t~2w~_dLkL3%^N3@Fa8s@TK+)5M`2MXG z8XF-CxM+c(ELy;{@Q(oqix#kG0lxwOmIC|@3up`!`exup&+L#2yXT>}djalrEkQ}w zGL-eKL`9ba7w8UmzzS-Cd;*lTtVT`84m5l^fR?^ocm~d)bBMlI|J#WHO`%|vYoyza zcDvc3nGi7xM(422d|wp&kInfKwGQZlHY#3l-?@CSQz1j|W~&kg8xI>bKh&z}F>PbM z*g6ZscRpcHz25+SZ`H;W>g4ug(@X*kJN6(IzQHiG~E2Lt+l#CrB;bvY{IPg6QI^|0=qcdoB#j-07*qo IM6N<$g5^S~xBvhE literal 0 HcmV?d00001 diff --git a/template/images/PGPVerif.png b/template/images/PGPVerif.png new file mode 100644 index 0000000000000000000000000000000000000000..09ac2bb0709685a722950347421c440fb2b2fde3 GIT binary patch literal 1821 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 literal 0 HcmV?d00001 diff --git a/template/images/REST.png b/template/images/REST.png new file mode 100644 index 0000000000000000000000000000000000000000..0788bf175b8b2e82fb62e6f4db6b6575d098ad24 GIT binary patch literal 1987 zcmV;!2R!(RP)`hgJ0Mv5batt( zRhr9v6raT-$Cr>oZh8dgpQRK>rdOviTW(j2hR6Qgd=2e*J346cZpQ4~YEfl(MEd=p zSKs?JbK=uCc}T(LXD7|B{Vj4dv42+~USF<(hb8fiF<~L(AxSQ!Rm5IZcPL9o~QK|AemISW?aVC zoDZ+KM`H~nvHFvXbQhH^NoMz-xw1(QeN;#uKo?A7#t=)%Dx(+(INF4FK7_@fmvBUJ7I9`LrBvM=Z+q~?hMCCXtzrvnZPhy z+}L569E2p1CY)#kgs>WCgH|ev9{*z}npbZe|SZS?WtOjBOTE~eT9D8iR zgF=$Q!9?>+RyH>L@)=I00eZj`A)=FkXlC^|B8uuKI5T&PWjxws3KEeh$ALaS?0ag^ z89#W!Nob1^S|UqQ`J4e@>D3x8Ey1H96p8vgJJmits4GMbfx^+LK;Is#oq6>F2nf2K`==vsAv1Ac)X zBSa)xP(4;~U#{AMG!V=aJVk<_ok|;rQrV)kA|dh)J0Cyml;~E$G^s#vg(J!?l_1Hr zO}ZZ09wzh3wI9fo)2$bg5REyQ#FX@oEC9Xm(zvNZc`5vf_SY&klDwu`e<*vL(wv_n z$cV{qM}qf$6Bz&&U#{Ao%k_+{`}JCjKkHsl0Y5VTQCyxVhS3+r5K;xVSheGzomfqG zu5_fuwnRno!_YdaDJ;Ap%)f|wI=aj$fcqUGrKYLZ0I;&Qc_yM96Tu|42fHckeTK-< zJvmujwYhcTWL9r9pPN}e3fd{IA}Xeoa*-2AzI7h0No+Slh8Omi96KMzF;d16Vp40j z)BpgUHKSN~m~xRgVed9VI6vu?s*JB%DXE|3v+BjM*)74BtNr6|J7?lfUL)YrF*bB- zv_6{rK9kyb|DM9^#g-`R!z%i;`$ z%Ft*GPci_ksy0J!a4a+Zh*G?#%=N;!Z=xb5U6P-{70~h;{3wMupOm}^^THT&jrc2# z1AkW}symgjPgmLFlR7XDk)`!&@6UugITXv`9xveE56gV#PMz%w{m(Z^^{ zZ`%}6+Be$jF0plbm}8rZ%OJ*;Pd*u5;}TLv3}U+lWM*D8R}22B?g4_~qrbq^$kST~K!M-Y>>8fUm2d|>0WWZNjw{0jmSKDg9K2JnhXBB5006djIh$zb z5pRKu-1Y>5+8I1NjREh&$dds8Og7c3LVhzgCBZT^7#mdX6jx5|vD{;%tV6`B7M>XvL|TT*pt`U8K)QI*3D{R3Fhkmzi z&)T;Q*!HwDK>w*(f8Et5=Tz`huNP*9e4>BP;x9p`qCLUmR`8f*(>49>h=XlUy8+N0 zeJ#j5JJej$^|@O31?Z)BJ)v6*?dh)q5LkAYd48lhi(*zBYi8t0GjtG={Rod9)g2L( zr~ePIizf)2@PPvwaL9)bYh;HXr0sijZXPrnW8ONLgG~L$7_#gG= Vh5t!UkmCRV002ovPDHLkV1m0;wZs4b literal 0 HcmV?d00001 diff --git a/template/images/SASInput.png b/template/images/SASInput.png new file mode 100644 index 0000000000000000000000000000000000000000..ac14d3bdd2bab431b1fce4652cde642c225f1e6c GIT binary patch literal 2009 zcmV;~2PXK5P)kJY4nqz{`91`SZK*g&ta> z1n&fI9D<^v2#&l`hq^K}81vxG=dkMJ4oV`&wLhTgU9+6~uU(EvBmg0JHO9{J8O;TtmI~KCv6V{b zBnqBjYlub!6A`kAPA2)r>H)rb;n`fctV2EmRD&Lk=Z%jJ^XIL@{Q9L)`g*!hozS42 z7}K1RIRV`Lj|ukf9mOmzk=Gs82)PfC2}6rK8*aafOS&Tneum1A6`uM;FZ#kt*?p*@ zKi;^Vkx!pbU+3KQ&;;Oc?zQhnn=##s2w4^4A`$}PV$N-A@X~iagAF=O>#>r1Rk2gf z&gf~A{pFhOIB*zMRhgqGn*coj-;b!3%al$kP){6c>IBz;tB&!PyM~B0P>2gN(Q2Y0 zDApDQAhNTa^tG3yk)?Aw2QbGTY~Ec#db>$#4UiZ#!%vLz-K$Pzpr>03Zpyi8(1%}p zU)OKi#Rt{G^!-$W9&5AcVhN%7d`<@TPfq>U8pntPj08Nw?N^-1Jx6qW-q3X$-{Zj- zc0k)Ap84nVjMXyjEjfwBNEUK+W_F58*1Em?AgB8z{ zZ;en`+ykYIectl9-~O9=J{9G$&KHs<0OxlFP)m_Ir~pOU#iEi<>qu*XW$iJE$tfh3 zM%2rj2db>!xE&wL(^O}9Iw$Q50=RnRsZeV`+<|zoQNqs22DQvh>ns*{>?YM!#wor*o<*KJ`qg-Rxaye@Sc0FJ{?UfG_->8ZN#M(?%h00GC9Mj zSR-rCY~#Lb21zS*f~5G6Ae~FO<%zBA8O@_FencF>*T_tf z1CuGYKD!sq>srsIn6RcK>(?&lhE=_gc(85wMxAnMxbD$+NE9TvX0HnY05Ap~zWHnx zVw_@fms^3>PPW7V<}p_UOjP*-5*!7}T9{~sbd^`{5b zIhmLRAU)D7M68_FX86Nxmtx08i0CAQl;TOPe1GFU{8AkrVpcn2!!_oq z!TAAvTwL5EU9puX?zkA2XQbLodQe$C&_;jz%p}b7jPY_H(gwy`swM_!8L2c*Y#4dJ zaPPikNyKyOhFH5K;r1)~dG?zZPj5n+d)>Ud!g#rXT8HEwiY<^Olv-MktZdCPYaCk} zPc4sWO-)>CLL9Jswy%vfcU}fTrVAIKYLo}I3`1ne@&ZIPq+Um@VW`K>8`NwDLZ-V% z#8jq!;xkg z7o4?>Rj0JgI~M2I2O`N^2e|mY*VuZXOg&F=7DQT!EEsDr#^Ljf_a;0yJpL|sJ-v;n zyA7LFkx<9^Uc76EMwPoiKR7S_u)xdcvk$(eTee$<2Ft8m+RxxgMf$syNHasdnePNewc=3OXRz0@0gmacil?ExI zF{q%%lP3+RDW~^#aPPJK+%(jGLVMvXCH0w#bxjxdj@I?DH$Gs)tA`k^W{@`^05~9k r^9(NOPx#1ZP1_K>z@;j|==^1poj5AY({UO#lFTCIA3{ga82g0001h=l}q9FaQARU;qF* zm;eA5aGbhPJOBU#4@pEpR7gv`mR(3wVHn3(7ZDZqA%#(t^kv#z^Z_DuV>f->m0p!- zp@@pjjnE7N!y-f>wVN_i%#uQ$^Y^2apDf0G)9O zI+76GX6~&nOxHcz+@8-Xx^r=y4Xf44E~tB%Peb((AaO(=lZN({@LFVAFq_Tn0#$QCYkAc8w-i&Q9~?~jDVI-T zp1ZuD*Xs=i!^p@8Dr6U6idx>@mKI-tW8nE}CVFMwr2#MW{{;fn!ASszqW-?5ByLc2 z4$+%l-9nD6*zIgP^{Y4}s^7Gx%$@AkqAPxv5sUl@-Hemvm8q0wlt z25Q|v@ElKIoaI$9^Y{0Lhi!!+IoFP;r;y9#GB+3jGtk-Di3_ldG2(*&#pb4+%}6-K z2{w@I$|FWK1*V5-T)D^Q_fwD1#29wE{MEwcqIO*a@8;itAeT7spN>Sjl1YFj^ n!s`F~r{nU!71ur@k literal 0 HcmV?d00001 diff --git a/template/images/SCG.png b/template/images/SCG.png new file mode 100644 index 0000000000000000000000000000000000000000..30debb7f9aa4d89b355847b722de473e07884621 GIT binary patch literal 950 zcmV;n14;aeP)iYZ`PE!#_9%PjWaGLS?K2Q2EZqMZRz>hK(kO5@}?_2=_z`r_;FwRcsNZ zq7|FX#&?4buxSV|5KBwT()$Pwp!4ISU5{=aBFBh9YrKU3IqO7VhZeNvpG^Tvi?*bQ z1BjB;GrVKO5CR~l>GSf^%1&-A2|((ZaYvO;!?3W<%<$6|nhrUZI|jyMrq9!RS;nj+ zK#yK6RBzNU6g5B3O@-9?k~u*B6auxgG&@t8?^L_4GI_Hb$uq=&T05jkT?{Y|Gzry%nnTCdI;ffx1K`_BLjp@@j4N(!1`eA= zq(1qpcZ>458EEZX)Gw^fpnids2L^*Tm@f?Dr*U zwJ#L?P3iwSz*V7WV~tKQxCrp5cBrodd~V1Vs`KW2`=s={`VhXc;(2X&OToEjbKacyK(!3JMO6l5g zuz)i`0OSlpUzb52!x;`R6bW_5+(b=b!g%Ta-W*v`$`t{ijMTBio3jl7^Pr68w>kdV zRsc{q)R*;PlPXzPmMm3qb+h4b++Q8?S6x1pKRs#SlR9eByjC4_r)!Vk{a*lx;upd^ z)-No<*iq1}x#1p&wN~r{gUXM+eo8dwt-IOk{{Sbu>XP)um%*^S+Dqyc+1I4|gUoFJ z$oSrx*`kV=(O!Uh`@1J0sY?PNN&i~$rz#wPP}QXZT1#R8Fy+hAh(5ks9Y8lL{(R!y)4K@RfixZY Y3+Hq)$ literal 0 HcmV?d00001 diff --git a/template/images/SSTAS.png b/template/images/SSTAS.png new file mode 100644 index 0000000000000000000000000000000000000000..815dae277d179c780a6e70d125c28c2b248350e8 GIT binary patch literal 481 zcmV<70UrK|P)%MMj-DXMS8~ z?)H5@{pf;#b^lPY5Aw~2(kWjj1I^l)2U*Qj;e)_svn)$p*O*MxR8`eH&&cCAA`inL zsBPQ0z2rX-LErZ>Zkh%%uE$-{z)~@T~5gece#A@4?L?M6< z#}@)u4U8a75zum9Z*4_tU<8yGAWE$o2-JK%rpQ%;@`!^GxCzP)yqb}N=Hkc`=#LcG z@}r30<@L?Gap>v!awbX%n)9P;|1p9<0UQyKN3t2)MKy4Jl-J7nB7YCTKkLb^q`Cj5 z>H%u*)>V+zgt?lmVZhy!Xynp%wK>Rb= z&iGf~OD^s8W1jfHSKoO5NPb(-+0U+}y~>IAO90+DZ|h$cXpKj71JCy#u(`Eidv{qo zSOOy+w5y`AxR4Q#$G`jiSITbUe*m zvEcTwxjzuVk_?6iSnTIsO^iasi~Py>|`Pqu04McqqpuD^B6G{00^&XtV`$+9MhW%!07DNFaW7P zzJ9p7CLfcvV30*S8jbF10fn?#Q^i#;Y9dqB+7qk6bsV0y>xAlKhH88ag)&i*RL5#2 z$hbT6yK$_TZm}Mk=Yp~3Uu5dA0P|FGOQr&7>30?(HJR%%r!^!f`v@&geZ}KcRR04| z+-lX|0swxeyW5OvRE#*~(1zh{p_)Xq6T{pe$A#+5IbHgDV4y9Mq2+h4p>FWSXsu-; z%792Xz^VI|KhSw}MgkzY>C0PZE7!yn0O_A8ZPRJ;J|*bu;d*vEF@UlWU6KV-0pPGc z5vp^UBL<+^0HAIu$rZq<2fTB_2yp=S@(ZZ<4P8V$Sf5w0fZRgEZf@e@PXOTU{IjfRo3Jo2? z|7})sgCu|&4_>NV0Wxe!06i*b_4@$86H5`UeppI%N8Ptme;o1nTYzLQGFS>bpIw4_ yu5}>a1o3*acFQJc8^TvhxfdxmTKNtCKj0Un2-t-HibOR40000WdJcUFEKeU zFgEPtHP`?E03&ooSad{Xb7OL8aCB*JZU94aWnpw_Z*Cw|X>DaXATcs8F*z?VHoG2Y zRR910Aaq4obW?9;ba!ELWdKcKV{&h8Wn^h#AVz6&Wp{6KYjYq?Si6xbBme*e;z>k7 zR7i=nmQQG1)fUFTZ|!~VxwkjDiKavM3EG*(*@|E%F*v47uQ>sxCd zO2R)GaaY;yB^e+C5^My|KmrwzCtq9XeniCi);*?%Sp)#?5&&UXo*ayiuJ@03ieuN! zKQYrd2;^R22nn%J7^jpPwWYy$x!v!BnQL^uIPB={$qvCA*lm*`0icx4dl z#a83?(fI7Y<{ozMt@b~kYFq<@S^Z*w=%7QAM-m_jxB!T#0Jo5!045>9Nf@bmcGZph zo*H{6vwg6IoA*Ck3wsSy6D1b_Bmqq{Zm5Lh04vw9OzTzZ^hVzU0vrgNIRId6)ni=} zVfA=5kO6?~catmwDzQ5#PWDDW493Ss)%oFQJ$bLvdQwLT697@;HUJ4Bl9T|CG)QT( zEg}GEYr|CS(czQl-tQKlS7{Bbpj;?74>8gwx*%-dl41ps2%rQ9L{6k|a)ab<^5L2G zJO5jIb5xx&WPnLVmP7zHnl3jI@<{r22NKyNg&-NW7bOCK>Ogs>^X89dUj?0ritF$O zlsU#^#S8hQc`9ob65tm*_m3h1Ahb68_@}e4Lk13nTvaQCY)`(wksSz@0~^&Cj+VQ{ zH)h}kBkTZ>G&phYZD~wOY8t`Nyms!fh3We;yMoNPS)xp6$N+5^ zeTRTN%nNC<=z!20A9D>MfhAp#!(DQz9E_KtASPf(4cGuo=eLqcs)!80`rt^nI3@*1 zLL~txD6S7bTkRf^^(HH8hrc@pU@AY@%nliYyU3WZdVJ-%Zt)qEs9;Vhbc?S}tiDp= zBw{iZ*x6-ha=x?(FnFZ5Ky|)z5Nf z+0s;gXs&r%vwp)``|wo$g?o(Afkp_KHuPN*z^!+~-6ffsB$E8ABm6tSMgQ@C7vNW! W4YH`-dSc!H0000Zgv3e^sDEg*ilI@##28~+ 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 Hu0mjf3DIr? literal 0 HcmV?d00001 diff --git a/template/images/addSmall.png b/template/images/addSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..0a7e1eee580a83950848433b284aaec4975f4137 GIT binary patch literal 281 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#NP-42L zi(`m|fAXLI|LvJQ8CEo^9B5c(wXAZs=PMxvCZi2fE$bLpl>FYA?!c15vw&^KZpC%& z)|`i2Kl7j9cUZ_gJ^szUA2sKXJ{P!Ju;nYyuKER14O+``cJsPS-gal!hM!@#Z_Pft zI`4|!Za$aK-)$ZE7$&fps56E#3*NDfnA0LtBVg}fGC^RCO16UHBM(0*7Gb5TD5VvQ Z442mB>Qu~qDhqTXgQu&X%Q~loCIIr~UmE}b literal 0 HcmV?d00001 diff --git a/template/images/add_xml.png b/template/images/add_xml.png new file mode 100644 index 0000000000000000000000000000000000000000..7c48a5a1389573ca25c550230d08e7c0d1c419e9 GIT binary patch literal 1232 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 P00000NkvXXu0mjfyvv{l literal 0 HcmV?d00001 diff --git a/template/images/deleteSmall.png b/template/images/deleteSmall.png new file mode 100644 index 0000000000000000000000000000000000000000..ca986a85672bdfb2e59a1c9af86ee48d8e065e04 GIT binary patch literal 431 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61SBU+%rFB|jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCijSl0AZa85pY67#JE_7#My5g&JNkFq9fFFuY1&V6d9Oz#v{QXIG#N&>US) z7sn6_|Kvaa|JyTrGOTD+IlvJ3_s5Be!5im=TW4J`VRmhJT!h_kPwB`0=g?fd~ zHS8zsI0gC3n_n|#?%14j@Fc_Y^}MC=(%FqY#g&B)f(o1|^^KfNt_sr}=CYW)Y1#ev z`J+qvM^*WS7W?nI&3N*>t7<%#x8JVY%F*0c8Lm{RZhf+2?bYW~-kd+_Fy$+&kKFdH zEM3agJPR2$s_xwQvU29#eyGg)G#S4{NAyQ(T~?* zb-(6|nl1cJZtkL6Hd=Eoi3(y~^rdauzd+7Xkb5@p+i0!qTf_cj$?xJY8PTv-FYeV$ zOBgTe~DWM4f0I-{7 literal 0 HcmV?d00001 diff --git a/template/images/edfScript.png b/template/images/edfScript.png new file mode 100644 index 0000000000000000000000000000000000000000..a5ec9e761ac3d0934d042b7d29ccea1ae8304ed5 GIT binary patch literal 541 zcmV+&0^+pgk8 zq1n@7E1^`oO1rKy>qQ-LmTb4skG~oD$!IgU;Dax}A3x@O-uJ!7lpw-&o-hD*@$hLM zr)Bq@%PBdf>ZGzdX(=^#47BDr0yMpVwwphaxEpT9!!Z^TYvx^sBcSkiAFGU{u}@J( zCnLoHv|YnNfgR)2^C#v}R10SBVh-}O+AazZ|GCMZ?Jcq+eo|f!neO|nKYKv(Y86X0 zmE;mhljAsp*?AS!|BBqlcaVrcJP6SMEPUX%cuRM*{|~V4eNEk9&{)pD`imS?yJ6@t zb9Ml^9tld`yusEZVL#}DK`;33f&U45r-#KWwa#0RpuNm0OLdn~M75aEywHr$w2-DK fX9Jx6RO|a8zA`axCJz}v00000NkvXXu0mjfhtBj? literal 0 HcmV?d00001 diff --git a/template/images/history_get_all.png b/template/images/history_get_all.png new file mode 100644 index 0000000000000000000000000000000000000000..fb6f694db66023a841efc28c0ee1d1ee98f4f799 GIT binary patch literal 402 zcmV;D0d4+?P)KF5soBrp zAI^pw0MewOpulkC=ut2~D=Q190U+067ytq=&FG5o0VZS)$Q$Tj_RboHkal@E2Jw*r z!7$i)Z85{7=0$J~d9`s2sqQV9E`WsrEEYgvfE*61o)i-H0&*DC&r4*m$YH^%3FMWo zl{xssVCOlA(?J+!JBWsftvfse)c{x+zzk6rv;q4U8vuz1*=9gEu%!I>$&>%`^73FB zgh8NlMfQL5Z07$b-!1)Ld`S#UgZOoG6EKr9wsa6>Q_1l4>sPRiAZLSUccWO8SYSa< w+vuP%X+8rtH#gkbW#Lm$3TLJ2VY-aW#{7J&-F!&9{Sv8 zwy68hH!3MDGnz7Wx^U|5o-HOb+N2pS*<@Z)Y1^~MW`p8vv%DiKZ=Sy|e-0$RWWj<1 z1y5cC8rW-Vb1!F9xSk}zz+`atMb`&LwG_S+(o2|rwK66j3bL^NeTA{@KldU}{^mm)hP+?vN_ku?UV$K}!$SGU5cX7v|{IH$;=gu)OvN0T9zw>tI T+N+0w9%k@#^>bP0l+XkKRegb- literal 0 HcmV?d00001 diff --git a/template/images/mongodb-input.png b/template/images/mongodb-input.png new file mode 100644 index 0000000000000000000000000000000000000000..3b92ccc2963aa085de20ada595d6a0476c196e56 GIT binary patch literal 1403 zcmV->1%&#EP)sK6oJwK+kyt9 zv@{fGE4^S#!A|LPrky!^Eg#O@Yzfkef6miBIqO^NUwf~81T*9Rlmx)c%uN5(>GP+1 zt#FL`2k5H<#XoMW*?P6U_Wo2Lgos_*cjW8+fggfWUwmkFOKVH)D-l-z0I?;PoN<5O zb3idMxEXD)6|VAny^*&Aw8%(GO6l=&%Ktu?lZ{gdT{(%0vB%+Z&)Oy+YLKOkoBQ6QTqz z^_^Er4II$XbvpoEXV$@rNGC;1#E2N*#XgU>V}Jl=_EEQDHXfZxF)_0M17HR*h|#Hh z18A}dfDj@ebj7TPqDx{@42r~I0MJ<%LNr%b7Oq{@R8_&uL$e=wcEuaxrsw?&0D#6) zfkOhB7$It9tFOCe0yZ#EE# zmUwICc;Q!8DzAs4EoD&hO_5Mje8{h9 zS%{scQp(Mf*MOxW)|r(uhMiy*D>CP$rlbOBuC5e0c|+`)aKdvPJ)HuYgw$X%!(vTH z(gvs863L0MrF946%}!SoVBEFTol#6HI210Pd=e}!SOyb2OjalQ-e^l-TCmtYLotukk_C9ICG)dI zTcix-(O6YkaiVNbVe2pFM3+avuEA!cZvY%HJ7G#7k?8N%Z1G8moMgn@%=jZ zUwhT?K^gDNU+;7}BY1yDJ6LaOMST$;KBdNt;@roy2S=NcXoJNDiyfK+S{$Sk!YoY| z-0`nMO1W%CewvoPWLkb~bO1?dX?l=*0?-8f0hIktn|Jy*7j*pQ_WJ`GOmUD7NSh+F zzbj~UCPa5pUsEujF4^=R*=)Dy1`z{_o?A}pO z_iMQd!jbG+^5y=lC#KvtKtv4}&X(-lBBacFb5mk!+WiOg(%-7!ih*MEnPNwvW>4CWwl}2B{za zAkg=`ZXk%L5Z?j;L3|Q5BBBYgN+_kV6k}Ur)#~xgjM<%Rc4s#P-<&M7o4Iq(x%b@p zNC2>gXo*CE-X;**hG{A`1456jSS%)!Njk9Sx9%2ZatTVMQlO(pkjv$KQn?%klXA)D z^SZAdoJXK$wA*b4UaQsg+#^jyRF0KO#V49akWQy*W6xw+cwHaeRIOHZlg_QiLkU`~ zmI6|ZWpJ?!rv4&_5-5IRF-@f@IrLxyO#=|9sZ?Ll^w+>(>KDx&@wE1>1QNK5!C)F7 z19A?t54?~iXFvwS?B}>UIc(njpcXSA(=nnT2tE_kI39;1E`bk=jQv$g zM4yTy@Db5Ac zp}vF%JqW-o$CeN!BqfOt0YWJkYC#q>LH@^Q`JO#{NG}Nw>V3xuwmEZg>W75}R-Y47 zdSW=>=B=AxObkE{4XV`z)GUh0asVksG0hx6LQzb82Y?bGMqHyMW=2M$YUY_htOUfa zxDVsne2>TXAkYbQOb1kMH#EfVf#ZQx3^m|C z6wibPFS767p^3rL1WXUe1A<_)$aDa5G=K!|!m50z<>hFW??$rN1vwE?;s9ialoRlM zIkLsnb^rqb-!tILhSYQbF5lyI05v-%@1gnpJt>+PM?0qj?EruP0{}9wvW^sNWE21Z N002ovPDHLkV1gcM0N?-s literal 0 HcmV?d00001 diff --git a/template/index.html b/template/index.html index a64fb2a..5b9c3d4 100644 --- a/template/index.html +++ b/template/index.html @@ -8,7 +8,7 @@ Pentaho Documentation - + diff --git a/xslt/file.xslt b/xslt/file.xslt index fe31f61..e4222d1 100644 --- a/xslt/file.xslt +++ b/xslt/file.xslt @@ -51,6 +51,7 @@ --> + - - - - - - job - transformation - - - - - - - - Job Entries - Steps - - - - - - - - job entry - step - - - - - - - + - - - - - - - + + + + + + + Debugging info - please ignore param_filename: "" normalized_filename: "" @@ -92,194 +94,206 @@ relative-path: "" documentation-root: "" - Kettle Documentation: <xsl:value-of select="$item-type"/> "<xsl:value-of select="$document/*/name"/>" + Kettle Documentation: <xsl:value-of select="$item-type"/> "<xsl:value-of + select="$document/*/name"/>" - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + - - - - - - -

Parameters

- - -

- This defines parameters. + + + + + +

+ Parameters +

+ + +

+ This defines parameters.

-
- - - + + + + + + + + + +
+ + + + - - - - - - - - - - - - -
Name + Default Value + Description
- - - - - -
- - -

- This does not define any parameters. +

+ + + + + +
+ + +

+ This does not define any parameters.

-
- - + + + - - - - - - - - - ${ - Internal.Job.Filename.Directory - Internal.Transformation.Filename.Directory - }/ - - - - - - - - - - - ${ - Internal.Job.Filename.Directory - Internal.Transformation.Filename.Directory - } - - - - - + + + + + + + + + + ${ + Internal.Job.Filename.Directory + Internal.Transformation.Filename.Directory + }/ + + + + + + + + + + + + + + + - - -

Database Connections

- - -

This defines database connections.

-

Database Connection Summary

- - - - - - - - + + +
+ ========================================================================== + --> + + +

+ Database Connections +

+ + +

This defines database connections.

+

Database Connection Summary

+ + + + - - - - - - - - - - - - - + + + + + + + @@ -300,193 +314,211 @@ - - - -
Name + Type + Access + Host + Port + User - Used in -
+ Used in +
- #connection. + #connection. - , - # + , + + #
-

Database Connection Details

- -
- -

This does not define any database connections.

-
-
-
- - -

- - connection. - - -

- - - - - - - - - - -
PropertyValue
-
- - - -
- - - - - - - - -
+

Database Connection Details

+ +
+ +

This does not define any database connections.

+
+
+
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +

+ + connection. + + +

+ + + + + + + + + + +
PropertyValue
+
+ + + - - - - - - - , - - + - - - , - - # - - - - - - - , - - # - - - - + + + + -
- - - - - - -
+ - - - - -

- Variables -

- - -

This does not read any variables.

-
- -

This reads the following variables:

- - - - - - - - - - - - - - -
NameValueConnections - -
-
-
-
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + ========================================================================== + --> - -
+    
+        
         
             left: px;
             top: px;
@@ -508,609 +540,823 @@
         
         
     
-
- - -

SQL

-
-
- - -

MDX

-
-
- - - - - - -
-
-
- - -

Java Class Source Code

- -
- - -
-
-
- - + +

SQL

+ Connection: + #connection. + + +
+
+ + +

MDX

+
+
+ + + + + + +
+ +
+
+
+ + +

Java Class Source Code

+ +
+ + +
+ +
+
+
+ + - - - - - - - - -

Flat Files

-

+ ========================================================================== + --> + +

+ +

+ + + + + + + + + + + + + + + + + + +
- - - -

Fields

- - - - - - - - - - - -
NameTypeFormat
-
- - - - - - -

High Level Data Flow Diagram

- - - - - - - - - - - - - - - -
Input ()TransformOutput ()
- -
-
-
- - -
-
-
-
- - -

- -
- - -

- - - - -

- -
- - -

Transformation Uses

-

t.b.d

- -

Transformation Used By

-

t.b.d

-
- - - -
-
- + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
What?Who?When?
Created + + + +
Modified + + + +
Version + +
Status + + Draft + Production + + + + +
+
+ + + + +

High Level Data Flow Diagram

+ + + + + + + + + + + + + + + +
Input ()TransformOutput ()
+ + + + + + + +
+
+ + +

+ +

+ +
+ + +

+ + + + + + +

+ +
+ + +

+ Transformation Uses +

+

t.b.d

+ +

+ Transformation Used By +

+

t.b.d

+
+ + + +
+
+ step-icon - step-icon- - -
-

- - -text - #-icon - - -

- - - - - - - -
- - -

Fields

- - - - - - + step-icon- + + +

+ + -text + #-icon + + +

+ + + + + + + + + + +

Database

+
Position - -
+ + + + + + + + + + + + + + + + + + + +
+ ConnectionSchemaTableCommitTruncate
Value + + #connection. + + +
+ + + + + + + + + +
+ + + +

Hops

+ + + + + + + + + + + + + + + + - - - - + + + + + + + + + +
+ TypeStepEnabled
+ + From + + #-text + + + + +
+ + To + + #-text + + + + +
+
+ + + +

+ + Fields + + + + +

+ + - - - + + + - - -
- - Position + +
-
+ + + + + + + + + + + + + + + + + - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - + + +

Called sub-transformation

+ + + + + + + + +
+ + + +
- - - - + --> + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + -

Diagram

-
- - width: px; - height: px; - -
- - width: px; - height: px; +

+ Diagram +

+ - - - + + + + +
+
- -

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
What?Who?When?
Created
Modified
Version
Status - - Draft - Production - - -
- - - - - - - -
- - -

Job Uses

-

t.b.d

- -

Job Used By

-

t.b.d

-
- - -

- - - - -

- -
- - - - -
- - entry-icon - entry-icon- - - - - - - -
-

- - -text - #-icon - - -

- - - - -
- - - - - - + - - - - - - - - - - - + +

+ +

+ + + + + + + -
- - - + + + + + + + + +
+ + +

+ Job Uses +

+

t.b.d

+ +

+ Job Used By +

+

t.b.d

+
+ + +

+ + + + + + +

+ +
+ + + + +
+
+ + entry-icon + entry-icon- + + + + + + +
+

+ + -text + #-icon + + +

+ + -
- - - + + - + +
-

Diagram

-
- - width: px; - height: px; - -
- - width: px; - height: px; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+ Diagram +

+
+ + width: px; + height: px; + +
+ + width: px; + height: px; - - - - - - - - - -icon - -
- - + + + + + + + + + -icon + +
+ + + + entry-icon entry-icon- - - - - - - + + + + + + entry-hidden - - - left:px; - top:px; + + + left:px; + top:px; -
- - - +
+ + + entry-hop - entry-hop-unconditional - entry-hop-true - entry-hop-false - - - - - -
-
- - + entry-hop-unconditional + entry-hop-true + entry-hop-false + + + + + + + +
+
+ + entry-label - + entry-label-hidden + + + top:px; + left:px; - - top:px; - left:px; - - - - + + - - - - - #-text - - - - -
- -
-
-
+ "> + + + + + #-text + +
+ + + + +
+
+ diff --git a/xslt/shared.xslt b/xslt/shared.xslt index f72c66e..38780f1 100644 --- a/xslt/shared.xslt +++ b/xslt/shared.xslt @@ -155,18 +155,30 @@ -

-    
-        
-    
-    
-        This  does not have a description.
-    
-
+ + +
+                    

+ +

+
+
+ +

+ This does not have a description. +

+
+
-
+
+                

+ +

+
+ + diff --git a/xslt/toc.xslt b/xslt/toc.xslt index c3f3f8d..2a036cd 100644 --- a/xslt/toc.xslt +++ b/xslt/toc.xslt @@ -30,273 +30,294 @@ --> - - + + - - - + + + - - - Pentaho Documentation: Table of Contents + - - - + Pentaho Documentation: Table of Contents - - - - - - + + + - - + + + + + + - + + - - - + + + + + + + + + - - - - - - -
- -
 
- -
- Hierarchical +
 
+ + +
 
-
 
-
-
-
- -
- - - - - +
+
+ +
- - - - + + + + - - - - - - + + + + - - - - - - + - - - - -
- -
- - - -
-
- - - - Connections -
-
- - - - - -

None.

-
-
-
-
-
- - -
-
- - - - Mondrian Schemas + + + + + + + + + + + + + + + + +
+
- -
- + + + +
+
+ - + + Connections +
+
+ + + + + +

None.

+
+
+
-
-
- - - -
  • - item item- - - item item- - - - -
  • -
    - - - - - - - - - + + +
    - - - + + Mondrian Schemas
    +
    - - - - - - +
    - -
    - - - - - - - -
      - - - - -
    -
    - - -

    None.

    -
    -
    -
    -
    - - - - - + +
  • + item item- + + item item- + + + + + +
  • +
    + + + + + + + + + +
    +
    + - + + + + +
    +
    + + + + + + +
    +
    +
    +
    + + + + + + + +
      + + + + +
    +
    + + +

    None.

    +
    +
    +
    +
    + + + + + - - - - - - - - -
    -
    - - - - -
    -
    - - - - - -
    -
    -
    - - - - - - - + /> - - + + + + + + + + +
    +
    + - + + + + +
    +
    + + + + + +
    +
    +
    +
    + + + + + + + + + + - \ No newline at end of file +