• Getting started
  • API Documentation
  • Pricing
  • Contact
Show / Hide Table of Contents
  • ETLBox.Connection
    • AccessOdbcConnectionManager
    • AdomdConnectionManager
    • ConnectionManagerType
    • Db2ConnectionManager
    • Db2ConnectionString
    • DbConnectionManager<Connection>
    • DbConnectionString<T, TBuilder>
    • IConnectionManager
    • IDbConnectionString
    • MariaDbConnectionManager
    • MariaDbConnectionString
    • MySqlConnectionManager
    • MySqlConnectionString
    • MySqlOdbcConnectionManager
    • OdbcConnectionManager
    • OdbcConnectionString
    • OleDbConnectionManager
    • OleDbConnectionString
    • OracleConnectionManager
    • OracleConnectionString
    • OracleOdbcConnectionManager
    • PostgresConnectionManager
    • PostgresConnectionString
    • PostgresOdbcConnectionManager
    • SqlConnectionManager
    • SqlConnectionString
    • SQLiteConnectionManager
    • SQLiteConnectionString
    • SqlOdbcConnectionManager
    • SqlOleDbConnectionManager
  • ETLBox.ControlFlow
    • ControlFlow
    • ControlFlowTask
    • DbTask
    • DropTask<T>
    • IfExistsTask
    • ILoggableTask
    • ITableData
    • LoggableTask
    • ProcedureDefinition
    • ProcedureParameter
    • QueryParameter
    • TableColumn
    • TableData
    • TableData<T>
    • TableDefinition
  • ETLBox.ControlFlow.Tasks
    • CalculateDatabaseHashTask
    • CleanUpSchemaTask
    • CreateDatabaseTask
    • CreateIndexTask
    • CreateProcedureTask
    • CreateSchemaTask
    • CreateTableTask
    • CreateViewTask
    • DropDatabaseTask
    • DropIndexTask
    • DropProcedureTask
    • DropSchemaTask
    • DropTableTask
    • DropViewTask
    • GetDatabaseListTask
    • IfDatabaseExistsTask
    • IfIndexExistsTask
    • IfProcedureExistsTask
    • IfSchemaExistsTask
    • IfTableOrViewExistsTask
    • RecoveryModel
    • RowCountOptions
    • RowCountTask
    • SqlTask
    • TruncateTableTask
    • XmlaTask
  • ETLBox.DataFlow
    • AggregateColumn
    • ChangeAction
    • ColumnMap
    • CompareColumn
    • DataFlow
    • DataFlowBatchDestination<TInput>
    • DataFlowComponent
    • DataFlowDestination<TInput>
    • DataFlowExecutableSource<TOutput>
    • DataFlowJoinTarget<TInput>
    • DataFlowSource<TOutput>
    • DataFlowStreamDestination<TInput>
    • DataFlowStreamSource<TOutput>
    • DataFlowTransformation<TInput, TOutput>
    • DeleteColumn
    • DistinctColumn
    • ErrorSource
    • ETLBoxError
    • ExcelColumn
    • ExcelRange
    • GroupColumn
    • ICacheManager<TInput, TCache>
    • IDataFlowBatchDestination
    • IDataFlowBatchDestination<TInput>
    • IDataFlowComponent
    • IDataFlowDestination
    • IDataFlowDestination<TInput>
    • IDataFlowExecutableSource
    • IDataFlowExecutableSource<TOutput>
    • IDataFlowLogging
    • IDataFlowSource
    • IDataFlowSource<TOutput>
    • IDataFlowStreamDestination
    • IDataFlowStreamDestination<TInput>
    • IDataFlowStreamSource
    • IDataFlowStreamSource<TOutput>
    • IDataFlowTransformation<TInput, TOutput>
    • IDataFlowTransformation<TOutput>
    • IdColumn
    • IMergeableRow
    • JoinTarget<TInput>
    • MatchColumn
    • MemoryCache<TInput, TCache>
    • MergeableRow
    • MergeMode
    • MergeProperties
    • Network
    • ResourceType
    • RetrieveColumn
    • StreamMetaData
    • TypeInfo
    • UpdateColumn
  • ETLBox.DataFlow.Connectors
    • ConcurrentMemoryDestination
    • ConcurrentMemoryDestination<TInput>
    • CsvDestination
    • CsvDestination<TInput>
    • CsvSource
    • CsvSource<TOutput>
    • CustomBatchDestination
    • CustomBatchDestination<TInput>
    • CustomBatchSource
    • CustomBatchSource<TOutput>
    • CustomDestination
    • CustomDestination<TInput>
    • CustomSource
    • CustomSource<TOutput>
    • DbDestination
    • DbDestination<TInput>
    • DbMerge
    • DbMerge<TInput>
    • DbSource
    • DbSource<TOutput>
    • ExcelSource
    • ExcelSource<TOutput>
    • JsonDestination
    • JsonDestination<TInput>
    • JsonSource
    • JsonSource<TOutput>
    • MemoryDestination
    • MemoryDestination<TInput>
    • MemorySource
    • MemorySource<TOutput>
    • TextDestination
    • TextDestination<TInput>
    • TextSource
    • TextSource<TOutput>
    • VoidDestination
    • VoidDestination<TInput>
    • XmlDestination
    • XmlDestination<TInput>
    • XmlSource
    • XmlSource<TOutput>
  • ETLBox.DataFlow.Transformations
    • Aggregation
    • Aggregation<TInput, TOutput>
    • AggregationMethod
    • BatchTransformation
    • BatchTransformation<TInput, TOutput>
    • BatchTransformation<TInput>
    • BlockTransformation
    • BlockTransformation<TInput, TOutput>
    • BlockTransformation<TInput>
    • CachedBatchTransformation
    • CachedBatchTransformation<TInput, TOutput, TCache>
    • CachedBatchTransformation<TInput, TOutput>
    • CachedBatchTransformation<TInput>
    • CachedRowTransformation
    • CachedRowTransformation<TInput, TOutput, TCache>
    • CachedRowTransformation<TInput, TOutput>
    • CachedRowTransformation<TInput>
    • CacheMode
    • ColumnRename
    • ColumnRename<TInput>
    • CrossJoin
    • CrossJoin<TInput>
    • CrossJoin<TInput1, TInput2, TOutput>
    • CrossJoin<TInput1, TInput2, TOutput>.InMemoryDestination<TInput>
    • Distinct<TInput>
    • LookupTransformation
    • LookupTransformation<TInput, TSource>
    • LookupTransformation<TInput, TSource>.PartialDbCacheSettings
    • MergeJoin
    • MergeJoin<TInput>
    • MergeJoin<TInput1, TInput2, TOutput>
    • Multicast
    • Multicast<TInput>
    • RowDuplication
    • RowDuplication<TInput>
    • RowMultiplication
    • RowMultiplication<TInput, TOutput>
    • RowMultiplication<TInput>
    • RowTransformation
    • RowTransformation<TInput, TOutput>
    • RowTransformation<TInput>
    • Sort
    • Sort<TInput>
    • XmlSchemaValidation
    • XmlSchemaValidation<TInput>
  • ETLBox.Exceptions
    • ETLBoxException
    • ETLBoxFaultedBufferException
    • ETLBoxNotSupportedException
  • ETLBox.Helper
    • BatchLinq
    • BulkSqlGenerator<T>
    • DataTypeConverter
    • ExpandoJsonPathConverter
    • HashHelper
    • IDataTypeConverter
    • JsonPathConverter
    • JsonProperty2JsonPath
    • JsonProperty2JsonPath.MultipleResultsInPath
    • ObjectNameDescriptor
    • PropertyInfoExtension
    • SqlParser
    • StringExtension
  • ETLBox.Logging
    • AbortLoadProcessTask
    • CreateErrorTableTask
    • CreateLoadProcessTableTask
    • CreateLogTableTask
    • CustomTask
    • EndLoadProcessTask
    • ETLLogLayoutRenderer
    • GetLoadProcessAsJSONTask
    • GetLogAsJSONTask
    • LoadProcess
    • LogEntry
    • Logging
    • LogHierarchyEntry
    • LogTask
    • Package
    • ReadLoadProcessTableTask
    • ReadLogTableTask
    • ReadOptions
    • Sequence
    • Sequence<T>
    • StartLoadProcessTask

