BimlStudio and BimlScript Documentation

website·Indexed 33 days ago

https://docs.varigence.com

Documentation for BimlStudio and BimlScript, focusing on the programmatic generation of SSIS packages, SSAS Multidimensional and Tabular models, and relational database staging tables. It covers BimlScript automation using C# and VB, LINQ fundamentals, .NET control structures, and integration with Microsoft Fabric and Visual Studio.

Tokens
2.6M
Snippets
8.1K
Records
18K
Agent score
61%

What's inside BimlStudio

  1. Overview of BimlExpress for Visual Studio

    BimlExpress is a Visual Studio extension used to create and edit Biml files within a custom code editor. It allows developers to generate SSIS packages from Biml, which is an XML-based declarative language for describing BI solutions. BimlExpress supports embedding BimlScript (C# or VB.NET code) directly into Biml files, enabling the automated creation of numerous packages with minimal code.
  2. Overview of BimlExpress for SSIS package generation

    BimlExpress is a Visual Studio extension that enables developers to create and edit Biml files using a custom code editor. Biml is an XML-based declarative language used to describe Business Intelligence (BI) solutions. BimlExpress allows users to generate SSIS packages from these Biml definitions. To handle complex or repetitive package creation, BimlScript (C# or VB.NET code) can be embedded directly into Biml, similar to how ASP.NET integrates with HTML.
  3. Overview of BimlScript code nugget types

    BimlScript uses 'code nuggets'—snippets of C# or VB embedded in Biml XML—to transform static templates into dynamic generators. There are five primary nugget types used to control logic, output text, define reusable code, add comments, and provide compiler instructions.
    NuggetSyntaxPurpose
    Control<# code #>Execute logic (loops, conditions, variables)
    Text<#= expr #>Output expression value as text
    Class<#+ code #>Define reusable methods and classes
    Comment<#* text *#>Compiler-ignored comments
    Directive<#@ dir #>Compiler instructions (tier, imports)
  4. Overview of Biml for SSIS Package Generation

    Biml is an XML specification used to declare SSIS objects. Unlike manual creation in the visual designer or direct editing of .dtsx files (which are fragile), Biml allows developers to define packages in a separate XML document. Compiling a Biml file produces clean, valid SSIS packages. This approach enables easy reproduction of package shapes across multiple files and simplifies global changes (e.g., renaming or restructuring) by regenerating packages from the source markup.
  5. Overview of BimlFlex Delete Detection

    BimlFlex provides a SQL-based Delete Detection mechanism to identify 'hard deletes' (records physically removed from source systems). It identifies deleted keys by comparing the current rows available in the source against the active rows in the target Persistent Staging Area (PSA). Consequently, a queryable PSA is a requirement for the default delete detection process. For sources that provide their own delete state (e.g., SQL Server Change Data Capture), these records can be loaded directly into the staging area, PSA, and Data Vault without the comparison process.
  6. Overview of Biml (Business Intelligence Markup Language)

    Biml is a dialect of XML used to describe Business Intelligence assets such as SSIS packages, SSAS cubes, and database objects. Biml files are human-readable, allowing them to be stored in source control and compared using diff tools. A Biml compiler transforms these files into standard .dtsx packages that can be opened in Visual Studio.

    There are two primary tools for compiling Biml:

    1. BimlExpress: A free Visual Studio add-in.
    2. BimlStudio: A full IDE provided by Varigence.
  7. Overview of BimlScript Code Nuggets

    Code nuggets are embedded snippets of C# or VB code within a Biml (XML) document. The Biml engine evaluates these nuggets at compile time to replace variables, repeat fragments, or branch on conditions, transforming static Biml files into dynamic generators for SSIS packages, SSAS cubes, and other BI artifacts. There are five types of nuggets, distinguished by their opening markers:
    1. Text nuggets: <#= ... #>
    2. Control nuggets: <# ... #>
    3. Class nuggets: <#+ ... #>
    4. Comment nuggets: <#-- ... --#>
    5. Directive nuggets: <#@ ... #>
  8. Overview of BimlExpress features

    BimlExpress is a free Visual Studio add-in used for authoring Biml inside SSIS projects. It provides a set of tools to streamline SSIS package generation, including:

    • Biml file editing with syntax coloring and error highlighting
    • IntelliSense support
    • A preview pane
    • SSIS package generation

    It is designed to be compatible with BI Developer Extensions (formerly BIDS Helper), allowing both to be used in the same project.

  9. Overview of BimlFlex Data Type Mappings

    BimlFlex Data Type Mappings allow developers to map data types from a source system to a more standardized or expanded format. This is primarily used to accommodate future source system changes (e.g., increasing a field length from 20 to 250 characters or changing varchar to nvarchar for international characters) without requiring updates to the data solution or load process.

    Key behaviors include:

    • Scope: Expanded data types are applied to source-to-staging loads, Staging, and Persistent Staging.
    • Data Vault Integration: When the Data Vault accelerator is run, Satellite attributes automatically inherit these expanded data types from the source definition.
    • Resource Impact: Note that using larger data types may increase database resource consumption.
  10. Overview of AstAnalysisServicesProcessingTaskNode

    The AstAnalysisServicesProcessingTaskNode class in the Varigence.Languages.Biml.Task namespace (contained in Biml.dll) is used to represent and process Analysis Services objects, including cubes, dimensions, and mining models. It inherits from AstTaskBaseNode and implements several interfaces including IBindableItem, INamedNode, and IDataflowItem.
    public class AstAnalysisServicesProcessingTaskNode : AstTaskBaseNode, IBindableItem, IGetJsonProvider, INamedNode, IScopeBoundary, IReferenceableItem, IFrameworkItem, IValidationInfo, INamedItem, IDataflowItem