Autor Thema: Fortlaufende Nummer  (Gelesen 19903 mal)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Fortlaufende Nummer
« am: 11.03.03 - 13:50:42 »
Ich hab schon viele Einträg im Forum gefunden aber es hilft mir nicht weiter!!

Ich brauche eine forlaufende Nummer bei erstellen neuer Documente in ein DB!!
Anhand der Nummer kann der User der ein Doc erstellt hat und nur sein Doc in der Ansicht sieht (zb: 100 Documente sind in der Ansicht;er sieht nur sein Doc mit der Nummer 76) die Nummer an den Superuser weitergeben kann und fragen ob das Thema bereits erledigt ist! Und der superuser sieht alle Docs kann anschließend das Doc leichter finden!

Meine DB wird nicht repliziert und es werden auch keine Documente gelöscht!!!

bitte um hilfe robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline Monster

  • Frischling
  • *
  • Beiträge: 42
  • Ich liebe dieses Forum!
Re:Fortlaufende Nummer
« Antwort #1 am: 11.03.03 - 13:58:26 »
Die laufende Nummer wird im Profildokument gespeichert.

Erstelle einfach eine Maske DBProfil in dem das Feld Nummer vorhanden ist.

In dem Hauptdokument spielst du das Script in QuerySave ein.

Sub Querysave(Source As Notesuidocument, Continue As Variant)
   Dim session As New Notessession
   Dim db As NotesDatabase
   Dim ws As New NotesUIWorkspace
   Dim doc As Notesdocument
   Dim uidoc As NotesUIDocument
   Dim test As Variant
   
   Set db = session.Currentdatabase
   Set uidoc = ws.CurrentDocument
   Set doc = uidoc.Document
   If Not doc.IsNewNote Then
      Exit Sub
   End If
   Set doc = db.GetProfileDocument( "DBProfil")
   test = doc.GetItemValue( "Nummer" )
   nummer = Val(test(0))
   nummer = nummer + 1
   doc.Nummer = Str( nummer )
   Call doc.save(True, True)
   Set uidoc = ws.CurrentDocument
   Call uidoc.FieldSetText( "E_Nummer", Str( nummer ) )
   
End Sub

Offline volti0815

  • Frischling
  • *
  • Beiträge: 20
  • Geschlecht: Männlich
Re:Fortlaufende Nummer
« Antwort #2 am: 11.03.03 - 16:30:04 »
Hi,

wie setzte ich den Wert des Feldes wieder auf 0 zurück, z.B. um zum Jahresanfang wieder mit Dokument 1 zu beginnen? Wird durch das Script ein Dokument erstellt, das ich durch einen Agenten ändern kann?

Gruß

Martin
Notes R5.06a
Domino R5.08
Win NT4 SP6

klaussal

  • Gast
Re:Fortlaufende Nummer
« Antwort #3 am: 11.03.03 - 16:34:34 »
... das script erzeugt ein so genanntes PROFIL-DOKUMENT.
am jahresende müsste dann ein agent laufen, der das feld xyz wieder auf 0 setzt. profil-dokumente kann man sich am besten mit notes-peak anschauen (das ist freeware; suche im forum bringt dir den link dazu). ::)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Fortlaufende Nummer
« Antwort #4 am: 11.03.03 - 17:26:17 »
... ich würde das nicht über ein Profildokument machen, denn das bleibt während meiner Session geöffnet. wenn jemand anderes die DB öffnet und ein Dokument erstellt kann es zu doppelten Nummern kommen...

... Im Forum gibt es bereits mehrere Postings zu diesem Thema - bitte such nach "Fortlaufende Nummer"...

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Fortlaufende Nummer
« Antwort #5 am: 11.03.03 - 17:35:09 »
Und was passiert wenn zwei user gleichzeitig ein doc erstellen dann hab ich aber zweimal die gleiche nummer!!
Ich hab schon etwas über documenten sperren gesehen?
Lasst sich das mit dem Profildoc auch realisieren?
robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Fortlaufende Nummer
« Antwort #6 am: 11.03.03 - 17:45:46 »
hallo ata!!
Ich hab schon oft gesucht und meistens auf lösungen mit profildocs gestoßen oder aber auf lösungen wo nachher wieder gestanden ist das geht so nicht weil was ist wenn ein zweiter user gleichzeitig ein doc erstellt und dann viellwicht noch das thema was ist wenn die DB repliziert wird!!
Ich hab aber noch nirgendwo eine lösung gefunden die perfekt war!! Welche lösung würdest du vorschlagen wenn es über profildoc nicht gut ist und die anforderungen da sind wie bei mein erstes posting dieses beitrags ?
robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Fortlaufende Nummer
« Antwort #7 am: 11.03.03 - 20:43:44 »
... na ja, man will anhand der Nummer die Identifizierung des Dokumentes ermöglichen ? ! ? ! ?... Sinn oder Unsinn ....

Es gab hier im Forum eine Lösung mit einer DB, die ich bereits selbst mal überarbeitet habe, damit sie auch tatsächlich läuft...

... ich geh mal auf die Suche...

ata
Grüßle Toni :)

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Fortlaufende Nummer
« Antwort #8 am: 11.03.03 - 20:54:41 »
... in diesem Posting hat doliman eine DB als Attachment beigesteuert, daß eine replizierfähige Version einer Nummernvergabe enthält... bei der Implementierung muß man sich genau an die Anweisgungen des Autors halten...

http://www.atnotes.de/index.php?board=7;action=display;threadid=6243;start=0

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Fortlaufende Nummer
« Antwort #9 am: 12.03.03 - 10:09:41 »
Hallo,

