Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: StoneCold am 13.10.04 - 09:52:12
-
Hi, ich benötige ein Eingabefeld in dem der User seine persönliche Mitarbeiter-ID eintragen kann, diese soll dann in das Öffentliche Notes Adressbuch eingetragen werden.
Unser Öffnetliches Notes Adressbuch ist so gestrickt das nur der jeweilige User seinen eigenen Eintrag Editieren kann und kein anderer.
Aber da manche User einfach zu unerfahren oder vorsichtig sind das direkt in ihrem Eintrag zu machen möchte ich das mit einem Eingabefeld und einem Ok Knopf, mit einem dahinter liegenden Script abfackeln.
Dh.: Der User schreibt seine Nummer in das Eingabefeld und drückt auf Ok. Nun wird unsichtbar für den User das Adressbuch geöffnet und sein persönlicher Eintrag rausgesucht und im Editiermodus geöffnet und in Feld X die Eingabe des Users hinterlegt und anschliessend gespeichert.
Nun, wie kann ich soetwas realisieren?
greetz
-
Hi,
in welcher DB soll den das passieren?
Ganz grob musst du, nach dem der User den OK-Button gedrückt hat, mit einem GetDocumentbyKey mit dem Usernamen auf die Ansicht ($VIMPeople) dir das Dokument besorgen und dann kannst du das Feld füllen. Das alles kann im Backend passieren.
Axel
-
also im Endeffekt wirds so aussehen, das der User eine Mail bekommt, in der sich ein numerisches Eingabefeld befinden wird und eine kleine Erklärung.
Na das problem ist, ich bin total Newb was sowas angeht.
-
Für soetwas brauchst Du LotusScript. Das Ganze ist zwar nicht unbedingt Hexenwerk, aber villeicht nicht gerade die sinnvollste Aufgabe für einen Anfänger.
Ich halte ausserdem das Procedere nicht für besonders sinnvoll:
- Die EmployeeID würde ich nicht gerade von den Mitarbeitern selber, sondern von der Personalabteilung pflegen lassen.
- Der Aufwand wird nicht reduziert: Der Admin muss ein Mail an neue Mitarbeiter schicken (Mailvorlage 'raussuchen, Adresse auswählen, absenden - und noch kontrollieren, obd er Mitarbeiter "brav" war.
In der Zeit hat man nach der Registrierung das Feld fix selbst ausgefüllt.
Bernhard
-
Hi,
ich kann mich Bernhard nur anschliessen.
Axel
-
ja gut so kann es ja zukünftig gemacht werden, was zwar nicht in meiner Hand liegt aber ok.
Fakt ist, das nur der User selber seine Daten pflegen kann und kein anderer bis auf ein paar Ausnahmen, die aber für solche Zwecke nicht beauftragt werden können.
-
kann mir keiner helfen?
wie gesagt noch einmal, ich möchte die Employee ID im Work/home Tap editieren, mir besteht nicht die Möglichkeit diese Einträge zu editieren.
Deshalb möchte ich einen Alphanumerisches Feld machen in dem die User ihre Nummer eintragen und dann soll ein script diesen Eintrag darein setzen.
Ist dringend
???
-
Wie Bernhard schon sagte, ist mit Script möglich. Eine fertige Lösung wirst Du hier aber sicherlich nicht erhalten.
-
Das Feld EmployeeID ist ein Textfeld.
Da folgende Script kannst Du als Grundlage verwenden. Packe es bspw. in einen Button, den Du per Mail an die User sendest.
Dim session As NotesSession
Dim db As NotesDatabase
Dim nab As NotesDatabase
Dim dc As NotesDocumentCollection
Dim nabdoc As NotesDocument
Dim searchstring As String
Dim persnr As String
Set session = New NotesSession
Set db = session.CurrentDatabase
Set nab = New NotesDatabase( "", "" )
Call nab.Open( db.Server, "names.nsf" )
If Not nab.IsOpen Then
Msgbox "Das Adressbuch konnte nicht geöffnet werden!",0+16,"Abbruch"
Exit Sub
Elseif nab.Server = "" Then
Msgbox "Diese Aktion darf nicht lokal ausgeführt werden!",0+16,"Abbruch"
Exit Sub
End If
'Eingabe der Pers.Nr.
persnr = Inputbox$("Geben Sie die Personalnummer ein:","Personalnummer","")
If persnr = "" Then
Msgbox "Sie haben keine Personalnummer eingegeben!",0+16,"Abbruch"
Exit Sub
End If
'Suche User im NAB
searchstring = |Form = "Person" & @Subset(FullName;1) = "| + session.Username + |"|
Set dc = nab.Search( searchstring, Nothing, 0 )
If dc.Count = 0 Then
Msgbox "Es wurde kein Personendokument gefunden!",0+16,"Abbruch"
Exit Sub
End If
'Schreibe neue Pers.Nr.
Set nabdoc = dc.GetFirstDocument
nabdoc.EmployeeID = persnr
Call nabdoc.Save( False, False, True ) 'Speichern, kein Konflikt erzeugen
Msgbox "Die Personalnummer wurde eingetragen!",0+64,"Hinweis"
Alle Angaben ohne Gewähr !!!
Andreas
-
Wie Bernhard schon sagte, ist mit Script möglich. Eine fertige Lösung wirst Du hier aber sicherlich nicht erhalten.
So kann man sich täuschen. :(
...
Onkel ToM
-
Das soll aber nicht die Regel sein!
Zufällig hatte ich sowas in meiner Scriptsammlung und ich denke, es ist vertretbar, dann sowas zu posten.
StoneCold sollte sich aber die Mühe machen, das Script zu verstehen!
Insbesondere da er es an die User senden will, muss das ausführlich getestet sein.
Mein Hinweis "EmployeeID" ist im Standard-Adressbuch ein Textfeld sollte beachtet werden!
Andreas
-
Naja, wenn so was fertig rumliegt, ist natürlich nichts dagegen einzuwenden. Das sehe ich genauso wie Andreas.
Die Frage ist natürlich, in wieweit StoneCold damit geholfen ist und ob er mit dem Script klarkommt.
-
danke für die antwort @ Glombi, wie du schon gesagt hast muss ich das erstmal verstehen, denke mal das wird hinkommen.
Testen muss ich das allemal, da es an knapp 7000 User rausgehen wird.
danke
greetz