SnowConvert AI - SSIS Conversion Issues¶

This section provides detailed documentation for all Error, Warning, and Information (EWI) messages that SnowConvert may generate during SSIS to dbt conversion.

For assistance with any EWI, you can use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions, or contact snowconvert-support@snowflake.com for additional support.

SSC-EWI-SSIS0001¶

SSIS component requires manual implementation.

Severity¶

Critical

Description¶

This EWI is added when an SSIS component cannot be automatically converted to Snowflake SQL or dbt. The component is not supported by SnowConvert’s conversion engine and requires manual implementation. This typically occurs with custom components, third-party transformations, or components that have no direct equivalent in Snowflake’s architecture.

The conversion will place a placeholder comment in the generated code indicating where manual intervention is required.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0001 - SSIS COMPONENT IS NOT SUPPORTED BY SNOWCONVERT ***/!!!
-- Component: ScriptComponent1 requires manual implementation
Copy

Best Practices¶

  • Review the original SSIS component’s logic and data transformation requirements

  • If possible, implement equivalent functionality using Snowflake SQL, dbt models, or Snowflake stored procedures

  • Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI

  • If you need more support, you can email us at snowconvert-support@snowflake.com

SSC-EWI-SSIS0002¶

SSIS expression requires manual translation to Snowflake SQL.

Severity¶

High

Description¶

This EWI is generated when an SSIS expression contains syntax that cannot be automatically translated to Snowflake SQL. This commonly occurs with:

  • Complex nested expressions with unsupported functions

  • SSIS-specific functions without direct Snowflake equivalents

  • Malformed expressions (e.g., unbalanced parentheses)

  • Expressions using unsupported operators or type conversions

The generated code will include a placeholder where the expression should be manually translated.

Converted Code¶

