SSIS Web Service Task - Variable de entrada

Estoy tratando de descargar algunos datos de los servicios web Tareas del Servicio Web componente en SSIS. Todo funciona bien cuando inserto requerido Valor de entrada manualmente. El valor de entrada requerido tiene que estar en dateTime tipo pero sólo funciona cuando escribo munualmente la fecha en YYYY-MM-DD o YYY-MM-DD HH:MM formato.

enter image description here

Pero eso por supuesto no es lo que quería hacer. Así que he creado una variable con Fecha tipo de datos con expresión simple:

(DT_DATE) GETDATE()

Pero eso me da formato DD.MM. Sí. en lugar de YYYY-MM-DD o YYY-MM-DD HH:MM. Cuando ejecuto el paquete entra en el mensaje de error:

Error: Un error ocurrió con el siguiente mensaje de error: "Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebserviceTaskException: No podía ejecutar el método Web. El error es: Método 'ProxyNamespace. Servicio. El método no se encuentra .. en Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebMethodInvokerProxy.InvokeMethod(DTSWebMethodInfo MethodInfo, String service Nombre, conexión de objetos) en Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTaskUtil.Invoke(DTSWebMethodInfo methodInfo, String service Nombre, conexión de objetos, tarea de dispensador variableDispenser en Microsoft.SqlServer.Dts.Tasks.WebServiceTask.WebServiceTask.executeThread()".

Creo que es sólo porque mi variable es un formato incorrecto. Cualquier sugerencia de cómo cambiarlo a la fecha deseada Formato de tiempo mientras el tipo de datos de restos variables con la opción DateTime ? ¡Gracias!

EDIT:Así que logré resolver el problema con el Fecha formato, simplemente cambié el formato de fecha en mi servidor a YYYY-MM-DD en el entorno de Windows ( Panel de control - Región - Formatos) y también cambió en SSIS.

Pero el problema aún persiste, cuando comprobé la caja en la sección de entrada que uso una Variable y seleccione mi variable en el formato correcto como DateTime con el valor correcto YYY-MM-DD, Todavía recibo un mensaje de error y nada sucede.

¿Tiene alguna otra solución para mi problema?

Pregunta hecha hace 3 años, 4 meses, 29 días - Por bytebarde61c


2 Respuestas:

  • El error que estás experimentando parece estar relacionado con la forma en que estás manejando el formato de la fecha en tu variable de entrada en SSIS. A continuación, te proporciono algunas sugerencias para intentar resolver el problema:

    • Asegúrate de que el tipo de datos de tu variable de fecha en SSIS sea DateTime y no Date. Esto garantizará que se incluya también la información de la hora en el valor de la variable.
    • En lugar de utilizar una expresión como `(DT_DATE) GETDATE()` para definir el valor de tu variable de fecha, intenta usar una expresión más específica para obtener el formato deseado. Por ejemplo, puedes usar algo como `RIGHT("0000" + (DT_STR, 4, 1252) YEAR(GETDATE()), 4) + "-" + RIGHT("0" + (DT_STR, 2, 1252) MONTH(GETDATE()), 2) + "-" + RIGHT("0" + (DT_STR, 2, 1252) DAY(GETDATE()), 2)` para obtener la fecha en el formato `YYYY-MM-DD`.
    • Verifica que la configuración de formato de fecha en tu servidor y en SSIS esté correctamente configurada para el formato `YYYY-MM-DD`.
    • Asegúrate de que estás pasando correctamente el valor de la variable de fecha como entrada al componente de Tareas del Servicio Web en SSIS. Puedes verificar esto revisando la configuración de la tarea del servicio web y asegurándote de que la variable de fecha esté siendo seleccionada correctamente como entrada.

    Si después de intentar estas sugerencias sigues experimentando el error, sería útil revisar más detalladamente la configuración de tu proyecto SSIS y la forma en que estás pasando la variable de fecha al componente de Tareas del Servicio Web. También puedes revisar los logs detallados de SSIS para obtener más información sobre el error específico que estás enfrentando.

    Respondida el Dec 19, 2020 a las 15:44 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Problema:

    Estás intentando utilizar una variable de tipo DateTime en una tarea del servicio web SSIS como valor de entrada, pero el servicio web requiere un formato de fecha y hora específico (YYYY-MM-DD o YYY-MM-DD HH:MM). Cuando intentas utilizar la variable, recibes un error.

    Solución 1: Convertir la variable a cadena

    • Crea una nueva variable de tipo `String` llamada, por ejemplo, `FechaEntrada`.
    • Utiliza la expresión siguiente para convertir la variable de fecha y hora a una cadena en el formato correcto:
    
    (DT_WSTR, 20) FORMAT(@[Fecha], "YYYY-MM-DD")
    
    • En la tarea del servicio web, utiliza la variable `FechaEntrada` como valor de entrada.

    Solución 2: Utilizar una función personalizada

    • Crea una nueva función personalizada en SSIS que convierta una fecha y hora en una cadena en el formato requerido.
    • En la tarea del servicio web, utiliza la función personalizada para convertir la variable de fecha y hora antes de utilizarla como valor de entrada.

    Ejemplo de función personalizada:

    
    Public Function DateTimeToString(ByVal dt As Datetime) As String
        Return dt.ToString("YYYY-MM-DD")
    End Function
    

    Solución 3: Utilizar una expresión personalizada en la tarea del servicio web

    • En la tarea del servicio web, en la sección "Valores de entrada", haz clic en "Expresión".
    • Utiliza la siguiente expresión para convertir la variable de fecha y hora a una cadena en el formato requerido:
    
    (DT_WSTR, 20) FORMAT(@[Fecha], "YYYY-MM-DD")
    

    Nota:

    Asegúrate de que el tipo de datos del valor de entrada en el servicio web coincida con el formato de la cadena convertida.

    Respondida el Dec 19, 2020 a las 15:53 - por Gemini

    Votos positivos: 0 | Votos negativos: 0