![]() |
Consumption Analytics Documentation |
Executes one or more processors to adjust record contents and/or drop records. Input and output resources must be distinct since this tasklet writes to output while reading input.
Input and output resources do not have to be specified. The default input is the output resource of the previous job step, if any. The default output is located under the active process directory and follows a naming convention of
jobName
_
selectDate
_transformed.ccr
. These default resource definitions are part of the execution context loaded when using the
ccjob
script to launch jobs.
<bean class="com.cloudcruiser.batch.CCRecordTransformTasklet">
<batch:step id="transform" next="charge">
<batch:tasklet>
<bean class="com.cloudcruiser.batch.CCRecordTransformTasklet">
<property name="active" value="true"/>
<property name="input" ref="defaultAggregationOutput"/>
<property name="output" ref="defaultTransformOutput"/>
<property name="inputRequired" value="false"/>
<property name="exceptionOutput" ref="defaultTransformExceptionOutput"/>
<property name="exceptionLogLimit" value="20"/>
<property name="exceptionLimit" value="0"/>
<property name="processors">
<list>
<bean class="com.cloudcruiser.batch.transform.CreateIdentifierFromIdentifier">
<property name="targetIdentifier" value="HostVM"/>
<property name="inputIdentifiers">
<list>
<bean class="com.cloudcruiser.batch.transform.InputIdentifier">
<property name="name" value="Host"/>
<property name="start" value="0"/>
<property name="len" value="3"/>
<property name="suffix" value=":"/>
</bean>
<bean class="com.cloudcruiser.batch.transform.InputIdentifier">
<property name="name" value="VMName"/>
</bean>
</list>
</property>
</bean>
<bean class="com.cloudcruiser.batch.transform.CreateIdentifierFromTable">
<property name="translateTitle" value="default"/>
<property name="sourceIdentifier" value="HostVM"/>
</bean>
</list>
</property>
</bean>
</batch:tasklet>
</batch:step>
<batch:step id="transform" next="transformExceptions">
<batch:tasklet>
<bean class="com.cloudcruiser.batch.CCRecordTransformTasklet">
<property name="active" value="true"/>
<property name="output" ref="defaultTransformOutput"/>
<property name="inputRequired" value="true"/>
<property name="exceptionOutput" value="file:${env.processDir}/${env.jobName}_${env.selectDate}_lookup_exceptions.ccr"/>
<property name="exceptionLogLimit" value="50"/>
<property name="exceptionLimit" value="1000"/>
<property name="processors">
<list>
<bean class="com.cloudcruiser.batch.transform.CreateIdentifierFromIdentifier">
<property name="targetIdentifier" value="HostVM"/>
<property name="inputIdentifiers">
<list>
<bean class="com.cloudcruiser.batch.transform.InputIdentifier">
<property name="name" value="Host"/>
<property name="start" value="0"/>
<property name="len" value="3"/>
<property name="suffix" value=":"/>
</bean>
<bean class="com.cloudcruiser.batch.transform.InputIdentifier">
<property name="name" value="VMName"/>
</bean>
</list>
</property>
</bean>
<bean class="com.cloudcruiser.batch.transform.CreateIdentifierFromTable">
<property name="translateTitle" value="default"/>
<property name="sourceIdentifier" value="HostVM"/>
</bean>
</list>
</property>
</bean>
</batch:tasklet>
</batch:step>
<batch:step id="transformLookupExceptions" next="merge">
<batch:tasklet>
<bean class="com.cloudcruiser.batch.CCRecordTransformTasklet">
<property name="active" value="true"/>
<property name="input" value="file:${env.processDir}/${env.jobName}_${env.selectDate}_lookup_exceptions.ccr"/>
<property name="output" value="file:${env.processDir}/${env.jobName}_${env.selectDate}_transformed_exceptions.ccr"/>
<property name="inputRequired" value="false"/>
<property name="exceptionOutput" ref="defaultTransformExceptionOutput"/>
<property name="exceptionLogLimit" value="0"/>
<property name="exceptionLimit" value="0"/>
<property name="processors">
<list>
<bean class="com.cloudcruiser.batch.transform.CreateIdentifierFromIdentifier">
<property name="targetIdentifier" value="HostVM"/>
<property name="inputIdentifiers">
<list>
<bean class="com.cloudcruiser.batch.transform.InputIdentifier">
<property name="name" value="Host"/>
<property name="start" value="0"/>
<property name="len" value="3"/>
<property name="suffix" value=":"/>
</bean>
<bean class="com.cloudcruiser.batch.transform.InputIdentifier">
<property name="name" value="VMName"/>
</bean>
</list>
</property>
</bean>
</list>
</property>
</bean>
</batch:tasklet>
</batch:step>
<batch:step id="merge" next="charge">
<batch:tasklet>
<bean class="com.cloudcruiser.batch.CCRecordMergeTasklet">
<property name="active" value="true"/>
<property name="inputs">
<list>
<ref bean="defaultTransformOutput" />
<value>file:${env.processDir}/${env.jobName}_${env.selectDate}_transformed_exceptions.ccr</value>
</list>
</property>
<property name="output" ref="defaultMergeOutput"/>
<property name="inputRequired" value="true"/>
</bean>
</batch:tasklet>
</batch:step>
(c) Copyright 2017-2020 Hewlett Packard Enterprise Development LP