Autor Thema: Editieren von Profil-Feldern  (Gelesen 1791 mal)

LuCypher

  • Gast
Editieren von Profil-Feldern
« am: 17.11.05 - 09:02:15 »
Hallo

Nachdem mir hier bei mir schon alle dazu "gratulieren", dass ich die Datenbank bearbeiten darf und selber ratlos sind, hoff ich mal, dass hier jemand einen geistesblitz hat.

Ich soll in einem normalen Dokument, was aus der Navigation per Compose-Befehl aufgerufen wird,die Bezeichnung im Abteilungs-/Referatsfeld ändern.
In diesem Dokument gibt es noch zwei Felder, die vom Referatsfeld abhängen. Es soll also nur das Referatsfeld geändert werden und die anderen beiden Felder erhalten bleiben.

Aufruf des Dokuments aus der Navigation:

Code
@Command([Compose];"Referatsprofil")


Vorgabewert für das Feld das ich ändern soll:

Code
filler:=@GetProfileField("Benutzerprofile";"Referat";@UserName);
@If(filler="";"Sie müssen ein Referat eingeben";filler)

Vorgabewert für die vom Referat abhängigen Felder:
Das zweite Feld sieht ebenso aus, nur die Feldbezeichnung ist anders.

Code
filler:=@GetProfileField("Benutzerprofile";"Referat";@UserName);
@If(filler="";"Sie müssen erst ein Referat eingeben";@GetProfileField("Referatsprofil";"SEM";filler))

Gespeichert werden die Felder dann wie folgt:

Code
filler:=@GetProfileField("Benutzerprofile";"Referat";@UserName);
@SetProfileField("Referatsprofil"; "Referat";Referat;filler);
@SetProfileField("Referatsprofil"; "SEM";SEM;filler);

Mein erster Ansatz war dann das ganze wie folgt in einem Agenten zu lösen. Die Dokumentauswahl beschränkt sich dabei auf das Dokument "Referatsprofil"

Code
Dim db As NotesDatabase
	Dim acl As NotesACL
	Dim entry As NotesACLEntry
	Dim entryName As String	
	Dim session As New NotesSession
	Dim ws As New NotesUIWorkspace
	Dim UIdoc As  NotesUIDocument
	Dim itRef As NotesItem
	Dim doc As NotesDocument
	Dim ndc As NotesDocumentCollection
	
	
	Set db = session.CurrentDatabase
	Set acl = db.ACL
	Set uidoc = ws.CurrentDocument
	counter = 0
	'Schleife zum Auslesen der ACL-Einträge ohne Gruppen und Server
	
	Set entry = acl.GetFirstEntry
	Do While Not(entry Is Nothing)
		
		If entry.IsPerson And Not entry.IsGroup Then
			
			entryName = entry.name
			
			'holt das entsprechende Profildokument
			
			Set doc =db.GetProfileDocument("Referatsprofil",entryName)
			
			'überprüft ob das Feld "Referat" vorhanden ist
			
			If doc.HasItem("Referat") Then
				
				Set itRef = doc.GetFirstItem("Referat")
				
				Select Case itRef.Text
					
				[...]
					
				End Select
				
			End If			
		End If
		Set entry = acl.GetNextEntry(entry)
	Loop

...was wahrscheinlich nicht funktioniert hat, weil es sich ja nicht um ein Profildokument handelt.

Alternativ dazu hab ich danach versucht mir mit allDocuments die Dokumente erst in eine Collection zu landen und dann (testweise) mit getfirstDocument zumindest das erste auszulesen und ändern zu können. Beim Debugen hab ich dann gemerkt, dass bei den Items des Dokuments aber kein Item "Referat" existiert.

Letzter Ausweg wäre, die Benutzer per email zu informieren, dass die Referatsbezeichnungen angepasst wurden, aber die Werte im Referatsprofil von hand angepasst werden müssen.

Hat irgendjemand noch eine Idee oder einen Ansatz? oder hab ich nur irgendwas übersehen? oder ist es so eine ungünstige Konstellation, dass es nicht geht?

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: Editieren von Profil-Feldern
« Antwort #1 am: 17.11.05 - 09:11:21 »
Wenn ich dich richtig interpretiere dann hast du zwei unterschiedliche Probleme.
Problem 1: Die Referatsbezeichnung die in Profildokumenten in der Datenbank pro Benutzer vorhanden ist muss angepasst werden.
Das können entweder die betroffenen Benutzer selber durchführen. Deine DB sollte so eine Funktion zumindest anbieten. Dann musst du nur diese Benutzer entsprechend informieren, das sie bitteschön ihr Profildokument ändern sollen. Oder du kannst dir eine Liste der Benutzer machen und den mit einem Agent und GetProfileDocCollection alle Profile holen und dann Stück für Stück durcharbeiten und das entsprechend ändern.

Problem 2: Deine Altdaten haben aufgrund derEinträge im Profildokument die falschen Werte.
Hier kannst du erst ansetzen wenn du Problem 1 gelöst hast. Dann kannst du wieder eine Profiledoccollection holen und dir dann deine zu ändernden Dokumente Stück für Stück anpassen.
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

klaussal

  • Gast
Re: Editieren von Profil-Feldern
« Antwort #2 am: 17.11.05 - 09:13:35 »
Das Ganze hat wohl mit der ACL nix zu tun. Gib mal in der Designer-HIlfe das Stichwort "Profildokument" ein und lies ein bisschen...

LuCypher

  • Gast
Re: Editieren von Profil-Feldern
« Antwort #3 am: 17.11.05 - 09:21:19 »
Problem 1 habe ich schon gelöst...

im Benutzerprofil habe ich die Referatsbezeichnungen bereits angepasst.

Wenn der Benutzer dann aber das Referatsprofil öffnet bekommt er leeres Dokument zurück in dem nur die Referatsbezeichnung drin steht, aber die Felder mit den weiteren Freigebenden Personen(Das ist das u.a. das Feld "SEM" aus dem Code) leer sind.

Zum Thema ACL:

Jein... Die Personen die in der ACL eingetragen sind, benutzen auch alle die Datenbank und haben schon ein Benutzerprofil. Und die Gruppen und Server habe ich rausgenommen.


Hinzukommt, dass es sich ja nicht um ein echte Profildokument handelt sondern nur um ein normales Dokument
« Letzte Änderung: 17.11.05 - 09:28:17 von LuCypher »

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Editieren von Profil-Feldern
« Antwort #4 am: 18.11.05 - 00:36:37 »
Ich soll in einem normalen Dokument, was aus der Navigation per Compose-Befehl aufgerufen wird,die Bezeichnung im Abteilungs-/Referatsfeld ändern.

Warum schreibst Du dann von "Profil-Feldern". was jeden ja erstmal zu ProfileDocuments führt?

Zweite Frage:
Di zitierst zahlreichen FrontEnd-Code, Deine Änderungen müssen aber im BackEnd ausgeführt werden. Deine Beispiele passen also in keiner Weise zu möglichen Lösungen. Du müsstest hier also die Informationen (ausschliesslich auf Dokument- /DB-Ebene) posten, die wirklich relevant sind.
Oder Ihr müsst einen Externen engagieren, der Ahnung davon hat.

Bernhard

PS: "LuCypher" als "Deckname" ist nicht gerade der Bringer ... Zumindest meiner Meinung nach.

LuCypher

  • Gast
Re: Editieren von Profil-Feldern
« Antwort #5 am: 18.11.05 - 08:26:44 »
Ich hab mir die Datenbank nicht ausgesucht und ich hab sie auch nicht erstellt ergo kann ich auch nichts dafür, wenn's jemand so programmiert dass das entsprechende Dokument aus der gliederung heraus nur über den Compose-Befehl "öffnet" und dann im Dokument selber mit set/getProfileField arbeitet.

Ich weiss auch nicht was du am Mäkeln bist was dir an Informationen fehlt. Ich hab sowohl gepostet wie die Felder gesetzt werden wie sie ausgelesen werden.

Scheinbar hast du ja aber nach dem Compose befehl aufgehört zu lesen und ganz übersehen dass die Felder in dem erzeugten Dokument dann mit set und getProfileField bearbeitet werden, was, entschuldige meinen bescheidenen Wissensstand der diesem Forum unwürdig zu sein scheint, sich ja auf Profil-Felder bezieht.

Was meinen Nickname angeht: Wieso sollte ich mir für 20 Foren 20 verschiedene Name zulegen/merken?!

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: Editieren von Profil-Feldern
« Antwort #6 am: 18.11.05 - 08:45:24 »
Dann les dir doch bitte mal die Forumsregeln und da speziell den Punkt 2.2 Nicknames durch.
Deiner kann, vorsichtig gesagt durchaus religiös interpretiert werden.

Und wenn du Bernhard anmachst nutzt dir das herzlich wenig bei deiner Lösungssuche.

Wir wissen übrigens immer noch nicht. was deine Anwendung denn so macht, wo die Daten herkommen und was du jetzt egentlich genau willst.
Altdaten verändern? Dafür sorgen das Neudaten korrekt verarbeitet werden? Die Profile ändern?

Ich tippe ja darauf das du immer noch das Problem hast Altdaten durch korregierte Neudaten zuersetzen, aber zum raten ist mir die Zeit einfach mittlerweile zu schade.
Sag klar, und so das es auch so dumme Leute wie ich oder Bernhard verstehen können, was du machen willst und dann können wir dir weiterhelfen.
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

LuCypher

  • Gast
Re: Editieren von Profil-Feldern
« Antwort #7 am: 18.11.05 - 09:46:52 »
Ja, gut entschuldigung....

Die Datenbank regelt die Auftragsvergabe und den Auftragsstatus hier im Haus.

Die Namen der das Referate stehen in einem Textfeld in einem Konfigurationsdokument und können dort auch manuell hinzugefügt und entfernt werden. aus diesem Feld zieht eine Drop-Downliste im Benutzerprofil die werte, welche dann vom benutzer eingestellt werden kann. (das hab ich schon über einen Agenten geändert). Das verbleibende Problem ist, dass ein drittes Dokument "Referatsprofil" dann aus dem Benutzerprofil das Referat holt und dann in zwei Namensfelder die entsprechende Personen zieht, die ansprechpartner sind.
Wenn ich aber mit der neuen Referatsbezeichnung das Referatsprofil öffne, sind diese leer. Und das ganze von Hand für 30 abteilungen zu ändern ist recht aufwendig. Deswegen möchte ich nur die Verweise von den alten Referatsbezeichnungen auf die Neuen ändern.

Und um das mit dem Nickname zu einem Ende zu bringen: Wikipedia sagt:
Zitat
Luzifer war ursprünglich der Name des Morgensterns (Venus), zugleich allerdings auch der Name des Teufels. Abgeleitet ist der Begriff aus dem kirchlichen Wort Lucifer. Lucifer bedeutet eigentlich Lichtbringer aus dem Lateinischen von lux (Licht) und ferre (bringen). In der römischen Mythologie war Lucifer (lat. Lichtbringer) der Sohn der Aurora (Göttin der Morgenröte). Die Göttin Eos stellt in der griechischen Mythologie das Gegenstück zu Aurora dar. Auch Eos hatte einen Sohn Namens Phosphoros (griech. "Lichtbringer", aber auch Bezeichnung für die Venus/Morgenstern). In der Bibel aber, wurde der Begriff "Luzifer" nie erwähnt.

LuCypher

  • Gast
Re: Editieren von Profil-Feldern
« Antwort #8 am: 18.11.05 - 10:09:24 »
Ende vom Lied:

Jeder Benutzer der Datenbank bekommt eine email in der er darauf hingewiese wird, dass er Daten bitte manuell nachtragen soll.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz