Jep - das stimmt - ist mit Sicherheit auch ein organsatorisches Problem ...
Der "Zwang" geht recht simpel:
- Ich geh davon aus das User unter bestimmten Gesichtspunkten eine Mail zumindest mal öffnen (kennen wir ja alle aus Spam)
- Hat er es mal offen - hab ich Ihn. Jetzt greifen folgende Events:
Im PostOpen:
Sub Postopen(Source As Notesuidocument)
Dim doc As NotesDocument
Set doc = Source.Document
Call doc.ReplaceItemValue( "ALLStatus",0)
Call doc.Save( True, True )
End Sub
Im QuerySave:
Sub Queryclose(Source As Notesuidocument, Continue As Variant)
Dim workspace As New NotesUIWorkspace
Dim doc As NotesUIDocument
Dim uidoc As NotesUIDocument
Set doc = workspace.CurrentDocument
Set uidoc = workspace.CurrentDocument
If doc.FieldGetText( "Z_Status" ) = "" And doc.FieldGetText( "ALLStatus" ) = "0" Then
Messagebox( "*** Please Note - You need to Accept or Decline the Handout!!! ***" ), 0 + 16
Continue = False
End If
If doc.FieldGetText( "AppProcessed" ) <> "Form Processed - Thank You" And doc.FieldGetText( "ALLStatus" ) = "0" Then
Messagebox( "*** Use Submit and Send Back to ISG to Close ***" ), 0 + 16
Continue = False
End If
End Sub
Und der Button mit dem ich das ganze durchführen lasse:
ub Click(Source As Button)
Dim workspace As New NotesUIWorkspace
Dim uidoc As NotesUIDocument
Set uidoc = workspace.CurrentDocument
Dim WarningMessage As String
Dim YesOrNo As Integer
If uidoc.FieldGetText( "Z_Status" ) = "" And uidoc.FieldGetText( "Hide") ="Yes" Then
Messagebox( "*** Please Accept or Decline First! ***" ), 0 + 16
Continue = False
Exit Sub
End If
If uidoc.FieldGetText( "Z_Status" ) = "Handout has been declined by " And uidoc.FieldGetText( "CMRemarks" ) = "" Then
Messagebox( "*** You have to provide a Reason for Declination ***" ), 0 + 16
Call uidoc.GotoField( "CMRemarks" )
Continue = False
Exit Sub
End If
Dim doc As NotesDocument
Dim item As NotesItem
Set doc = uidoc.Document
Set item=doc.ReplaceItemValue( "From",uidoc.FieldGetText( "SendTo" ))
Set item=doc.ReplaceItemValue( "SendTo",uidoc.FieldGetText( "Principal" ))
Set item=doc.ReplaceItemValue( "Principal","")
Set item=doc.ReplaceItemValue( "Subject",uidoc.FieldGetText( "Z_Status1"))
Set item=doc.ReplaceItemValue( "AppProcessed","Form Processed - Thank You")
Call uidoc.Send
Set item=doc.ReplaceItemValue( "From",uidoc.FieldGetText( "OFrom"))
Set item=doc.ReplaceItemValue( "SendTo",uidoc.FieldGetText( "OSendTo"))
Set item=doc.ReplaceItemValue( "Principal",uidoc.FieldGetText( "OPrincipal"))
Set item=doc.ReplaceItemValue( "Subject",uidoc.FieldGetText( "OSubject"))
Set item=doc.ReplaceItemValue( "SaveOptions",0)
Call uidoc.Refresh
Call uidoc.save
Call uidoc.close(True)
End Sub
Sprich ich überprüfe ob der Feldwert enstrechend gesetzt ist und laß das Schließen nur über den "Submit and Send Back to ISG" Button zu.
Somit geht auch kein "Cancel". Das Mail bleibt offen bis es ausgeführt wird - Notes Client schließen ist auch nicht - greift ja sofort QueryClose.
Klar - Der User kann natürlich mit Gewalt den Cleint abschießen - aber wenn es einfacher ist die Aktion durchzuführen - warum sollte er.
Das mit dem Link zu machen - ist mir noch nicht klar wie.