Hallo zusammen,
ich bastel mal wieder an der automatisierten Quotenregelung für unsere Mailserver und versuche dort eine Sondersteuerung für ausgewählte User zu implementieren.
Ausgelöst wird das ganze zur Zeit noch über einen Schalter in einer Maske. In dieser Maske werden in einem Feld die User eingetragen, für die eine Sonderegelung gilt und die Quote, die zugünftig gelten soll.
Beispieluserid001#3072
userid002#2048
userid003#4096
Die ID des Users ist auch gleichzeitig der Dateiname (ohne .nsf) der Maildatenbank. Beim Durchlaufen aller Mail-DB möchte ich prüfen, ob die aktuelle Datenbank einem User in der Sondersteuerung gehört.
Dazu erzeuge ich mir 2 Arrays (1x Typ String, 1x Typ Integer), das erste wird mit den UserIDs gefüllt und das zweite mit der dazugehörigen Quote.
'Aufbau der beiden Arrays
For sunum = sonderLB To sonderUB
sonderuser(sunum) = Ucase(Strtoken(sonder(sunum),"#",1))
Next
For sunum = sonderLB To sonderUB
sonderquota(sunum) = Strtoken(sonder(sunum),"#",2)
Next
'Sondersteuerung
userid = Ucase(Trim(Strtoken(db.FileName,".",1)))
ipos = Arraygetindex(sonderuser,userid)
If Not (Isnull(ipos)) Then
quotaSizeNew = sonderquota(ipos)
Print "Sonderuser: " & userid & " ---> Quota: " & quotaSizeNew
Else
If quotaSizeNew <= 1024 Then
quotaSizeNew = 1024
Elseif qoutaSizeAkt < quotaSizeNew Then
quotaSizeNew = qoutaSizeAkt
End If
End If
Das komplette Script läuft sauber durch, aber der Vergleich der jeweiligen UserID mit dem Inhalt des 'sonderuser-Arrays' liefert immer nur einen Treffer für die Indexposition 0, alle weiteren Prüfungen ergeben NULL. Ich habe mir das im Debugger angesehen und selbst wenn die Variable 'userid' den zweiten oder dritten Wert in meiner Userliste annimmt, liefter
ArrayGetIndex ein NULL zurück.
Hat jemand ne Idee, woran das liegen könnte? Würde ungern auf eine Schleife zum Durchsuchen des Arrays zurückgreifen.
Gruß
Dirk