Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: skywook am 18.08.06 - 14:45:36
-
Hallo,
kann ich mir eine DialogBox am Bildschirm anzeigen lassen wenn in einer bestimmten Datenbank ein Dokument eingefügt wird (das Dokument wird in einer anderen DB erzeugt und in diese per Script übertragen).
Das Problem: Wenn Notes im Hintergrund liegt, wie kann ich mir die Box anzeigen lassen mit LotusScript oder HostScript.
Funktioniert so was.
-
Wo kommen denn die neuen Dokumente an, und wo soll dann der Agent laufen?
Bernhard
-
Hallo Bernhard,
die Dokumente kommen übers Backend und werden in einer bestimmten Ansicht angezeigt.
-
Nicht "wie", sondern "wo": Server? Lokal? Wo soll der Agent laufen?
Bernhard
-
Sorry,
ist Freitag kurz vor dem Feierabend.
Auf dem Server.
-
Tja, dann wird das nicht einfach, ist aber machbar. Ich sehe folgende Wege:
- Serverbasierender Agent, der nach Feststellung neuer Docs eine Broadcast-Message verschickt
- Lokaler Agent, der periodisch in der DB auf dem Server nachschaut und dann via WinAPI ein Fenster auf dem Client öffnet
- Ein Nicht-Notes-Programm, welches periodisch via NotesAPI / COM vom Client aus auf neue Docs auf dem Server prüft und wiederum per WinAPI ein Fenster beim Client öffnet.
Welchen Weg traust Du Dir zu?
Bernhard
-
@Bernhard
Ich würde den serverbasierenden oder den lokalen Agenten vorziehen. Aber was würdest Du vorschlagen (möchte ja auch noch was dazulernen).
Ist aber noch was komplexer. Die Meldung soll nur erscheinen wenn das Doc in einer bestimmten Ansicht selektiert und in einem Feld ein bestimmter Wert angekreuzt ist.
Hättest Du mir da einen Ansatzpunkt?
-
Mir fehlen nach wie vor Details zu den Anforderungen. Wenn serverbasierend, dann funktioniert das ganze natürlich auch nur unter der Bedingung, dass der User in dem Moment, in dem die Bedingungen für eine neue Meldung stimmen, auch vom Server erreichbar ist. Trotzdem wäre dies natürlich dann der einfachste Weg.
Was bedeutet "in Ansicht selektiert"? Dass die Bedingungen stimmen, um das Dokument in eine bestimmte Ansicht aufgenommen wird? Diese Bedingung liesse sich ja genauso im Agent nachbilden, ebenso wie der Wert, der in einem bestimmten Feld stehen muss.
Ansonsten: Siehe die Punkte, die ich im letzten Posting geschrieben habe.
Bernhard
-
Würde es nicht reichen per E-Mail benachrichtig zu werden ?
Das wäre nämlich leichter.
Gruß
-
Habe jetzt einen zeitgesteuerten serverseitigen Agenten. Wenn ich diesen manuell starte funktionierts - die Exe-Datei wird gestartet.
Schalte ich wieder auf zeitgesteuert wird der Agent zwar gestartet (sehe ich im Protokoll) aber der Shell-Befehl wird nicht ausgeführt. Die Exe-Datei (ist VB) zeigt einfach einen Prompt mit einer Meldung:
Sub Initialize
Dim result As Integer
Dim anzahl As Integer
Dim s As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db = s.CurrentDatabase
Set view = db.GetView( "vb_PrioMSC" )
anzahl = 0
Set doc = view.GetFirstDocument
While Not(doc Is Nothing)
If doc.vb_z_Prio(0) = "1" Then
anzahl = anzahl + 1
End If
Set doc = view.GetNextDocument(doc)
Wend
If anzahl > 0 Then
result = Shell("d:\meldung.exe",1)
End If
End Sub
Für einen Tipp wäre ich dankbar.
-
Dein zeitgesteuertet Agent läuft auf dem Server und sucht auch DORT nach D:\meldung.exe. Ausserdem wird er auf dem Server die Meldung anzeigen, was Dir absolut nix bringt !!!
Es sei denn, Deine meldung.exe schickt die Meldung per net send o.ä. an einen anderen Rechner....
Tode
-
Danke Tode,
das wars. Gibt es denn keine Möglichkeit die exe auf dem Client auszuführen lassen.