Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: rasacani am 27.01.10 - 10:22:19
-
Hallo
versuch mich nach langer Zeit mal wieder mit Lotus Skript. ???
Ich möchte Daten aus einer View exportieren und ein Kennzeichen
in der DB setzen.
Mein Grundskript des Agenten sieht folgendermaßen aus:
Dim s As NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim VEC As NotesViewEntryCollection
Dim ve As NotesViewEntry
Dim doc As NotesDocument
Dim fileName As String
Dim VsNr As String
Set s = New NotesSession
Set db = s.CurrentDatabase
Set view =db.getview("AllApplicationsByNameExpSAP")
If Not(view.EntryCount = 0) Then
Set VEC = view.AllEntries
Set ve = VEC.GetFirstEntry()
fileName = "\\aescom06\e$\Domino\data\transferdaten\vac_export.txt"
Open fileName For Output Access Write As #1
Nummer = Nummer
While Not (ve Is Nothing)
Set doc = ve.Document
' Call doc.ReplaceItemValue("VRPrintedTag", Today)
' Call doc.ReplaceItemValue("VRPrinted", "+")
Print #1, "???"
Set ve = VEC.getNextEntry(ve)
Wend
Close #1
End If
In der letzen Schleife bekomme ich die Ausgabe der Sätze nicht hin.
Hier kommt nichts raus bzw Lotus meckert schon beim speichern des Agenten.
Die Datei kann aber beschrieben werden
Reicht Call doc.ReplaceItemValue("VRPrintedTag", Today)
Call doc.ReplaceItemValue("VRPrinted", "+")
aus um in den Dokumenten der Datenbank die Kennzeichen zu speichern,
oder muß ich dort noch tätig werden?
Ich hab es mit der DesignerHilfe probiert bin jetzt aber noch mehr verwirrt.
Gruß Rainer
-
Hallo,
Was genau fuer eine Meldung bekommst Du denn?
Und was bedeutet beim speichern des Agenten?
Andreas
-
Mir fallen auf Anhieb vier Dinge auf:
- Nummer ist nicht deklariert (das ist auch die Fehlermeldung, die man bitte gleich mit ins Posting schreiben!)
- Du kannst nicht ein FileHandle Deiner Wahl (und dann auch noch #1) verwenden - der könnte schon belegt sein. Verwende FreeFile
- Open For Output reicht, das Access Write gehört da nicht hin
- Du solltest nach Setzen des Flags das Dokument auch speichern, sonst verpufft das!
Bernhard
-
Hallo
@Andreas
wenn ich die Ausgabe im Agenten auf Print #1, doc ändere
kommt (Type mismatch on: DOC)
Was muß ich angeben um die Felder in der View auszugeben?
Ich habe mein Skript in einem Agenten und muß nach Änderungen
im Skript speichern um den Agenten laufen zu lassen.
@Bernhard
Ich habe den code aus einem anderem Skript kopieret, dort ist
auch nur folghendes hinterlegt:
Nummer = Nummer
Write #1, doc.Nummer(0)
wobei ich hier (0) nicht verstehe wenn alle dokumente gedruckt
werden sollen muß die Schleife doch hochzählen.
Beim FileHandle #1 seh ich heine Probleme wenn #1 sich innerhalb
der Datenbank befindet. Bei 5 Dokumenten und Print #1, "test"
habe ich auch 5 mal "test" in der Datei stehen.
"Access Write " habe ich entfernt, auch wenn ich hier denn Sinn nicht
verstehe. Kann sein das ich die aus einem 5 er Buch habe und bei 8er
Version nicht mehr gebraucht wird.
Habe ich es richtig verstanden, daß hinter den noch auskommentierten
Call doc.ReplaceItemValue("VRPrinted", "+")
Call doc.save(True,True) fehlt?
Gruß Rainer
-
doc.Nummer (0): Das bezieht sich auf das erste Element des Items im jeweiligen Dokument - Du hast da also etwas ganz grundsätzlich nicht verstanden.
Gleiches gilt für den FileHandle.
Du solltest Dich erstmal gründlich mit der Doku beschäftigen und Dir die wichtigsten Basics aneignen.
Bernhard
-
Um die Sachen etwas zu klaeren.
Felder in einer View sind Felder eines Dokumente bzw. eine Zusammensetzung aus mehreren Felden des Dokumentes.
Felder eines Dokumentes bekommst Du mittels doc.Feldname(0), sofern es sich nicht um ein Mehrfachfeld handelt.
Die angezeigten Daten aus der View bekommts Du mittels doc.ColumnValues(x).
(wobei das x fuer die betreffende Spalte in der Ansicht steht)
Beim FileHandle kannst Du, wie Bernhard schon angedeutet, sehr schnell Probleme bekommen.
Daher solltest Du bei solchen Aktionen dir immer das naechste freie Handle geben lassen
Nummer = FreeFile
Habe ich es richtig verstanden, daß hinter den noch auskommentierten
Call doc.ReplaceItemValue("VRPrinted", "+")
Call doc.save(True,True) fehlt?
Ja. Du hast es richtg verstanden.
Andreas