Class BlockTransformation<TInput, TOutput>

A block transformation will wait for all data from the flow to be loaded into its buffer. After all data is in the buffer, the transformation function is executed for the complete data and the result posted into the targets. The block transformations allows you to access all data in the flow in one generic collection. But as this block any processing until all data is buffered, it will also need to store the whole data in memory.

Inheritance
System.Object
LoggableTask
DataFlowComponent
DataFlowSource<TOutput>
DataFlowTransformation<TInput, TOutput>
BatchTransformation<TInput, TOutput>
BlockTransformation<TInput, TOutput>
BlockTransformation<TInput>
Implements
ILoggableTask
IDataFlowLogging
IDataFlowTransformation<TInput, TOutput>
IDataFlowSource<TOutput>
IDataFlowSource
IDataFlowDestination<TInput>
IDataFlowDestination
IDataFlowComponent
Inherited Members
BatchTransformation<TInput, TOutput>.TaskName
BatchTransformation<TInput, TOutput>.SourceBlock
BatchTransformation<TInput, TOutput>.TargetBlock
BatchTransformation<TInput, TOutput>.BatchTransformationFunc
BatchTransformation<TInput, TOutput>.BatchSize
BatchTransformation<TInput, TOutput>.InitAction
BatchTransformation<TInput, TOutput>.SuppressNullValueFilter
BatchTransformation<TInput, TOutput>.CheckParameter()
BatchTransformation<TInput, TOutput>.CheckAndAdjustBatchSize()
BatchTransformation<TInput, TOutput>.InitComponent()
BatchTransformation<TInput, TOutput>.CleanUpOnSuccess()
BatchTransformation<TInput, TOutput>.CleanUpOnFaulted(Exception)
BatchTransformation<TInput, TOutput>.WasInitActionInvoked
BatchTransformation<TInput, TOutput>.InvokeInitActionOnce()
BatchTransformation<TInput, TOutput>.InvokeBatchTransformationFunc(TInput[])
DataFlowTransformation<TInput, TOutput>.TargetBlock
DataFlowSource<TOutput>.SourceBlock
DataFlowSource<TOutput>.LinkTo(IDataFlowDestination<TOutput>)
DataFlowSource<TOutput>.LinkTo(IDataFlowDestination<TOutput>, Predicate<TOutput>)
DataFlowSource<TOutput>.LinkTo(IDataFlowDestination<TOutput>, Predicate<TOutput>, Predicate<TOutput>)
DataFlowSource<TOutput>.LinkTo<TConvert>(IDataFlowDestination<TOutput>)
DataFlowSource<TOutput>.LinkTo<TConvert>(IDataFlowDestination<TOutput>, Predicate<TOutput>)
DataFlowSource<TOutput>.LinkTo<TConvert>(IDataFlowDestination<TOutput>, Predicate<TOutput>, Predicate<TOutput>)
DataFlowSource<TOutput>.LinkErrorTo(IDataFlowDestination<ETLBoxError>)
DataFlowComponent._maxBufferSize
DataFlowComponent.Predecessors
DataFlowComponent.Successors
DataFlowComponent.Completion
DataFlowComponent.WasComponentInitialized
DataFlowComponent.ReadyForProcessing
DataFlowComponent.WasLinked
DataFlowComponent.SetParent(DataFlowComponent)
DataFlowComponent.InternalLinkTo<T>(IDataFlowDestination, Object, Object)
DataFlowComponent.LinkBuffersRecursively()
DataFlowComponent.InitBufferObjects()
DataFlowComponent.CheckParameter()
DataFlowComponent.InitComponent()
DataFlowComponent.SetCompletionTask()
DataFlowComponent.RunErrorSourceInit()
DataFlowComponent.OnCompletion
DataFlowComponent.CompleteOrFaultBufferOnPredecessorCompletion(Task)
DataFlowComponent.CleanUpOnSuccess()
DataFlowComponent.CleanUpOnFaulted(Exception)
DataFlowComponent.Exception
DataFlowComponent.ErrorSource
DataFlowComponent.HandleCanceledOrFaultedBuffer()
DataFlowComponent.InternalLinkErrorTo(IDataFlowDestination<ETLBoxError>)
DataFlowComponent.ThrowOrRedirectError(Exception, String)
DataFlowComponent.ThrowError(Exception, String)
DataFlowComponent._loggingThresholdRows
DataFlowComponent.LoggingThresholdRows
DataFlowComponent.ProgressCount
DataFlowComponent.HasLoggingThresholdRows
DataFlowComponent.ThresholdCount
DataFlowComponent.WasLoggingStarted
DataFlowComponent.WasLoggingFinished
DataFlowComponent.NLogStartOnce()
DataFlowComponent.NLogFinishOnce()
DataFlowComponent.LogProgressBatch_AfterThrowOrRedirectError(Int32)
DataFlowComponent.LogProgress_AfterThrowOrRedirectError(Boolean)
LoggableTask.TaskType
LoggableTask._disableLogging
LoggableTask.DisableLogging
LoggableTask.TaskHash
LoggableTask.CopyLogTaskProperties(ILoggableTask)
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
System.Object.ToString()
Namespace: ETLBox.DataFlow.Transformations
Assembly: ETLBox.dll
Syntax
public class BlockTransformation<TInput, TOutput> : BatchTransformation<TInput, TOutput>, ILoggableTask, IDataFlowLogging, IDataFlowTransformation<TInput, TOutput>, IDataFlowSource<TOutput>, IDataFlowSource, IDataFlowDestination<TInput>, IDataFlowDestination, IDataFlowComponent
Type Parameters
Name Description
TInput

