Domino 9 und frühere Versionen > ND8: Entwicklung

Probleme mit Agent

<< < (2/3) > >>

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