Debo prologar diciendo que mi experiencia con scripting o programación en lenguajes OOP es limitada.Ensamblaje de paquetes SSIS en PowerShell
Estoy trabajando en un método para crear y ejecutar programáticamente paquetes de SSIS usando PowerShell. Desafortunadamente, la mayoría de los recursos disponibles para PowerShell y SSIS son para llamar a PS desde SSIS, y no al revés.
Sin embargo, he encontrado una cantidad de recursos para VB/C# para crear paquetes de SSIS.
que he tenido éxito en la conversión de la mayoría del código llamando a las asambleas DTS/SSIS, pero está fallando ahora en convertir el objeto a una TaskHost mainpipe. código
muestra:
[Void][Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.ManagedDTS')
[Void][Reflection.Assembly]::LoadWithPartialName('Microsoft.Sqlserver.DTSPipelineWrap')
# Create the Package and application, set its generic attributes
$Package = New-Object Microsoft.SqlServer.Dts.Runtime.Package
$Package.CreatorName = $CreatorName
$App = New-Object Microsoft.SqlServer.Dts.Runtime.Application
# Set connection info for our package
$SourceConn = $package.Connections.Add("OLEDB")
$SourceConn.Name = "Source Connection"
$SourceConn.set_ConnectionString("Data Source=$SourceServer;Integrated Security=True")
$TargetConn = $package.Connections.Add("OLEDB")
$TargetConn.Name = "Target Connection"
$TargetConn.set_ConnectionString("Data Source=$TargetServer;Integrated Security=True")
# Build the tasks
# Data Flow Task - actually move the table
[Microsoft.SQLServer.DTS.Runtime.Executable]$XferTask = $Package.Executables.Add("STOCK:PipelineTask")
$XferTaskTH = [Microsoft.SqlServer.Dts.Runtime.TaskHost]$XferTask
$XferTaskTH.Name = "DataFlow"
$XferTaskTH.Description = "Dataflow Task Host"
$DataPipe = [Microsoft.SQLServer.DTS.pipeline.Wrapper.MainPipeClass]($XferTaskTH.InnerObject)
Todo funciona bien hasta la última línea, cuando me sale el error:
Cannot convert the "System.__ComObject" value of type "System.__ComObject#{}" to type "Microsoft.SqlServer.Dts.Pipeline.Wrapper.MainPipeClass"
Cualquier ayuda o ideas son bienvenidas!
Estoy votando esta vieja pregunta porque no veo por qué tiene downvotes =/ – jadarnel27
@ jadarnel27 - en su mayoría son venganza downvotes. Enfadeé a alguien y rechazaron las pocas preguntas que hice (porque es gratis para rechazar preguntas). Aprecio tu sentido de justicia. – JNK