Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: chris2212 am 30.06.03 - 10:26:01
-
Hallo,
ich möchte in einer WF-Datenbank den Abteilungsleitern die Möglichkeit geben
eine Urlaubsvertretung zu bestimmen. Ich wolltes das mit einem Profile-Document
umsetzen.
Im Dokument möchte ich drei Felder anzeigen deren Inhalt in versteckte Feldlisten geschrieben wird.
Feld1:
Name-Stellvertreter:
Feld2:
Vertretung vom: 01.07.2003
Feld3:
Vertretung bis: 11.07.2003
Der nächste Eintrag soll dem jeweiligen versteckten Feld hinzugefügt werden.
Ein Agent der jeden Tag (Nachts) in der Datenbank läuft soll die Werte auslesen und in der DB-ACL einen entsprechenden Eintrag für den Stellvertreter machen. Wenn die Zeit für den Stellvertreter "abgelaufen" ist, soll der Agent den ACL-Eintrag und den Wert aus der Liste löschen.
Frage.... ist das so überhaupt möglich, wenn ja kann mir jemand helfen wie ich die Werte entsprechend an die bereits vorhandenen Einträge hinzufüge und wie ich eine "Beziehung" zu den drei Listen herstellen kann.
Für jeden Tip dankbar
Danke & Gruß
Chris
-
Prinzipiell ist das möglich, eine kleine Frage kannst du Lotus Script?
Grüße
Ralf
-
noch nicht besonders gut, warum....?
-
Weil ich der Meinung bin, dass man das am besten in Lotus Script macht, vor allem die ACL Geschichte, das andere wird man mit der Formelsprache möglicherweise auch hinbringen, ich würde aber auch hier Lotus script bevorzugen.
Wenn du willst, kann ich dir in der Mittagspause schnell ein Script für das hinzufügen von Werten in MultiValue Fields posten?
-
...ich verwende bisher sehr wenig @Befehle, da ich irgendwann mal mit VB gearbeitet habe fällt mir das Arbeiten mit LS nicht so schwer,... es sind halt immer wieder mal Sachen dabei wo mir der richtige Ansatz fehlt... oder ob es überhaupt
möglich ist...
Das wäre super wenn Du mir das posten könntest !!
DANKE !!
Gruß
Chris
-
Hier der Code um den Hidden Feldern die neuen werte anzuhängen.
Sub Click(Source As Button)
Dim ws As New NotesUIWorkspace
Dim doc As NotesDocument
Dim item As NotesItem
Set doc=ws.CurrentDocument.Document
Set item=doc.GetFirstItem("Test1hidden")
item.AppendToTextList(doc.Test1(0))
Set item=doc.GetFirstItem("Test2hidden")
item.AppendToTextList(doc.Test2(0))
Set item=doc.GetFirstItem("Test3hidden")
item.AppendToTextList(doc.Test3(0))
End Sub
Ich hoffe das nützt dir etwas. Bezüglich der ACL Geschichte musst du die Klasse NotesAcl verwenden.
Grüße
Ralf
-
...soweit funktioniert es.
Aber,
ich habe ja noch einen / zwei Agenten die tägl.
in der DB laufen sollen.
Wenn ich z.B. den Agenten für das hinzufügen von Stellvertretern
in der ACL nehme... Der Agent muss prüfen ob es für ihn einen neuen
Eintrag gibt, wenn ja muss er den Namen aus der Liste auslesen und in die ACL eintragen. Das Eintragen von Namen in der ACL hab ich schon.. da nach Ablauf der Vertretung die Einträge aus der Liste wieder gelöscht werden sollen, muss dem Agent irgendwie "erklären" das es sich um einen neuen Eintrag handelt oder um einen Eintrag der bereits zur ACL hinzugefügt wurde.
Beim Agent der die ACL Einträge wieder löscht habe ich auch noch ein Problem,
der Agent muss z.B. wenn eine Vertretung ab 30.06.2003 ungültig ist den richtigen Namen aus der Liste auslesen und anschl. aus der ACL löschen....
Wie gesagt der Code zum hinzufügen von Werten funktioniert !! DANKE !!
Kannst Du mir beim erstellen bzw. beim "richtigen" auslesen der List-Werte noch helfen?
Danke & Gruß
Chris
-
Wenn ich den Thread bis hierher richtig gelesen habe, dann brauchst Du folgendes :
forall a in doc.Feldname
--> Hier kannst Du jetzt mit dem Wert a (=jeweils ein Eintrag aus dem Array des Feldes) irgendetwas nach Deinem Gutdünken machen
end forall
Meff
-
Ja, soweit hab ich es, aber mein Problem ist
ich prüfe mit IF ob im Feld2(Datum von) ein Wert gleich
Today() vorhanden ist, wenn ja dann muss/soll der Agent
den passenden Eintrag aus Feld1(Name) auslesen.
Mein "Problem" ist wie bekomme ich den richtigen Eintrag aus dem ersten Feld.
Gruß
Christian
-
Hi Christian,
wie ich schon sagten
forall a in doc.Feldname
--> Hier kannst Du jetzt mit dem Wert a (=jeweils ein Eintrag aus dem Array des Feldes) irgendetwas nach Deinem Gutdünken machen
end forall
Du läufst über die Liste aus dem Feld "Name", a gibt Dir immer den jeweiligen Listeneintrag wieder. Wenn a = der Name den Du suchst, dann machst Du einfach weiter (z.B. diesen Namen aus der ACL löschen) und verlässt anschliessend die Forall Schleife.
Meff
-
Hi,
jetzt passt es ;D
;D Danke @All für die Unterstützung ;D
Gruß
Christian