Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: wittmann_franz am 10.01.08 - 08:07:23

Titel: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 08:07:23
Guten Morgen zusammen,

ich möchte in einer Datenbank ein berechnetes Feld mit den alten Namen nach Namensänderung füllen.
Die Abfrage zum names.nsf des Servers habe ich bereits hinbekommen und kriege auch Daten zurück geliefert.
Nun komme ich bei dem Punkt nicht weiter das gelieferte Ergebnis so anzupassen das nur der alte Name angezeigt wird.

Hier die Formel:
@Implode(
@Name([CN];
@If(HSorGS = "extern" ; "" ;
help != "";
@DbLookup("NOTES"; server : "names"; "$Users";name; "FullName") ;
"")));

Hier das Ergebnis:
Alter Name Alter Name Neuer Name Neuer Name 22222222

Wenn ich das @Name([CN] weg lasse ist das Ergebniss folgendes:
Alter Name/Organisation/DE Alter Name Neuer Name/Organisation/DE Neuer Name 222222

Die Zahl am Ende steht bei uns in jedem Peronendokument und stellt sowas wie die Personalnummer da.

Gibt es evt. ein anderes Feld welches ich nicht kenne, wo nur der alte Name existiert ?
Ansonsten bräuchte ich bitte einen Lösungsansatz (noch besser die Lösung :o)) um die Ergebnisse so umzugestalten das nur noch der Alte Name geliefert wird.


Server 7.0.2
Client 7.0.2


Vielen Dank schon mal für Eure Hilfe
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: klaussal am 10.01.08 - 08:17:39
Ich habe hier auf die Schnelle das Feld "$AdminpOldWebName" gefunden.
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 08:36:53
 :(

Das war es leider nicht.
Dieses Feld habe ich nicht oder sehe ich nirgends.
In den DocEigenschaften wird es jedenfalls nicht afgeführt.
Es gibt dort jedoch die Felder AltFullName, AltFullNameLanguage und AltFullNameSort.

Die sind nur leider alle leer.
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: klaussal am 10.01.08 - 08:41:39
Das Feld gibt es anscheinend auch nur bei den Personen, die umbenannt worden sind.
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: DerAndre am 10.01.08 - 08:48:28
Îst es nicht so, das im FullName der aktuelle Name oben steht?
Ergo mußte es doch reichen, alle Namen ab der zweiten Position zu nehmen.
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 09:14:57
@klauss 
ich habe auch nur bei Personen geschaut die umbenannt worden sind.

@andre
Richtig. Aber genau das ist ja mein Problem.
Das bekomme ich irgendwie nicht hin.
Vor allem brauche ich den Eintrag nur einmal. Das gelingt mir irgendwie nicht.
Habe schon mit @Right, @Subset usw. probiert, leider bisher ohne Erfolg.

Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: DerAndre am 10.01.08 - 09:21:29
Rudimentär würde ich sagen:

_Ergebnis := dein DBlookup
@Elements(_Ergebnis) >=1 ; _Ergebnis[1] ; ""

oder

@If(@Subset(@Subset(_Ergebnis;1);-1)= "";"NICHT VORHANDEN";@Subset(@Subset(_Ergebnis;1);-1))
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: DAU-in am 10.01.08 - 09:34:54
wenn die Personalnummer immer gleich strukturiert ist (z.B. Länge), dann kannst du sie doch abschneiden.

grüsse

Dau-in
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: DerAndre am 10.01.08 - 09:37:29
Ja, dann hat er aber immernoch vier Namen da stehen, er möchte doch nur, wenn ich es Richtig verstanden habe, einmal den, wenn vorhanden, alten Namen haben.
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 09:39:55
@Dau-in
daran hatte ich auch schon gedacht, nur leider ist die Nummer immer unterschiedlich

@Andre
Vielen dank für die schnelle Hilfe.
Nur leider ändert sich das Ergebnis überhaut nicht.
Ich habe gerade mal das Ergbnis meines Lookups und das Ergebnis nach Deiner Formel verglichen, die sind komplett identisch.
Ist denn das was ich aus dem names.nsf ziehe eine Liste, oder evt. ein anderer Wert?
Weil @Subset doch nur mit Listen arbeitet oder??
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: DerAndre am 10.01.08 - 09:48:39
Ich bin mir jetzt nicht 100% sicher aber mach noch ein @Explode auf das Ergebnis damit es auf jeden Fall eine Liste ist.
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 09:56:21
Schon viel besser,

Formel sieht jetzt so aus:
@If(@Subset(@Subset(@Explode(full1);1);-1)= "";"NICHT VORHANDEN";@Subset(@Subset(@Explode(full1);1);-1));

Ergebnis nur noch der Vorname    >:(
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: DerAndre am 10.01.08 - 10:07:42
Gib dem Explode noch das Semikolon als Trennzeichen mit auf den Weg.
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 10:52:40
hab ich gemacht, dann gibt er mir wieder die komplette Liste zurück.
Mit einem Leerzeichen hab ich´s auch noch versucht, dann wieder nur der Vorname

 ???
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: ata am 10.01.08 - 10:55:53
Entweder bin ich noch nicht richtig wach - oder ich steh auf nem Schlauch :o
Also der Reihe nach:


Jetzt habe ich noch Fragen:
Das Feld Fullname ist bearbeitbar, ist es sicher, daß der zweite Name der alte ist?
Sind alle Personen migriert worden?

Toni
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: ata am 10.01.08 - 11:02:50
... so auf die Schnelle:

REM {Alle Werte ziehen};
vListe := @DbLookup("NOTES"; server : "names"; "$Users";name; "FullName");

REM {Den ersten Wert aus der Liste löschen, Liste Trimmen - damit ist der erste Wert nun der alte Name};
vListe_2 := @Trim(@Replace( vListe ; name ; "" ));

REM {Der erste Wert als CommonName};
vOldName := @Name([CN] ; @Subset(vListe_2 ; 1)) ;

REM {Die bisherige Verweigung verwenden};
@If(HSorGS = "extern" ; "" ;
help != ""; vOldName ;
"")

Toni
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 11:21:45
Hallo Toni,

Du bist ja schneller als die Polizei erlaubt.
Hier meine Antworten

mit dem Schlüssel "name" zieht er den aktuellen (neuen) Namen
Lookup holt alle Einträge
Der erste (hierarchisch) und der zweite (CommonName) Wert in der liste ist der neue Name.
Der letzte Wert ist die Personalnummer
Der alte Wert soll in einem Feld als CN gespeichert werden

Damit ist auch Deine Fraag nach dem bearbeitetem Feld beantwortet.
Was meinst Du mit  Deiner Frage zur Migration ??

Ergebnis nach Deiner Formel ist nun jedoch der neue Name.

Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: ata am 10.01.08 - 12:00:55
... dann machen wir es anders herum:

REM {Alle Werte als CommonName ziehen};
vListe := @Name( [CN] ; @DbLookup("NOTES"; server : "names"; "$Users";name; "FullName"));

REM {CommonName´des Schlüssels} ;
vKey := @Name([CN] ; name) ;

REM {Alle neuen Namen aus der Liste löschen, Liste Trimmen - damit ist der erste Wert nun der alte Name};
vListe_2 := @Unique(@Trim(@Replace( vListe ; vKey ; "" )));

REM {Der erste Wert sollte dann der alte CommonName sein };
vOldName := @Subset(vListe_2 ; 1) ;

REM {Die bisherige Verweigung verwenden};
@If(HSorGS = "extern" ; "" ;
help != ""; vOldName ;
"")

Toni
Titel: Re: Alte Namen aus names.nsf auslesen
Beitrag von: wittmann_franz am 10.01.08 - 12:05:31
jupp, das wars.

Vielen Dank an alle die zur Lösung beigetragen haben.