Created
November 27, 2016 02:40
-
-
Save onelittlenightmusic/c0b6cbe31315fa0fe0879e7c5ffd786b to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?xml version="1.0" encoding="UTF-8"?> | |
<transformation> | |
<info> | |
<name>create_new_transformation</name> | |
<description/> | |
<extended_description/> | |
<trans_version/> | |
<trans_type>Normal</trans_type> | |
<directory>/</directory> | |
<parameters> | |
</parameters> | |
<log> | |
<trans-log-table><connection/> | |
<schema/> | |
<table/> | |
<size_limit_lines/> | |
<interval/> | |
<timeout_days/> | |
<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STATUS</id><enabled>Y</enabled><name>STATUS</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name><subject/></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name><subject/></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name><subject/></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name><subject/></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name><subject/></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name><subject/></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>STARTDATE</id><enabled>Y</enabled><name>STARTDATE</name></field><field><id>ENDDATE</id><enabled>Y</enabled><name>ENDDATE</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>DEPDATE</id><enabled>Y</enabled><name>DEPDATE</name></field><field><id>REPLAYDATE</id><enabled>Y</enabled><name>REPLAYDATE</name></field><field><id>LOG_FIELD</id><enabled>Y</enabled><name>LOG_FIELD</name></field><field><id>EXECUTING_SERVER</id><enabled>N</enabled><name>EXECUTING_SERVER</name></field><field><id>EXECUTING_USER</id><enabled>N</enabled><name>EXECUTING_USER</name></field><field><id>CLIENT</id><enabled>N</enabled><name>CLIENT</name></field></trans-log-table> | |
<perf-log-table><connection/> | |
<schema/> | |
<table/> | |
<interval/> | |
<timeout_days/> | |
<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>SEQ_NR</id><enabled>Y</enabled><name>SEQ_NR</name></field><field><id>LOGDATE</id><enabled>Y</enabled><name>LOGDATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>INPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>INPUT_BUFFER_ROWS</name></field><field><id>OUTPUT_BUFFER_ROWS</id><enabled>Y</enabled><name>OUTPUT_BUFFER_ROWS</name></field></perf-log-table> | |
<channel-log-table><connection/> | |
<schema/> | |
<table/> | |
<timeout_days/> | |
<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>LOGGING_OBJECT_TYPE</id><enabled>Y</enabled><name>LOGGING_OBJECT_TYPE</name></field><field><id>OBJECT_NAME</id><enabled>Y</enabled><name>OBJECT_NAME</name></field><field><id>OBJECT_COPY</id><enabled>Y</enabled><name>OBJECT_COPY</name></field><field><id>REPOSITORY_DIRECTORY</id><enabled>Y</enabled><name>REPOSITORY_DIRECTORY</name></field><field><id>FILENAME</id><enabled>Y</enabled><name>FILENAME</name></field><field><id>OBJECT_ID</id><enabled>Y</enabled><name>OBJECT_ID</name></field><field><id>OBJECT_REVISION</id><enabled>Y</enabled><name>OBJECT_REVISION</name></field><field><id>PARENT_CHANNEL_ID</id><enabled>Y</enabled><name>PARENT_CHANNEL_ID</name></field><field><id>ROOT_CHANNEL_ID</id><enabled>Y</enabled><name>ROOT_CHANNEL_ID</name></field></channel-log-table> | |
<step-log-table><connection/> | |
<schema/> | |
<table/> | |
<timeout_days/> | |
<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>TRANSNAME</id><enabled>Y</enabled><name>TRANSNAME</name></field><field><id>STEPNAME</id><enabled>Y</enabled><name>STEPNAME</name></field><field><id>STEP_COPY</id><enabled>Y</enabled><name>STEP_COPY</name></field><field><id>LINES_READ</id><enabled>Y</enabled><name>LINES_READ</name></field><field><id>LINES_WRITTEN</id><enabled>Y</enabled><name>LINES_WRITTEN</name></field><field><id>LINES_UPDATED</id><enabled>Y</enabled><name>LINES_UPDATED</name></field><field><id>LINES_INPUT</id><enabled>Y</enabled><name>LINES_INPUT</name></field><field><id>LINES_OUTPUT</id><enabled>Y</enabled><name>LINES_OUTPUT</name></field><field><id>LINES_REJECTED</id><enabled>Y</enabled><name>LINES_REJECTED</name></field><field><id>ERRORS</id><enabled>Y</enabled><name>ERRORS</name></field><field><id>LOG_FIELD</id><enabled>N</enabled><name>LOG_FIELD</name></field></step-log-table> | |
<metrics-log-table><connection/> | |
<schema/> | |
<table/> | |
<timeout_days/> | |
<field><id>ID_BATCH</id><enabled>Y</enabled><name>ID_BATCH</name></field><field><id>CHANNEL_ID</id><enabled>Y</enabled><name>CHANNEL_ID</name></field><field><id>LOG_DATE</id><enabled>Y</enabled><name>LOG_DATE</name></field><field><id>METRICS_DATE</id><enabled>Y</enabled><name>METRICS_DATE</name></field><field><id>METRICS_CODE</id><enabled>Y</enabled><name>METRICS_CODE</name></field><field><id>METRICS_DESCRIPTION</id><enabled>Y</enabled><name>METRICS_DESCRIPTION</name></field><field><id>METRICS_SUBJECT</id><enabled>Y</enabled><name>METRICS_SUBJECT</name></field><field><id>METRICS_TYPE</id><enabled>Y</enabled><name>METRICS_TYPE</name></field><field><id>METRICS_VALUE</id><enabled>Y</enabled><name>METRICS_VALUE</name></field></metrics-log-table> | |
</log> | |
<maxdate> | |
<connection/> | |
<table/> | |
<field/> | |
<offset>0.0</offset> | |
<maxdiff>0.0</maxdiff> | |
</maxdate> | |
<size_rowset>10000</size_rowset> | |
<sleep_time_empty>50</sleep_time_empty> | |
<sleep_time_full>50</sleep_time_full> | |
<unique_connections>N</unique_connections> | |
<feedback_shown>Y</feedback_shown> | |
<feedback_size>50000</feedback_size> | |
<using_thread_priorities>Y</using_thread_priorities> | |
<shared_objects_file/> | |
<capture_step_performance>N</capture_step_performance> | |
<step_performance_capturing_delay>1000</step_performance_capturing_delay> | |
<step_performance_capturing_size_limit>100</step_performance_capturing_size_limit> | |
<dependencies> | |
</dependencies> | |
<partitionschemas> | |
</partitionschemas> | |
<slaveservers> | |
</slaveservers> | |
<clusterschemas> | |
</clusterschemas> | |
<created_user>-</created_user> | |
<created_date>2016/11/27 10:12:11.449</created_date> | |
<modified_user>-</modified_user> | |
<modified_date>2016/11/27 10:12:11.449</modified_date> | |
<key_for_session_key/> | |
<is_key_private>N</is_key_private> | |
</info> | |
<notepads> | |
</notepads> | |
<order> | |
<hop> <from>Data Grid</from><to>User Defined Java Class</to><enabled>Y</enabled> </hop> | |
<hop> <from>User Defined Java Class</from><to>Write to log</to><enabled>Y</enabled> </hop> | |
</order> | |
<step> | |
<name>Data Grid</name> | |
<type>DataGrid</type> | |
<description/> | |
<distribute>Y</distribute> | |
<custom_distribution/> | |
<copies>1</copies> | |
<partitioning> | |
<method>none</method> | |
<schema_name/> | |
</partitioning> | |
<fields> | |
<field> | |
<name>test</name> | |
<type>String</type> | |
<format/> | |
<currency/> | |
<decimal/> | |
<group/> | |
<length>-1</length> | |
<precision>-1</precision> | |
<set_empty_string>N</set_empty_string> | |
</field> | |
</fields> | |
<data> | |
<line> <item>aho</item> </line> | |
</data> | |
<cluster_schema/> | |
<remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
<xloc>144</xloc> | |
<yloc>96</yloc> | |
<draw>Y</draw> | |
</GUI> | |
</step> | |
<step> | |
<name>User Defined Java Class</name> | |
<type>UserDefinedJavaClass</type> | |
<description/> | |
<distribute>Y</distribute> | |
<custom_distribution/> | |
<copies>1</copies> | |
<partitioning> | |
<method>none</method> | |
<schema_name/> | |
</partitioning> | |
<definitions> | |
<definition> | |
<class_type>TRANSFORM_CLASS</class_type> | |
<class_name>Processor</class_name> | |
<class_source><![CDATA[import org.pentaho.di.core.gui.Point; | |
import org.pentaho.di.core.plugins.*; | |
import org.pentaho.di.core.row.*; | |
import org.pentaho.di.trans.TransMeta; | |
import org.pentaho.di.trans.step.StepMeta; | |
import org.pentaho.di.trans.step.StepMetaInterface; | |
import org.pentaho.di.trans.steps.datagrid.DataGridMeta; | |
import java.util.ArrayList; | |
import java.util.List; | |
import java.io.BufferedWriter; | |
import java.io.FileOutputStream; | |
import java.io.IOException; | |
import java.io.OutputStreamWriter; | |
import java.io.Writer; | |
public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException | |
{ | |
if (first){ | |
first = false; | |
} | |
Object[] r = getRow(); | |
if (r == null) { | |
setOutputDone(); | |
return false; | |
} | |
String fileName = "****test.ktr"; | |
TransMeta tm = new TransMeta(); | |
DataGridMeta dgm = new DataGridMeta(); | |
dgm.setDefault(); | |
String dataGridStepname = "Data Grid"; | |
StepMeta dataGridStep = new StepMeta("10", dataGridStepname, (StepMetaInterface)dgm); | |
Point p = getStepMeta().getLocation(); | |
dataGridStep.setLocation(p.x+10, p.y+40); | |
dataGridStep.setDraw(true); | |
tm.addStep(dataGridStep); | |
String xml = tm.getXML(); | |
logBasic(xml); | |
//DataOutputStream dos = new DataOutputStream(new FileOutputStream(new File(fileName))); | |
Writer writer = null; | |
try { | |
writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "utf-8")); | |
writer.write(xml); | |
writer.close(); | |
logBasic("Saved transformation to file: "+fileName); | |
} catch(Exception e) { | |
logBasic(e.toString()); | |
} | |
// It is always safest to call createOutputRow() to ensure that your output row's Object[] is large | |
// enough to handle any new fields you are creating in this step. | |
r = createOutputRow(r, data.outputRowMeta.size()); | |
// Send the row on to the next step. | |
putRow(data.outputRowMeta, r); | |
return true; | |
} | |
]]></class_source> | |
</definition> | |
</definitions> | |
<fields> | |
</fields><clear_result_fields>N</clear_result_fields> | |
<info_steps></info_steps><target_steps></target_steps><usage_parameters></usage_parameters> <cluster_schema/> | |
<remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
<xloc>224</xloc> | |
<yloc>96</yloc> | |
<draw>Y</draw> | |
</GUI> | |
</step> | |
<step> | |
<name>Write to log</name> | |
<type>WriteToLog</type> | |
<description/> | |
<distribute>Y</distribute> | |
<custom_distribution/> | |
<copies>1</copies> | |
<partitioning> | |
<method>none</method> | |
<schema_name/> | |
</partitioning> | |
<loglevel>log_level_basic</loglevel> | |
<displayHeader>Y</displayHeader> | |
<limitRows>N</limitRows> | |
<limitRowsNumber>0</limitRowsNumber> | |
<logmessage/> | |
<fields> | |
</fields> | |
<cluster_schema/> | |
<remotesteps> <input> </input> <output> </output> </remotesteps> <GUI> | |
<xloc>320</xloc> | |
<yloc>64</yloc> | |
<draw>Y</draw> | |
</GUI> | |
</step> | |
<step_error_handling> | |
</step_error_handling> | |
<slave-step-copy-partition-distribution> | |
</slave-step-copy-partition-distribution> | |
<slave_transformation>N</slave_transformation> | |
</transformation> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment