Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: hwenck am 30.10.07 - 12:13:18

Titel: double trouble
Beitrag von: hwenck am 30.10.07 - 12:13:18
Wer kann helfen?
In einem Feld steht der folgende Wert

Feldname: LN_Eigentum
Datentyp: Zahl
Datenlänge: 8 Byte
Seq.-Num.: 10
Doppeleintrags-ID: 0
Feld-Flags: SUMMARY
655577,23

Nach diesem Wert soll gesucht werden.

               OS.SucheFeld = String.valueOf(OS.doc.getItemValueDouble(Feld));
               OS.SucheFeld = strReplace(OS.SucheFeld, ".", ",");
               OS.SucheDb = OS.SucheDb + " & " + Feld + " " + OS.doc.getItemValueString(SE) + " " + OS.SucheFeld;
das ergibt:
 Form="Person" & LN_Eigentum >= 6.0
db.search ....
Diese Funktion funktioniert auf verschiedenen Notes-Servern (Windows) unproblematisch.
Auf einem Linux Server , der mir leider nicht zugänlich ist, entsteht folgender Fehler:
Form="Person" & LN_Eigentum >= 6,0
Formula Error ..
Der Fehler ist klar, aber warum?

   public String strReplace(String source, String rep, String what) {
      String sTemp1;
      String sTemp2;
      try {
         while (source.indexOf(rep) != -1) {
            sTemp1 = source.substring(0, source.indexOf(rep));
            sTemp2 = source.substring(source.indexOf(rep) + rep.length(), source.length());
            source = sTemp1 + what + sTemp2;
         } // end while
         return (source);
      } catch (Exception e) {
         return (source);
      }
   } // end of strReplace

Ich danke für jeden Hinweis.
Titel: Re: double trouble
Beitrag von: m3 am 30.10.07 - 12:21:00
In Europa ist das Komma der Trenner zwischen Vor- und Nachkommastelle, in den USA allerdings der Punkt.
Auf dem Linux-Server wird eine andere Locale als auf den Windows-Servern eingestellt sein (de/C oder vice versa), daher Deine Probleme.
Titel: Re: double trouble
Beitrag von: hwenck am 01.11.07 - 11:03:53
Hallo m3
Danke für Deinen Hinweis.

Das System ist ein Suse, meine Testumgebung ist ein Ubuntu 7.10 .
Auf beiden Systemen habe ich das gleiche Ergebnis.
Als start - stop Script benutze ich das von Daniel Nashed


1. Im Verzeichnis "/opt/ibm/domino/lotus/notes/latest/linux/res" gibt es kein Verzeichnis C
sondern "de_DE.UTF-8"
Dies habe ich im Startscript geändert.

2. Das manuelle starten des Domino bringt keinen Fehler.
3. Beim Starten per Script erhalte ich bei einem db.search folgende Meldung

11.01.2007 10:29:48   HTTP JVM: NotesException: Notes error: Formula Error (Form="Person" & LN__Eigentum >= 22,34

Als Anhang habe ich die notes.log
Titel: Re: double trouble
Beitrag von: hwenck am 01.11.07 - 11:58:28
Fehler gefunden

Alle LANG Parameter im Startscript "rc_domino_script" sind auf "de_DE.UTF-8" zu ändern
oder es ist ein symlink zu erstellen

Danke für die Anregung