CREATE OR REPLACE TASK public.package_simple_expression
WAREHOUSE=DUMMY_WAREHOUSE
AS
BEGIN
   LET User_message VARCHAR := public.GetControlVariableUDF('User_message', 'package_simple_expression') :: VARCHAR;
   !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0002 - SSIS EXPRESSION CANNOT BE CONVERTED TO SNOWFLAKE SQL: @[User::message] = UPPER( @[User::message] || ***/!!!
   ;
   CALL public.UpdateControlVariable('User_message', 'package_simple_expression', TO_VARIANT(:User_message));
END;
Copy

Best Practices¶

SSC-EWI-SSIS0003¶

Embedded SQL requires manual translation to Snowflake syntax.

Severity¶

High

Description¶

This EWI is added when SQL statements embedded in SSIS components (such as OLE DB Source, Lookup, or Execute SQL Task) cannot be automatically converted to Snowflake syntax. This typically occurs when:

  • The source SQL dialect has syntax incompatible with Snowflake

  • The SQL contains system-specific functions or objects

  • The SQL uses features not supported in Snowflake

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0003 - EMBEDDED SQL CANNOT BE CONVERTED FROM SQL SERVER TO SNOWFLAKE SQL ***/!!!
-- Original SQL: SELECT CustomerID, CustomerName FROM DimCustomer 
--                WHERE CONVERT(VARCHAR, LastModified, 101) > '01/01/2020'
Copy

SSC-EWI-SSIS0004¶

SSIS Control Flow Element requires manual implementation.

Severity¶

High

Description¶

This EWI is generated when an SSIS control flow element cannot be converted to Snowflake scripting. This can occur with various unsupported control flow tasks and containers, including but not limited to:

Common Scenarios:

  • Control flow task types not yet supported by SnowConvert

  • Container iteration logic that cannot be directly translated

  • Complex control flow patterns without Snowflake equivalents

  • Control flow elements with configurations that cannot be mapped to Snowflake

The specific control flow element that triggered this EWI will be identified in the error message, and manual implementation is required using Snowflake’s procedural SQL constructs.

Common Cases¶

For Loop Container¶

For Loop containers with iteration logic (initialization, condition, increment) that cannot be automatically converted.

Converted Code:

CREATE OR REPLACE TASK simpleforloop_package_for_loop_container
WAREHOUSE=DUMMY_WAREHOUSE
AFTER public.simpleforloop_package_execute_sql_task
AS
!!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0004 - SSIS CONTROL FLOW ELEMENT 'FORLOOP CONTAINER ITERATION LOGIC' CANNOT BE CONVERTED TO SNOWFLAKE SCRIPTING. ***/!!!
BEGIN
   -- Loop body tasks here
END;
Copy

Best Practices for For Loop:

  • Convert to Snowflake’s WHILE loops with explicit counter variables

ForEach Loop Container (Non-File Enumerator)¶

ForEach Loop containers with enumerators other than the File Enumerator (which has its own EWI SSC-EWI-SSIS0014).

Converted Code:

!!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0004 - SSIS CONTROL FLOW ELEMENT 'FOREACH CONTAINER ITERATION LOGIC' CANNOT BE CONVERTED TO SNOWFLAKE SCRIPTING. ***/!!!
FOR record IN cursor DO
   -- Loop body tasks here
END FOR;
Copy

Best Practices for ForEach Loop:

  • Identify the enumerator type (ADO, NodeList, Variable, etc.)

Other Unsupported Control Flow Elements¶

Other control flow tasks and elements that may generate this EWI include:

  • Custom tasks without Snowflake equivalents

  • Third-party control flow elements

  • Certain configurations of standard tasks

  • Complex event handlers

SSC-EWI-SSIS0005¶

Execute Package Task converted to asynchronous EXECUTE TASK.

Severity¶

High

Description¶

This EWI indicates that an SSIS Execute Package Task has been converted to a Snowflake TASK, which executes asynchronously by default. In SSIS, Execute Package Task runs synchronously within the parent package’s execution context. In Snowflake, EXECUTE TASK triggers the task to run asynchronously, which may affect orchestration logic, error handling, and variable passing between packages.

Converted Code¶

CREATE OR REPLACE TASK parent_package_execute_package_task
WAREHOUSE=DUMMY_WAREHOUSE
AFTER public.parent_package_previous_task
AS
EXECUTE TASK public.childpackage_child_package;
-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0005 - THIS TASK RUNS ASYNCHRONOUSLY. Original SSIS Execute Package Task ran synchronously. ***/!!!
Copy

SSC-EWI-SSIS0006¶

Execute Package Task variable bindings require manual implementation.

Severity¶

High

Description¶

This EWI is generated when an Execute Package Task contains variable bindings (parameter mappings between parent and child packages) that could not be automatically converted. SSIS allows parent packages to pass variable values to child packages through parameter bindings. This mechanism requires manual implementation in Snowflake.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0006 - SSIS EXECUTE PACKAGE TASK VARIABLE BINDINGS WERE NOT CONVERTED. ***/!!!
-- Original binding: ParentVariable -> ChildParam
-- Implement parameter passing mechanism manually
EXECUTE TASK public.childpackage;
Copy

SSC-EWI-SSIS0007¶

Property expressions require manual implementation.

Severity¶

High

Description¶

This EWI is generated when an SSIS executable (task or container) uses property expressions to dynamically set properties at runtime, and these expressions could not be converted. Property expressions in SSIS allow dynamic configuration of task properties using expressions based on variables or parameters. In Snowflake, similar dynamic behavior must be implemented manually.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0007 - SSIS EXECUTABLE CONTAINS PROPERTY EXPRESSIONS that were not converted. ***/!!!
-- Original property expression: SqlStatementSource = @[User::SqlQuery]
-- Implement dynamic SQL logic manually
Copy

Best Practices¶

SSC-EWI-SSIS0008¶

Execute Package Task references external package not in conversion scope.

Severity¶

Medium

Description¶

This EWI indicates that an Execute Package Task references a package that exists outside the current project or conversion scope. Ensure all dependent packages are available for the migration process.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0008 - EXECUTE PACKAGE TASK REFERENCES AN EXTERNAL PACKAGE ***/!!!
-- External package: C:\ExternalPackages\UtilityPackage.dtsx
-- Ensure this package is converted and accessible
EXECUTE TASK public.utilitypackage;
Copy

Best Practices¶

SSC-EWI-SSIS0009¶

Unexpected error during component conversion.

Severity¶

High

Description¶

This EWI indicates that an unexpected error occurred during the conversion of a specific component. This is typically a rare occurrence and may be caused by:

  • Corrupted package metadata

  • Unusual component configuration

  • Edge cases not covered by the converter

The component may have been partially converted. Review the generated code and contact support if the issue persists.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0009 - UNEXPECTED EXCEPTION CONVERTING COMPONENT. ***/!!!
-- Review component configuration and generated code
Copy

SSC-EWI-SSIS0010¶

Multiple models write to the same destination table.

Severity¶

High

Description¶

This EWI is generated when multiple SSIS components write to the same destination table, resulting in multiple dbt models targeting the same table. This typically occurs when:

  • Multiple Data Flow Tasks write to the same table

  • Different packages in the same conversion write to the same table

  • The same table is used as a destination in multiple transformations

Converted Code¶

-- Model 1: models/factsales.sql
-- Model 2: models/factsales_1.sql (automatically renamed)
-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0010 - A model associated with table 'FactSales' is already defined. ***/!!!
Copy

Best Practices¶

  • Review duplicate destination references in your packages

  • If possible, consolidate multiple writes to the same table into a single model

  • Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI

  • If you need more support, you can email us at snowconvert-support@snowflake.com

SSC-EWI-SSIS0011¶

Result binding configured for non-SELECT statement.

Severity¶

High

Description¶

This EWI is generated when an Execute SQL Task has a result binding configured (to capture query results into a variable), but the SQL statement is not a SELECT query. Result bindings only work with SELECT statements that return result sets. If the SQL statement is an INSERT, UPDATE, DELETE, or procedural statement, the result binding cannot be applied and must be manually addressed.

For non-query statements, consider using OUTPUT parameters or separate SELECT statements to retrieve values.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0011 - RESULT BINDING IS CONFIGURED FOR NON-QUERY STATEMENT. RESULT BINDING ONLY WORKS WITH SELECT QUERIES. ***/!!!
DELETE FROM Customers WHERE CustomerId = 1;
-- Original result binding: RowCount -> User::DeletedRows
Copy

Best Practices¶

SSC-EWI-SSIS0012¶

XML result set requires manual implementation.

Severity¶

High

Description¶

This EWI is generated when an Execute SQL Task is configured to return results as XML, which is not directly supported in the conversion. SnowConvert supports SINGLEROW and FULLRESULTSET result types, but XML result sets require manual implementation.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0012 - XML RESULT SET TYPE IS NOT SUPPORTED. ONLY SINGLEROW AND FULLRESULTSET RESULT SET TYPES ARE SUPPORTED. ***/!!!
-- Original SQL: SELECT * FROM Customers FOR XML AUTO
-- Convert to supported result type or use JSON format
Copy

SSC-EWI-SSIS0013¶

Complex property expression requires manual implementation.

Severity¶

High

Description¶

This EWI is generated when a property expression in an SSIS task contains patterns that cannot be automatically converted. SnowConvert supports simple property expressions such as:

  • Single variable references: @[User::VariableName]

  • Simple string concatenation: "SELECT * FROM " + @[User::TableName]

More complex patterns involving multiple operations, nested expressions, or complex string manipulation require manual conversion.

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0013 - PROPERTY EXPRESSION FOR SQLSTATEMENTSOURCE CONTAINS UNSUPPORTED PATTERNS. ONLY SINGLE VARIABLE REFERENCES OR SIMPLE STRING CONCATENATION WITH LITERALS AND VARIABLE REFERENCES IS SUPPORTED. ***/!!!
-- Implement complex expression logic manually
Copy

SSC-EWI-SSIS0014¶

ForEach File Enumerator requires Snowflake stage mapping.

Severity¶

High

Description¶

This EWI is generated when a ForEach File Enumerator Container is used to iterate over files in a folder. In SSIS, this references local or network file system paths. In Snowflake, files must be staged in Snowflake internal or external stages. You must:

  • Map the folder path to a Snowflake stage

  • Replace the <STAGE_PLACEHOLDER> with your actual stage name

  • Ensure files are uploaded to the stage before execution

  • Implement the file enumeration logic using Snowflake’s LIST command

Converted Code¶

-- !!!RESOLVE EWI!!! /*** SSC-EWI-SSIS0014 - THE FOLDER PATH REQUIRES MANUAL MAPPING TO A SNOWFLAKE STAGE. ***/!!!
-- Original folder: C:\Data\InputFiles\
-- Replace <STAGE_PLACEHOLDER> with your stage name
-- Example: @my_stage/input_files/
DECLARE
   file_cursor CURSOR FOR 
      SELECT relative_path 
      FROM TABLE(RESULT_SCAN(
         SELECT system$list_files('<STAGE_PLACEHOLDER>')
      ))
      WHERE relative_path LIKE '%.csv';
Copy

Best Practices¶

  • Create a Snowflake stage for file storage

  • Upload files to the stage using SnowSQL, Snowpipe, or cloud storage integration

  • Update the stage reference in the generated code

  • Test file enumeration with actual staged files

  • Use Snowflake’s LIST command to verify files are accessible

  • Document stage naming conventions for your project

  • Use the SnowConvert Migration Assistant to get AI-powered explanations and actionable solutions for this EWI

  • If you need more support, you can email us at snowconvert-support@snowflake.com