SSIS - SQL Server Integration Services - problema en control Script Task

 
Vista:
sin imagen de perfil

problema en control Script Task

Publicado por alexis (7 intervenciones) el 21/06/2013 01:52:10
Buenas tardes que tal, hace un par de meses presento un error en el control Script Task, he investigado en internet probado suguerencias de pausas antes de ejecutar el task, tambien de cambio de correr el job en 32 bit, pero me siguie pasando el problema de aleatoriamente

estoy utilisando Integration Services, c # .net 2008 y base de datos Teradata
la cual dentro del codigo le hago referencia
using Teradata.Client.Provider;


el proceso puede durar dos horas, pasa el problema aleatorio este task esta dentro de un
Foreach Loop

este es parte del codigo y como estaba validando



/*
Microsoft SQL Server Integration Services Script Task
Write scripts using Microsoft Visual C# 2008.
The ScriptMain is the entry point class of the script.
*/

using System;
using System.Data;
using Microsoft.SqlServer.Dts.Runtime;
using System.Windows.Forms;
using System.Text;
using System.Net;
using System.IO;

using System.Collections.Generic;
using System.Xml;
using System.Data.Common;

using Teradata.Client.Provider;


namespace ST_e66e838a4e564bcb8909054803f88739.csproj
{
[System.AddIn.AddIn("ScriptMain", Version = "1.0", Publisher = "", Description = "")]
public partial class ScriptMain : Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
{

#region VSTA generated code
enum ScriptResults
{
Success = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Success,
Failure = Microsoft.SqlServer.Dts.Runtime.DTSExecResult.Failure
};
#endregion

/*
The execution engine calls this method when the task executes.
To access the object model, use the Dts property. Connections, variables, events,
and logging features are available as members of the Dts property as shown in the following examples.

To reference a variable, call Dts.Variables["MyCaseSensitiveVariableName"].Value;
To post a log entry, call Dts.Log("This is my log text", 999, null);
To fire an event, call Dts.Events.FireInformation(99, "test", "hit the help message", "", 0, true);

To use the connections collection use something like the following:
ConnectionManager cm = Dts.Connections.Add("OLEDB");
cm.ConnectionString = "Data Source=localhost;Initial Catalog=AdventureWorks;Provider=SQLNCLI10;Integrated Security=SSPI;Auto Translate=False;";

Before returning from this method, set the value of Dts.TaskResult to indicate success or failure.

To open Help, press F1.
*/

/// <summary>
///
/// </summary>
public void Main()
{


string ls_var1 = "";
string ls_var2 = "";
string ls_var3 = "";

Dts.TaskResult = (int)ScriptResults.Success;


if (Dts.Variables["v_var1"].Value != null)
{
ls_var1 = (string)Dts.Variables["v_var1"].Value;
}


if (Dts.Variables["v_var2"].Value != null)
{
ls_var2 = (string)Dts.Variables["v_var2"].Value;
}


if (Dts.Variables["v_var3"].Value != null)
{
ls_var3 = (string)Dts.Variables["v_var3"].Value;
}

//se llama al metodo
EnviarXMLWebService(ls_var1, ls_var2, ls_var3);

}


public void EnviarWebService(string p_ls_var1, string p_ls_var2, string p_ls_var3)
{

--------------------------
el cual me confunde si el error es dentro del metodo o si es dentro del llamado, ya que estoy validando a asignarle un valor a la variable si es distinto de null, entonces le asigno espacio en blanco


como dato en el project explorer me aparece con nombre de
st_b0c31036a89d4361b7b12220a219f6cb, eso fue porque copie y pege el task de otro, no se si eso tiene que ver tambien con el error

me manda el siguiente error,

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.NullReferenceException: Object reference not set to an instance of an object.
at ST_e66e838a4e564bcb8909054803f88739.csproj.ScriptMain.EnviarXMLWebService(String p_ls_var1 , String p_ls_var1, String p_ls_var1 )
--- End of inner exception stack trace ---
at System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
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

Excepción de referencia nula en Script Task con teradata

Publicado por Alejandro (60 intervenciones) el 24/02/2024 00:21:19
Alexis, el error que estás enfrentando parece ser una excepción de referencia nula (`System.NullReferenceException`). Puede ocurrir cuando intentas acceder a un objeto que no ha sido inicializado, es decir, que tiene un valor `null`.

Aquí hay algunas sugerencias para investigar y solucionar el problema:

1. Variables nulas:
- Asegúrate de que las variables `Dts.Variables["v_var1"]`, `Dts.Variables["v_var2"]` y `Dts.Variables["v_var3"]` estén configuradas correctamente en tu paquete SSIS. Verifica que tengan valores antes de intentar utilizarlos.

2. Método `EnviarXMLWebService`:
- Revisa el código dentro del método `EnviarXMLWebService`. Asegúrate de que todas las variables y objetos utilizados dentro de este método estén siendo inicializados adecuadamente antes de su uso.

3. Llamada al método:
- Verifica que los valores que estás pasando como argumentos a la llamada `EnviarXMLWebService` no son nulos. En tu código, los argumentos son `ls_var1`, `ls_var2`, y `ls_var3`. Asegúrate de que estas variables tengan valores antes de llamar al método.

4. Problema de copiar y pegar:
- La referencia `ST_e66e838a4e564bcb8909054803f88739.csproj` puede ser un problema si copiaste y pegaste el código de otro lugar. Intenta crear un nuevo Script Task y copia el código directamente en él. Asegúrate de que todas las referencias y configuraciones estén correctas.

5. Detalles de la excepción:
- Examina los detalles de la excepción. La excepción se produce dentro del método `EnviarXMLWebService`. Puedes agregar registros (`Dts.Events.FireError`, `Dts.Log`, etc.) dentro de este método para identificar la línea exacta donde ocurre la excepción y obtener más detalles sobre qué objeto o variable está causando el problema.

6. Problema de copiar y pegar el Script Task:
- La referencia `st_b0c31036a89d4361b7b12220a219f6cb` podría estar relacionada con el problema. Intenta crear un nuevo Script Task desde cero y copia manualmente el código. Asegúrate de que el nombre del script task sea significativo.

Recuerda revisar detalladamente el código del método `EnviarXMLWebService` y sus dependencias. Verifica las sugerencias mencionadas y realiza las correcciones necesarias.
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