Hallo zusammen,
ich möchte eine bestehende Auftrags-Datenbank so umstellen, dass Skripte, die bislang in jedem Feld hinterlegt waren, künftig zentral in einer Scriptbibliothek stehen.
Bei der Datenbank wird z.B. ein Auftrag zur Freigabe eingereicht. Der Freigeber bekommt eine Mail mit einem Doclink, über den er den Auftrag öffnet und freigibt.
Jetzt kommt mein Problem:
Es sieht so aus, als würde die Mail als UI-Doc "aktiv" bleiben, so dass mein Script in der Bibliothek der Auftrags-DB beim Bestücken der Variablen gegen die Wand läuft. Die weiter unten kommende Funktion "Feldschutz_Berechtigung" wird über das "Entering"-Ereignis der Felder im Auftrag aufgerufen.
Hier mal der Code der Bibliothek:
Declarations Scriptbibliothek
Dim session As NotesSession
Dim workspace As NotesUIWorkspace
Dim uidoc As NotesUIDocument
Dim aktuelleFeld As String
'Variablen, die aus Feldern der Maske "Auftrag" bestückt werden:
Dim aktuellerUser, docErsteller, administrator, auftragsstatus, befristungStatus, art, anzeigePrüfungStatus As String
'Variablen, die Werte an die Teilmasken zurückgeben:
Dim schutzBerechtigung, schutzEntsperrung, schutzAdmin, schutzAdminPruefung, schutzAdminBefristung, schutzAdminBefristungPruefung As String
'Variablen zur Überprüfung, ob der aktuelle Benutzer die Rolle "Admin" hat:
Dim adminrolle As String
Dim rollen As Variant
Initialize Scriptbibliothek
Sub Initialize
Set session = New NotesSession
Set workspace = New NotesUIWorkspace
Set uidoc = workspace.CurrentDocument
'Bestückung der Variablen
aktuellerUser = session.UserName
docErsteller = uidoc.FieldGetText("Ersteller_Username")
administrator = uidoc.FieldGetText("ErledigtVon")
auftragsstatus = uidoc.FieldGetText("Status")
befristungsStatus = uidoc.FieldGetText("statusBefristung")
art = uidoc.FieldGetText("Auftragsart")
anzeigePruefungStatus = uidoc.FieldGetText("AnzeigePrüfung")
'Hier wird überprüft, ob der aktuelle Benutzer die Rolle "Admin" hat:
rollen = Evaluate( "@Userroles" )
If Not( Isempty( rollen ))Then
Forall rolle In rollen
If(rolle="[Admin]") Then
adminrolle="1"
Else
adminrolle="0"
End If
End Forall
End If
End Sub
Function Feldschutz_Berechtigung
If (auftragsstatus="offen" Or auftragsstatus ="eingereicht" Or auftragsstatus="abgewiesen") And aktuellerUser = ersteller Then
schutzBerechtigung = "aus"
Else
schutzBerechtigung = "ein"
End If
End Function
Gibt es eine Möglichkeit, wie ich das Auftrags-Dokument zum UI-Doc machen kann oder habe ich nur einfach Tomaten auf den Augen und einen kapitalen Fehler im Script?
Vielen Dank schon mal fürs Anschauen
Markus