Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: chris2212 am 19.07.04 - 09:50:25
-
Hallo,
tolle Aufgabe zum Wochenbeginn und keine Lösung in Sicht
Wir haben eine Adress- und eine Dokumentendatenbank anhand einer Felddefinition muss geprüft werden ob die letzten 6 Monate oder
welcher Zeitraum auch immer in der Felddefinition steht ein Dokument zu der Adresse erstellt wurde.
Wenn z.b. die letzten 6 Monate kein Dokument zu einer Adresse erstellt wurde,
soll der Wert eines Feldes, das es noch nicht gibt, auf unqualified gesetzt werden, wenn innerhalb der letzten 6 Monate ein Dokument erstellt wurde, soll
der Wert auf qualified gesetzt werden.
Hat jemand eine Tipp für mich wie ich das lösen kann?
Die Prüfung muss autom. und wöchentlich erfolgen.
Für jede Unterstützung dankbar!!
Gruß
Chris
-
An sich ist das ja kein Akt. Zum Aufbau Eurer DB müsste man natürlich mehr wissen, daher nur grob:
- Collection der Adressdokumente erstellen und per Schleife abarbeiten
- Zu jedem Adressdokument zugehörige Dokumente in Collection holen
- Diese Collection per Schleife durchlaufen
- Ist ein Dokument jünger als Grenzwert -> Feld im Adressdokument auf "qualifiziert" setzen, Schleife beenden
- Wurde Collection ohne Treffer komplett durchlaufen -> Feld im Adressdokument auf "nicht qualifiziert" setzen.
Das Ganze in einem scheduled Agent. Ggf. die Zeitspanne in einem Setup-Dokument vorhalten für mehr Flexibilität.
HTH,
Bernhard
-
Hallo Bernhard,
und genau da hab ich meine Probleme.
Wie bekomme meine doc-Collection habe ich beisher "nur" über Aktionen
erstellt die über eine Schaltfläche gelaufen sind erstellt.
Ich denke das wird sich nicht 1:1 für auf einen Agenten übertragen lassen
der am Server läuft. Wie dann prüfe ob es in einer anderen Dstenbank
ein Dokument zur aktuell in der Collection "ausgewählten" Adresse gibt weis
ich genauso wenig wie ich ich ein Feld der dritten DB (Konfigurationsdatenbank)
auslesen kann in dem der Zeitraum angegeben ist.
Der Aufbau in der Adress-DB
ist so abgebildet.
Adresse (Hauptdokument)
-> Kontakt (Unterdokument)
Dokument-DB
in der Dok-DB gibt es zwei versteckte Ansichten die ich evtl. dafür
brauchen kann
DocByAdr-Key
Adr-DocID
>Dokumente (die direkt zur Adresse erstellt wurden)
DocBy-Kontakt
Kontaktname
> Dokumente die direkt zum Kontakt erstellt wurden
ist es sinnvoller der Agent in der Dokument-DB laufen zu lassen,
oder passt das wenn er in der Adressdatenbank läuft?
Danke & Gruß
Chris
-
Kannst Du uns bitte kurz sagen, wie gut Du Dich im Programmieren auskennst ? Kennst Du nur die Formel- Sprache, oder bist Du auch fit in LotusScript ?
Denn ohne Scritp wirst Du diese Aufgabe nicht bewältigen...
Grob sieht das dann so aus:
in der Adr.-Datenbank alle Dokumente durchlaufen...
entweder über alle Dokumente in der DB:
Set dc = db.AllDocuments
For i = 1 to dc.Count
...
Next
oder über eine Ansicht, die allen relevanten Dokumente beinhaltet:
set doc = viw.GetFirstDocument
while not doc is nothing
...
set doc = viw.GetNExtDocument( doc )
wend
in dem Teil mit ... suchst Du aus der Dokumentendatenbank die Dokumente, die zu Deiner Adresse gehören:
z.B. aus der Ansicht DocByAdr-Key
set docViw = docDB.GetView( "DocByAdr-Key" )
dim docDC as NotesDocumentCollection
set docDC = docViw.GetAlldocumentsByKey( doc.UniversalID )
und durchläufst diese collection dann wie koehlerbv das Skizziert hat...
So, das ist -denke ich- das maximum an Quellcode, dass Dir hier im Forum gepostet werden wird, denn alles was darüber hinausgeht, ist schon fast ne komplettlösung... und ich für meinen Teil verdiene mit solchen Lösungen mein Geld...
Hoffe, ich konnte Dir trotzdem helfen.
Tode
-
@All
danke für die Unterstützung!
Ich werde das jetzt mal in unserer Testumgebung
probieren, dann meld ich mich wieder....
Danke & Gruß
Chris