|
@@ -0,0 +1,803 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<transformation>
|
|
|
+ <info>
|
|
|
+ <name>test</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>2019/06/11 14:33:34.761</created_date>
|
|
|
+ <modified_user>-</modified_user>
|
|
|
+ <modified_date>2019/06/11 14:33:34.761</modified_date>
|
|
|
+ <key_for_session_key>H4sIAAAAAAAAAAMAAAAAAAAAAAA=</key_for_session_key>
|
|
|
+ <is_key_private>N</is_key_private>
|
|
|
+ </info>
|
|
|
+ <notepads>
|
|
|
+ </notepads>
|
|
|
+ <connection>
|
|
|
+ <name>MemberPortal</name>
|
|
|
+ <server>219.128.77.96</server>
|
|
|
+ <type>MSSQLNATIVE</type>
|
|
|
+ <access>Native</access>
|
|
|
+ <database>MemberPortal</database>
|
|
|
+ <port>1433</port>
|
|
|
+ <username>caixukun</username>
|
|
|
+ <password>Encrypted 2be98afc86aa7f2e4a801a5508cc2fe83</password>
|
|
|
+ <servername/>
|
|
|
+ <data_tablespace/>
|
|
|
+ <index_tablespace/>
|
|
|
+ <attributes>
|
|
|
+ <attribute>
|
|
|
+ <code>FORCE_IDENTIFIERS_TO_LOWERCASE</code>
|
|
|
+ <attribute>N</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>FORCE_IDENTIFIERS_TO_UPPERCASE</code>
|
|
|
+ <attribute>N</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>IS_CLUSTERED</code>
|
|
|
+ <attribute>N</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>MSSQLUseIntegratedSecurity</code>
|
|
|
+ <attribute>false</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>MSSQL_DOUBLE_DECIMAL_SEPARATOR</code>
|
|
|
+ <attribute>N</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>PORT_NUMBER</code>
|
|
|
+ <attribute>1433</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>PRESERVE_RESERVED_WORD_CASE</code>
|
|
|
+ <attribute>Y</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>QUOTE_ALL_FIELDS</code>
|
|
|
+ <attribute>N</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>SUPPORTS_BOOLEAN_DATA_TYPE</code>
|
|
|
+ <attribute>Y</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>SUPPORTS_TIMESTAMP_DATA_TYPE</code>
|
|
|
+ <attribute>Y</attribute>
|
|
|
+ </attribute>
|
|
|
+ <attribute>
|
|
|
+ <code>USE_POOLING</code>
|
|
|
+ <attribute>N</attribute>
|
|
|
+ </attribute>
|
|
|
+ </attributes>
|
|
|
+ </connection>
|
|
|
+ <order>
|
|
|
+ <hop>
|
|
|
+ <from>表输入</from>
|
|
|
+ <to>HTTP client</to>
|
|
|
+ <enabled>Y</enabled>
|
|
|
+ </hop>
|
|
|
+ <hop>
|
|
|
+ <from>HTTP client</from>
|
|
|
+ <to>Java 代码</to>
|
|
|
+ <enabled>Y</enabled>
|
|
|
+ </hop>
|
|
|
+ </order>
|
|
|
+ <step>
|
|
|
+ <name>HTTP client</name>
|
|
|
+ <type>HTTP</type>
|
|
|
+ <description/>
|
|
|
+ <distribute>Y</distribute>
|
|
|
+ <custom_distribution/>
|
|
|
+ <copies>1</copies>
|
|
|
+ <partitioning>
|
|
|
+ <method>none</method>
|
|
|
+ <schema_name/>
|
|
|
+ </partitioning>
|
|
|
+ <url/>
|
|
|
+ <urlInField>Y</urlInField>
|
|
|
+ <urlField>Url</urlField>
|
|
|
+ <encoding>UTF-8</encoding>
|
|
|
+ <httpLogin/>
|
|
|
+ <httpPassword>Encrypted </httpPassword>
|
|
|
+ <proxyHost/>
|
|
|
+ <proxyPort/>
|
|
|
+ <socketTimeout>10000</socketTimeout>
|
|
|
+ <connectionTimeout>10000</connectionTimeout>
|
|
|
+ <closeIdleConnectionsTime>-1</closeIdleConnectionsTime>
|
|
|
+ <lookup>
|
|
|
+ </lookup>
|
|
|
+ <result>
|
|
|
+ <name>result</name>
|
|
|
+ <code/>
|
|
|
+ <response_time/>
|
|
|
+ <response_header/>
|
|
|
+ </result>
|
|
|
+ <attributes/>
|
|
|
+ <cluster_schema/>
|
|
|
+ <remotesteps>
|
|
|
+ <input>
|
|
|
+ </input>
|
|
|
+ <output>
|
|
|
+ </output>
|
|
|
+ </remotesteps>
|
|
|
+ <GUI>
|
|
|
+ <xloc>272</xloc>
|
|
|
+ <yloc>128</yloc>
|
|
|
+ <draw>Y</draw>
|
|
|
+ </GUI>
|
|
|
+ </step>
|
|
|
+ <step>
|
|
|
+ <name>Java 代码</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>import java.sql.*;
|
|
|
+import org.pentaho.di.core.database.*;
|
|
|
+
|
|
|
+import org.apache.http.HttpHost;
|
|
|
+import org.elasticsearch.ElasticsearchException;
|
|
|
+import org.elasticsearch.action.get.GetRequest;
|
|
|
+import org.elasticsearch.action.get.GetResponse;
|
|
|
+import org.elasticsearch.client.RestHighLevelClient;
|
|
|
+import org.elasticsearch.client.RequestOptions;
|
|
|
+import org.elasticsearch.client.RestClient;
|
|
|
+import org.elasticsearch.common.Strings;
|
|
|
+import org.elasticsearch.rest.RestStatus;
|
|
|
+import org.elasticsearch.search.fetch.subphase.FetchSourceContext;
|
|
|
+
|
|
|
+import org.elasticsearch.action.update.UpdateRequest;
|
|
|
+import org.elasticsearch.action.update.UpdateResponse;
|
|
|
+
|
|
|
+import org.elasticsearch.common.xcontent.XContentBuilder;
|
|
|
+import org.elasticsearch.common.xcontent.XContentFactory;
|
|
|
+import org.elasticsearch.script.Script;
|
|
|
+
|
|
|
+import java.lang.reflect.InvocationTargetException;
|
|
|
+import java.lang.reflect.Method;
|
|
|
+import com.microsoft.sqlserver.jdbc.SQLServerException;
|
|
|
+
|
|
|
+Database database = null;
|
|
|
+PreparedStatement stat = null;
|
|
|
+PreparedStatement stat1 = null;
|
|
|
+
|
|
|
+RestHighLevelClient client = new RestHighLevelClient(
|
|
|
+ RestClient.builder(
|
|
|
+ new HttpHost[]{new HttpHost("192.168.50.32", 9200, "http")}));
|
|
|
+Integer index = 0;
|
|
|
+public boolean processRow(StepMetaInterface smi, StepDataInterface sdi) throws KettleException
|
|
|
+{
|
|
|
+ Object[] r = getRow();
|
|
|
+ if (r == null) {
|
|
|
+
|
|
|
+ try {
|
|
|
+ if(client!=null){
|
|
|
+ client.close();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ catch(Exception e) {
|
|
|
+ throw new KettleException(e);
|
|
|
+ }
|
|
|
+ setOutputDone();
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+ synchronized(this) {
|
|
|
+
|
|
|
+ r = createOutputRow(r, data.outputRowMeta.size());
|
|
|
+ //获取数据库名和表名
|
|
|
+ String dbName = "MemberSqlServer";//getInputRowMeta().getString(r, "conname", null );
|
|
|
+ String tablename = "DataImport_heathytemp";//getInputRowMeta().getString(r, "tablename", null );
|
|
|
+ String idname = "MemberId";//getInputRowMeta().getString(r, "idname", null );
|
|
|
+
|
|
|
+ String sourceidname = "MemberPhone";//getInputRowMeta().getString(r, "sourceidname", null );
|
|
|
+ String sourcetablename = "Orders";//getInputRowMeta().getString(r, "sourcetablename", null );
|
|
|
+ if (dbName==null||tablename==null) {
|
|
|
+ throw new KettleException("Unable to find field with name "+tablename+" in the input row.");
|
|
|
+ }
|
|
|
+ //logBasic("table---"+tablename);
|
|
|
+
|
|
|
+
|
|
|
+if(database == null){
|
|
|
+//数据库连接
|
|
|
+ DatabaseMeta databaseMeta=null;
|
|
|
+ try {
|
|
|
+ databaseMeta = getTransMeta().findDatabase(dbName);
|
|
|
+ if (databaseMeta==null) {
|
|
|
+ logError("A connection with name "+dbName+" could not be found!");
|
|
|
+ setErrors(1);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+ database = new Database(getTrans(), databaseMeta);
|
|
|
+ database.connect();
|
|
|
+ //logBasic("success!");
|
|
|
+ } catch(Exception e) {
|
|
|
+ logError("Connecting to database "+dbName+" failed.", e);
|
|
|
+ setErrors(1);
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+}
|
|
|
+
|
|
|
+//查询表数据
|
|
|
+ try {
|
|
|
+ RowMetaInterface idxRowMeta =data.outputRowMeta;
|
|
|
+
|
|
|
+
|
|
|
+ r = createOutputRow(r, data.outputRowMeta.size());
|
|
|
+
|
|
|
+ //int index = getInputRowMeta().size();
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ // Add the column name
|
|
|
+ String Id = idxRowMeta.getString(r, "phoneid", null);
|
|
|
+ String DataId = idxRowMeta.getString(r, "result", null);
|
|
|
+ logBasic("--"+Id);
|
|
|
+ logBasic("--"+DataId);
|
|
|
+ logBasic("--"+(DataId == null||DataId.equals("null")));
|
|
|
+ if(DataId == null||DataId.equals("null")){
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+ int startEmail = DataId.indexOf("buyer_email")+("buyer_email\":\"".length());
|
|
|
+ int endEmail = DataId.indexOf("\",\"buyer_nick");
|
|
|
+
|
|
|
+ int startTradeName = DataId.indexOf("trade_source")+("trade_source\":\"".length());
|
|
|
+ int endTradeName = DataId.indexOf("\",\"type");//\",\"type"
|
|
|
+
|
|
|
+ int startTradeFrom = DataId.indexOf("trade_from")+("trade_from\":\"".length());
|
|
|
+ int endTradeFrom = DataId.indexOf("\",\"trade_source");
|
|
|
+ //logBasic("--"+(end-start));
|
|
|
+ String email = DataId.substring(startEmail,endEmail);
|
|
|
+ //String tradeName = DataId.substring(startTradeName,endTradeName);
|
|
|
+ //String tradeFrom = DataId.substring(startTradeFrom,endTradeFrom);
|
|
|
+ logBasic("email--"+email);
|
|
|
+ //logBasic("tradeName--"+tradeName);
|
|
|
+ //logBasic("tradeFrom--"+tradeFrom);
|
|
|
+ logBasic("startEmail--"+startEmail);
|
|
|
+ logBasic("endEmail--"+endEmail);
|
|
|
+ Thread.sleep(1000);
|
|
|
+ GetRequest getRequest = new GetRequest(
|
|
|
+ "crm_memberbase_phoneid", // Index
|
|
|
+ "_doc", // Type
|
|
|
+ Id); // Document id
|
|
|
+ getRequest.fetchSourceContext(new FetchSourceContext(false)); // 禁用 _source 字段
|
|
|
+ getRequest.storedFields(new String[]{"_none_"}); // 禁止存储任何字段
|
|
|
+ boolean exists = client.exists(getRequest,RequestOptions.DEFAULT);
|
|
|
+ //client.close();
|
|
|
+ if(exists) {
|
|
|
+ UpdateRequest updateRequest = new UpdateRequest();
|
|
|
+ updateRequest.index("crm_memberbase_phoneid");
|
|
|
+ updateRequest.type("_doc");
|
|
|
+ updateRequest.id(Id);
|
|
|
+ updateRequest.doc(XContentFactory.jsonBuilder()
|
|
|
+ .startObject()
|
|
|
+ .field("MemEmail", email)
|
|
|
+ .field("TradeName", "")
|
|
|
+ .field("TradeFrom", "")
|
|
|
+ .endObject());
|
|
|
+ client.update(updateRequest,RequestOptions.DEFAULT);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ catch(SQLServerException e) {
|
|
|
+ return true;
|
|
|
+ }catch(Exception e) {
|
|
|
+
|
|
|
+ throw new KettleException(e);
|
|
|
+ }
|
|
|
+ //释放连接
|
|
|
+ //if (database!=null) {
|
|
|
+ // database.disconnect();
|
|
|
+ //}
|
|
|
+
|
|
|
+ // 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/>
|
|
|
+ <target_steps/>
|
|
|
+ <usage_parameters/>
|
|
|
+ <attributes/>
|
|
|
+ <cluster_schema/>
|
|
|
+ <remotesteps>
|
|
|
+ <input>
|
|
|
+ </input>
|
|
|
+ <output>
|
|
|
+ </output>
|
|
|
+ </remotesteps>
|
|
|
+ <GUI>
|
|
|
+ <xloc>448</xloc>
|
|
|
+ <yloc>80</yloc>
|
|
|
+ <draw>Y</draw>
|
|
|
+ </GUI>
|
|
|
+ </step>
|
|
|
+ <step>
|
|
|
+ <name>表输入</name>
|
|
|
+ <type>TableInput</type>
|
|
|
+ <description/>
|
|
|
+ <distribute>Y</distribute>
|
|
|
+ <custom_distribution/>
|
|
|
+ <copies>1</copies>
|
|
|
+ <partitioning>
|
|
|
+ <method>none</method>
|
|
|
+ <schema_name/>
|
|
|
+ </partitioning>
|
|
|
+ <connection>MemberPortal</connection>
|
|
|
+ <sql> SELECT top 50
|
|
|
+ case when OriginType =6 then concat( 'http://api.360lj.com/taobaodocking/GetOneOrderInfo?tid=',substring(OrdersCode,3,LEN(OrdersCode)-1))
|
|
|
+ else concat( 'http://api.360lj.com/taobaodocking/GetOneOrderInfo?tid=',substring(OrdersCode,4,LEN(OrdersCode)-1)) end
|
|
|
+ as Url
|
|
|
+ ,OriginType
|
|
|
+ ,Mall.dbo.DesDecryptFixKey('123456','123456e10adc3949ba59abbe56e057f20f883e',AconsigneePhone2 ) as phoneid
|
|
|
+FROM mall..orders
|
|
|
+
|
|
|
+WHERE OrdersCode LIKE 'TM%' AND OriginType IN (6,57,58)
|
|
|
+ AND AconsigneePhone2!=''
|
|
|
+ ORDER BY OrderTime DESC</sql>
|
|
|
+ <limit>0</limit>
|
|
|
+ <lookup/>
|
|
|
+ <execute_each_row>N</execute_each_row>
|
|
|
+ <variables_active>N</variables_active>
|
|
|
+ <lazy_conversion_active>N</lazy_conversion_active>
|
|
|
+ <attributes/>
|
|
|
+ <cluster_schema/>
|
|
|
+ <remotesteps>
|
|
|
+ <input>
|
|
|
+ </input>
|
|
|
+ <output>
|
|
|
+ </output>
|
|
|
+ </remotesteps>
|
|
|
+ <GUI>
|
|
|
+ <xloc>144</xloc>
|
|
|
+ <yloc>112</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>
|
|
|
+ <attributes/>
|
|
|
+</transformation>
|