Type of ingoing data.

TOutput

Type of outgoing data.

Examples
BlockTransformation<InputType> block = new BlockTransformation<InputType>(
    inputData => {
        inputData.RemoveRange(1, 2);
        inputData.Add(new InputType() { Value = 1 });
        return inputData;
});

Constructors

BlockTransformation()

Declaration
public BlockTransformation()

BlockTransformation(Func<TInput[], TOutput[]>)

Declaration
public BlockTransformation(Func<TInput[], TOutput[]> blockTransformationFunc)
Parameters
Type Name Description
System.Func<TInput[], TOutput[]> blockTransformationFunc

Sets the BlockTransformationFunc

Properties

BatchSize

The size of each batch that is passed to the BatchTransformation<TInput, TOutput> Default is 1000.

Declaration
public override int BatchSize { get; set; }
Property Value
Type Description
System.Int32
Overrides
ETLBox.DataFlow.Transformations.BatchTransformation<TInput, TOutput>.BatchSize

BlockTransformationFunc

The transformation Func that is executed on the complete input data. It needs to return an array of output data, which doesn't need have to be the same length as the input array.

Declaration
public Func<TInput[], TOutput[]> BlockTransformationFunc { get; set; }
Property Value
Type Description
System.Func<TInput[], TOutput[]>

MaxBufferSize

Each component can have one or more buffers to improve throughput and allow faster processing of data. Set this value to restrict the number of rows that can be stored in the buffer. The default value is -1 (unlimited)

Declaration
public override int MaxBufferSize { get; set; }
Property Value
Type Description
System.Int32
Overrides
DataFlowComponent.MaxBufferSize

TaskName

A name to identify the task or component. Every component or task comes with a default name that can be overwritten.

Declaration
public override string TaskName { get; set; }
Property Value
Type Description
System.String
Overrides
ETLBox.DataFlow.Transformations.BatchTransformation<TInput, TOutput>.TaskName

Implements

ILoggableTask
IDataFlowLogging
IDataFlowTransformation<TInput, TOutput>
IDataFlowSource<TOutput>
IDataFlowSource
IDataFlowDestination<TInput>
IDataFlowDestination
IDataFlowComponent
Back to top Crafted with <3 in Berlin
Contact & legal notice