Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: MadMetzger am 11.10.05 - 17:52:38

Titel: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: MadMetzger am 11.10.05 - 17:52:38
Hallo zusammen,

wie würdet ihr das Problem aus dem Thema bewerkstelligen, ohne auf Profildokumente zurückzugreifen, da diese aufgrund der Cacheproblematik nicht sinnvoll sind.

Folgendes will ich erreichen: Ich bastel an einer Datenbank mit Bestellungen. Hier soll jede Filiale jeden Tag eine Bestellung erfassen, auch wenn nichts benötigt wird. Dazu habe ich mir eine Maske gebastelt, in der alle Filialen, die noch nicht bestellt haben aufgeführt ist. Erstellt eine Person aus der Filiale eine Bestellung, wird anschließend die Filiale aus der Liste entfernt. Nun sollen zu einem bestimmten Zeitpunkt die "Nichtbesteller" benachrichtigt werden, damit sie noch eine Bestellung (notfalls eine leere bei Nichtbedarf) erfassen. Auf dieses Dokument wollte ich dann mit dem Agent für die Erinnerung zugreifen und die Nachricht versenden. Aber damit der Agent auch weiß, wer heute schon bestellt hat, darf dieses Dokument nur einmal vorhanden sein.

Findet ihr dieses Vorgehen sinnvoll, oder wie würdet ihr das machen?
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: koehlerbv am 11.10.05 - 17:59:57
Ich gehe mal davon aus, dass Du eine Liste Deiner Filialen hast (wie auch immer).
Dann brauchst Du doch nur noch eine Ansicht mit den Bestellungen nach Tag. Den aktuellen Tag (NotesView.GetAllDocumentsByKey) gehst Du in Deinem Agent durch, merkst Dir in einer List-Variablen (dann schadet es auch nix, wenn eine Filiale doch mehr als einmal am Tag bestellt) die bestellende Filiale. Wenn Du Deine Collection abgearbeitest hast, vergleichst Du Deine Liste der Filialen mit der List-Variable der Besteller, und den nicht gefundenen Filialen sendest Du das "Du, Du !"-Mail.

HTH,
Bernhard
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: MadMetzger am 11.10.05 - 18:09:41
Stimmt eigentlich, ist ja doch ein bißchen einfacher bzw. sicherer weil das "Offenen Liste"-Dokument ja nur einmal da sein darf. Muss mir das morgen nochmal genau anschauen... aber die Idee hört sich doch besser an, als meine Idee.
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: MadMetzger am 12.10.05 - 08:40:39
Habe jetzt nochmal in Ruhe drüber nachgedacht und bin zu dem Ergebnis gekommen, dass ich es mit Bernhards Variante versuchen werde.

So weit so gut. Die Logik der Kontrolle über die "Liste" will ich an eine Klasse auslagern, die mir alle Operationen im Zusammenhang  mit den bestellenden bzw. nicht bestellenden Filialen zur Verfügung stellt. In dieser Klasse soll es eine Funktion verifyComplete geben, die zuerst einmal überprüft, ob schon alle Filialen bestellt haben (Ist noch für ein weiteres Feature gut). Dort bin ich so weit gekommen, dass ich die Bestellungen aller Filialen in eine Listvariable gepackt habe, mir ist nur nicht ganz klar, wie der Vergleich laufen soll, bzw. das Ausgeben der "Nichtbesteller". Habe bis dato noch nicht so häufig mit Listen unter Script gearbeitet.

EDIT: Noch eine kleine Nachfrage: Der Rückgabetyp einer Funktion kann keine List sein, oder irre ich mich da. Habe es gerade ausprobiert und es wurde mir ein Fehler angezeigt.

EDIT2:  Ich habe die Filialen in einem Setupdokument gespeichert, muss ich die Einträge auch in eine Listvariable packen, damit ich sinnvoll vergleichen kann?
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: koehlerbv am 12.10.05 - 16:34:24
Zu EDIT 1: Nein, List kann kein Rückgabewert eineer Function sein.

Zu EDIT 2: Nein, die Einträge musst Du nicht in eine Listvariable stecken. Du kannst ja ohne weiteres eine List-Variable mit einem Array vergleichen (besser: Du musst Dir für den Vergleich sowieso eigene Routinen schreiben). Wenn Du List-Variablen scheust, kannst Du stattdessen (aber mit mehr Aufwand) genausogut wiederum Arrays verwenden. Lists sind halt bequemer (aus meiner Sicht).

Bernhard
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: MadMetzger am 12.10.05 - 20:41:12
Bin heute nicht so richtig vorrangekommen, muss mich morgen weiter damit auseinander setzen...
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: flaite am 12.10.05 - 20:58:38
List sind auch nicht so die Raketenwissenschaft.
Die Designerhilfe ist da mehr als ausreichend.
Der Name ist ein bischen irreführend. Gemäss Datenstruktur Lehrbüchern ist das eine Map (in Java ist das auch so, aber die Datenstruktur-Lehrbücher verwenden auch Map).
Für manche Aufgaben macht das echt Sinn.
Ich hab auch keine Probleme sowas global zu deklarieren. Gerade wenn du mit Klassen arbeitest. Hab ich letzte Woche auch gemacht. Man kann ja eine List auch als eine Art Container-Klasse ansehen.
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: MadMetzger am 13.10.05 - 07:44:39
Danke Axel, der Hinweis mit einer Map könnte mich wesentlich weiterbringen... hatte zwar schon den Verdacht das eine List ähnlich einer Java Map ist, war mir aber nicht sicher.
Titel: Re: Nur ein Dokument mit bestimmter Maske darf vorhanden sein
Beitrag von: MadMetzger am 13.10.05 - 10:54:09
Jetzt habe ich es endlich hinbekommen... Arbeite mit zwei Lists, die ich miteinander vergleiche. Vorteil ist, dass ich in der List mit allen Filialen gleich die richtigen Empfänger habe, was ich für die Benachrichtigung ja brauche(Prinzip einer Map). Das hat die ganze Geschichte sehr vereinfacht!

Danke an Bernhard und Axel!