Declare

O comando Declare é usado para criar campo e definições de grupo, em que você pode definir as relações entre campos ou funções. Um conjunto de definições de campo pode ser usado para gerar campos derivados automaticamente, o que pode ser usado como dimensões. Por exemplo, é possível criar uma definição de calendário e usá-la para gerar dimensões relacionadas, como ano, mês, semana e dia, a partir de um campo de data.

Você pode usar Declare para definir uma nova definição de campo ou criar uma definição de campo com base em uma definição já existente.

Definindo uma nova definição de campo

Syntax:

definition_name:

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

[Parameters parameter_list ]

Fields field_list 

Arguments:

Argumento Descrição
definition_name

Nome da definição de campo, terminado com vírgula.

Aviso: Não use autoCalendar como nome para definições de campo, pois esse nome está reservado para modelos de calendário gerados automaticamente.

Example:  

Calendar:

tag_list

Uma lista separada por vírgula de tags a serem aplicadas a campos derivados a partir da definição de campo. A aplicação de tags é opcional, mas se você não aplicar as tags usadas para especificar a ordem de classificação, tais como $date, $numeric ou $text, o campo derivado será classificado por ordem de carregamento como padrão.

Example:  

'$date'

Tags de campo

parameter_list

Uma lista de parâmetros separada por vírgula. Um parâmetro é definido na forma de name=value e recebe a atribuição de um valor de início, que pode ser ignorado quando uma definição de campo é reutilizada. Opcional.

Example:  

first_month_of_year = 1

field_list

Uma lista separada por vírgula de campos a serem gerados quando a definição de campo for usada. Um campo é definido na forma de <expression> As field_name tagged tag. Use $1 para referenciar o campo de dados a partir do qual os campos derivados devem ser gerados.

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') ;
 

O calendário já está definido e você pode aplicá-lo aos campos de data que tenham sido carregados; nesse caso, OrderDate e ShippingDate, por meio de uma cláusula Derive.

Campos derivados (exemplo completo)

Reutilizando uma definição de campo existente

Syntax:

<definition name>:

Declare [Field][s] Definition

Using <existing_definition> 

[With <parameter_assignment> ]

Arguments:

Argumento Descrição
definition_name

Nome da definição de campo, terminado com vírgula.

Example:  

MyCalendar:

existing_definition

A definição de campo a ser reutilizada quando se estiver criando a nova definição de campo. A nova definição de campo funcionará da mesma forma que a definição na qual ela se baseia, exceto se você usar parameter_assignment para alterar um valor usado nas expressões de campo.

Example:  

Using Calendar

parameter_assignment

Uma lista de atribuições de parâmetro separada por vírgula. Uma atribuição de parâmetro é definida na forma de name=value e ignora o valor de parâmetro existente na definição de campo de base. Opcional.

Example:  

first_month_of_year = 4

Example:

Nesse exemplo, reutilizamos a definição de calendário criada no exemplo anterior. Nesse caso, queremos usar um ano fiscal que se inicia em abril. Isso é feito atribuindo o valor 4 ao parâmetro first_month_of_year, que afetará o campo DayNumberOfYear que está definido.

O exemplo presume que você tenha usado os dados de amostra e a definição de campo do exemplo anterior.

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

Quando você tiver recarregado o script de dados, os campos gerados estarão disponíveis no editor de pasta, com o nomes OrderDate.MyCalendar.* e ShippingDate.MyCalendar.*.

See also: