Reputation: 11
I'm having an SSIS implementation with a SCRIPT task looking for a certain set of files. I want to start the "Execute Task" to call a Package in the same Project as soon as I receive a handful of files matching the file size arrive. Example: I have a total of 80 files with sizes ranging from 1 MB to 16 GB. So as soon as a group of files hit a 5 GB limit I want to move the files to a folder and execute a package. In this case, the script task would continue to do the wait and determine the file sizes until all are arrived. But to save time, I want to load as soon as I get the files. I have seen implementation where the package is picked up from SSISDB etc. But in my case, the Package need to be picked up in the same Project and eventually will be deployed to ssisdb.
Upvotes: 1
Views: 271
Reputation: 5246
The most native SSIS way to do what you want is to use Execute Package Task. In Project Deployment mode, all you need to specify package name from the Project. It can even execute Child Package in process of Parent Package, inheriting project environment and params, reducing RAM footprint and consolidating logging information.
All examples to call Package from SSISDB are based on case "execute package from arbitrary project in separate process/execution". Looking for an alternative I created a question on the subject at SO some time ago, but have not received or found any answer to it.
On your case, you can modify your logic as follows. Script task waits for files, and if files are found - modifies an Object variable with a List of filenames. Then in ForEach Loop you call Execute Package passing parameters with each filename. This can be done in a loop to run continuously; you have to fix the logic of loop process handling i.e. how to exit the loop.
Upvotes: 1