Mapping Data Flows Extension Points
The Mapping Data Flows category has the following available Extension Points defined.
Add Sink
Extension Point for Mapping Data Flows, which can be used to add one or more custom Sink Activities to a Mapping Data Flow.
Parameters
Name |
Type | Description |
---|---|---|
sourceTable | BimlFlexModelWrapper.ObjectsWrapper | Contains all information related to the object to which the activity will be added. |
targetTable | BimlFlexModelWrapper.ObjectsWrapper | Contains all information related to the target object to which the activity will be added. |
dependency | String | Contains the dependency name for the previous activity. |
Outputs
Name |
Type | Description |
---|---|---|
ObjectInherit | Boolean | If CustomOutput.ObjectInherit = true then the Extension Point will be applied to all the Objects associated with the batch. |
Template
<#@ extension bundle="BimlFlex.bimlb" extensionpoint="DflAddSink" #>
<#@ property name="sourceTable" type="BimlFlexModelWrapper.ObjectsWrapper" #>
<#@ property name="targetTable" type="BimlFlexModelWrapper.ObjectsWrapper" #>
<#@ property name="dependency" type="String" #>
<#
// The Mapping Data Flow Add Sink extension points targets the data flow itself, so that bespoke Sinkscan be added and connected to existing transformations in the data flow.
// In the Biml output, the location is specified as <!-- Placeholder for extensionpoint="DflAddSink" -->.
// The transformation to connect the Sink can be specified by using the dependency, the input path name.
// It can also be specified in the extension point by providing the name of the transformation to connect as the InputStreamName property.
// This example shows how an additional Sink is connected to a default Derived Column transformation.
// A sink is always the last step in a Mapping Data Flow. So no further transformations can be connected to it.
#>
<InlineDeltaDataset Name="CustomSink" CompressionType="Snappy" FileSystem="ExampleFileName" Folder="ExampleDirectory" LinkedServiceName="BFX_STG" InputStreamName="<#=dependency#>.Output" SkipDuplicateInputColumns="false" SkipDuplicateOutputColumns="false" AllowSchemaDrift="true">
<DatabaseSinkSettings TableAction="Truncate" AllowInsert="true"></DatabaseSinkSettings>
</InlineDeltaDataset>
Post Derived Column
Extension Point for Mapping Data Flows, inserted directly after the first Derived Column Transformation.
Parameters
Name |
Type | Description |
---|---|---|
sourceTable | BimlFlexModelWrapper.ObjectsWrapper | Contains all information related to the object to which the activity will be added. |
targetTable | BimlFlexModelWrapper.ObjectsWrapper | Contains all information related to the target object to which the activity will be added. |
dependency | String | Contains the dependency name for the previous activity. |
Outputs
Name |
Type | Description |
---|---|---|
ObjectInherit | Boolean | If CustomOutput.ObjectInherit = true then the Extension Point will be applied to all the Objects associated with the batch. |
OutputPathName | String | You must add CustomOutput.OutputPathName with the last task to connect it with the next task. |
Template
<#@ extension bundle="BimlFlex.bimlb" extensionpoint="DflPostDerivedColumn" #>
<#@ property name="sourceTable" type="BimlFlexModelWrapper.ObjectsWrapper" #>
<#@ property name="targetTable" type="BimlFlexModelWrapper.ObjectsWrapper" #>
<#@ property name="dependency" type="String" #>
<#
// The Mapping Data Flow Post Derived Column extension points targets the data flow itself, so that bespoke logic can be added directly after the first Derived Column transformation.
// In the Biml output, the location is specified as <!-- Placeholder for extensionpoint="DflPostDerivedColumn" -->.
// The dependency, or input path, can be set to connect using the derived input parameter, or it can be set manually in the extension point logic.
// However, outgoing dependencies need to be defined by using CustomOutput.OutputPathName.
// The CustomOutput.OutputPathName needs to be set for the extension point to be integrated properly.
// This example shows two Derived Column transformations of which the second one connects to the first one.
#>
<DerivedColumns Name="ExamplePostDerivedColumn" InputStreamName="<#=dependency#>.Output">
<Columns>
<Column Name="CustomColumn">'SourceKey'</Column>
</Columns>
</DerivedColumns>
<#
// The output path needs to be explicitly set, otherwise the subsequent activity in the Mapping Data Flow will not be able to connect to this custom logic.
CustomOutput.OutputPathName = "ExamplePostDerivedColumn";
#>
Post Source
Extension Point for Mapping Data Flows, inserted directly after the Source Activity.
Parameters
Name |
Type | Description |
---|---|---|
sourceTable | BimlFlexModelWrapper.ObjectsWrapper | Contains all information related to the object to which the activity will be added. |
targetTable | BimlFlexModelWrapper.ObjectsWrapper | Contains all information related to the target object to which the activity will be added. |
dependency | String | Contains the dependency name for the previous activity. |
Outputs
Name |
Type | Description |
---|---|---|
ObjectInherit | Boolean | If CustomOutput.ObjectInherit = true then the Extension Point will be applied to all the Objects associated with the batch. |
OutputPathName | String | You must add CustomOutput.OutputPathName with the last task to connect it with the next task. |
Template
<#@ extension bundle="BimlFlex.bimlb" extensionpoint="DflPostSource" #>
<#@ property name="sourceTable" type="BimlFlexModelWrapper.ObjectsWrapper" #>
<#@ property name="targetTable" type="BimlFlexModelWrapper.ObjectsWrapper" #>
<#@ property name="dependency" type="String" #>
<#
// The Mapping Data Flow Post Source extension points targets the data flow itself, so that bespoke logic can be added directly after the initial 'source'.
// In the Biml output, the location is specified as <!-- Placeholder for extensionpoint="DflPostSource" -->.
// As it is the first activity in the Mapping Data Flow after the source the dependency, or input path, can be set to connect there.
// However, outgoing dependencies need to be defined by using CustomOutput.OutputPathName.
// The CustomOutput.OutputPathName needs to be set for the extension point to be integrated properly.
// This example shows two Derived Column transformations of which the second one connects to the first one.
#>
<DerivedColumns Name="ExampleDerivedColumnOne" InputStreamName="<#=dependency#>.Output">
<Columns>
<Column Name="CustomColumn">'ExampleColumn'</Column>
<ColumnPattern>
<SourceColumnNameExpression>name == 'ExampleSource'</SourceColumnNameExpression>
<TargetColumnNameExpression>'ExampleTarget'</TargetColumnNameExpression>
<TargetColumnValueExpression>'sample value'</TargetColumnValueExpression>
</ColumnPattern>
</Columns>
</DerivedColumns>
<DerivedColumns Name="ExampleDerivedColumnTwo" InputStreamName="ExampleDerivedColumnOne.Output">
<Columns>
<Column Name="CustomColumn">'ExampleColumnTwo'</Column>
</Columns>
</DerivedColumns>
<#
// The output path needs to be explicitly set, otherwise the subsequent activity in the Mapping Data Flow will not be able to connect to this custom logic.
CustomOutput.OutputPathName = "ExampleDerivedColumnTwo";
#>