SSIS - SQL Server Integration Services - ConnectionString desde XML

 
Vista:
sin imagen de perfil

ConnectionString desde XML

Publicado por Marc (4 intervenciones) el 21/07/2017 11:44:25
Buenos días,
tengo un caso de SSIS, y no se como solucionarlo, os cuento:

El caso es que tengo un archivo XML, que contienen entre otras cosas el ConnectionString de una de las bases de datos. En el paquete de SSIS necesito asignar este ConnectionString al connection Manager correspondiente. Esto se que lo puedo hacer modificando la propiedad Expression y asignando una variable al ConnectionString (creo que esto es correcto). Pero ahí viene el problema, como una vez leído el ConnectionString del XML lo asigno a la variable? Tengo un XML Source y ya consigo el ConnectionString, pero me falta la manera de asignarlo a la variable que yo quiero, como se hace esto? Quizás es muy obvio, pero por mas que miro, no veo como hacerlo.

Muchas gracias por las posibles respuestas.

Marc
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alejandro

Asignar ConnectionString desde XML a una variable

Publicado por Alejandro (60 intervenciones) el 26/02/2024 21:23:10
Marc, en SSIS, puedes asignar el ConnectionString extraído de un archivo XML a una variable utilizando un script. Aquí hay una guía básica para lograr esto:

1. Agregar una tarea de script:
- Agrega una tarea "Script task" a tu flujo de control SSIS.

2. Configurar la tarea de script:
- Abre la tarea "Script task" y selecciona el lenguaje de script que prefieras (C# o VB.NET).
- En la pestaña "Script", haz clic en "Design script..." para abrir el Editor de scripts.

3. Escribir el código en el Editor de scripts:
- Escribe un código similar al siguiente en el Editor de scripts (esto es un ejemplo en C#):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
using System;
using System.Xml;
 
public class ScriptMain : UserComponent
{
    public void Main()
    {
        // Ruta del archivo XML
        string xmlFilePath = @"C:\Ruta\TuArchivo.xml";
 
        // Nombre del nodo que contiene el ConnectionString
        string connectionStringNode = "ConnectionString";
 
        // Nombre de la variable SSIS donde asignarás el ConnectionString
        string ssisVariableName = "User::TuVariableConnectionString";
 
        try
        {
            // Leer el XML y obtener el ConnectionString
            XmlDocument xmlDoc = new XmlDocument();
            xmlDoc.Load(xmlFilePath);
            string connectionString = xmlDoc.SelectSingleNode(connectionStringNode).InnerText;
 
            // Asignar el ConnectionString a la variable SSIS
            Dts.Variables[ssisVariableName].Value = connectionString;
 
            Dts.TaskResult = (int)ScriptResults.Success;
        }
        catch (Exception ex)
        {
            // Manejar errores según sea necesario
            Dts.Events.FireError(0, "Script Task", ex.Message, string.Empty, 0);
            Dts.TaskResult = (int)ScriptResults.Failure;
        }
    }
}
- Asegúrate de modificar las variables `xmlFilePath`, `connectionStringNode`, y `ssisVariableName` según tus necesidades.

4. Cerrar el Editor de scripts:
- Cierra el Editor de Scripts y guarda los cambios.

5. Configurar variables de Script task:
- En la ventana de configuración de la tarea "Script task", ve a la pestaña "Script" y agrega las variables que estás utilizando en el código.

6. Ejecutar el paquete:
- Ejecuta tu paquete SSIS. La tarea "Script task" leerá el ConnectionString del archivo XML y lo asignará a la variable SSIS especificada.

Este es solo un ejemplo básico, y puedes personalizar el código según la estructura específica de tu archivo XML y tus necesidades.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar