Passa al contenuto principale
Adaptive Planning
Ultimo aggiornamento: 2023-06-23
Concetto: Formule Day(this) e calendari personalizzati

Concetto: Formule Day(this) e calendari personalizzati

Con l'introduzione della modellazione temporale flessibile nella versione 2017.2, l'utilizzo di
day(this)
all'interno delle formule viene interpretato in modo diverso a seconda che l'istanza abbia un calendario legacy o un calendario personalizzato. I calendari legacy sono calendari creati prima della versione 2017.2 che non sono stati modificati nell'area Amministrazione tempi. Consultare Procedura: Modificare i calendari.
Il modo più semplice per determinare se il calendario è legacy è visualizzare la barra degli strumenti di Amministrazione tempi. Solo i calendari legacy includono i pulsanti di estensione avanti e indietro.
Barra degli strumenti Amministrazione tempi del calendario legacy
Barra degli strumenti Amministrazione tempi del calendario personalizzato
Barra degli strumenti di amministrazione ore del calendario legacy
Barra degli strumenti di amministrazione ore del calendario personalizzata
I calendari legacy interpretano il
day(this)
funzione come il numero 15.
Se si modifica il calendario legacy estendendolo, modificandone le etichette o aggiungendo o rimuovendo strati temporali, il calendario diventa un calendario personalizzato. Tutte le istanze create dopo la versione 2017.2 funzionano automaticamente come calendari personalizzati per impostazione predefinita, anche se sono mensili. Sebbene i calendari legacy restituiscano sempre il numero 15 per
day(this),
i calendari personalizzati interpretano
day(this)
come numero intero del giorno della prima data del periodo di tempo contenitore.
day(this) in un calendario legacy
day(this) in un calendario personalizzato
daythisOldCal.png
daythisNewCal.png
Valore restituito per gennaio 2016 = 15
Valore restituito per gennaio 2016 = 1
Ad esempio, in un calendario personalizzato configurato con settimane, se la settimana 1 di un anno inizia il 1° gennaio, si utilizza
day(this)
nella settimana 2 restituisce il numero 8. L'8 gennaio è il primo giorno della settimana 2.
day-this-calendar-week2.png

Come
(this)
viene Interpretato in un confronto all'interno di un
IF
istruzione

Per i calendari legacy, la parola (
this
) all'interno di una formula può rappresentare il 15 di qualsiasi mese quando viene utilizzato come confronto in un
IF
istruzione
In un calendario personalizzato
(this)
rappresenta la data di inizio di un periodo di tempo.
Ad esempio, la formula
IF(this>toDate(2016,1,1),1,0)
restituirà 1 in un calendario legacy che inizia a gennaio 2016. In un calendario personalizzato, la formula restituisce 1 a partire da febbraio 2016.
A gennaio 2016 di un calendario legacy, (
this)
indica 15/01/2016 e in un calendario personalizzato (
this)
indica 01/01/2016.
IF(this>toDate(2016,1,1),1,0)
Gennaio 2016
Febbraio 2016
Legacy
risultato = 1
risultato = 1
Personalizzato
risultato = 0
risultato = 0

Come modificare
day
(this)
Formule da calendari legacy da utilizzare in nuovi calendari

È necessario eseguire due passaggi per assicurarsi che le formule producano i risultati previsti quando vengono utilizzate in calendari personalizzati o istanze create dopo la versione 2017.2.
  1. In tutte le formule, sostituire tutte le istanze di
    day(this)
    in un calendario legacy con il numero 15.
  2. All'interno di un
    IF
    istruzione in un calendario legacy sostituire la parola
    (this)
    con
    toDate(this.year,this.month,15).