Das Notes Forum

Domino 9 und frühere Versionen => Entwicklung => Thema gestartet von: Fis am 31.07.03 - 12:26:42

Titel: Serienverwaltung
Beitrag von: Fis am 31.07.03 - 12:26:42
Hallo,

möchte gerne eine Serienverwaltung schaffen. Und zwar wollen die hier das die Leute von A-K ab 30000 anfangen und L-Z ab 80000 anfangen. Warum auch immer.

Hat da einer nen Lösungsvorschlag?

Danke und Gruß
Rodan
Titel: Re:Serienverwaltung
Beitrag von: koehlerbv am 31.07.03 - 13:10:16
Was ist eine "Serienverwaltung" ?
Titel: Re:Serienverwaltung
Beitrag von: robertpp am 31.07.03 - 13:29:11
Was kann das ding was macht das ding?!?! Serienverwaltung?!?! ??? ;)
Titel: Re:Serienverwaltung
Beitrag von: Glombi am 31.07.03 - 13:35:03
Hi,
die Serien sollen fortlaufende Nummern bekommen? Serien A - K sollen den Werteberich von 30.000 bis 79.999 haben. Serien L - Z sollen den Wertebereich 80.000 bis... haben. Ist das so gemeint?

Falls ja, würde ich ein Konfigurationsdokument machen, in dem die jeweils letzte vergebene Nummer pro Serie 1 (A-K) und Serie 2 (L-Z) gespeichert wird.

Bei Neuanlage dann das entsprechende Feld anhand des Buchstabens ermitteln und inkrementieren.

Mit dieser Lösung können aber keine Lücken gefüllt werden,d.h. wenn eine Serie wegfällt, kann die dafür vergebene Nummer nicht nochmak vergeben werden. Aber das ist ja meistens auch so gewollt.

Andreas
Titel: Re:Serienverwaltung
Beitrag von: Fis am 31.07.03 - 15:44:09
Auman ich glaub ich bin überarbeitet  ::)

Aber so wie das Glombi schön beschrieben hat ist es richtig
Titel: Re:Serienverwaltung
Beitrag von: koehlerbv am 31.07.03 - 15:50:17
Das ist ja schon hunderttausend Mal diskutiert worden, aber trotzdem nochmal der Hinweis: Notes und serielle Nummern ist ein "no-no". Da es Notes erlaubt, daß in n Repliken einer DB gleichzeitig gearbeitet wird, ist es mehr als wahrscheinlich, daß doppelte Nummern vergeben werden.

Der einzig sichere Weg ist (ausser, wenn nur ein einziger User die Nummernvergabe machen darf) ein Agent auf einem bestimmten Server, der periodisch nummernlose neue Doks mit ebensolchen versieht.

HTH,
Bernhard
Titel: Re:Serienverwaltung
Beitrag von: Axel am 31.07.03 - 16:21:54
Hi,

zur fortlaufenden Nummerierung findest du hier was:

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:Serienverwaltung
Beitrag von: koehlerbv am 31.07.03 - 16:35:27
Hi,

zur fortlaufenden Nummerierung findest du hier was:

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


Der Thread führt auch wieder den Nachweis, daß sich fortlaufende Nummern und Notes einfach beissen - und daran ist Notes nicht "schuld".
Wie schon erwähnt: Wenn es akzeptabel ist, daß Nummern nicht on the fly vergeben werden, sondern periodisch auf einem einzigen Server, dann kann man es sicher realisieren durch einen periodischen Agent. Ansonsten muß man sich auf jeden Fall ein anderes Verfahren aussuchen.
Vielleicht kann uns Rodan ja schreiben, wozu die Nummern denn gebraucht werden? U.U. ergeben sich daraus ja Vorschläge ...
Titel: Re:Serienverwaltung
Beitrag von: Fis am 31.07.03 - 17:04:15
Es werden keine Repliken angelegt, es ist nur eine Datenbank und die wollen unbedingt diese fortlaufende Nummer. Aber schon mal Danke
Titel: Re:Serienverwaltung
Beitrag von: koehlerbv am 31.07.03 - 17:17:34
Ich trau' dem immer nicht ... Sichere Dich da mal ab, in dem Du darauf hinweist, daß das ganze Verfahren nicht funktioniert, wenn auf einmal auch jemand im Home Office erfassen soll etc.

Und ansonsten: Das Ermitteln der letzten Nummer, das Erzeugen einer neuen etc. und muß dann - wenn es schon sein muß - alles genau hintereinander passieren beim Speichern des Dokuments. Machst Du es bei der Anlage des Doks, dann könnte dies ja auch wieder verworfen werden ...
Titel: Re:Serienverwaltung
Beitrag von: Fis am 31.07.03 - 17:23:24
So da hab ich es gefunden

Public Function ArtNrIntern_neu(db As NotesDatabase, PrNr As String,artdoc As NotesDocument) As String
   On Error Goto ErrHandler
   Dim Nr As Double
   Dim NrStr As String
   Dim view As notesview
   Set view = db.Getview("(LookupArtNrIntern)")
   Dim doc As notesdocument
   
   Set doc = view.GetLastDocument
   NrStr$ = Right$(Cstr(doc.ArtNrIntern(0)),6)
   Nr = Cdbl(NrStr$) +1
   ArtNrIntern_neu = PrNr+" - "+Cstr(Nr)
   Call view.Refresh   
   Exit Function
ErrHandler:
   ArtNrIntern_neu = "00-xx-00"
   Print "Fehler in Funktion ""ArtNrIntern_neu"" in Bibl. Artikel!"+Chr(10)+"Fehlerbeschreibung: "+Error()+Chr(10)+"Zeile: "+Cstr(Erl())
   
   Exit Function
   
End Function
Titel: Re:Serienverwaltung
Beitrag von: koehlerbv am 31.07.03 - 17:34:08
Hast Du das "gefunden" oder selber geschrieben aus Deinem Kontext heraus ?
Deine beiden Nummernkreise löst das sowieso nicht.
Wozu ist PrNr ?
Den Parameter artdoc verstehe ich auch nicht.
Etwas gewagt ist auch das Abschnippeln der Nummer auf 6 Stellen - ohne Szenario, was bei einem Überlauf passiert. Dann fängt das Ding einfach von vorne an ...
Titel: Re:Serienverwaltung
Beitrag von: Fis am 31.07.03 - 17:42:17
Das hab ich in einer unsere DB´s gefunden, das lößt nicht ganz mein Problem, aber geht schon mal in die richtige Richtung
Titel: Re:Serienverwaltung
Beitrag von: ata am 31.07.03 - 23:12:20
... such mal im Forum nach einem Anhang ähnlich SequenzingNumber - da hat mal jemand ne DB mit sequentiellem Numbering reingehängt - wenn du es nicht findest, dann poste mir - ich hab sie vielleicht noch wo rumligen...

ata
Titel: Re:Serienverwaltung
Beitrag von: Fis am 01.08.03 - 13:02:29
Hab ich, danke ata   :D