Domino 9 und frühere Versionen > ND8: Entwicklung
Probleme mit Agent
manderson:
Aha und wie mache ich das genau ???
;D
Glombi:
Du musst die View so sortieren, dass die Dokumente in der richtigen Reihenfolge sind.
Und dann im Code nit GetAllDocumentsByKey sondern
Set notesViewEntryCollection = notesView.GetAllEntriesByKey( keyArray [, exactMatch% ] )
verwenden.
manderson:
hmm gibt es noch einen anderen Weg, bekomme es irgedwie nicht hin ..... :'(
ascabg:
Hallo,
Was bekommst Du nicht hin?
Glombi (Andreas) hat doch schon die grundlegenden Code-Stuecke geschrieben.
Und es ist numal sehr schwierig zu helfen, wenn man nicht weiss, wo das Problem liegt.
Andreas
manderson:
Okay habe mein script auf die GetAllEntriesByKey methode umgestellt, damit die ausgewählten Dokumente wie in der Ansicht ausgegeben werden. Klappt auch fast ;)
Die Werte aus dem ersten Dokument für die ersten Einträge, für meine xml, schreibt er auch brav in die XML datei. Doch irgendwie springt er nicht zum nächsten dokument mit Getnextentry.....
Hier mal der Anfang
--- Code: ---Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim vc As NotesViewEntryCollection
Dim entry As NotesViewEntry
Dim stream As NotesStream
Dim pathname As String
Dim vs As String
pathname = "c:\agentenfiles\"
Set session = New NotesSession
Set db = session.CurrentDatabase
Set view = db.GetView("all")
Set vc = view.GetAllEntriesByKey("meinKEY")
Set entry = vc.GetFirstEntry
Set doc=entry.Document
Set stream = session.CreateStream
pathname = pathname & "test.txt"
If Dir$ (pathname) <> "" Then
Kill pathname
End If
If Not stream.Open(pathname, "utf-8") Then
MessageBox pathname,, "Open failed"
Exit Sub
End If
If stream.Bytes <> 0 Then
MessageBox pathname,, "File already exists and has content"
Exit Sub
End If
--- Ende Code ---
Folgendes schreibt er mir auch in die xml datei, sprich er greift also auf das erste Dokument zu.
--- Code: ---Call stream.Writetext("<?xml version=""1.0"" encoding=""UTF-8""?>", EOL_CRLF)
Call stream.Writetext("<machinelist>", EOL_CRLF)
Call stream.Writetext(" <machine>", EOL_CRLF)
Call stream.Writetext(" <machineID>",)
Call stream.WriteText(doc.GetItemValue("machineID")(0),)
Call stream.Writetext("</machineid>", EOL_CRLF)
Call stream.Writetext(" <machineManufacturer>",)
Call stream.WriteText(doc.GetItemValue("machineManufacturer")(0),)
Call stream.Writetext("</machineManufacturer>", EOL_CRLF)
Call stream.Writetext(" <machineName>",)
Call stream.WriteText(doc.GetItemValue("machineName")(0),)
Call stream.Writetext("</machineName>", EOL_CRLF)
--- Ende Code ---
Doch beim diesen Block kommt nichts mehr,
--- Code: ---Do until ( entry Is Nothing )
If doc.Getitemvalue("highlight_de")(0) >"" Then
Call stream.Writetext(" <highlight>", EOL_CRLF)
Call stream.Writetext(" <de>",)
Call stream.WriteText(doc.GetItemValue("highlight_de")(0),)
Call stream.Writetext("</de>", EOL_CRLF)
Call stream.Writetext(" <en>",)
Call stream.WriteText(doc.GetItemValue("highlight_en")(0),)
Call stream.Writetext("</en>", EOL_CRLF)
Call stream.Writetext(" </highlight>", EOL_CRLF)
End If
Set entry = vc.Getnextentry( entry )
loop
--- Ende Code ---
Auch als While Block funktioniert das ganze nicht.
--- Code: ---While Not ( entry Is Nothing )
If doc.Getitemvalue("highlight_de")(0) >"" Then
Call stream.Writetext(" <highlight>", EOL_CRLF)
Call stream.Writetext(" <de>",)
Call stream.WriteText(doc.GetItemValue("highlight_de")(0),)
Call stream.Writetext("</de>", EOL_CRLF)
Call stream.Writetext(" <en>",)
Call stream.WriteText(doc.GetItemValue("highlight_en")(0),)
Call stream.Writetext("</en>", EOL_CRLF)
Call stream.Writetext(" </highlight>", EOL_CRLF)
End If
Set entry = vc.Getnextentry( entry )
Wend
--- Ende Code ---
Irgendwie springt er nicht zum nächsten Dokument. Dabei sind die Daten/Werte im "2" Dokument vorhanden und in der Ansicht (all) ist auch die Reihenfolge stimmig...
was mache ich also verkehrt?
:-:
Navigation
[0] Themen-Index
[#] Nächste Seite
[*] Vorherige Sete
Zur normalen Ansicht wechseln