Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: LUSBernd am 18.09.07 - 09:02:21
-
Guten Morgen Notes-Gemeinde,
Ich habe ein ungewöhnliches, oder vielleicht doch gewöhnliches Problem.
Ich habe hier ca 80 User die in einer Maske Angebote erstellen. Bei 79 funktioniert alles tadellos. Bei einem haben wir ein ganz bestimmtes Problem. In dieser Maske wird automatisch eine Angebotsnummer generiert. Doch bei diesem einen kommt statt einer Zahl @ERROR!!! :-:
Woran könnte das liegen?
Hier der Code aus dem Feld:
Temp := @Environment("Bestellnummer");
Temp2 := @If(Temp="";"0";Temp);
AktuelleBestellnummer := @TextToNumber(Temp2);
NaechsteBestellnummer := @If(@IsDocBeingLoaded; AktuelleBestellnummer + 1; AktuelleBestellnummer);
ENVIRONMENT Bestellnummer := @Text(NaechsteBestellnummer );
@Text(AktuelleBestellnummer )
Viele Grüße
Philipp
-
Geh bei dem auf den Rechner und schau da nach was denn wirklich in der Notes.ini drinsteht. Ist das tatsächlich eine Nummer? Das wird nämlich überhaupt nicht abgefangen.
Davon abgesehen ist diese Variante von allen Versuchen Notes dazu zu bringen fortlaufende Nummern zu generieren egal unter welchen Umständen so ziemlich die schlechteste die ich jemals gesehen habe.
-
Vielen Dank für dieses reizende Kompliment! ;)
Das ist auch eine "Formel" aus den absoluten Anfängerzeiten. Das ist irgendwo heraus abgeschrieben.
Welche Methode wäre denn besser?
Bei dem User steht grundsätlich eine Nummer drin. Es funktioniert dann auch 2-3 mal und dann steht uch in der ini wieder @ERROR drin. Der User geht dann einfach in die ini und schreibt wieder en Nummer rein. Was ja nicht wirklich Sinn und Zweck des Ganzen ist.
PHilipp
-
Welche Methode wäre denn besser?
Sagen wir es mal so: es geht nicht.
Ändert die User vielleicht die Nummer (so mit führenden Leerzeichen oder so etwas) ?
Anonsten musst du vor dem Speichern abfragen, ob das Feld einen nummerischen Inhalt hat.
-
Nein, keine Leerzeichen. Er schriebt ganz brav eine Nummer rein, die er vorher erfragt in der Buchhaltung. Nur sind die halt langsam alle genervt. Zumal dieser Fehler ja nur bei diesem einen auftaucht.
Außerdem kann meine Methode ja gar nicht so übel sein, wenn sie sonst bei allen geht! ;D
Philipp
-
Wenn das nur bei diesem einen auftritt, dann musst du dich eben mal daneben setzten und schauen, was der so treibt, wenn der Fehler kommt.
Außerdem kann meine Methode ja gar nicht so übel sein, wenn sie sonst bei allen geht!
Wir wollen ja niemanden überreden, das war nur ein dezenter Hinweis von Thomas.
-
Tja, das mit dem daneben setzen ist ne schöne Idee, nur leider sitzt der einsam irgendwo einige hundert Kilometer entfernt von mir.
Nur erweckt es mir, der ja nun mal alles andere als Profi-Notes-Programmierer ist, den Eindruck das es irgendwie widersprüchlich ist , wenn einer schreibt, dass es ne schlechte Methode ist und ein Anderer es ginge gar nicht! ???
PHilipp
-
"Es geht gar nicht" ist vielleicht übertrieben. Gehen mag es schon, aber der Aufwand dafür .....
Mag das Thema aber nicht weiter vertiefen, darüber gibts es genug Einträge im Forum.
PS: Thomas hat geschrieben:
Davon abgesehen ist diese Variante von allen Versuchen Notes dazu zu bringen fortlaufende Nummern zu generieren egal unter welchen Umständen so ziemlich die schlechteste die ich jemals gesehen habe.
Er hat nicht geschrieben, dass es geht.
-
na gut, wie auch immer!!!
nur weil der User so weit weg ist heißt das ja nicht, dass ich keine Möglichkeit habe ihm über die Schulter zu schauen.
Nur habe ich leider keine AHnung mehr, wonach ich überhaupt Ausschau halten muss!!
Könnte mit da jemand vll den Einen oder Andrer Hinweis geben?
Philipp
-
Nein, keine Leerzeichen. Er schriebt ganz brav eine Nummer rein, die er vorher erfragt in der Buchhaltung. Nur sind die halt langsam alle genervt. Zumal dieser Fehler ja nur bei diesem einen auftaucht.
Außerdem kann meine Methode ja gar nicht so übel sein, wenn sie sonst bei allen geht! ;D
Heist das er erfragt jedesmal eine Nummer? Ist das ein Roaming user? Was steht denn zu dem Zeitpunkt tatsächlich in der notes.ini auf dem Rechner mit dem dein Benutzer arbeitet?
Und was das gar nicht so übel angeht. Such mal hier im Forum nach "fortlaufender Nummerierung" da gibt es zig Diskussionen und auch Lösungsansätze dazu. Der den ihr verwendet ist aus mehreren guten Gründen nicht dabei.
-
JA, er erfragt jedesmal eine Nummer.
Nein, er ist noch kein Roaming User; wird er aber bald werden. Er arbeitet aber von seinem LAptop aus und wählt sich bei Bedarf via VPN ins Firmennetz.
Wenn es schief läuft steht das @ERROR drin. Bis er die richtige Nummer einsetzt. NAch einigen Eingaben fliegt die Nummer dann wieder raus.
Das mit der fortlaufenden Nummerierung habe ich schon einmal kurz überflogen. LEider habe ich im Moment keine Zeit eine vernünftige Lösung dafür zu finden. Deswegen soll der jetzt erst einmal nur funzonieren. Sobald ich aber wieder ein wenig Luft habe werde ich mich darum kümmern.
Philipp
-
Tut mir leid aber irgendwie passen für mich hier die Aussagen nicht zusammen.
Entweder erfragt er sich jedesmal (bei jedem neuen Auftrag) eine Auftragsnummerbei der Buchhaltung, dann ist das mit der Environment Variable nicht notwendig.
Oder er hat diese Nummer im Environment, dann muss er nicht fragen.
Wenn er die Nummer im Environment hat, und du bekommst diese Fehlermeldung die du genannt hast, dann ist das zu irgendeinem Zeitpunkt X keine Nummer mehr.
Weil irgendein nicht numerisches Zeichen in deiner Variablen in der Notes.ini drinsteht.
Um rauszufinden was da vorgeht hast du zwei Möglichkeiten. Entweder baust du in deine Formel einen @prompt([OK];"Debug Bestellnummer ist %" + Temp + "%") mit ein, oder du hast (findest) eine Möglichkeit dich auf seinen Rechner draufzuschalten mit VNC oder einem anderen Remote tool und direkt in die Notes.ini die er verwendet reinzuschauen.
Alles andere ist pure Raterei.
-
Ich lese das so, dass Philipp bisher immer von dem Wert in der INI sprach. Und es kann ja durchaus sein, dass irgendeine andere DB genau den selben Variablennamen in der INI auch verwendet. Dann muss dieses krude "Verfahren" natürlich irgendwann knallen.
Philipp oder der betroffene Kollege müssen einfach mal VOR der Anlage eines neuen Angebotsdokuments prüfen, was in der INI-Variablen drinsteht. Vielleicht ergibt dieser Wert dann den entscheidenden Hinweis.
Was ich nicht so ganz verstehe: Mit dem angewandten "Verfahren" nummeriert ja jeder Bearbeiter immer nur seine eigenen Angebotsnummern. Und das liesse sich nun wahrlich geschickter anstellen (und ist nicht so komplex wie eine übergreifende fortlaufende Nummer).
Bernhard
-
also, inzwischen ist klar das nur bei dem Einen Müll in der ini steht. Allerdings scheint mir das dann doch ein globaleres PRoblem zu sein. Lustig ist nur dass es so lange gut ging!! Ist jetzt auch wurscht.
Ich denke ich muss einfach mal tief Luft holen und mir jetzt die Zeit nehmen den Käse in den Griff zu bekommen.
Es ist richtig, dass die alle irgendwann ihre eigenen Nummern haben. (und die dann irgendwann doppelt sind). Das ist aber nicht so schlimm. Damals war das auch so gewollt. Das Problem lag nämlich damals, als wir es noch gar nicht anders wussten, dass die Benutzer, die diese DB hauptsächlich nutzen in der Regel offline arbeiten. Und uns ist damals einfach keine bessere Lösung eingefallen. Das der immer dann in der Buchhaltung ne neue Nummer erfragt hat ist einfach nur Zufall. Da sitzt nämlich die Hauptansprechpartnerin von dem. Die hat halt immer irgendeine Nummer genannt.
Die Frage, die ich mir jetzt stelle ist: Gibt es überhaupt für Offline arbeitende Benutzer eine bessere Lösung???
Philipp
-
Die Frage, die ich mir jetzt stelle ist: Gibt es überhaupt für Offline arbeitende Benutzer eine bessere Lösung???
Wenn du tatsächlich eine Zentrale Nummer meinst die für alle sauber hochgezählt wird dann ist die Antwort: Nein, es gibt keine Lösung die dir sofort eine fortlaufende Nummer gibt, ohne das du in irgendeiner Form mit einem Server Kontakt aufnehmen musst.
-
Gibt es denn eine saubere Möglichkeit, die eine Nummer offline hochzählt?
Denn bei allem, was ich mir hier im Forum und in meinen schlauen Büchern angeschaut habe muss man, wenn ich das richtig gesehen habe, immer Online sein!!!
-
Nein, diese Möglichkeit gibt es nicht. Eine eindeutige Nummer ist machbar, aber die ist dann nicht fortlaufend.
Bernhard
-
Warum müssen Nummern fortlaufend sein?
In RDBMS (Oracle und so) sind Nummern auch nicht fortlaufend.
Wenn man da nämlich Datensätze löscht, werden die Lücken nicht aufgefüllt.
Einen Algorithmus (oh Mann) für eindeutige Kennzeichner läßt sich über den Zugriff auf verschiedene Variablen bauen.
Beliebt sind: Zeit, Mac Adresse des Rechners, Username, etc.
Solche Kennzeichner kann man auch bauen, ohne mit dem Server verbunden zu sein.
-
Ich verwende, wenn es denn nicht unbedingt eine fortlaufende Nummer sein MUSS, gerne die Funktion @Unique.
Die ist schön kurz und i.d.R. eindeutig (es müsste schon einiges zusammenkommen, damit nicht).
Andreas
-
hmm, na gut. Das muss ich mir jetzt mal alles durch den Kopf gehen lassen. NAtürlich wollen die User
die allseits beliebte Eier legende Wollmilchsau.
Also mal schauen, ob ich denen was neues stricke, und wenn ja, was!!
Ich bedanke mich hier an dieser Stelle aber für die vielen Antworten.
Philipp
-
Was du als allererstes hinterfragen musst ist "wollt ihr WIRKLICH eine fortlaufende Nummer" und als zweites, "zu welchem Zweck".
Ein Tip von meiner einer: Angebots-, Auftrags- und Rechnungsnummern müssen in der Regel nicht sofort erstellt werden, da Angebote ebenfalls in der Regel nicht innerhalb von Minuten beim Kunden aufschlagen.
-
Ja, da hast Du wohl recht.
Das Problem ist in diesem einen ganz speziellen Fall, dass die fortlaufende Nummern haben wollen, weil die hatten die ja schon immer!!! I know, früher hatten wir auch mal nen Kaiser.
Ich mag die ja eigentlich auch fast alle, aber was das angeht sind die ein bischen doof. Sich mit denen rumzustreiten würde länger dauern als einfach zu machen was die wollen. Und ich bekomme es ja bezahlt!!! ;D
Die wollen ja noch viel mehr machen mit den ANgeboten. Als nächstes kommt ja auch noch, dass die die ANgebotsmaske als PDF direkt an den Kunden als Mail verschicken können!!! ICh weiß, jeder der sich damit schon auseinandergesetzt hat schlägt jetzt in diesem Moment die Hände über dem Kopf zuammen, geht in den Keller und erschießt sich.
Das schiebe ich jetzt auch schon seit einiger Zeit vor mir her. Was auch der Grund dafür ist, warum ich eigentlich möglichst wenig Arbeit mit den Nummern haben wollte.
So, jetzt bin ich mal kurz meinen Frust losgeworden. Tut mir Leid, aber das hats jetzt gebraucht.
PHilipp
-
Du kannst ihnen ja ohne Probleme echte fortlaufende Nummern geben. Du musst nur die Rahmenbedingungen ändern. 8)
Und was Senden als PDF angeht. Einen PDF Printer wie eDocPrint
Pro, die Einbindung von Apache FOP, der Kauf von NotesToPaper oder das was Axel hier (http://atnotes.de/index.php?topic=38163.0) angerissen hat sind für diese Problemstellung alles gangbare Lösungen.