@ata
Das ganze wird ja wieder mit einem Profildokument gelöst
Die DB seqNumb.nsf ist von:
http://www-10.lotus.com/ldd/sandbox.nsf/ecc552f1ab6e46e4852568a90055c4cd/5e0be790b7fb7b6f852569ba005078aa?OpenDocument&Highlight=0,sequential?OpenDocument&Highlight=0,sequential

Du hast mal gesagt wenn du ein Profildocument verwendest dann kann ein anderer user nicht drauf zu greifen weil er es blockiert!!
Stimmt das ?
robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Fortlaufende Nummer
« Antwort #10 am: 12.03.03 - 10:58:52 »
... dort wird kein "echtes" Profildokument verwendet - es ist ein reguläres NotesDokument...

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Fortlaufende Nummer
« Antwort #11 am: 12.03.03 - 11:27:18 »
kann bei diesem bespiel der fehler auftreten wenn ein user ein doc erstellt und ein zweiter auch das es die nummer doppelt gibt?
Das Bespiel sieht auch ein wenig kompliziert aus was brauch ich da alles?
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Fortlaufende Nummer
« Antwort #12 am: 12.03.03 - 12:40:06 »
... so weit ich das bisher sehe ist die Gefahr der doppelten Nummernvergabe sehr gering. Es wird geprüft, ob gerade jemand eine Nummer vergibt ( das Dokument ist dann gesperrt ), falls ja, dann probiert er eine gewisse Zeit eine Nummer zu bekommen. Diese Zeit genügt um als Nächster dann eine Nummer bekommen zu können...

... das Beispiel ist in der Tat keines der Einfachsten zum Implementieren, wenn du es ermöglichen kannst, dann schick mir deine DB per Mail, ich habe zwar massig Arbeit und ein Konzert vorzubereiten, aber ich will mal sehen...

ata
Grüßle Toni :)

Offline robertpp

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 940
  • Geschlecht: Männlich
Re:Fortlaufende Nummer
« Antwort #13 am: 12.03.03 - 14:05:50 »
Ich probier es mal selber hinein zu bekommen in die DB wenn es nicht klappt werde ich mich nochmals melden
danke robertpp
------------------------------------------------------------
1250 Notes User Client von 5.0.5 bis 6.5.4     WIN2000, XP
14 Notes Server von 6.5 bis 6.5.4 WIN2000, XP

32   Notes Server von 5.0.1 bis 6.5.4 in unserer Domain
323 Notes Server weltweit mit 38000 User in einem Adressbuch

Offline ata

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 5.092
  • Geschlecht: Männlich
  • drenaiondrufflos
    • Anton Tauscher Privat
Re:Fortlaufende Nummer
« Antwort #14 am: 12.03.03 - 14:22:17 »
... selber machen ist immer noch am Besten...

ata
Grüßle Toni :)

Teamplay

  • Gast
Re:Fortlaufende Nummer - im Jahr 2004
« Antwort #15 am: 10.06.04 - 19:20:25 »
Hallo,

gibt's schon was neues bzw. besseres zum Thema?

Per LotusScript oder Formula-Sprache?

Gruß
Leo

Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


Hernan Cortez

  • Gast
Re:Fortlaufende Nummer
« Antwort #17 am: 10.06.04 - 19:43:15 »
Ulrich hat Recht.

Die Alternative wäre (nicht ernst gemeint):
- Einsehen, dass heutige Software Systemintegration heisst.
- Den Kunden davon überzeugen, eine Mysql-DB zu installieren, von der Administration Warten zu lassen.
- Auf der MySql eine Tabelle mit einem Feld als auto_increment bigint primary key erstellen.
- bei der Erzeugung des Dokuments eine connection mit der Datenbank aufzunehmen (wie auch immer: ODBC, JDBC, vielleicht LEI oder DECS)
und in der MySql einen Insert machen. Mit einem direkt anschliessenden Query (oder einer speziellen Funktion (schlag jetzt Namen nicht nach, geht sowieso nur mit z.B. Java2) die heilige Zahl des letzten inserts ermitteln.  
Während des Postopen Events Erstellen von neuen Dokumenten Datenbankweit per Lock-Dokument unterbinden.
- Die heilige Zahl in das Feld schreiben.
- Falls eine Datenbankverbindung mit MysQl nicht möglich ist, Erstellen von neuen Dokumenten grundsätzlich verbieten.


Hernan Cortez

  • Gast
Re:Fortlaufende Nummer
« Antwort #18 am: 10.06.04 - 19:46:52 »
weitere Möglichkeit. Nach deiner letzten Antwort ernstgemeint:
- Erstellen neuer Dokumente grundsätzlich über Tomcat laufen lassen.
- Der Inhalt der Felder wird dann per Backend in die NotesDatenbank eingefügt.
- Mit Servlet mit doGet als synchronized.
- Die Zahl in einer Variable in ServletContext schreiben.
- Falls Tomcat ausfällt, können keine neuen Dokumente erzeugt werden.

Gruß Axel


Offline TMC

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.660
  • Geschlecht: Männlich
  • meden agan
Re:Fortlaufende Nummer
« Antwort #19 am: 10.06.04 - 19:47:35 »
eindeutige Nummer wie @Unique ist der Scheiß, der keiner braucht und sich merken kann (wird up und zu nur in nicht ausgereiften DB's verwendet)

Nun mal langsam Kollege, schau Dir mal die Links hier durch:
http://www.atnotes.de/index.php?board=27;action=display;threadid=16270

Damit hast Du alle Alternativen die es wohl gibt - zumindest wurden diese wohl ziemlich alle dort erwähnt.

Matthias

A good programmer is someone who looks both ways before crossing a one-way street.


 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz