Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: TomLudwig am 07.05.04 - 09:08:10

Titel: Laufende Nummer vergeben
Beitrag von: TomLudwig am 07.05.04 - 09:08:10
Hallo zusammen,

gibt es eine einfache möglichkeit in einem Dokument eine eindeutige laufende Nummer zu vergeben?
Ich habs bisher immer so gemacht, dass ich beim speichern des Dokumentes alle Dokumente in einer Ansicht gezählt habe und anhand dieser Zahl eine Nr. vergeben habe.
Aber das kanns ja nicht sein, oder???

Thx
Titel: Re:Laufende Nummer vergeben
Beitrag von: klaussal am 07.05.04 - 09:12:44
... eine 100% wasserdichte möglichkeit gibt es m.e. nicht.

wir hatten dazu schon etliche beiträge im forum. bitte einmal danach suchen, sonst kauen wir dieses thema zu x-ten mal durch.
Titel: Re:Laufende Nummer vergeben
Beitrag von: TomLudwig am 07.05.04 - 09:47:04
Hab ja schon einiges durchsucht... Es wird ziemlich oft auf den Thread:

http://www.atnotes.de/cgi-bin/yabb/YaBB.pl?board=R5TIP;action=display;num=1014120317

verwiesen. Aber den gibts nicht mehr....
Titel: Re:Laufende Nummer vergeben
Beitrag von: koehlerbv am 07.05.04 - 10:12:12
Es ist wirklich schon so oft durchgekaut worden, un dieser Widerspruch in sich "Notes & sequentielle Nummern" ist einfach nicht tot zu kriegen.

Guckst Du:
http://www.atnotes.de/index.php?board=7;action=display;threadid=11089;start=0 (http://www.atnotes.de/index.php?board=7;action=display;threadid=11089;start=0)
oder
http://www.atnotes.de/index.php?board=7;action=display;threadid=12905;start=0 (http://www.atnotes.de/index.php?board=7;action=display;threadid=12905;start=0)
oder
http://www.atnotes.de/index.php?board=16;action=display;threadid=12846;start=0 (http://www.atnotes.de/index.php?board=16;action=display;threadid=12846;start=0)

HTH,
Bernhard
Titel: Re:Laufende Nummer vergeben
Beitrag von: Driri am 07.05.04 - 11:02:43
Tja, Notes ist eben nicht Access oder sonsteine Relationale DB.

Und nen eindeutigen Key gibts ja, eben nur nicht fortlaufend (die DocumentID meine ich).
Titel: Re:Laufende Nummer vergeben
Beitrag von: eknori am 07.05.04 - 11:07:45
zum Thema Notes und fortlaufende Nummern bleibt nur noch eines zu sagen ... (http://www.world-of-smilies.de/html/images/smilies/krank/puke.gif)
Titel: Re:Laufende Nummer vergeben
Beitrag von: Axel am 07.05.04 - 14:22:54
Hi,

guckst du auch hier:
http://www.atnotes.de/index.php?board=9;action=display;threadid=7395 (http://www.atnotes.de/index.php?board=9;action=display;threadid=7395)

Axel
Titel: Re:Laufende Nummer vergeben
Beitrag von: wflamme am 07.05.04 - 17:18:21
Es gibt eine Möglichkeit, wie das trotz Replikation funktioniert: Die Dokumente erhalten die laufende Nr erst durch einen Agenten auf einem zentralen Server. Das geänderte Dokument wird dann zum Client zurückrepliziert.
Titel: Re:Laufende Nummer vergeben
Beitrag von: koehlerbv am 07.05.04 - 17:24:12
So gesehen, gibt es zwei (und diese zweite Möglichkeit hebelt etliche Sachen aus, die Notes so angenehm machen, aber es mag in manchen Situationen ebenso passen wie Deine "Lösung #1", Wolfgang):
In der Situation, in der die Nummer vergeben werden muss, muss das Dokument auf dem Nummernvergabe-Server geöffnet sein. Lokal und anderer Server muss dann zum Aktionsabbruch führen.

Mag in manchen Situationen gehen. Ich hatte bisher glücklicherweise nur solche, in denen die Lösung #1 ideal einsetzbar war ;-)

Bernhard
Titel: Re:Laufende Nummer vergeben
Beitrag von: rar am 07.05.04 - 18:08:02
Bei uns ist es immer so, daß ein User ein Dokument anlegt, das Dokument eine Nummer bekommen soll und der User sich die Nummer dann merkt, daß er danach sucht.
das kann er aber mit dem Nummernvergabeserver nicht.

Die laufenden Nummern sind mE nur für faule User, die sich nix anderes merken können. Programmtechnisch kann man eh fein mit der UNID oder irgend einem Key mit der Erstellungszeit arbeiten.

lG
-daniel
Titel: Re:Laufende Nummer vergeben
Beitrag von: eknori am 07.05.04 - 18:27:42
Zitat
mit der UNID oder irgend einem Key mit der Erstellungszeit arbeiten

JaIn: Ich habe auch so eine Datenbank im Bestand. Liegt an zwei Standorten und dort werden auch in nicht geringer Zahl Dokumente erzeugt. Die lfdNum muss in unsere altes MAS90 System übertragen werden und da war die Vorgabe, eine Nummer nach dem Muster ######-YYYY zu Finden. Tolle Wurst; baue mal da eine eindeutige Nummer draus.

Ich habe das dann so gelöst, das

1. die Nummer aus Datum und Zeit irgendwie generiert wird (NNNN)
2. der Benutzer Berücksichtigt wird (BB)
3. das Werk berücksichtigt wird (WW)
4. die Nummer erst beim "Speichern und Schließen" über einen Buhtong erzeugt wird

Als Zugeständnis hat man zwei YY aus dem YYYY gestrichen. ( das Jahr musste ersichtlich sein )

die Nummer sieht nun folgendermaßen aus

BBNNNN-WWYY

Das war definitiv die letzte Datenbank, wo ich ein solches Konstrukt verwendet habe ! Immerhin habe ich mich über 2 Jahre mit der Fachabteilung rumgemacht, weil die "eindeutige" Nummer irgendwann nicht mehr eindeutig war. Aber das geht mir echt am PoPO vorbei ... achtspurig !! (http://www.world-of-smilies.de/html/images/smilies/krank/puke.gif)

Ulrich
Titel: Re:Laufende Nummer vergeben
Beitrag von: koehlerbv am 07.05.04 - 18:56:40
Ich schreib' mir das Thema mal auf meine Liste für einen BestPractices-Beitrag. Irgendwann werde ich ja auch mal wieder etwas Zeit haben, um was zu verfassen, auf das wir bei derartigen und immer wieder hochkochenden Diskussionen dann nur noch verweisen müssen. Und da das Thema eine prinzipielle Ebene hat, darüber aber noch zahlreiche Facetten, wird in jedem Thread was anderes behandelt.
Wobei ich aber immer noch befürchte, dass der eine oder andere Fragesteller es dann immer noch nicht begreift.

Bernhard
Titel: Re:Laufende Nummer vergeben
Beitrag von: TMC am 07.05.04 - 21:05:44
Die laufenden Nummern sind mE nur für faule User, die sich nix anderes merken können. Programmtechnisch kann man eh fein mit der UNID oder irgend einem Key mit der Erstellungszeit arbeiten.

Na ja, so würde ich jetzt das nicht sehen.

Gerade wenn User seit Jahrzehnten mit laufenden Nummern arbeiten - gewohnt von Warenwirtschafts-Systemen (Rechnungs-Nr., Lieferschein-Nr., Auftrags-Nr. etc.) gibt es den Bedarf.

Sobald zu Dokumenten in der Notes-Applikation eine Papier-Ablage stattfinden soll/muss (weil Originalschreiben, kein schneller Scanner verfügbar, etc. etc.), dann arbeitet ein großer Anteil der Büroanwender gerne mit Leitzordnern mit lfd. Nummer.
Ist auch denkbar einfach: Keine große Sucherei nach Fa. / Name / etc., außerdem muss nicht doppelt sortiert werden (unter der Fa. dann z.B. nach Datum).
Jeder findet die gewünschten Papierdokumente sofort, wenn die Nr. bekannt ist. Eine Nummer = ein Vorgang.

Hier jetzt mit Alternativen wie 32stelliger UNID zu arbeiten ist leider nicht praktikabel, genausowenig andere umfangreiche Zusammensetzungen der ID.


Nein, der Bedarf seitens Anwendern besteht imho zurecht und darf nicht wegdiskutiert werden. Und es gibt ja auch Lösungen, wie hier im Thread bereits erwähnt.
Titel: Re:Laufende Nummer vergeben
Beitrag von: Semeaphoros am 07.05.04 - 21:12:20
Es gibt da zwischendurch auch noch gesetzliche Bestimmungen, die manchmal laufende Nummern erzwingen, neuestes Beispiel sind Ueberlegungen in Deutschland, laufende Rechnungsnummern zu verlangen.
Titel: Re:Laufende Nummer vergeben
Beitrag von: TMC am 07.05.04 - 21:17:59
neuestes Beispiel sind Ueberlegungen in Deutschland, laufende Rechnungsnummern zu verlangen.

Jens, hast Du da eine Quelle (Link) ?

Würde mich interessieren.....
Titel: Re:Laufende Nummer vergeben
Beitrag von: Semeaphoros am 07.05.04 - 22:16:35
Leider nein, war wohl mal auf Heise zu sehen, weiss auch nicht ob das je oder schon Gesetz wird.
Titel: Re:Laufende Nummer vergeben
Beitrag von: TMC am 07.05.04 - 22:24:13
OK, danke trotzdem.
Lt. google-Recherche sollte das ab 01.01.2004 gemäß Umsatzsteuergesetz kommen. Ob umgesetzt, weiß ich nicht.
Titel: Re:Laufende Nummer vergeben
Beitrag von: koehlerbv am 07.05.04 - 22:26:41
Naja, aber wer schreibt schon Rechnungen mit Notes ... Wenn ja, braucht er ja nur die zusammengefassten Hinweise der 1001 Threads zum Thema zu berücksichtigen.

Bernhard
Titel: Re:Laufende Nummer vergeben
Beitrag von: TMC am 07.05.04 - 22:35:02
Bernhard, das soll auch nicht konkret auf Rechnungserstellung abzielen.
Ich habe Jens' Bemerkung vielmehr als Ergänzung zu meiner obigen Ausführung verstanden.
Es gibt tatsächlich den Bedarf der laufenden Nummerung im Notes-Umfeld. Ob das jetzt Rechnungen oder andere Vorgänge sind sei mal dahingestellt.
Daher sehe ich die Frage durchaus als berechtigt (auch wenn hier schon 1000mal gefragt und beantwortet).
Titel: Re:Laufende Nummer vergeben
Beitrag von: koehlerbv am 07.05.04 - 22:43:23
Deswegen: ASAP in BestPractices. Anders werden wir dieser Diskussion, der meist die Basics fehlen, nicht Herr.

Ciao, allen ein gutes Wochenende,

Bernhard
Titel: Re:Laufende Nummer vergeben
Beitrag von: TMC am 07.05.04 - 22:46:18
Genau, Bernhard  :)

Ich mache mal einen Eintrag in unserer internen BP-DB, damit wir das nicht vergessen.....


** Edit **
Hier übrigens ein paar Links dazu:
http://www.atnotes.de/index.php?board=3;action=display;threadid=15692
http://www.atnotes.de/index.php?board=7;action=display;threadid=15688
http://www.atnotes.de/index.php?board=7;action=display;threadid=13034
http://www.atnotes.de/index.php?board=7;action=display;threadid=12905
http://www.atnotes.de/index.php?board=16;action=display;threadid=12846
http://www.atnotes.de/index.php?board=7;action=display;threadid=11089
http://www.atnotes.de/index.php?board=9;action=display;threadid=7395
http://www.atnotes.de/index.php?board=9;action=display;threadid=3034
Titel: Re:Laufende Nummer vergeben
Beitrag von: Hernan Cortez am 08.05.04 - 01:43:28
Endanwender haben zu dem Thema auch oft wirklich merkwürdige Vorstellungen.
Mein allererstes Domino Projekt 1999 war (wie später so oft) ein übernommener Unsinn, wo es für die Endanwender aus irgendwelchen mit irdischer Logik nichtfaßbaren Gründen angeblich total wichtig war, dass alle Haupt- und Antwort Dokumente immer korrekt von 1 bis n ohne Lücken durchnummeriert waren, auch wenn Dokumente rausgelöscht wurden. Das Ergebnis waren brisante Performance-Probleme. Wenn z.B. 1200 Hauptdokumente in der DB waren und Dokument 48 gelöscht wurde, mussten alle Dokumente ab 49 einen runterzählen und per doc.save neu gespeichert werden. Das gleiche (vielleicht wegen meiner Naivität und die meines Vorgängers) auch mit den Antwortdokumenten.
Dasselbe wenn zwischen Dokument 48 und 49 ein neues sollte. Nur eben andersrum.

Praktisch alle relationalen Datenbanken (inklusive DB2 seit 7) haben ja dieses Feature mit der autoinkrementellen Nummer, die gerne als Primary Key verwendet wird. Aber auch da kommt kein Mensch, der seine 5 Sinne zusammen hat, auf die Idee, die Lücken immer dynamisch aufzufüllen wie meine ersten Domino Kunden damals.

Wir haben uns dann nach endlosen Diskussionen über meine "Kompetenz" so geeinigt, dass zwischen den Dokumenten-Nummern 10er Schritte sind. Die User konnten dann so die Dokumente an die richtige Stelle einordnen und ein Agent stellte nachts die 10er-Schritte wieder her.
Am Ende waren die dann "sehr zufrieden". Die grauen Haare, die mich das in der Zwischenzeit gekostet hat, werden aber auch nicht wieder braun.*

Die IT Krise wurde u.a. auch durch Endanwender mit fetten Budget von der Firma aber ohne konstruktiv brauchbaren Kenntnisse verursacht.

Ach ja: Und in J2EE ist das auch ein Problem. In EJB2.0 Standard wird das RDBMS autoinkrement-Nr. Status nicht unterstützt.  Alle mir bekannten J2EE Server ausser Websphere unterstützen das übrigens irgendwie proprietär. Als Ausweg gilt da ein Pattern, das auf Zeitstempel und die Netzwerkkartennummer des Servers basiert (letzteres im Cluster). Generiert dann ein String als Primary Key was auch nicht so das Gelbe ist. Sieht dann nicht weniger kryptisch als die UniversalID von Notesdokumenten aus.   ;)

Gruß Axel

* sooo viele graue Haare habe ich auch nicht.
Titel: Re:Laufende Nummer vergeben
Beitrag von: TomLudwig am 10.05.04 - 13:44:37
Ich denk ich habs kapiert.
Ich hoff dass ichs meinem Kunden ausreden kann. Wenn nicht, muss ich wohl oder übel die Dokumente zählen und einen Agenten drüber laufen lassen um lücken zu schließen.... Wenn ers will....

Danke für die Hilfe !!!