Domino 9 und frühere Versionen > ND7: Entwicklung

ComputeWithForm

(1/4) > >>

nikon:
Hallo zusammen,

ich habe ein merkwürdiges(?) Problem:

Ich hatte vor, meine über nun lange Zeit gewachsenen Daten einer DB durch einen Agent refreshen bzw. neu validieren zu lassen. Da mir im Backend wohl der ComputeWithForm als einzige Möglichkeit bleibt, habe ich einmal einen Scriptagenten geschrieben, der mit besagter Methode alle Dokumente durchläuft. Per ErrorHandler schreibe ich dann die aufgetretenen Fehler in die Dokumente (nur erstmal zu Testzwecken).

Jetzt habe ich allerdings zum einen das Problem, dass er ausschließlich einen "4000 User-defined Error" in die betroffenen Dokumente schreibt. Wenn ich den ErrorHandler temporär deaktiviere, bekomme ich einen "Notes error: Eine Ansicht mit diesem Namen wurde in der angegebenen Datenbank nicht gefunden". Mich wundert dass diese eigentlich öfter auftretende Fehlermeldung keinen eigenen Fehlercode hat aber nungut. Ist auch eigentlich nicht weiter tragisch, denn es geht mir ja hauptsächlich darum, dass überhaupt ein Fehler existent ist. Das Problem kommt eigentlich erst, wenn ich versuche die markierten Dokumente zu bereinigen. Augenscheinlich ist nämlich gar kein Fehler da. Ich kann ein betroffenes Dok öffnen, refreshen, speichern, schließen... alles kein Problem. Wo kommt denn da der Fehler her?

Hat einer nen Tip für mich bitte?

Gruß Dirk

Axel:
Das hört sich in der Tat etwas merkwürdig an.

Kommt der Fehler bei allen Dokumenten? Hast du in deiner Datenbank eine Vorgabeansicht definiert? Wie sieht denn dein Code zum Refreshen aus?

Axel

koehlerbv:
ComputeWithForm ist zahlreichen Einschränkungen unterworfen und eigentlich eher ein Backend-Instrument (auch wenn etwas anderes impliziert wird). Suche mal hier im Forum nach dieser Methode ...

Ich verwende derzeit ComputeWithForm überhaupt nicht mehr. Um die Schwierigkeiten zu verdeutlichen: Lege mal in einer Mail-DB eines neues Dokument an und lasse es mit ComputeWithForm fertig berechnen. Ein Code, der das fehlerfrei aushält, würde mich auch sehr interessieren.

Bernhard

nikon:
@Axel: Schön dass Du das auch so siehst. ;)
Nein, der Fehler tritt auch nicht bei allen Dokumenten auf. In der Datenbank sind knapp 2000 Dokumente und nur ~400 sind betroffen.
Ja, eine Vorgabeansicht ist definiert.
Gut also der Code ist eigentlich denkbar unspektakulär, aber ich stell ihn mal gerade rein.


--- Code: ---Function UpdateAll() As Boolean

On Error Goto ErrorHandler

Dim i As Long
Dim doc As NotesDocument
Dim acol As NotesDocumentCollection

Set acol = cdb.AllDocuments
If acol.Count = 0 Then Exit Function

For i = 1 To acol.Count

Set doc = acol.GetNthDocument( i )
Call doc.ComputeWithForm( True, True )
Call doc.Save( True, False, True )

Next

UpdateAll = True

Exit Function

ErrorHandler:

doc.updateprob = Cstr( Err ) + " " + Error( Err )
Resume Next

End Function

--- Ende Code ---

@Bernhard: Was heißt das ist eher ein Backend-Instrument? Ich suche doch genau ein solches... ich habe den Verdacht, als hätten wir uns misverstanden. ;)


Gruß Dirk

koehlerbv:
Backend-Instrument schon - aber es versucht Sachen aus dem Frontend zu erledigen. Wenn Du zum Beispiel ein Feld "computed for display" hast und auf Basis dieses Wertes in einem anderen Feld etwas berechnen musst, dann fällt das System "ComputeWithForm" schon auf die Schnauze.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln