FOR Loop not initialized - Ja, wie denn nun??

  • Mahlzeit allerseits!


    In einem Agenten mit mehreren Subs frage ich zwischendurch die Folder Referenzen ab:
    Forall frefs In doc.FolderReferences


    'mach irgendwas
    End Forall
    Dummerweise spuckt mir der Agent ständig Fehler 90 (FOR Loop not initialized) aus. Also gut, dann schreib ich eben in die (Declarations) ein Dim frefs() As String und gut ist, dachte ich. Nix da, immer noch Fehler 90. Ein simples Dim frefs as Variant tut auch nicht.
    Dann Dim-me ich frefs eben in der Sub, dachte ich mir. Aber wieder getäuscht: in der Fehlerzeile im Designer steht dann sofort "Agent: Sub: Zeile: FORALL alias variable was previously declared: FREFS"


    So, bin ich nun zu glatt dafür, oder will der mich einfach nur ärgern?


    greetz
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Wie wäre es wenn du mal kontrollierst ob doc.FolderReferences überhaupt inhalt hat, weil wenn der Nothing ist, dann ist der forloop nicht möglich...
    Und dazu darf mann die variabele von einen Forall loop NIE definieren, das geht schief IMMER..

  • Moijns!


    Doc.FolderReferences haben bei einigen Dokumenten Inhalt, bei anderen nicht. Bei den Dokumenten, wo die Refs kein Inhalt haben, wird die Schleife gar nicht erst ausgeführt. Nur bei den Dokumenten mit Inhalt, da fällt der Agent auf die Nase. Z.B. Kalenderdokumente, da sind die Refs leer, die werden schön abgearbeitet. Nur bei "normalen" Mails, da hakt es dann...


    greetz
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hi,


    ich hab's gerade mal bei mir ausprobiert und bekomme immer die Meldung


    "Folder References are not enabled on this Database"


    Ich dachte erst, das liegt an meiner Test-DB - aber auch in meiner Mail-DB kommt die gleiche Meldung. Muß ich noch irgendwo etwas "scharfschalten" ???


    EDIT: hab's gerade in der Hilfe gefunden - teste weiter /EDIT

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Hi,


    so, jetzt läufts bei mir auch und zwar wie erwartet. Ich habe es unter R5 getestet.
    Nur ein kleines "Problem" ist mir aufgefallen: Bei dem nachträglichen Aktivieren der FolderReferenzen tauchen die bereits verschobenen Dokumente noch nicht in der FolderRefInfo-Ansicht auf.

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Die FolderReferences werden erst nach dem Aktivieren der DB-Eigenschaft gefüllt. Alles was vorher war ist da nicht enthalten. Notfalls ein Script schreiben das mittels eines Hilfsordners alle anderen Ordner kurz leert und wieder befüllt.

  • Zitat


    Ronka schrieb:
    weil wenn der Nothing ist, dann ist der forloop nicht möglich...


    Auf Nothing kann ich nicht prüfen, das gibt mir ein Type mismatch

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Jetzt werd ich bald bekloppt. Im Agent steht das hier:

    Code
    If db.FolderReferencesEnabled Then
       If Not Isempty(doc.FolderReferences) Then
          Forall frefs In doc.FolderReferences
             If Len(frefs) > 0 Then
                Call NewDoc.PutInFolder(Cstr(frefs),True)
             End If					
          End Forall
       End If
    End If


    Wie gesagt: es gibt Dokumente mit Folder References und Dokumente ohne. Die Dokumente ohne Referenzen werden anständig behandelt. Sobald der Agent auf ein Dokument stößt, das Referenzen hat, steigt er aus mit Fehler 90 in der Zeile mit der ForAll Loop.
    Was ist falsch daran??


    greetz
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • jupp

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hi,


    hier mal mein Testcode


    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Jetzt hab ich das soweit aufgebohrt, dass er mir wirklich jeden Fehler rausprintet. Ich werd echt gleich zum Affen:



    Zeile 79 ist If Isarray(doc.FolderReferences) Then . Was ist denn nun schon wieder Fehler 17412???


    greetz
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • das ist ja der Witz: zu der Nummer scheint es keinen Text zu geben...


    Ich lasse mir

    Code
    "### Line " & Str(Erl) & " /  Error " & Str(Err) & " in Sub: " & s & " " & Error$


    ausgeben. Fehlercodes importiere ich mit %INCLUDE "LSERR.LSS"

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • ooops, den Fehler gibt es wirklich nicht.


    Aber der obige Code ist bei mir getestet und läuft - zumindest unter R5.0.11. Womit programmierst Du. Schon mal den Client geschlossen und wieder geöffnet? Das wirkt manchmal Wunder ;)


    Oder evtl. mal von einem anderen Client aus probiert.


    Außerdem verheimlichst Du uns immer noch, was der Debugger sagt.


    Wenn er keine Referenz findet, habe ich ein "leeres" Array mit doc.FolderReferences(0) = "" stehen.

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Zitat


    Schau doch mal mit dem Debugger, was in doc.refrences steht.


    Das Problem ist: die ersten 171 Dokumente haben keine FolderRefs, erst das 172. Da zwischendrin ein halbes Duzend Subs pro Dokument angesprungen werden, wird die Klickorgie bis wenigstens übermorgen abend dauern. Das heb ich mir lieber für kalte Winterabende auf :lol:
    Nein, ernsthaft. Ich werds mal mit ner "leeren" DB versuchen, die nur ein Dokument enthält. Dann werd ich sehn, was passiert...


    Client ist 6.5.1 en, mehrfach durchgestartet


    greetz
    RW

    Life is not a journey to the grave with the intention of arriving safely in a pretty and well-preserved body, but rather to skid in broadside, thoroughly used up, totally worn out, and loudly proclaiming "Wow, what a ride!!! :evil:
    Beschleunigung ist, wenn die Tränen der Ergriffenheit waagrecht zum Ohr hin abfliessen - Walter Röhrl

  • Hi,


    Du scheinst ja ein Error-Handling eingebaut zu haben. Setze doch einfach mal einen Breakpoint in der Error-Handler und schau dann nochmal bei dem entsprechenden Doc nach ...


    PS: ich hab's gerade nochmal mit ner 6.0.3 probiert --> alles ok

    Für jedes Problem gibt es eine einfache Lösung, die es noch schlimmer macht.

  • Hat die DB zufällig aktivierte Softdeletions und gelöschte Dokumente? Wenn ja, lösche mal alle Softdeletions endgültig. Da die Dokumente ja noch vorhanden sind gibts manchmal seltsame Efeekte daß sie auftauchen wo sie nicht sollten...