Autor Thema: 210 - Automation object member not found  (Gelesen 18047 mal)

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
210 - Automation object member not found
« am: 23.09.04 - 09:11:50 »
Hallo Leute,

ich bekomme sporadisch beim ausführen einer eigenen Function folgende FM: "Automation object member not found."

Hier mal die Function:

Function dokcounter
   
   Dim ProgLevel As Integer
   
   Stop
   Counter = Counter + 1
   ProgLevel = Round( ( Counter * 100 / FileCounter ), 0)
   dokcounter = ProgLevel

End Function

Die Variablen Counter und FileCounter sind Globale Variablen. Filecounter ist auch gefüllt.

Laut Debugger passt Notes die Zeile zum berechnen des ProgLevels nicht.

Das komische ist aber mal geht es mal geht es nicht.  ??? Oder er bricht mittendrin zusammen.

Hat einer von Euch eine Idee?

Gruß

Zsolt

elajen

  • Gast
Re:210 - Automation object member not found
« Antwort #1 am: 23.09.04 - 09:21:57 »
Hallo,

Filecounter ist aber nicht ab und zu mal 0?
Hast Du vielleicht einen Datentypen Überlauf?

Teile doch mal die Berechnung in mehrere Zeilen auf. Habe ähnliches auch schon mal gehabt.

Gruß von Ekki.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:210 - Automation object member not found
« Antwort #2 am: 23.09.04 - 09:27:41 »
Die Fehlermeldung verweist auf ein nicht vorhandenes OLE-Object, was in diesem Zusammenhang vollkommen abstrus erscheint.
Was läuft denn in dem Programm noch ab ? Arbeitest Du dort mit OLE ?
Wenn nicht, dann hast Du eindeutig einen R6-Bug entdeckt.

Bernhard

PS:
Die von Ekki genannten Möglichkeiten würden zu den Fehlern 6 und 11 führen - das müsste also anders aussehen. Trotzdem sollte geprüft werden, ob Overflow und DevisionByZero ausgeschlossen werden kann.

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:210 - Automation object member not found
« Antwort #3 am: 23.09.04 - 09:28:14 »
Hallo Ekki,

nein FileCounter ist immer voll. Habe das mit geprüft, in dem ich die Variablen Counter und FileCounter in eine Text-Datei geschrieben habe.

Teile mal die Zeielen auf. Vielleicht funzt es dann.

Gruß

Zsolt

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:210 - Automation object member not found
« Antwort #4 am: 23.09.04 - 09:34:51 »
Ausprobiert.  >:(

Habe die Function nun so gemacht:

Function dokcounter
   
   Dim ProgLevel As Integer
   Dim x As Integer
   Dim y As Integer
   
   Stop
   Counter = Counter + 1
   x = Counter * 100
   y = x / FileCounter
   ProgLevel = Round( y, 0)
   dokcounter = ProgLevel

End function

Der Debugger sprint immer beim Round an, wie ein Drogenhund...
Habe auch schon y als Doble oder Long definiert alles das gleiche.

Gruß

Zsolt

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:210 - Automation object member not found
« Antwort #5 am: 23.09.04 - 09:42:38 »
Eine ganz andere Frage: Warum verwendest Du denn überhaupt Round, wenn y sowieso Integer ist ? Da gibt es nix mehr zu runden auf's nächste Ganze ...

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:210 - Automation object member not found
« Antwort #6 am: 23.09.04 - 09:48:19 »
Genau wie Bernhard sagt, das Round einfach mal vergessen und schauen, ob das Problem verschwindet, oder ob er jetzt bei einer anderen Stelle rausspringt. Mögliche Ursachen: da läuft ein anderer Prozess auch noch (gibts irgendwo ein Timer-Objekt?) oder die DB ist schlichtweg korrupt
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:210 - Automation object member not found
« Antwort #7 am: 23.09.04 - 09:53:31 »
Ok,

Round ist weg, jetzt bekomme ich bei 6% einen Overflow.

Ich glaube ich geh ma eine Kaffee und ein Kamel verdrücken.

Gruß

Zsolt

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:210 - Automation object member not found
« Antwort #8 am: 23.09.04 - 10:35:46 »
In welcher Zeile?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:210 - Automation object member not found
« Antwort #9 am: 23.09.04 - 11:33:25 »
Also, habe den einen Fehler gefunden:

erster Overflow beim 328 Schritt: Weil x as integer nett geht (ich dummkopf)
328 * 100 = 32800 damit mehr als 32768 (scheiß Anfängerfehler)

Jetzt habe ich x, y und Proglevel auf Double gesetzt und immer noch Fehler:

OVERFLOW - jetzt krieg ICH gleich einen.

Hier nun die abgeänderte Function

Function dokcounter
   Dim ProgLevel As Double
   Dim x As Double
   Dim y As Double
   
   Counter = Counter + 1
   x = Counter * 100
   Proglevel = x / FileCounter  
   Dokcounter = Int(ProgLevel)
End Function

Also bis zum 327 Schritt (Counter) funzt es.

Filecounter steht auf 5202 (soviele Dateien sollen bearbeitet werden)

Schritt 327:
        x :                  327 * 100 = 32700
        Proglevel:      32700 / 5202 = 6,2830436 (laut meinen elek. Abakus)
        dokCounter:  6

Schritt 328:
        x :                  328 * 100 = 32800
        Proglevel:      32800 / 5202 = 6,3052672 (laut meinen elek. Abakus)
        dokCounter:  sollte auch 6 sein, aber Notes meint OVERFLOW

...

Es scheitert immer am ändern von Double in Integer.
Gibt es im 6.5.1 Notes einen Bug oder ist das ein neues Feature???

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:210 - Automation object member not found
« Antwort #10 am: 23.09.04 - 12:01:39 »
G E F U N D E N !!!

Counter ist von Typ Integer.
Notes mag es halt nicht wenn typübergreifende Berechnungen durchführt.

                        Double = Integer * 100

Habe die Variable Counter in den Typ Double geändert und siehe da es geht.

Gruß Zsolt

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:210 - Automation object member not found
« Antwort #11 am: 23.09.04 - 12:23:44 »
Und wir halten mal fest: Die Fehlermeldung ist ein R6-Bug, denn mit OLE hat das nun wirklich nix zu tun ...

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:210 - Automation object member not found
« Antwort #12 am: 23.09.04 - 12:31:38 »
Im Prinzip ja, es sei denn, wir haben es trotzdem noch mit einer Datenpanbk-Korruption zu tun, denn dann wirds irrelevant, was er meldet. So ganz unter einen Hut bringe ich die Infos, die wir hier haben, noch nicht so richtig.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:210 - Automation object member not found
« Antwort #13 am: 23.09.04 - 13:30:42 »
Hallo Semeaphoros,

es ist eigentlich ganz einfach.

Ich versuche eine einfache Prozentberechnung zu machen, damit ich in der Statusleiste fogenden Text ausgeben kann: "xxx% bearbeitet..."

Nun habe ich mit der Berechnung der Prozentzahl Probleme bekommen.
Ich habe immer die FM siehe Subject bekommen. Nachdem ich das Round rausgenommen habe habe ich ein Overflow bekommen. Die Db kann nicht Korrupt sein, da ich die Fehler auch in einer neuen DB bekommen habe.

Somit schließe ich mich Bernhard an, es handelt sich wohl um einen kleinen Käfer.

Gruß Zsolt

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re:210 - Automation object member not found
« Antwort #14 am: 23.09.04 - 13:34:13 »
Wenn Du das zuverlässig reproduzieren kannst - indem Du eine Datenbank baust, die das Problem hat, dann solltest Du das unbedingt als Bugreport an den Support melden.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline zhermann

  • Aktives Mitglied
  • ***
  • Beiträge: 129
  • Geschlecht: Männlich
  • Wenn Notes es kann, kann ich es auch!
    • Factory system
Re:210 - Automation object member not found
« Antwort #15 am: 23.09.04 - 18:32:44 »
Hallo nochmal,

mir ist da noch was eingefallen.

Es kann kein Bug sein weil:

       y as integer
       x as Double

       y = 238
       x = CDbl( 328 * 100)

Ergebnis ist ein Overflow, weil Notes erst die Zahlen in der  Klammer (328 * 100) als Integer berechnen will. Danach sollte es in ein Double-Wert umgewandelt werden, nur kommt er nicht mehr dazu, weil schon der Overflow (32800) da ist.

Gruß

Zsolt

P.S. Im Notes 7 ist der gleiche Overflow aufgetretten.




Glombi

  • Gast
Re:210 - Automation object member not found
« Antwort #16 am: 23.09.04 - 19:17:13 »
Alles ist korrekt.

Wenn Du
 x = CDbl( 328 * 100)
machst, multiplizierst Du 2 Integer und es gibt korrekterweise einen Overflow.

Ein Blick in die Notes Designer Hilfe zur Multiplikation:
The result is a value whose data type is generally the same as that of the operand whose data type is latest in this ordering: Integer, Long, Single, Currency, Double. For example, if one operand is a Double and the other is a Long, then the data type of the result is Double.

Wenn Du bspw.
   erg = 328.0 * 100.0   
   Msgbox x
verwendest, geht es.

Also: Alles KEIN Bug oder sowas!

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:210 - Automation object member not found
« Antwort #17 am: 23.09.04 - 20:53:14 »
Der hier diskutierte Bug bezieht sich aber - sowie ich das bisher gesehen habe - nicht auf das korrekte Verhalten bei der Integer-Multiplikation, sondern auf die Ausgabe der Meldung "Automation object member not found".

Aber offensichtlich haben wir nicht mehr so richtig die Chance, hinter deren wahre Ursache zu kommen ...

Bernhard

Glombi

  • Gast
Re:210 - Automation object member not found
« Antwort #18 am: 23.09.04 - 21:01:24 »
Ja, stimmt. Die Meldung "Automation object member not found." steht zwar in der KBASE, aber in einem ganz anderen Zusammenhang.

Andreas

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re:210 - Automation object member not found
« Antwort #19 am: 23.09.04 - 21:11:12 »
Das ist (oder besser: SOLLTE) ein OLE-Fehler sein ("OLE-Server zuckt nicht"). In diesem Zusammenhang isses gaga.

Wenn man jetzt noch den kompletten Erst-Code von Zsolt hätte, dann wäre das reif für einen Call bei IBM  ;)

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz