Pregunta

Estamos evaluando SSIS para ver si será apropiado para un nuevo proyecto que está por venir. Uno de los procesos tendrá que procesar un archivo plano con registros delimitados. El archivo contendrá pedidos. Hay una línea de encabezado, una línea de dirección de envío (opcional) y una o más líneas de detalle. Los campos de cada línea están delimitados pero no tienen el mismo formato.

Leí esta respuesta:

Datos transaccionales SSIS (diferentes tipos de registros, un archivo)

Y puedo dividir los datos usando la tarea División condicional para producir varias salidas, pero no estoy seguro de cómo proceder desde allí. Tengo dos problemas que necesito resolver:

  1. El encabezado del pedido debe insertarse primero, antes de la dirección y los detalles, ya que la dirección y los detalles harán referencia al registro del pedido, por lo que creo que necesito procesar esa salida primero, pero no estoy seguro en SSIS cómo para hacer que esa rama de la tarea División condicional se procese antes de las otras ramas. Idealmente, me gustaría procesar el encabezado de la orden y luego almacenar la identificación de la orden en una variable de usuario para que cuando procese los detalles, pueda hacer referencia a esa variable.

  2. Habrá varios pedidos en el archivo, por lo que dividirlo es más complejo.

Siempre podría escribir una aplicación en C # que preprocesará el archivo o leerá el archivo en una tabla de preparación, pero no estoy seguro de que me guste ese enfoque.

¿Puede alguien que haya pasado por este proceso compartir algunas ideas sobre cómo lo abordaron?

Gracias,

Chris

¿Fue útil?

Solución

Después de la división, deposite cada tipo de registro en su propia tabla de etapas, o en un destino de datos brutos de ssis, que es más rápido y bueno para pasos intermedios como este. Luego cargue todos los encabezados en su tabla final y proceda sin errores referenciales.

¿Asumo que los registros detallados tienen un headerID en ellos? Eso debería facilitar el tratamiento de su segunda pregunta. Si no, háganoslo saber.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top