AtNotes Übersicht Willkommen Gast. Bitte einloggen oder registrieren.
22.05.12 - 13:09:48
Übersicht Hilfe Regeln Glossar Suche Einloggen Registrieren
News:
Schnellsuche:
+  Das Notes Forum
|-+  Lotus Notes / Domino 6
| |-+  ND6: Entwicklung (Moderatoren: _Arne_, Axel, eknori, ata, koehlerbv)
| | |-+  210 - Automation object member not found
« vorheriges nächstes »
Seiten: [1] 2 Nach unten Drucken
Autor Thema: 210 - Automation object member not found  (Gelesen 1431 mal)
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« 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
Gespeichert
elajen
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 182


« Antworten #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.
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #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.
Gespeichert
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« Antworten #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
Gespeichert
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« Antworten #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
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #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
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #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
Gespeichert

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
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« Antworten #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
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #8 am: 23.09.04 - 10:35:46 »

In welcher Zeile?
Gespeichert

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
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« Antworten #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???
Gespeichert
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« Antworten #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
Gespeichert
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #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
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #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.
Gespeichert

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
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« Antworten #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
Gespeichert
Semeaphoros
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8152


ho semeaphoros - agr.: der Notesträger


WWW
« Antworten #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.
Gespeichert

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
zhermann
Aktives Mitglied
***
Offline Offline

Geschlecht: Männlich
Beiträge: 129


Wenn Notes es kann, kann ich es auch!


WWW
« Antworten #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.



Gespeichert
Glombi
Global Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8401


WWW
« Antworten #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
Gespeichert

IBM Certified Application Developer - Lotus Notes and Domino 8
Glombitza Informations-Systeme ist nun Teamstudio Bronze Partner!
Ihr interessiert Euch für Teamstudio Produkte, Spam-Lösungen, Antiviren-Lösungen oder Lotus Notes Lizenzen? Dann einfach Mail oder PM an mich!
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #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
Gespeichert
Glombi
Global Moderator
Gold Platin u.s.w. member:)
*****
Offline Offline

Geschlecht: Männlich
Beiträge: 8401


WWW
« Antworten #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
Gespeichert

IBM Certified Application Developer - Lotus Notes and Domino 8
Glombitza Informations-Systeme ist nun Teamstudio Bronze Partner!
Ihr interessiert Euch für Teamstudio Produkte, Spam-Lösungen, Antiviren-Lösungen oder Lotus Notes Lizenzen? Dann einfach Mail oder PM an mich!
koehlerbv
Moderator
Gold Platin u.s.w. member:)
*****
Online Online

Geschlecht: Männlich
Beiträge: 19044



« Antworten #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  Wink

Bernhard
Gespeichert
Seiten: [1] 2 Nach oben Drucken 
« vorheriges nächstes »
Gehe zu:  


Einloggen mit Benutzername, Passwort und Sitzungslänge

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2006, Simple Machines Prüfe XHTML 1.0 Prüfe CSS
Impressum Atnotes.de - Powered by Syslords Solutions - Datenschutz | Partner: Tinte / Toner günstig