In this blog post I will demonstrate using SQL Server Integration Services\’s Execute Process Task to compress a csv file into a zip format using 7-Zip.
Recently I have been involved in a project whereby I have been required to extract data into CSV files, compress the files into a zip format and email the newly compressed files. This blog post is the first of several posts to come whereby I will be demonstrating how to fulfill such a requirement.
Let\’s begin by launching Microsoft Visual Studio and creating a new Integration Services Project which is located under Business Intelligence Projects category. (If you are using SQL Server 2012 or later, you will have to launch SQL Server Data Tools – SSDT).
After you have assigned a project name, proceed to click and drag the Execute Process Task (EPT) into the Control Flow pane from the toolbox (SSIS Toolbox in SSDT).
Right-click EPT and click on “Edit”
Under the General Tab, you can assign relevant Names & Descriptions. In this case, I have decided to name the task “EPT – Compress File” whilst the Description remains unchanged.
In the Process Tab, the EPT properties must be set as follows:
- RequiredFullFileName : True
- Executable : C:\\Program Files\\7-Zip\\7zG.exe
- Arguments: a “SIFISO_Test.zip” “SIFISO_Test.csv”
- WorkingDirectory: C:\\Test\\Excel\\20120930\\
- FailTaskIfReturnCodeIsNotSuccessValue : True
- SuccessValue : 0
- Timeout : 0
- WindowStyle : Hidden
Basically what we have done above is, among other things, set the Executable property to the .exe location of the compression software we are using; set the Arguments such that file “SIFISO_Test.csv” is compressed into “SIFISO_Test.zip”; specified the working directory where the CSV file will be located and zip file created; hid the exe window that appears when the file is being compressed.
It’s that simple.
Till next time folks, cheers.
4 thoughts on “Execute Process Task – Compress File Using 7-Zip”
I would like to pass the name to the argument as a variable no luck thus far, any idea how I can do it.
the idea is that I want to run this through a for each loop task so that it can repeat the process for multiple files
I will get back to you shortly.
Have a look at my latest post regarding compressing dynamic files.
Hope this helps.
Pingback: » Compress Dynamic Files Using 7-Zip in SSIS select SIFISO