Skip to main content
Announcements
See why Qlik is a Leader in the 2024 Gartner® Magic Quadrant™ for Analytics & BI Platforms. Download Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

¿Cómo validar la existencia de un campo?

Estimados, necesito cargar una planilla Excel a mi modelo, pero quisiera validar que los campos requeridos existan en esta, es posible hacer esto?

Usé errormode, pero igual se cae porque el campo no existe.

6 Replies
ramoncova06
Specialist III
Specialist III

que error te esta saliendo y cuales campos son los requeridos ?

como estas cargando el excel ?

Not applicable
Author

Hola Ramón,

Efectivamente, estoy haciendo a propósito que se caiga, porque quiero asegurarme que el campo venga en la planilla, por lo tanto, esta no tiene el campo "Total".

El error es: "Campo no encontrado - <Total>"

El campo es: "Total"

Cargo el excel así:

    Calidad:

          LOAD ID, Total FROM [Calidad.xls] (biff, embedded labels, table is [Calidad$]);

ramoncova06
Specialist III
Specialist III

ya no entendi, estas haciendo que el campo se caiga de manera intencional ?

si haces un load *, te aparece el campo del total ?

Not applicable
Author

Ramón, el propósito es validar.

Necesito que el modelo se asegure de que le entreguen lo que necesita para trabajar.

ramoncova06
Specialist III
Specialist III

ok ... en caso de que no estén los campos necesarios cuál comportamiento debe de tomar ?

el hacer un load definiendo los campos va a obligar siempre que los campos estén presentes en el excel para que funcione y en caso de que falte alguno va a arrojar una falla en el publisher

Not applicable
Author

Hola Richard:

A parte de poner ErrorMode a cero tienes que utilizar las variables de error para verificar si se ha producido algún error en la carga y mediante los comandos de control de flujo, dirigir tu script para registrar el error y actuar en consecuencia.

//*********************************************************************************************************************************

// CONTROL DE ERRORES

//*********************************************************************************************************************************

Set ErrorMode=0;

DIRECTORY;

//Creamos la esctructura vacia de la tabla de Errores para en el caso de que no halla errores se muestren los campos en la interfaz

Load

  null() as Fichero,

  Null() as [Cód. Error],

  null() as [Descripción Error]

AutoGenerate 1;

Set RutaOrigen='.\Datos\';

FOR EACH Archivo in filelist ('$(RutaOrigen)*.xls')

  Trace '************** $(Archivo) ******************';

  //Inicializamos la variable de Error

  Let Error_Archivo=0;

  //Cargamos los archivos

  Datos:

  LOAD

  Campo1,

      Campo2,

      Campo3,

      campo4,

      campo5

  FROM

  $(Archivo)

  (ooxml, embedded labels, table is Hoja1);

  //Cargamos las variables de Error

  LET Error_Descripcion=NUM(ScriptError) & ' - ' &ScriptError &' - ' & ScriptErrorDetails;

  let Error_Código=NUM(left(Error_Descripcion,2));

  //Si hay Error generamos un registro de Error

  if Error_Código<>'0' then

  Errores:

  Load

  '$(Archivo)' as Fichero,

  '$(Error_Código)' as [Cód. Error],

  '$(Error_Descripcion)' as [Descripción Error]

  AutoGenerate 1;

  Endif

Next