Domino 9 und frühere Versionen > ND8: Entwicklung

Dialogbox aus Agent aufrufen

<< < (5/7) > >>

koehlerbv:
Genau deshalb schrieb ich gestern:

--- Zitat von: koehlerbv am 26.04.11 - 16:42:04 ---Theoretisch vorhandene Möglichkeiten scheitern dann an der täglichen Praxis.
--- Ende Zitat ---

Diese Verfahren funktionieren einfach nicht zuverlässig.

Bernhard

geppertb:
Ok, damit es klarer wird werde ich das Gesamtproblem erklären:


Ein Kunde hat verschiedene U-Bahnstationen. An jeder Station steht ein PC. Jede Station hat jeweils nur ein Login ID (z.b. Station1, Station2, etc...). (Normalerweise hat jeder Notes-Benutzer seine eigene ID, in diesem Falle jedoch hat jede Station eine ID). Jeder Benutzer hat intern eine Identifikationsnummer und ein Passwort.

Da die ID nicht gewechselt wird, muss auch nicht zwingend die mail database oder das bookmark neu aufgerufen werden, der Benutzer ändert im System einfach seine Identifikationsnummer.
Soweit zum Aufbau.

Jetzt zum eigentlichen Problem. An diesen Station werden verlorene Objekte (Lost&Found) aufgenommen und im System registriert. Jetzt kam es desöfteren vor das manche Objekte spurlos verschwinden, aber im System noch registriert sind.

Der Kunde möchte nun das zu bestimmten Uhrzeiten ein Bestätigungsfenster angezeigt wird mit den Objekten die an der Station vorhanden sein sollten. Der Benutzer bestätigt und arbeitet normal weiter (Daher das registrieren der Uhrzeiten als Schichtwechsel, dies sollte dynamisch sein da sich diese Uhrzeiten ändern können). Sollte ein Objekt nicht aufgefunden werden wird ein Text des Benutzers gespeichert. So hat der Kunde eine Bestätigung das jeder Benutzer versichert das er diese Objekte in der Station aufgefunden hat.

Um es vorweg zunehmen, klar muss man sich schon die Frage stellen, wer überhaupt diese Objekte wegnimmt und dass man seine Mitarbeiter nochmals überdenken sollte, ich kann aber auch soviel sagen dass es sich nicht um einen deutschen Kunden handelt, falls das beruhigt :).

Tode:
Gerade eben ist mir ein Bug eingefallen, der mich zu einer "versteckten" Funktion des Clients geführt hatte, die Du genau für das verwenden kannst, was Du brauchst, und das ganze sogar ziemlich zuverlässig:

Der Client hat -genau wie der Server- einen Scheduler, der bestimmte Aufgaben zu bestimmten Uhrzeiten ausführt (zum Beispiel die automatische lokale Archivierung).

Gesteuert wird dieser Mechanismus exakt wie beim Server: Über Programmdokumente im persönlichen Adressbuch. Diese Programmdokumente sind nur nirgends sichtbar, Du kannst sie aber "sehen", wenn Du per Shift + Strg die Ansicht  ($Programs) in Deiner names.nsf öffnest.

Jetzt habe ich gerade eben mal was probiert: Ich habe in einem öffentlichen Adressbuch ein Programmdokument erstellt:

Programmname: notes.exe
Befehlszeile: notes://server/datenbank.nsf/DeineMaske?OpenForm
(das ist die Url Deiner Funktion, könnte auch ein Agent sein...)
Läuft auf Server: Vorname Nachname/OU/Org (Dein Benutzername)
Aktiviert, täglich um 13:50, jeden Tag

Dieses Dokument habe ich dann per Copy & Paste in mein persönliches Adressbuch kopiert.

Und siehe da: Zum gewählten Zeitpunkt öffnet sich die gewünschte Maske.

Jetzt musst Du nur noch testen, ob ein hierüber aufgerufener Agent eine Dialogbox öffnen kann, wenn nicht, dann machst Du den Code für die Dialogbox halt ins QueryOpen der Maske und setzt das Continue auf False oder Du machst es ins PostOpen der Maske und schliesst die Maske danach wieder... Voila.

Jetzt musst Du nur noch einmalig das Programmdokument an die lokalen Names.nsf verteilen... Da es sich um Dokumente in einer versteckten Ansicht handelt, kann die auch niemand mal eben schnell deaktivieren / löschen...

Vielleicht hilft Dir das ja weiter...

Tode

EDIT: Mit Agent eine Dialogbox zu öffnen geht nicht... Bekommt man eine Meldung "Not implemented" o.ä., habe ich grade probiert... Eine Maske zu öffnen geht aber definitiv...

Peter Klett:
Dann setz doch genau an dem Punkt an, wenn der Benutzer seine Identifikationsnummer wechselt.

Also: neuer Benutzer kommt, trägt seine Identifikationsnummer ein und erhält dann den Hinweis, welche Objekte da sein müssen. Damit quittiert der neue Benutzer immer das, was er vom vorigen Benutzer übernommen hat. Fehlt etwas, nachdem er quittiert hat, muss das zu seiner Verantwortungszeit verschwunden sein.

NACHTRAG: Genau genommen müsste die Aktion von beiden Benutzern - dem gehenden und dem kommenden - gemeinsam durchgeführt werden, denn sonst ist wieder nicht klar, wer "Schuld" ist. Also eine saubere Übergabe mit Protokoll ist m.E. die einzig vernünftige Lösung. Die wird manuell bei Schichtwechsel angestoßen. Es ist im Interesse des gehenden Benutzers, da er damit eine Unschuldserklärung bekommt. Eine automatische Dialogbox mit Eingabemöglichkeit nur eines Benutzers in Abwesenheit des anderen wird am Grundproblem nichts ändern.

geppertb:
Peter,

der Benutzer muss nicht direkt ankommen und seine Nummer ändern nur in bestimmten Situation (z.b. wenn er ein neues Objekt registriert). Ich weiss das klingt ziemlich bescheiden, das einzige das ich sagen kann ist, dass es keine direkt Aktion des Benutzers gibt wenn er seine Schicht anfängt. Die Identifikationsnummer wird nur dann abgefragt wenn er ein Dokument speichert, etc.. Ich möchte an dieser Stelle erwähnen, dass das System nicht von uns entworfen wurde und noch aus Notes5 Zeiten stammt.

Tode,

Ich werde deinen Lösungsvorschlag ausprobieren, danke!

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln