Autor Thema: laufende Nummer mit Profildok?  (Gelesen 4646 mal)

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
laufende Nummer mit Profildok?
« am: 13.12.05 - 15:28:19 »
Hi,
in einer unserer Anwendungen werden Bugs eingestellt. Jeder Bug soll eine Nummer bekommen. Dazu hab ich ein Profil-Dok erstellt, in dem ein bearbeitbares Nummern-Feld drin steht.
Wenn der User ein *neues* Dok speichert, wird der aktuelle Wert ausgelesen, um eins erhöht und wieder zurückgeschrieben:

   Dim profil As NotesDocument
   Set profil = db.GetProfileDocument("Profil")
   
   'übergreifende Bugnummer (BugID) ermitteln
   Dim lfdNrGesamt As String
   lfdNrGesamt = Cstr(profil.lfdNrGesamt(0))   
   profil.lfdNrGesamt = profil.lfdNrGesamt(0) + 1
   Call profil.save(True, False)         

Der ausgelesene Wert wird in das neue Dok geschrieben. So weit, wo gut!
Nun kommt es allerdings vor, dass zwei oder drei Doks die gleiche Nummer haben...und nix hier mit: "naja, vielleicht gleiczeitig erstellt"!!! Da liegen teilweise 10 Minuten dazwischen  >:(

Hat jemand nen Plan, woran das liegen könnte, bzw. die man eine alternative Nummernvergabe realisieren könnte? Ich habs halt deshalb mit dem Profil-Dok gemacht, weil da halt bis zu 50 Leuten gleichzeitig Bugs erfassen können...

Danke & Gruß,
Buzzy

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: laufende Nummer mit Profildok?
« Antwort #1 am: 13.12.05 - 15:31:01 »
Eine Thema, das schon hundert Mal hier diskutiert wurde. "Eigentlich" schliessen sich das Prinzip Notes und sequentielle Nummern aus.
Dein Problem liegt in dem ProfilDoc - das steht im Cache des Users ...

Bitte benutze die Suche: "fortlaufend", "sequentiell" - Dir werden die Augen übergehen  ;)

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: laufende Nummer mit Profildok?
« Antwort #2 am: 13.12.05 - 17:03:41 »
Ach, der Herr Sebastian Grund von der KarstadtQuelle Lebensversicherung Aktiengesellschaft ist doch schon weitergezogen, nachdem er seine Frage auch im Notes/Domino 6 & 7 Forum gestellt hat.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
Re: laufende Nummer mit Profildok?
« Antwort #3 am: 13.12.05 - 17:20:41 »
Ach, der Herr Sebastian Grund von der KarstadtQuelle Lebensversicherung Aktiengesellschaft ist doch schon weitergezogen, nachdem er seine Frage auch im Notes/Domino 6 & 7 Forum gestellt hat.

Auf einem Bein ist schlecht stehen...

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
Re: laufende Nummer mit Profildok?
« Antwort #4 am: 13.12.05 - 17:25:46 »
Eine Thema, das schon hundert Mal hier diskutiert wurde. "Eigentlich" schliessen sich das Prinzip Notes und sequentielle Nummern aus.
Dein Problem liegt in dem ProfilDoc - das steht im Cache des Users ...

Bitte benutze die Suche: "fortlaufend", "sequentiell" - Dir werden die Augen übergehen  ;)

Bernhard

Oha - allerdings.
Aber vorerst weigere ich mich, 34$ für so 'ne Pipifax-Aufgabe zu investieren =>
http://www.xetrion.com/  ;)

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: laufende Nummer mit Profildok?
« Antwort #5 am: 13.12.05 - 17:29:54 »
Auf einem Bein ist schlecht stehen...

Und auf Doppelpostings ist ungern zu antworten, da man sich keine Mühe geben mag, wenn man ahnt, dass die Antwort längst woanders gegeben wurde. Exakt deshalb wurden Crosspostings auch in die Regeln dieses Forums aufgenommen.

Die bisher gegebenen Antworten im Developerworks-Forum sind übrigens immer noch nicht zielführend und stellen eine Verharmlosung der Situation dar.

Bernhard

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: laufende Nummer mit Profildok?
« Antwort #6 am: 13.12.05 - 17:32:26 »
Aber vorerst weigere ich mich, 34$ für so 'ne Pipifax-Aufgabe zu investieren =>
http://www.xetrion.com/  ;)

Zu irgendwelchen Investitionen hat keiner geraten. Die genannte Software löst Probleme auch nur unter ganz speziellen Umständen.
Im a priori verteilten Notes-Umfeld ist die Aufgabenstellung übrigens in keinster Weise "Pipifax".

Bernhard

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: laufende Nummer mit Profildok?
« Antwort #7 am: 13.12.05 - 17:35:29 »
Zu lernen er hat noch viel, der junge Padawan.  O0
(Nicht Du, Bernhard)
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
Re: laufende Nummer mit Profildok?
« Antwort #8 am: 13.12.05 - 17:39:24 »
Aber vorerst weigere ich mich, 34$ für so 'ne Pipifax-Aufgabe zu investieren =>
http://www.xetrion.com/  ;)

Zu irgendwelchen Investitionen hat keiner geraten. Die genannte Software löst Probleme auch nur unter ganz speziellen Umständen.
Im a priori verteilten Notes-Umfeld ist die Aufgabenstellung übrigens in keinster Weise "Pipifax".

Bernhard

Eben *diese* speziellen Umstände treffen bei uns zu  :)
Und in einer nicht verteilten Umgebung ein laufende Nummer zu vergeben würde ich so spontan schon als Pipifax bezeichnen - ja ich weiss: dann ist Notes vielleicht nicht das richtige Tool (da gibt's ja auch nen Thread hier), aber entschuldige...

Offline daija

  • Aktives Mitglied
  • ***
  • Beiträge: 104
  • Geschlecht: Männlich
  • The Second Place is the first loser
Re: laufende Nummer mit Profildok?
« Antwort #9 am: 14.12.05 - 14:04:17 »
Mach dich locker,
schon mal darüber nachgedacht, dass es evtl. Repliken auf anderen Servern oder auch beim Benutzer lokal exsistieren können?
Zufriedenheit ist Stillstand und Stillstand ist Rückschritt

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
Re: laufende Nummer mit Profildok?
« Antwort #10 am: 15.12.05 - 08:47:21 »
Mach dich locker,
schon mal darüber nachgedacht, dass es evtl. Repliken auf anderen Servern oder auch beim Benutzer lokal exsistieren können?

Ich bin mir sogar sicher, dass es *KEINE* Repliken auf anderen Servern gibt! Und wenn ein User meint, sich eine lok. Replik ziehen zu müssen, braucht er sich nicht zu beschweren, wenn die Numerierung durcheinander kommt...

Lockere Grüße,
Buzzy

Offline daija

  • Aktives Mitglied
  • ***
  • Beiträge: 104
  • Geschlecht: Männlich
  • The Second Place is the first loser
Re: laufende Nummer mit Profildok?
« Antwort #11 am: 15.12.05 - 09:01:53 »
Letztendlich muss der Programmierer aber dafür Sorge targen.   :-\
Kombiniere die fortlaufende Nummer doch einfach mit den Initialien des Erstellers:
...
Set doc = db.GetProfileDocument("profil")
...
x_init = Left(session.CommonUserName,1) & Mid(session.CommonUserName, Instr(session.CommonUserName," ")+1,1)
x_number = doc.Nummer(0)
...
doc2.fortlaufendeNummer = x_number + x_init
...
Zufriedenheit ist Stillstand und Stillstand ist Rückschritt

Glombi

  • Gast
Re: laufende Nummer mit Profildok?
« Antwort #12 am: 15.12.05 - 09:03:34 »
Ich sehe zwei Möglichkeiten, wie man eine eindeutige Nummer berechnen kann.

1. Der einfache Fall:
@Unique
erzeugt eine eindeutige griffige Buchstaben/Zahlenkombination a la AGLA-6FRCQB
Syntax:
<1. Buchstabe Vorname + 1.-2. Buchstabe Nachname + letzter Buchstabe Nachme>-<Zufallsstring (gebildet aus Datum/Zeit)>

2. Laufende Nummer:
Diese wird durch einen servergestützten Agenten erzeugt. Die letzte vergebene Nummer wird in ein normales Dokument geschrieben.
Wenn eine neue Nummer vergeben werden soll, wird ein Request-Dokument erstellt. Ein Serveragent arbeitet dann sequentiell diese Requests ab.
1. Nachteil: Der User sieht die Nummer erst nach einer Weile.
2. Nachteil: Es muss ein Lock-Mechanismus implementiert werden. Denn es darf die berechnete Nummer erst dann in das Dokument geschrieben werden, wenn dieses nicht von anderen Anwender geöffnet wurde.
Auch hier gibt es die Möglichkeit des Replizierkonflikts.

=> Variante 1 sollte man nehmen.

Andreas
« Letzte Änderung: 15.12.05 - 09:09:10 von Glombi »

Offline Axel

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.658
  • Geschlecht: Männlich
  • It's not a bug, it's Notes
Re: laufende Nummer mit Profildok?
« Antwort #13 am: 15.12.05 - 09:06:45 »
Ich bin mir sogar sicher, dass es *KEINE* Repliken auf anderen Servern gibt!

Schön für dich. Du hast aber dadurch nur eine von vielen Fallen umgangen.

Was meinst du passiert, wenn zwei oder mehr Benutzer relativ zeitgleich Dokumente erstellen? Das Nummernchaos ist vorprogrammiert.
 

Und wenn ein User meint, sich eine lok. Replik ziehen zu müssen, braucht er sich nicht zu beschweren, wenn die Numerierung durcheinander kommt...

Na toll. Und wer darf das wieder gerade ziehen? Und wer kriegt was auf die Mütze? Du als Entwickler.

Na denn viel Spass dabei.

Axel
Ohne Computer wären wir noch lange nicht hinterm Mond!

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
Re: laufende Nummer mit Profildok?
« Antwort #14 am: 15.12.05 - 16:10:42 »
Ich bin gerührt, wie besorgt hier alle um mich sind  :'(

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: laufende Nummer mit Profildok?
« Antwort #15 am: 15.12.05 - 17:44:46 »
Ich bin gerührt, wie besorgt hier alle um mich sind  :'(

Wir mögen halt keine halbgaren Lösungen  ;)

Bernhard

Offline buzzy666

  • Aktives Mitglied
  • ***
  • Beiträge: 177
  • Ich liebe dieses Forum!
Re: laufende Nummer mit Profildok?
« Antwort #16 am: 16.12.05 - 07:54:51 »
Verständlich - ich an sich ebenso wenig, aber nachdem diese Nummerngeschichte ein Bug in einer kürzlich in Praxis gegangenen Anwendung ist (ist im Systemtest natürlich keinem Menschen aufgefallen  >:(), war mir ehrlich gesagt jedes Mittel recht einen Workaround zu finden  ::)
Und bis jetzt scheint's problemlos zu klappen...wen's interessiert: https://www-10.lotus.com/ldd/nd6forum.nsf/DateAllThreadedweb/ffb098ce175b31d3852570d700281731?OpenDocument

Greets,
Buzzy

Offline Pyewacket

  • Senior Mitglied
  • ****
  • Beiträge: 310
  • Geschlecht: Männlich
Re: laufende Nummer mit Profildok?
« Antwort #17 am: 03.03.06 - 18:49:47 »
Das funktioniert nur solange nicht zwei User mit der selben ID arbeiten (irgendwelche Pool-Ids).
Da funktioniert das Document locking leider nicht.
ATOS.org - Feel the music!

Offline WildVirus

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 658
  • Geschlecht: Männlich
Andere Variante
« Antwort #18 am: 04.03.06 - 10:22:02 »
die bei mir in einer DB mit 25 Serverrepliken seit 5 Jahren läuft:

Dokumente werden ohne Nummer vom Anwender gespeichert und auf einem Server werden zentral die Nummern per Agent vergeben.

Hat in den 5 Jahren -trotz zeitweise über 700 Anwendern- keine Probleme gegeben.


Offline Thomas Schulte

  • @Notes Preisträger
  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 4.388
  • Geschlecht: Männlich
  • Ich glaub mich tritt ein Pferd
Re: laufende Nummer mit Profildok?
« Antwort #19 am: 04.03.06 - 11:24:43 »
Das ist die einzige Variante die wirklich funktioniert.
 ;D
Thomas Schulte

Collaborative Project Portfolio and Project Management Software

"Aber wo wir jetzt einmal soweit gekommen sind, möchte ich noch nicht aufgeben. Versteh mich recht, aufgeben liegt mir irgendwie nicht."

J.R.R.Tolkien Herr der Ringe, Der Schicksalsberg

OpenNTF Project: !!HELP!! !!SYSTEM!!  !!DRIVER!!

Skype: thomasschulte-kulmbach

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz