Declare

La sentencia Declare se utiliza para crear definiciones de campos y grupos, donde puede definir relaciones entre campos o funciones. Un conjunto de definiciones de campos puede servir para generar automáticamente campos derivados, los cuales se pueden utilizar como dimensiones. Por ejemplo, podemos crear una definición de calendario y utilizarla para generar dimensiones relacionadas, como por ej. año, mes, semana y día, a partir de un campo fecha.

Puede usar Declare para configurar una nueva definición de campo o para crear una definición de campo basada en una definición ya existente.

Configurar una nueva definición de campo

Syntax:

definition_name:

Declare [Field[s]] Definition [Tagged tag_list ]

[Parameters parameter_list ]

Fields field_list 

Arguments:

Argumento Descripción
definition_name

El nombre de la definición de campo, acabado en dos puntos.

Advertencia: No utilice autoCalendar como nombre para las definiciones de campo, ya que este nombre se reserva para las plantillas de calendario generadas automáticamente.

Example:  

Calendar:

tag_list

Una lista de etiquetas separadas por comas para aplicar a campos derivados de la definición de campo. La aplicación de etiquetas es opcional, pero si no aplica etiquetas que se usen para especificar un criterio de ordenación, como $date, $numeric o $text, el campo derivado se ordenará por orden de carga como criterio predeterminado.

Example:  

'$date'

Etiquetas de campo

parameter_list

Una lista de parámetros separados por comas. Un parámetro se define como name=value y se le asigna un valor de inicio, el cual puede ignorarse cuando se reutiliza una definición de campo. Opcional.

Example:  

first_month_of_year = 1

field_list

Una lista de campos separados por comas para generar cuando se utilice la definición de campo. Un campo se define en forma de <expression> As field_name tagged tag. Utilice $1 para hacer referencia al campo de datos desde el que se deben generar los campos derivados.

Example:  

Year($1) As Year tagged '$year'

Example:

Calendar: DECLARE FIELD DEFINITION TAGGED '$date' Parameters first_month_of_year = 1 Fields
Year($1) As Year Tagged ('$numeric'), Month($1) as Month Tagged ('$numeric'), Date($1) as Date Tagged ('$date'), Week($1) as Week Tagged ('$numeric'), Weekday($1) as Weekday Tagged ('$numeric'), DayNumberOfYear($1, first_month_of_year) as DayNumberOfYear Tagged ('$numeric') ;
 

El calendario ya está definido y puede aplicarlo a los campos de fecha que se han cargado, en este caso OrderDate y ShippingDate, utilizando una cláusula Derive.

Campos derivados (ejemplo completo)

Reutilizar una definición de campo previa

Syntax:

<definition name>:

Declare [Field][s] Definition

Using <existing_definition> 

[With <parameter_assignment> ]

Arguments:

Argumento Descripción
definition_name

El nombre de la definición de campo, acabado en dos puntos.

Example:  

MyCalendar:

existing_definition

La definición de campo para reutilizar cuando se cree la nueva definición de campo. La nueva definición de campo funcionará de la misma manera que la definición en la que se basa, con la excepción de que si usa parameter_assignment se usará para cambiar un valor empleado en las expresiones de campo.

Example:  

Using Calendar

parameter_assignment

Una lista de asignaciones de parámetros separadas por comas. Una asignación de parámetro se define como name=value e ignora el valor de parámetro establecido en la definición del campo base. Opcional.

Example:  

first_month_of_year = 4

Example:

En este ejemplo reutilizamos la definición de calendario que se creó en el ejemplo anterior. En este caso deseamos usar un año fiscal que comience en abril. Esto se logra asignando el valor 4 al parámetro first_month_of_year, lo que afectará al campo DayNumberOfYear que se define.

El ejemplo asume que utilizamos los datos de muestra y la definición de campo del ejemplo anterior.

MyCalendar: DECLARE FIELD DEFINITION USING Calendar WITH first_month_of_year=4;
 
DERIVE FIELDS FROM FIELDS OrderDate,ShippingDate USING MyCalendar;
 

Cuando haya recargado el script de datos, los campos generados estarán disponibles en el editor de hojas, con los nombres OrderDate.MyCalendar.* y ShippingDate.MyCalendar.*.

See also: