$AnzahlF_Wartung=0
$AnzahlDNF_Wartung=0
$AnzahlF_Publish=0
$AnzahlDNF_Publish=0
$AnzahlLog=0
$keinDatum=[00000000]
$DatumOM=$keinDatum
$DatumNM=$keinDatum
$DatumF=$keinDatum
$DatumDNF=$keinDatum
$TageOM=9999
$maxTageOM=100
$maxTageF=50
$maxF_Wartung=20
$maxDNF_Wartung=2
# Alter des Cache
$Alter=$_today - $d_PlacedDate
$DatumOM=$d_PlacedDate
# Braucht der Cache Wartung
$FlagNM=false
Table Active=Logs Scope=Parent
goto position=bottom
while not ($_eol)
# Loop durch alle Logs, beim ältesten beginnen
$AnzahlLog=$AnzahlLog+1
if $d_lType="Owner Maintenance"
$DatumOM=$d_lDate
$AnzahlF_Wartung=0
$AnzahlDNF_Wartung=0
$FlagNM=false
endif
if $d_lType="Needs Maintenance"
$DatumNM=$d_lDate
$FlagNM=true
endif
if $d_lType="Found it"
$DatumF=$d_lDate
$AnzahlF_Wartung=$AnzahlF_Wartung+1
$AnzahlF_Publish=$AnzahlF_Publish+1
endif
if $d_lType="Didn't find it"
$DatumDNF=$d_lDate
$AnzahlDNF_Wartung=$AnzahlDNF_Wartung+1
$AnzahlDNF_Publish=$AnzahlDNF_Publish+1
endif
if $d_lType="Write Note"
endif
goto position=previous
endwhile
table Active=Caches
#Debuggen
$text = "*** Debug ***"
$text = $text + $_newline + "$d_name: $Alter alt ($d_Placedby)"
$text = $text + $_newline + "OM: $DatumOM, NM: $DatumNM, Notwendig: $FlagNM"
$text = $text + $_newline + "F: letzter am $DatumF, seit Wartung ($DatumOM) $AnzahlF_Wartung, gesamt $AnzahlF_Publish"
$text = $text + $_newline + "DNF: letzter am $DatumDNF, seit Wartung ($DatumOM) $AnzahlDNF_Wartung, gesamt $AnzahlDNF_Publish"
clip Data=$text
# Kriterien erstellen
$TageOM=datediff($DatumOM,$_today)
$TageF =datediff($DatumF,$_today)
# Kriterien prüfen
# Gibts ein NM seit der letzten Wartung?
$kritNM=$FlagNM
# Gibt es zu viele F seit der letzten Wartung?
if $AnzahlF_Wartung > $maxF_Wartung
$kritF=true
else
$kritF=false
endif
# Gibt es zu viele DNF seit der letzten Wartung?
if $AnzahlDNF_Wartung > $maxDNF_Wartung
$kritDNF=true
else
$kritDNF=false
endif
# Ist die letzte Wartung zulange her?
if $TageOM > $maxTageOM
$kritOM=true
else
$kritOM=false
endif
# Ist der letzte Fund zulange her?
if $TageF > $maxTageF
$kritTageF=true
else
$kritTageF=false
endif
# Soll-Daten berechnen
$NaechstWartOM=$DatumOM + $maxTageOM
$NaechstWartF=$DatumF + $maxTageF
$NaechstWart=$NaechstWartOM
if $NaechstWartF<$NaechstWartOM
$NaechstWart=$NaechstWartF
endif
$outW=""
$outKritNM="ok"
if $kritNM=true
$outKritNM="!!!"
endif
$outKritF="$AnzahlF_Wartung
(max $maxF_Wartung)"
if $kritF=true
$outKritF="$AnzahlF_Wartung
(>$maxF_Wartung)"
endif
$outKritDNF="$AnzahlDNF_Wartung
(max $maxDNF_Wartung)"
if $kritDNF=true
$outKritDNF="$AnzahlDNF_Wartung
(>$maxDNF_Wartung)"
endif
$outKritOM="$DatumOM ($TageOM)
(max $maxTageOM)"
if $kritOM=true
$outKritOM="$DatumOM ($TageOM)
(>$maxTageOM)"
endif
$outKritTageF="$DatumF ($TageF)
(max $maxTageF)"
if $kritTageF=true
$outKritOM="$DatumF ($TageF)
(>$maxTageF)"
endif
$d=$d+1