Options and exit codes
The importer runs three ways, all with the same options and defaults:
| Way | Command |
|---|---|
| Hop GUI | File → Import from SSIS…: the options on the Source, Target and Metadata tabs |
hop-import | <hop>/hop-import.sh -t ssis -i <input> -o <output>, with full paths |
| Standalone jar | java -jar importer-ssis.jar [options] <input-dir> <output-dir> [metadata-root], built from the repository |
Options
| Option | Default | Where | Meaning |
|---|---|---|---|
-i, --input, or the first argument | All | A folder with .dtsx packages. Every folder that holds packages is read as one SSIS project | |
-o, --output, or the second argument | All | Where the .hwf and .hpl files are written, mirroring the input's folder layout | |
-e, --skip-existing | on | All | Leave target files that already exist untouched |
-p, --skip-hidden | on | All | Skip hidden files and folders |
-f, --skip-folders | off | All | Do not recurse into sub-folders |
-m, --metadata-root, or the third argument | <output>/metadata | Jar, GUI | Hop metadata folder for the database connections and run configurations |
--project <name> | GUI | Import into this Hop project's home folder instead of --output. It needs the Hop projects plugin, which the standalone jar does not have: there, give the project's home folder as --output | |
--pipeline-run-configuration <name> | local | Jar, GUI | Run configuration for generated pipeline actions and executors |
--workflow-run-configuration <name> | local | Jar, GUI | Run configuration for generated workflow actions and executors |
--translate-scripts <endpoint> | off | Jar, GUI | Translate C# Script Components to Java with the language model at this OpenAI-compatible endpoint, for example http://localhost:11434/v1 (Ollama) |
--translation-model <model> | Jar, GUI | The model for --translate-scripts | |
--translation-reasoning <effort> | the model's own | Jar, GUI | Reasoning effort for --translate-scripts: none, low, medium or high, for models that reason before they answer |
-h, --help | Jar | Print the options |
Where: All is the standalone jar, hop-import and the Hop GUI dialog; Jar is the
standalone jar; GUI is the Hop GUI dialog, which has the options on its Source, Target and
Metadata tabs, and shows the project only when the Hop projects plugin is installed. hop-import
in Hop 2.19 accepts only its own options (-t, -i, -o, -e, -p, -f, and Hop's -c, -j,
-k, -s); for the others, use the standalone jar or the dialog.
In the standalone jar, switch a default-on option off with --no-<option> (--no-skip-existing)
or --<option>=false.
Environment variables
| Variable | Read by | Meaning |
|---|---|---|
SSIS_TRANSLATION_API_KEY | The import, with --translate-scripts | API key for the translation endpoint, if it needs one. It is never stored in the options |
HOP_EMPTY_STRING_DIFFERS_FROM_NULL | Hop, when the converted files run | Must be Y: SSIS keeps an empty string apart from NULL |
SSIS_KEYS_IGNORE_CASE | Converted Slowly Changing Dimensions, when they run | N compares business keys with case, for a case-sensitive collation; by default case and trailing spaces do not count |
SSIS_<CONNECTION>_PASSWORD | Converted connections that log in with a user name, when they run | The connection's password |
Exit codes
The standalone jar exits with these codes; use it in scripts and CI:
| Exit code | Meaning |
|---|---|
0 | Every package converted |
1 | The import crashed, or the input folder does not exist |
2 | The command line could not be parsed; the usage text is printed |
3 | The import completed, but at least one package could not be read or converted |
A component that fails to convert does not fail its package: it becomes a placeholder.
What is read
| SSIS file | Read as |
|---|---|
Packages (*.dtsx), SSIS 2012 or later (PackageFormatVersion 6 or 8) | A workflow per package, a pipeline per Data Flow Task, a workflow per container |
Project connection managers (*.conmgr) and package connection managers | Hop relational connections, for OLE DB, ADO.NET and ODBC connection managers |
Project parameters (Project.params) | A Hop environment configuration file, environments/<project>-config.json |
| Script Task and Script Component code, inside the package | .cs.txt or .vb.txt files next to the workflow or pipeline, and a .script.json per Script Component |
Packages in obj/ folders are skipped. Packages saved by SSIS 2005 or 2008 are reported as failed.
.ispac archives, .dtproj project files and SSIS catalog environments are not read.
Connection managers map onto these Hop database types:
| Connection manager | Provider | Hop database type |
|---|---|---|
| OLE DB | SQL Server (SQLNCLI*, SQLOLEDB, MSOLEDBSQL*) | MS SQL Server (Native) |
| OLE DB | Oracle (OraOLEDB*, MSDAORA*) | Oracle |
| OLE DB | DB2 (IBMDA400*, DB2OLEDB*) | DB2 |
| ADO.NET | SqlClient | MS SQL Server (Native) |
| ADO.NET | Oracle | Oracle |
| ADO.NET | Npgsql | PostgreSQL |
| ADO.NET | MySql | MySQL |
| ODBC, and any other provider | Generic database, to complete with a JDBC URL and driver class |