Autor Thema: Öffnen eines Dokuments per Doclink aus Mail - Mail bleibt UI-Doc  (Gelesen 1995 mal)

Offline ampfi

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
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

« Letzte Änderung: 13.09.10 - 11:29:43 von ampfi »
Markus

Domino 8.0.2 Win2003
Notes Client 8.0.2

Offline Peter Klett

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.713
  • Geschlecht: Männlich
Das liegt sicherlich an der Verwendung des Initialize in der Script-Bibliothek. Das wird wohl beim Öffnen der Datenbank (beim Initialisieren der Bibliothek) ausgeführt, zu dem Zeitpunkt ist das uidoc noch das Maildokument.

Ich würde anstelle des Initialize eine eigene Routine erstellen (z.B. InitialisiereDokument) und diese Routine im PostOpen des relevanten Dokuments (also des Auftrages) starten.

Es mag Konstrukte geben, in denen ein Initialize oder Terminate einer Bibliothek sinnvoll ist, mir ist aber noch keines begegnet.

Offline ampfi

  • Frischling
  • *
  • Beiträge: 10
  • Geschlecht: Männlich
Hallo Peter,

vielen,vielen Dank. Das hat geholfen. Und wieder was dazu gelernt.  :D

Viele Grüße

Markus
Markus

Domino 8.0.2 Win2003
Notes Client 8.0.2

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz