Autor Thema: Abgleich Dokumentenkollektion mit Feldinhalt  (Gelesen 1390 mal)

Offline geissbock

  • Aktives Mitglied
  • ***
  • Beiträge: 131
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Abgleich Dokumentenkollektion mit Feldinhalt
« am: 11.03.03 - 11:03:20 »
 ???
Hallo,
folgende Problemstellung:
Kunden können News aus bestimmten Kategorien buchen. Dies wird in einer Buchungsdatenbank festgehalten. Habe dort also x Kunden zur Kategorie y. In einer anderen Datenbank werden nun News-Dokumente importiert und anhand von DBlookup werden die entsprechenden Kunden zur Kategorie Y beim Import in ein Feld der News-Dokumente gezogen. An diese wird dann ein Newsletter verschickt, indem alle neuen Dokumente mit Doclink versehen zugestellt werden. Im Hintergrund wird ein Versanddokument angelegt, in dem dokumentiert wird, wleches Dokument an welche Kunden versendet wurde.
In den importierten News-Dokumenten befindet sich ein Knopf, mit dem die Kunden das Dokumente als gelesen abzeichnen sollen. Um Replizierkonflikte in den Dokumenten zu vermeiden, werden durch Betätigen des Knopfes im Hintergrund Abzeichnungsdokumente erstellt. Diese enthalten dann Informationen wer, wann welches Dokument gelesen hat.
Soweit ist das schon alles implementiert.Nun soll abgeprüft werden, ob ein Dokument bereits von allen abgezeichnet wurde oder nicht. Daraufhin soll sich ein Statusfeld im importierten News-Dokument auf "Abzeichnung komplett" ändern. Wöchentlich soll dann nachgesehen, welche Dokumente von welchen Kunden noch nicht abgezeichnet wurden und ein Erinnerungsmail kreiiert werden.
Die Frage ist nun wie und wo überprüfe ich, ob ein Dokument von allen abgezeichnet wurde. Ich den in dem Abzeichnungsbutton muß jeweils geprüft werden, ob diese Abzeichnung den Umlauf komplettiert. Also Abzeichnungsdokument anlegen, Kollektion aller Kunden bilden, die ein Dokument gelesen haben und diese Kollektion mit dem Feld in dem Dokument abgleichen, daß ja alle Kunden enthält. Aber wie stell ich das an? Bin für jede Hilfe dankbar.
Gruß Geissbock

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Abgleich Dokumentenkollektion mit Feldinhalt
« Antwort #1 am: 11.03.03 - 11:42:36 »
wie..ihr "zwingt" Eure "Kunden" zum Lesen, heißt...abzeichnen der Infos? Wow...ist das die Bundeswehr etwa? *roflmao*

aber egal...
zunächst ein Hinweis, daß es eine Abo Datenbank in R5 eingebaut schon gibt und die auch leicht anpassbar ist...

Auszug aus Help:

Formelfelder  

Formelfelder werden verwendet, um eine Abonnementliste zu füllen, die mit der Datenbank "Headlines.nsf" (Schlagzeilen) zusammenarbeitet. Die Schlagzeilendatenbank kann vom Fenster "Lesezeichen" des Notes Client geöffnet und als Homepage eines Notes Client verwendet werden. Diese Datenbank enthält die Funktion "Abonnements". Jeder Datenbankentwickler hat die Möglichkeit, eine Abonnement-Maske in eine Datenbank aufzunehmen. Wenn ein Benutzer eine Datenbank "abonniert" (durch Ausfüllen und Speichern der Abonnementmaske in der Datenbank), wird eine Server-Task ausgelöst, die den Benutzer benachrichtigt, wenn ein für ihn interessantes Dokument in dieser Datenbank gespeichert wird. Die Kriterien, nach denen der Server sucht, sind in einem Formelfeld auf der Abonnementmaske enthalten. Obwohl Benutzer die Abonnementmaske in der Datenbank ausfüllen, die sie abonnieren möchten, werden die Abonnement-Dokumente in den Schlagzeilendatenbanken auf den lokalen Clients der Benutzer gespeichert.
Sie können die vorgegebene Abonnementmaske verwenden, die sich in der Datenbank "Headlinese.ntf" befindet. Um die vorgegebene Maske zu verwenden, kopieren Sie sie, und fügen Sie sie in Ihre Datenbank ein. Die Abonnementmaske $Subscription befindet sich in der Datenbank "Headlines.nsf" oder "Headlines.ntf", die im Designer enthalten ist. Sie können die Abonnementmaske unverändert übernehmen oder an Ihre Anforderungen anpassen. Wenn Sie sie anpassen, müssen Sie auch das Formelfeld in Betracht ziehen. Das Formelfeld auf der $Subcription-Maske heißt $HLFormula und befindet sich im zweiten Register der Tabelle auf der rechten Seite der Maske. Das $HLFormula-Feld ist ein berechnetes Feld. Wenn das Formelfeld ein berechnetes Feld bleiben soll, schreiben Sie eine Formel, deren Auswertung eine Formel für eine Abonnementliste ergibt. Das Formelfeld muß eine Formel ergeben, mit der der Server die Abonnementkriterien des Benutzers abrufen kann.
Weiterhin können Sie für das Formelfeld auch die Option "Felder als Literale" im Register "Feld Info" der InfoBox "Eigenschaften: Feld" wählen. Wenn Sie die Option "Felder als Literale" wählen, programmieren Sie das Formelfeld so, daß es die eingegebene Formel akzeptiert, ohne sie zu kompilieren. Wenn Sie eine Formel in Worten ausdrücken, müssen die Feldreferenzen folgendermaßen lauten: Text, Textliste, Zahl, Zahlenliste, Datum, Datumsbereich oder Datumsliste. Wenn das referenzierte Feld ein anderer Feldtyp ist, wird es als Feldreferenz ausgelassen.
Folgendes Beispiel zeigt eine Formel eines Formelfelds, für das die Option "Felder als Literale" ausgewählt ist:
Select (Namen = TestNamen) & (Zahlen = TestNummern) & (Kategorien = TestKategorien)& (Daten = BspDaten)
Das aktuelle Dokument hat folgende Felder und Werte:
Feld   Wert
TestNamen   "CN=Sandra Müller/O=Acme" : "CN=Elke Meier/O=Acme"
TestNummern   1: 2: 3
TestKategorien   "München" : "Berlin" : "Frankfurt"
   
BspDaten   [26.3.97]:[10.08.98]:[15.3.99]
Das Formelfeld wird somit folgendermaßen ausgefüllt:
Select (Namen = "Sandra Müller/Acme" : "Elke Meier/Acme" ) & (Zahlen = 1 : 2 : 3) & (Kategorien = "München" : "Berlin" : "Frankfurt") & (Daten=[26.3.97]:[10.08.98]:[15.3.99]
Wenn Sie die berechnete Option wählen, muß sich aus der von Ihnen eingegebenen Formel eine andere Formel ergeben. Dadurch haben Sie die Möglichkeit, komplizierte Formeln zu optimieren, bevor sie gespeichert werden. Nach der Auswertung der Formel wird die sich daraus ergebende Formel gespeichert.
Wenn die berechnete Formel ungültig ist, wird das Feld mit einem fehlerhaften Wert gespeichert. Es kann vorkommen, daß der Benutzer das Dokument nicht mehr schließen kann. Um zwischen einer erfolgreichen und fehlgeschlagenen Formelberechnung zu unterscheiden, sollten Sie im QuerySave-Ereignis testen, ob das Formelfeld tatsächlich eine Formel enthält. Ist dies nicht der Fall, ergab die Formelberechung eine ungültige Formel.
Ein berechnetes Formelfeld enthält beispielsweise folgende Formel:
 TestNamen := "\"" + @Implode( TestNamen; "\" : \"") + "\"";
 TestNummern := @Implode( @Text(TestNummern); " : ");
 TestKategorien := "\"" + @Implode( TestKategorien; "\" : \"") + "\"";
 "Select (Namen = " + TestNamen + ") & (Zahlen = " + TestNummern + ") & (Kategorien = " + TestKategorien + ")"

Das aktuelle Dokument hat folgende Felder und Werte:
Feld   Wert
TestNamen   "CN=Sandra Müller/O=Acme" : "CN=Elke Meier/O=Acme"
TestNummern   1: 2: 3
TestKategorien   "München" : "Berlin" : "Frankfurt"
Daraus ergibt sich folgende Formel:
Select (Namen = "Sandra Müller/Acme" : "Elke Meier/Acme" ) & (Zahlen = 1 : 2 : 3) &(Kategorien = "München" : "Berlin" : "Frankfurt")
Siehe auch
Abonnements aktivieren

----------------------------------------------------

Abonnements aktivieren  

Die Funktionalität von Abonnements ist auf die Schlagzeilen-Datenbank abgestimmt. Mit Hilfe der Schlagzeilen-Datenbank können Benutzer sich über aktuelle Themen innerhalb der Firma und im Web informieren. Über die Schlagzeilen-Datenbank können Benutzer für sie relevante Datenbanken abonnieren. Sie werden dann benachrichtigt, sobald ein Artikel dem Abonnementprofil entspricht. Beim Gestalten einer Datenbank können Sie diese so einrichten, daß Benutzer sie abonnieren können. Im folgenden wird eine Liste aller wichtigen Gesichtspunkte aufgeführt, die berücksichtigt werden müssen, um das Abonnieren einer Datenbank zu ermöglichen.
Die Datenbank muß sich auf einem Server befinden, auf dem die Überwachung eines Abonnements möglich ist. Der Domino Administrator muß Abonnements im Serverdokument aktivieren. Weitere Informationen über das Aktivieren von Abonnements auf Serverebene finden Sie unter Verwaltung von Domino Systemen.
In der Datenbank muß die Überwachung von Schlagzeilen möglich sein. Diese Option wird auf dem Register "Erweitert"  der InfoBox "Eigenschaften: Datenbank" aktiviert. Diese Option ist standardmäßig aktiviert. Weitere Informationen über Leistungsprobleme mit Schlagzeilenüberwachung finden Sie unter "Überwachung von Schlagzeilen nicht zulassen" in Verwaltung von Domino Datenbanken.
In der Datenbank muß eine Vorgabeansicht definiert sein. Weitere Informationen zur Definition einer Vorgabeansicht finden Sie unter "Vorgabeansichten".
(Optional) Die Datenbank kann eine Abonnement-Maske enthalten. Sie können entweder eine solche Maske selbst gestalten oder aus der Datenbank "headline.nsf" kopieren, die mit dem Notes Client installiert wird. Informationen zum Kopieren der Abonnement-Maske von der Schlagzeilendatenbank in Ihre Datenbank finden Sie unter "So kopieren Sie ein einzelnes Gestaltungselement". Wenn Sie ein Abonnement-Maske von Grund auf neu erstellen, müssen Sie ein Formelfeld verwenden. Weitere Informationen finden Sie unter "Formelfelder".
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

Offline geissbock

  • Aktives Mitglied
  • ***
  • Beiträge: 131
  • Geschlecht: Männlich
  • Ich liebe dieses Forum!
Re:Abgleich Dokumentenkollektion mit Feldinhalt
« Antwort #2 am: 11.03.03 - 13:58:49 »
Hallo,
, nee die Bundeswehr sind wir nicht und die Beschreibung ist zwar recht schön, aber bei uns ist das ganze ja bereits anders implementiert und ich brauch jetzt Hilfe wie ich ne Dokumentkollektion mit dem Feldstring abgleichen kann.
Gruß Geissbock

Offline Rob Green

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.651
  • Geschlecht: Männlich
    • Meipor
Re:Abgleich Dokumentenkollektion mit Feldinhalt
« Antwort #3 am: 11.03.03 - 14:41:37 »
folgende Elemente benötigst Du dazu:

mehrere Werte aus einem Feld auszulesen zB mit
Dim doc As NotesDocument
'...set value of doc...
Dim item As NotesItem
Set item = doc.GetFirstItem( "Subject" )
Forall v In item.Values
  Messagebox( v )
End Forall

um durch die Docs aus einer View zu gehen...
Dim db As New NotesDatabase _
( "Ankara", "current\projects.nsf" )
Dim view As NotesView
Dim doc As NotesDocument
Set view = db.GetView( "Open\By Due Date" )
Set doc = view.GetFirstDocument
While Not ( doc Is Nothing )
  If doc.LastModified < Today Then
    Call doc.Send( True, doc.Authors )
  End If
  Set doc = view.GetNextDocument( doc )
Wend

Und den Vergleich, wer was gelesen hat, das hat Dir schon mal Ata mit dem Array beigebracht.

Dat wars doch schon,  oder?
Vielleicht verdirbt Geld wirklich den Charakter.
Auf keinen Fall aber macht Mangel an Geld ihn besser.
(John Steinbeck)

Meiporblog: http://www.meipor.de/blog
allg. Unternehmerblog: http://www.m-e-x.de/blog

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz