Autor Thema: R5 Bug - Zahlen konvertieren (5.0.11/Linux)  (Gelesen 974 mal)

Offline Steffen Dirks

  • Frischling
  • *
  • Beiträge: 16
  • Geschlecht: Männlich
  • Out! Out, you demons of Stupidity!
R5 Bug - Zahlen konvertieren (5.0.11/Linux)
« am: 30.04.03 - 08:55:22 »
Hallo zusammen,

seit der Umstellung unserer Server von 4.6.7/NT 4 Deutsch auf 5.0.11/Linux Englisch, Language Pack Deutsch laufen einige unserer periodischen Agenten nicht mehr - ich vermute einen handfesten Bug in der Behandlung numerischer Werte.

In einem periodischen Agenten wird in Lotusscript mit "IsNumeric" ein Variant, der einen numerischen String enthält, geprüft.

Der Wert "1234,56" wird dabei _nicht_ als numerisch erkannt, "1234.56" hingegen schon.
Soweit, so gut, liegt wahrscheinlich daran, dass der Server ja im Grunde englische Software ist.

1. Frage: Kennt jemand eine Notes.ini-Variable, das richtige Environment-Setting oder sonsteine Beschwörung, die Domino dazu bringt, das Komma als Dezimaltrennzeichen zu akzeptieren?

Nun sind wir ja nicht um Workarounds verlegen, werden halt alle Zahlenwerte mit Dezimalpunkt angeliefert.
Jetzt kommt der Part, den ich für einen Bug halte:

Der Wert "1234.56" wird von CDbl in den numerischen Wert 123456 konvertiert, ist also Faktor 100 zu hoch. Der Punkt wird also offensichtlich ignoriert. Setze ich hier ein Komma anstelle des Punktes, fliegt mir das Ganze mit "Type Mismatch" um die Ohren.

Hat jemand hierzu eine Idee oder mag das Ausprobieren & bei IBM/Lotus als Fehler einstellen? Unser telefonischer Supportvertrag wird leider erst in ca. 4 Wochen verlängert (wiehernde Amtsschimmel), dann werd' ich das auf jeden Fall auch selber machen.

Ich hänge ein paar Codezeilen an, mit denen jeder Besitzer eines 5er Linux-Servers das ausprobieren kann (die anderen natürlich auch, aber da sollte es funktionieren).

Grüße,
   Steffen


----8<----8<----8<----8<----8<----8<----8<----8<----8<----8<----

Sub Initialize
     Call myBla("12334567.45")
     Call myBla("12334567,45")
End Sub

Sub mybla(bla As Variant)
     
     If Isnumeric(bla) Then
          Print bla + " ist numerisch."
          Print "Wert: " + Str(Cdbl(bla))
     Else
          Print bla + " ist nicht numerisch."
     End If
End Sub

Ausgabe in der Log.nsf:
30.04.2003 08:45:04 AM  AMgr: Agent ('Test IsNumeric' in bla.nsf') printing: 12334567.45 ist numerisch.
30.04.2003 08:45:04 AM  AMgr: Agent ('Test IsNumeric' in 'bla.nsf') printing: Wert:  1233456745
30.04.2003 08:45:04 AM  AMgr: Agent ('Test IsNumeric' in 'bla.nsf') printing: 12334567,45 ist nicht numerisch.
2000 User Notes 4.6.7 NT 4
aktuell Migration Notes 5.0.11
2 Server 5.0.11 Linux

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz