Declare

Declare-satsen används för att skapa fält- och gruppdefinitioner där du kan definiera relationer mellan fält eller funktioner. En uppsättning fältdefinitioner kan användas för att automatiskt generera härledda fält, vilka kan användas som dimensioner. Du kan till exempel skapa en kalenderdefinition och använda den för att generera relaterade dimensioner, som år, månad, vecka och dag, från ett datumfält.

Du kan använda Declare antingen för att skapa en ny fältdefinition eller en fältdefinition baserad på en befintlig definition.

Skapa en ny fältdefinition

Syntax:

definition_name:

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

[Parameters parameter_list ]

Fields field_list 

Arguments:

Argument Beskrivning
definition_name

Fältdefinitionens namn, avslutad med kolon.

Varning: Använd inte autoCalendar som namn på fältdefinitioner eftersom detta namn är reserverat för automatiskt genererade kalendermallar.

Example:  

Calendar:

tag_list

En kommaavgränsad lista över taggar att tillämpa på fält som härletts från fältdefinitionen. Det är valfritt att tillämpa taggar, men om du inte tillämpar taggar för att specificera sorteringsordning, som t.ex. $date, $numeric eller $text kommer det härledda fältet som standard sorteras efter laddningsordning.

Example:  

'$date'

Fälttaggar

parameter_list

En kommaavgränsad lista över parametrar. En parameter definieras i formen name=value och tilldelas ett startvärde, vilket kan åsidosättas när en fältdefinition återanvänds. Valbart.

Example:  

first_month_of_year = 1

field_list

En kommaavgränsad lista över fält att generera när fältdefinitionen används. Ett fält definieras i formen <expression> As field_name tagged tag. Använd $1 för att referera till datafältet som de härledda fälten ska genereras från.

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

Kalendern är nu definierad och du kan tillämpa den på datumfälten som du har laddat, i det här fallet OrderDate och ShippingDate, med enDerive-sats.

Härledda fält (fullständigt exempel)

Återanvända en befintlig fältdefinition

Syntax:

<definition name>:

Declare [Field][s] Definition

Using <existing_definition> 

[With <parameter_assignment> ]

Arguments:

Argument Beskrivning
definition_name

Fältdefinitionens namn, avslutad med kolon.

Example:  

MyCalendar:

existing_definition

Fältdefinitionen som ska återanvändas för att skapa den nya fältdefinitionen. Den nya fältdefinitionen kommer att fungera på samma sätt som definitionen den är baserad på, med undantag för om du använder parameter_assignment för att ändra värdet som används i fältuttrycken.

Example:  

Using Calendar

parameter_assignment

En kommaavgränsad lista över parametertilldelningar. En parametertilldelning definieras i formen name=value och åsidosätter parametervärdet som är angett i basfältdefinitionen. Valbart.

Example:  

first_month_of_year = 4

Example:

I det här exemplet återanvänder vi kalenderdefinitionen som skapades i föregående exempel. I det här fallet vill vi använda ett budgetår som börjar i april. Detta uppnår vi genom att tilldela värdet 4 till first_month_of_year-parametern, vilket påverkar DayNumberOfYear-fältet som definieras.

I exemplet antas att du använder samma exempeldata och fältdefinition som i föregående exempel.

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

När du har laddat dataskriptet blir de genererade fälten tillgängliga i arkredigeraren med namnen OrderDate.MyCalendar.* och ShippingDate.MyCalendar.*.

See also:

 

Hjälpte den här informationen?

Tack för att du berättar det här. Är det något du vill säga om det här avsnittet?

Varför var informationen inte till hjälp och hur kan vi förbättra den?