Autor Thema: zwei Dokumente mit gleicher DocID???  (Gelesen 5694 mal)

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
zwei Dokumente mit gleicher DocID???
« am: 15.06.05 - 16:11:27 »
Hallo zusammen,

folgendes Problem: In unserer Datenbank existieren sogenannte Jahres-Profile. Diese unterscheiden sich u.a. in dem Feld VacYear, welches dann den Wert 2004, 2005 etc. haben kann. Demnach müssten es doch pro Jahr verschiedene Dokumente existieren. Hinzu kommt, dass die DocID immer gleich ist, egal welches Jahresprofil ich öffne.

Wenn ich nun innerhalb einer Ansicht nach Dokumenten suche, listet diese dann nur die Dokumente mit unterschiedlicher DocID auf oder auch jene, die die gleiche DocID haben???

Ich muss dazu sagen, dass ich nicht weiß, wie es dazu gekommen ist, dass 2 oder mehrere Dokumente dieselbe DocID haben. Darf das überhaupt so sein???

Danke und Gruß
Katja

Offline ctillmanns

  • Aktives Mitglied
  • ***
  • Beiträge: 115
Re: zwei Dokumente mit gleicher DocID???
« Antwort #1 am: 15.06.05 - 16:21:13 »
Hallo
Dokumente mit gleicher DocID sollten eigentlich nicht möglich sein. Wir hätten da sonst ein ziemlich blödes Problem. Ich habe da so einen Verdacht. Könntes es sein, dass es immer dasselbe Dokument ist, aber in der Ansicht mehrfach angezeigt wird? Ich könnte mir vorstellen, dass man sogar mit CaretCategory im Queryopendocument event etwas machen könnte, dass das Dokument immer andere Daten anzeigt, wenn man es öffnet. Wenn die Category das Jahr wäre, hätte man eine schöne Möglichkeit, nur die Daten eines Jahres im Dokument anzuzeigen.
Das war jetzt aber nur eine Idee. Könnte man wohl einfach nachprüfen, wenn man man die Feldwerte in den Properties betrachtet.
Und tschüss
Tilsche

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: zwei Dokumente mit gleicher DocID???
« Antwort #2 am: 15.06.05 - 16:24:13 »
Vorsicht es gibt zwei Ids, nicht das du die verwechselt. Das eine ist die noteID, die kann unter bestimmten Umständen gleich sein. das andere ist die UniversalID die muss immer unterschiedlich sein.
Genauere Informationen findest du wenn du die suche bemühst oder auch hier
Die Doc Id ist aber für die Anzeige in der Ansicht egal.
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

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #3 am: 15.06.05 - 16:26:46 »
Also, ich habe auch bereits in den jeweiligen Dokumenten geschaut und gesehen, dass es zwei IDs gibt: docID und DocUNID...Seltsamerweise ist auch die DocUNID identisch  mit der DocID und eben auch identisch  mit anderen Jahresprofilen vom selben Mitarbeiter. Wie geht das überhaupt, wenn die DocUNID immer unterschiedlich sein muss?

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #4 am: 15.06.05 - 16:27:59 »
Das eine ist die noteID, die kann unter bestimmten Umständen gleich sein.

Aber nicht innerhalb ein und derselben DB, Thomas - sonst hätten wir das gleiche Problem wie mit den (eigentlich unmöglichen) doppelten UniversalIDs.

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: zwei Dokumente mit gleicher DocID???
« Antwort #5 am: 15.06.05 - 16:28:51 »
Und wie hast Du in den Dokumenten nachgeschaut?
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #6 am: 15.06.05 - 16:30:21 »
Also, ich habe auch bereits in den jeweiligen Dokumenten geschaut und gesehen, dass es zwei IDs gibt: docID und DocUNID...Seltsamerweise ist auch die DocUNID identisch  mit der DocID und eben auch identisch  mit anderen Jahresprofilen vom selben Mitarbeiter. Wie geht das überhaupt, wenn die DocUNID immer unterschiedlich sein muss?

Kann es sein, dass Du Dir da Feldinhalte anschaust ? In den document properties für die NoteID und die UNID findest Du die von Dir verwendeteten Begriffe jedenfalls nicht, auch von der "Fachsprache" her sind sie "ungewöhnlich".

Bernhard

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: zwei Dokumente mit gleicher DocID???
« Antwort #7 am: 15.06.05 - 16:33:33 »
Eben, deswegen .....
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #8 am: 15.06.05 - 16:37:59 »
ja, ich schaue mir Feldinhalte über "Eigenschaften-Dokument" an.


Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #9 am: 15.06.05 - 16:41:48 »
Diese Felder dienen dann offensichtlich als programmtechnischer "Anker", um Dokumente eines Mitarbeiters "zusammenzuhalten". Diese Felder unterliegen daher der Entscheidung des / der Programmierer und haben mit Notes direkt nichts zu tun. Es ist also alles im grünen Bereich und hat mit der NoteID oder der UniversalID nichts zu tun.

Bernhard
« Letzte Änderung: 15.06.05 - 16:43:20 von koehlerbv »

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: zwei Dokumente mit gleicher DocID???
« Antwort #10 am: 15.06.05 - 16:43:16 »
nimm notespeek oder das Tool von Martin Scott, NoteMan da siehst du genauer was denn tatsächlich die UNID ist. Da wird warscheinlich eine andere ID gespeichert. Aber ohne die Anwendung zu kennen ist das Stochern im Nebel

Klar Bernhard du hast Recht.  Die NoteID ist NotUnique innerhalb von unterschiedlichen Datenbanken.
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

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #11 am: 15.06.05 - 17:01:57 »
Also, habe grade notespeek ausprobiert. Ist ein klasse Tool, danke schon mal für den Tipp...Ist denn jetzt die note-id die eindeutige ID eines Dokumentes und muss genau diese immer unterschiedlich sein? Wenn ja, dann ist diese wirklich unterschiedlich. Aber wozu brauch ich dann diese kryptische DocUNID? Ich steig da grad nicht durch. Und wie genau verhält sich Notes, wenn ich  mittels GetNextDocument() das nächste Dokument einer Ansicht hole? Denn da hab ich das Problem, dass er ein Dokument findet, obwohl es eigentlich mehrere sein sollten.


Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: zwei Dokumente mit gleicher DocID???
« Antwort #12 am: 15.06.05 - 17:05:13 »
Also, die NoteID ist eine eindeutige Kennung des Dokumentes innerhalb der gleichen Datei.

Die DocumentUniqueID, die offenbar in Deiner Anwendung ebenfalls noch einmal als normales Item abgespeichert wurde, ist ein Wert, der gesamthaft - also auch datenbankübergreiffend - nur ein einziges mal vorkommt.

Um zu wissen, was bei Dir falsch läuft, solltest Du uns mal den Code zur Verfügung stellen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #13 am: 15.06.05 - 17:11:58 »
Okay, anbei mal der Code von getProfileFieldValue()

Code
Function getProfileFieldValue(person As String, jahr As String, feld As String) As Variant

...

Set ansicht = db.GetView("(AdminAllPersonsClaimByMA)")
	
	Set ansichtPersonCol = ansicht.GetAllEntriesByKey(person, True)
	
	If ansichtPersonCol.Count =0 Then
		getProfileFieldValue = "es existiert kein Personenprofil"		
	Else
		Set ansichtPerson = ansichtPersonCol.GetFirstEntry()
		Do While Not (ansichtPerson Is Nothing)
			If ansichtPerson.IsDocument() Then
				Set personProfil = ansichtPerson.Document
				jahrItem = personProfil.GetItemValue("VacYear")
				If jahr = Cstr(jahrItem(0)) Then				
					stateItem = personProfil.GetItemValue(feld)
					'getProfileFieldValue = Cstr(stateItem(0))
					getProfileFieldValue = stateItem
					found = True			
					Exit Do
				End If
			End If				
			
			Set ansichtPerson = ansichtPersonCol.GetNextEntry(ansichtPerson)
		Loop		
	End If

Der Funktion übergebe ich den Personennamen, das Jahr und das Feld, dessen Wert ich haben möchte.
Wenn das Jahr nun 2003 ist, findet die Funktion kein Profil (also found = false) und eine entsprechende Fehlermeldung kommt. Aber das Jahresprofil für 2003 existiert für die jeweilige Person.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #14 am: 15.06.05 - 17:24:31 »
Katja, kannst Du bitte mal den kompletten Code posten ?

Und: An welcher Stelle / in welcher Situation findet der Debugger keine passenden Dokumente ? Wie ist die Ansicht aufgebaut und welche Dokumente umfasst sie ?

Auf jeden Fall hat das mit den von Dir genannten Feldern oder NoteID oder UniversalID gar nichts zu tun.

Bernhard
« Letzte Änderung: 15.06.05 - 17:26:37 von koehlerbv »

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #15 am: 15.06.05 - 18:07:13 »
Ja, kann ich aber erst morgen posten, da ich nicht mehr auf der Arbeit bin. Trotzdem schon mal danke und schönen abend noch.

bis morgen dann..;-)
Katja

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #16 am: 16.06.05 - 08:14:46 »
Die Funktion getProfileFieldValue() wird wie folgt aufgerufen:

Code
Dim totalClaim As Variant

'Summe Jahresurlaub aus Profil holen
stringJahr = "2003"
stringPerson = "Mustermann, Max"
totalClaim = getProfileFieldValue(stringPerson, stringJahr, "VacTotalClaim1")		

Code
Function getProfileFieldValue(person As String, jahr As String, feld As String) As Variant
	Dim ansicht As NotesView
	Dim ansichtPersonCol As NotesViewEntryCollection
	Dim ansichtPerson As NotesViewEntry
	Dim personProfil As NotesDocument
	Dim db As NotesDatabase
	Dim session As New NotesSession
	Dim found As Boolean
	Dim jahrItem As Variant
	Dim stateItem As Variant
	
	found = False
	Set db = session.CurrentDatabase	
	
	Set ansicht = db.GetView("(AdminAllPersonsClaimByMA)")
	
	Set ansichtPersonCol = ansicht.GetAllEntriesByKey(person, True)
	
	If ansichtPersonCol.Count =0 Then
		getProfileFieldValue = "es existiert kein Personenprofil"		
	Else
		Set ansichtPerson = ansichtPersonCol.GetFirstEntry()
		Do While Not (ansichtPerson Is Nothing)
			If ansichtPerson.IsDocument() Then
				Set personProfil = ansichtPerson.Document
				jahrItem = personProfil.GetItemValue("VacYear")
				If jahr = Cstr(jahrItem(0)) Then				
					stateItem = personProfil.GetItemValue(feld)
					getProfileFieldValue = stateItem
					found = True			
					Exit Do
				End If
			End If				
			
			Set ansichtPerson = ansichtPersonCol.GetNextEntry(ansichtPerson)
		Loop		
	End If
	
	If Not found Then
		Messagebox("Kein Profil gefunden")
	End If
End Function

Die Ansicht "(AdminAllPersonsClaimByMA)" ist wie folgt aufgebaut:

Mustermann, Max
  2004
      Januar
      Februar
      ...
      Dezember
  2003
      Januar
      Februar
      ...
      Dezember

Die Monate in der Ansicht gehören alle zu dem jeweiligen Jahresprofil, ist also ein Dokument.

Die Parameter werden alle richtig übergeben, aber zum Jahr 2003 wird einfach kein Profil gefunden, obwohl es existiert und auch in der Ansicht im NotesClient zu finden ist. Findet ihr einen Fehler?

Danke schon mal.
Gruß Katja

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: zwei Dokumente mit gleicher DocID???
« Antwort #17 am: 16.06.05 - 08:24:26 »
Aha, da haben wirs, die ViewEntryCollection, die Du hier verwendest, um die Ansicht zu durchlaufen, funktioniert nicht korrekt mit kategorisierten Ansichten. Also entweder eine Ansicht verwenden, die nicht kategorisiert ist, oder mit GetAllDocumentsByKey eine DocumentCollection holen.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #18 am: 16.06.05 - 08:39:49 »
Das habe ich auch gerade festgestellt, als ich den Unterschied zwischen den Methoden getAllEntriesByKey und getAllDocumentsByKey verstehen wollte. Unsere Ansicht ist leider kategorisiert. Ich probier das gleich mal aus..:-)...Danke für die Unterstützung!

Offline Katja_S

  • Junior Mitglied
  • **
  • Beiträge: 76
  • Geschlecht: Weiblich
Re: zwei Dokumente mit gleicher DocID???
« Antwort #19 am: 16.06.05 - 09:31:50 »
Problem gelöst. Erstens lag es an der falschen Methode und hinzu kam, dass die Ansicht irgendwie ein Problem hatte. Mit einer neuen Ansicht hat dann alles wunderbar geklappt.  :D

Vielen Dank nochmal für eure Hilfe!
Katja

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz