Apssawhney
Hola, equipo,
¿Puede ayudarme a crear una tabla de calendario que tenga todas las fechas, pero pocas fechas por mes están marcadas en función de las siguientes condiciones?
1. Lanzamiento del parche de Microsoft (segundo martes de cada mes)
2. La aplicación de parches en servidores que no son de producción comienza el jueves (después del segundo martes del mes) a las 8 pm PST.
3. La aplicación de parches en las estaciones de trabajo para las máquinas UAT comienza el viernes (después del segundo martes del mes) a la 1 PM CT.
4. El parcheo de los servidores de producción comienza el viernes (después del tercer martes del mes) a las 8 PM PST.
5. El parcheo de producción de las estaciones de trabajo comienza el viernes (después del tercer martes del mes) a las 6 p.m. CT
6. Período de congelación (del 25 al 30 de diciembre)
La tabla se vería algo así:
Fecha | Actividad |
01/01/2021 | |
01/02/2021 | |
01/03/2021 | |
01/04/2021 | |
01/05/2021 | |
01/06/2021 | |
01/07/2021 | |
01/08/2021 | |
01/09/2021 | |
01/10/2021 | |
01/11/2021 | Lanzamiento del parche de Microsoft |
01/12/2021 | |
13/01/2021 | Parcheo de servidores que no son de producción |
14/01/2021 | Parcheo de estaciones de trabajo para máquinas UAT |
15/01/2021 | |
16/01/2021 | |
17/01/2021 | |
18/01/2021 | |
19/01/2021 | |
20/01/2021 | |
21/01/2021 | Parcheado de servidores de producción / Parcheado de producción de estaciones de trabajo |
22/01/2021 | Parcheo de servidores de producción / Parcheo de producción de estaciones de trabajo |
23/01/2021 | Parcheado de servidores de producción / Parcheado de producción de estaciones de trabajo |
24/01/2021 | |
25/01/2021 | |
26/01/2021 | |
27/01/2021 | |
28/01/2021 | |
29/01/2021 |
¿Alguien puede ayudar aquí?
StefanoGrimaldi
Oye,
Icey
Hola @Apssawhney,
¿Cómo se consigue esto?
Fecha Actividad 21/01/2021 Parcheo de servidores de producción / Parcheo de producción de estaciones de trabajo 22/01/2021 Parcheado de servidores de producción / Parcheado de producción de estaciones de trabajo 23/01/2021 Parcheo de servidores de producción / Parcheo de producción de estaciones de trabajo
Cuando creo una columna basada en su lógica, el resultado es el siguiente:
DAX:
Activity =
VAR YearWeek_ =
WEEKNUM ( [Date], 2 )
VAR StartofMonthWeek_ =
WEEKNUM ( STARTOFMONTH ( 'Calendar (DAX)'[Date] ), 2 )
VAR MonthWeek_ = YearWeek_ - StartofMonthWeek_ + 1
VAR WeekDay_ =
WEEKDAY ( [Date], 2 )
VAR Month_ =
MONTH ( [Date] )
VAR Day_ =
DAY ( [Date] )
RETURN
SWITCH (
TRUE (),
MonthWeek_ = 2
&& WeekDay_ = 2, "Microsoft Patch released",
MonthWeek_ = 2
&& WeekDay_ = 4, "Non-prod servers patching",
MonthWeek_ = 2
&& WeekDay_ = 5, "Work stations patching for UAT Machines",
MonthWeek_ = 3
&& WeekDay_ = 5, "Prod servers patching / Work stations production patching",
Month_ = 12
&& Day_ >= 25
&& Day_ <= 30, "Freeze Period"
)
METRO:
let
StartDate = #date(2021,1,1),
EndDate = #date(2021,12,31),
DayCount = Duration.Days(Duration.From( EndDate - StartDate )),
Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),
ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
#"Added Custom" = Table.AddColumn(RenamedColumns, "Activity", each let
MonthWeek_ = Date.WeekOfMonth ([Date],1),
WeekDay_ = Date.DayOfWeek ( [Date], 2 ),
Month_ = Date.Month([Date]),
Day_ = Date.DayOfWeek([Date],1)
in
if MonthWeek_ = 2
then if WeekDay_ = 2 then "Microsoft Patch released" else if WeekDay_ = 4 then "Non-prod servers patching" else if WeekDay_ = 5 then "Work stations patching for UAT Machines" else null
else if MonthWeek_ = 3 and WeekDay_ = 5 then "Prod servers patching / Work stations production patching" else if Month_ = 12 and Day_ >= 25 and Day_ <= 30 then "Freeze Period" else null)
in
#"Added Custom"
Atentamente,
Icey
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
Icey
Hola @Apssawhney,
¿Cómo se consigue esto?
Fecha Actividad 21/01/2021 Parcheado de servidores de producción / Parcheado de producción de estaciones de trabajo 22/01/2021 Parcheado de servidores de producción / Parcheado de producción de estaciones de trabajo 23/01/2021 Parcheo de servidores de producción / Parcheo de producción de estaciones de trabajo
Cuando creo una columna basada en su lógica, el resultado es el siguiente:
DAX:
Activity =
VAR YearWeek_ =
WEEKNUM ( [Date], 2 )
VAR StartofMonthWeek_ =
WEEKNUM ( STARTOFMONTH ( 'Calendar (DAX)'[Date] ), 2 )
VAR MonthWeek_ = YearWeek_ - StartofMonthWeek_ + 1
VAR WeekDay_ =
WEEKDAY ( [Date], 2 )
VAR Month_ =
MONTH ( [Date] )
VAR Day_ =
DAY ( [Date] )
RETURN
SWITCH (
TRUE (),
MonthWeek_ = 2
&& WeekDay_ = 2, "Microsoft Patch released",
MonthWeek_ = 2
&& WeekDay_ = 4, "Non-prod servers patching",
MonthWeek_ = 2
&& WeekDay_ = 5, "Work stations patching for UAT Machines",
MonthWeek_ = 3
&& WeekDay_ = 5, "Prod servers patching / Work stations production patching",
Month_ = 12
&& Day_ >= 25
&& Day_ <= 30, "Freeze Period"
)
METRO:
let
StartDate = #date(2021,1,1),
EndDate = #date(2021,12,31),
DayCount = Duration.Days(Duration.From( EndDate - StartDate )),
Source = List.Dates(StartDate,DayCount,#duration(1,0,0,0)),
TableFromList = Table.FromList(Source, Splitter.SplitByNothing()),
ChangedType = Table.TransformColumnTypes(TableFromList,{{"Column1", type date}}),
RenamedColumns = Table.RenameColumns(ChangedType,{{"Column1", "Date"}}),
#"Added Custom" = Table.AddColumn(RenamedColumns, "Activity", each let
MonthWeek_ = Date.WeekOfMonth ([Date],1),
WeekDay_ = Date.DayOfWeek ( [Date], 2 ),
Month_ = Date.Month([Date]),
Day_ = Date.DayOfWeek([Date],1)
in
if MonthWeek_ = 2
then if WeekDay_ = 2 then "Microsoft Patch released" else if WeekDay_ = 4 then "Non-prod servers patching" else if WeekDay_ = 5 then "Work stations patching for UAT Machines" else null
else if MonthWeek_ = 3 and WeekDay_ = 5 then "Prod servers patching / Work stations production patching" else if Month_ = 12 and Day_ >= 25 and Day_ <= 30 then "Freeze Period" else null)
in
#"Added Custom"
Atentamente,
Icey
Si esta publicación ayuda, entonces por favor considere Acéptalo como la solución para ayudar a los demás miembros a encontrarlo más rápidamente.
StefanoGrimaldi
Oye,