Domino 9 und frühere Versionen > ND6: Entwicklung

zwei Dokumente mit gleicher DocID???

<< < (3/4) > >>

Thomas Schulte:
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.

Katja_S:
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.

Semeaphoros:
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.

Katja_S:
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

--- Ende Code ---

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.

koehlerbv:
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

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln