Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: pur_berger am 07.10.08 - 00:38:15
-
Hatte gehofft dies hiermit bewerkstelligen zu können :
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim collection As NotesViewEntryCollection
Dim doc As NotesDocument
Set db=session.currentDatabase
Set view = db.GetView("_People")
Set collection = view.AllEntries
Set entry = collection.GetFirstEntry()
Do Until doc Is Nothing
Call doc.ComputeWithForm(False,False)
Call doc.save(False,False)
Set entry = collection.GetNextEntry(entry)
Loop
End Sub
Nur macht der nicht was er sollte - nämlich alle Dokumente in der View "_People" refreshen ...
Hat wer eine Idee was da falsch ist ?
Sollte als scheduled Agent laufen
-
... Nur macht der nicht was er sollte ...
Gibt es - nur so rein zufällig - noch eine etwas aussagekräftigere Beschreibung dazu, was nicht funktioniert? Wenigstens so ein ganz klein wenig mehr Informationen?
Was CompueWithForm nicht kann, ist auch bekannt? Könnte noch bekannt gegeben werden, was nicht korrekt berechnet wird? Nach einem ansprechbaren Namen will ich ja gar nicht mehr fragen (auch nicht anlässlich des 100. Postings des Fragestellers) ...
Bernhard
-
Oh Bernhard da hast du dich etwas in die Irre leiten lassen, denn dass Computwithform wird nie ausgeführt, da der Programierer vergessen hat das doc überhaupt zu setzen. In allen anderen Punkten gebe ich dir natürlich recht. Also nach jedem Setzen des Entrys einfach ein getDocument auf das Entry anwenden und in Doc speichern. Man kann natürlich auch gleich eine NotesDocumentCollection verwenden, was den Umweg über die Viewentry erspart.
Grüße
Ralf
-
Option declare einschalten?
-
Ups - sorry (100 Einträge .. na - ned wirklich oder ...?)
Der Agent selektiert (jetzt) alle Documenete aus der Datenbank und nicht nur die aus der View.
@ koehlerbv
Ahm - sorry wenn ich nicht folgen kann - was meinst Du mit ansprechbarem Namen?
Also - Frage umformuliert - wenn ich eine Agent brauche der scheduled alle Doukumente aus einer View refreshed - was muß man tun?
Ist mir ja grundsätzlich unbegreiflich - das so etwas immer auf so unglaubliche Probleme stößt (ja - ich hab auch danach gegoogelt) - und nachdem @Funktonen leider bei einem scheduled Agent nicht laufen bleibt nur Scripting - und das ist und bleibt auch nach 100 Postings recht unklar ...
Der usrprüngliche Agent ist aus dem Domino Supportforum:
und zwar von hier:
http://www-01.ibm.com/support/docview.wss?rs=0&uid=swg21092630
nach hier:
http://www-01.ibm.com/support/docview.wss?rs=0&uid=swg21099014
Nur - will ich ja nicht alle sondern nur die in einer bestimmten View angezeigten Dokumente refreshen.
Ich versuche meine Problechen eh selber zu lösen - aber - ich bin eben kein Programmierer.
-
Du solltest Dir nochmal den Beitrag von Ralf durchlesen. Er spricht dort das doc an. Danach schau Dir nochmal Deinen Agent an und vergleiche in mit dem von IBM.
Und Dein ansprechbarer Name (was ist daran nicht zu verstehen), ist der wirklich pur_berger??
Also meiner ist Boris!!
-
Was Bernhard sagen wollte ist, daß unter deinen Postings ein echter Name fehlt. Du wirst ja vermutlich mit Vornamen nicht "pur_berger" heißen. Das ist natürlich keine Pflicht, aber gerne gesehen hier im Forum.
Zu deinem Problem :
Ralf hat schon den Hinweis gegeben, der dir weiterhilft. Erstens ist "Entry" nicht explizit deklariert (Dim). Zweitens weist Du "doc" nichts zu, daher endet die Do-While-Schleife sofort.
Du müßtest also noch mindestens ein
Set doc = entry.Document
einbauen und dann natürlich dafür sorgen, daß doc jeweils nach der Verarbeitung anhand des neuen Entry neu befüllt wird.
Und der Hinweis auf "Option Declare" ist auch hilfreich, denn wenn Du das setzt, bekommst Du direkt Hinweise, wenn z.B. die Deklarationen fehlen.
-
@Kadlec
Ah - Na - pur kommt von Purchase (die eigentliche Funktion in der ich in der Firma angefangen habe) und ist eigentlich immer der von mir verwendete Forenname. Sorry - war mir nicht bewußt das es hier dazugehört den tatsächlichen Namen zu nennen - aber kein Problem - Markus - ist ja kein Geheimnis
Die Nachfrage war eigentlich nur weil ich mir nicht sicher war ob Du den ansprechbaren Namen im Bezug auf den Agent oder die Person gemeint hast.
Ja - nein - die Beiträge habe ich eh gelesen - ich wollte der Höflichkeit halber nur die Frage korrekt formulieren
Markus
-
Hallo Markus!
Es tut mir leid, aber ich kann dir in dem Fall nicht helfen, da ich es nicht verantworten kann jemand script code zu geben, der keine Ahnung von Scriptprogrammierung hat. Dir ist schon klar, dass mit einem kleinen Fehler in script gleich mal eine ganze Datenbank total zerstört werden kann? Deshalb die Bitte wenn Ihr selber keine Lotus script Skills habt dann lasst euch von einem Profi helfen. Oder meiner Meinung nach die bessere Methode mache einen Lotus script Kurs. Das Problem ist nämlich so trivial, dass du es nach meinem Post auf jeden Fall finden hättest müssen.
Das soll bitte nicht überheblich klingen, aber ich habe schon Leuten ein script Snippet geschickt, dass sie nicht verstanden haben und mich dann furchtbar geschimpft haben weil es nicht den gewünschten sondern sogar negative Effekte gehabt hat.
Grüße
Ralf
-
Anbei habe ich Deinen Code so geändert, dass nur Dokumente in der Ansicht "People" aktualisiert werden.
Sub Initialize
Dim session As New NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Set db=session.currentDatabase
Set view = db.GetView("People")
Set doc = view.GetFirstDocument
Do While not (doc is nothing)
Call doc.ComputeWithForm(False,False)
Call doc.save(False,False)
Set doc = view.GetNextDocument(doc)
Loop
End Sub
Andreas
-
Ist klar - Danke - ich erwarte auch nicht das man die Probleme anderer löst. Das Problem vor dem (wahrscheinlich mehr als die hälfte) der Admins stehen ist das einfach erwarted wird das etwas funktioniert - ohne das man entsprechdnes Training bekommt. Und scripten über Learning bei doing - na - ned wirklich.
Ich denke das ist falsch angekommen - ich habe die Hinweise schon verstanden - und in den anderen Posting nicht auf diesen Bezug genommen.
Als - merci vielmals :)
Danke,
Markus
-
@Andreas
Danke :)
LG Markus