Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Jörg P am 28.05.14 - 11:55:01

Titel: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: Jörg P am 28.05.14 - 11:55:01
Hallo zusammen,

ob ein User ein bestimmtes Smarticon nutzen kann, wird mit dem @DBLOOKUP - Befehl geprüft, indem ein Feld in dem Stammsatz des Users aus einer Mitarbeiter-Datenbank ausgelesen wird (Server- u. Datenbankdaten für den dblookup-Befehl sind im Smarticon vorgegeben).

Kann man auf diesem Weg über ein Smarticon auch einen Feld-Wert in dem User-Datensatz ändern (Prüfung, mit welcher Icon-Version der User arbeitet)?

Ich finde keinen Befehl, der analog dem @SetProfileField - Befehl einen Wert in ein Datensatzfeld schreiben kann.

Gibt es da eine Möglichkeit?!?

Gruß Jörg
Titel: Re: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: pram am 28.05.14 - 12:37:30
Hallo Jörg, funktioniert es mit @SetField / @SetDocField

Oder eben mit Lotusscript. Dies geht, indem man eine Maske öffnet:

@Command([Compose];  "servername/ORGANISATION":  "pfad/zur/smarticon-db.nsf";  "smarticon-maske")

Im Initialize der smarticon-Maske kann man mittels
Code
	Dim ws As New NotesUIWorkspace
	Dim db As NotesDatabase
	Set db = ws.CurrentDatabase.Database
noch auf die vorherige geöffnete DB zugreifen und sich diese merken, ebenso ist noch ws.currentView bzw. ws.currentDocument gesetzt, wenn ein Dokument oder Ansicht offen war.

Der eigentliche Code läuft dann im postOpen der Maske ab.

Gruß
Roland
Titel: Re: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: Jörg P am 28.05.14 - 12:45:47
Hallo Roland,

danke für die schnelle Info. Auf die Idee mit Script und einer Extra-Maske bin ich noch nicht gekommen...

Danke für den Denkansatz, werde es gleich mal probieren!!!

Gruß Jörg
Titel: Re: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: Jörg P am 30.05.14 - 11:47:54
Hallo,

ich habe erst einmal die einfachere Variante von Roland mit dem SETDOCFIELD-Befehl probiert:

_USERID    := @DbLookup( "NOTES" : "NoCache" ; _server : _dbname ; _ansicht1 ; @Name([CN];@UserName) ; "DOCID") ;
@Command([FileOpenDatabase]; "server" : "MitarbeiterDB.nsf" ) ;
@SetDocField( _USERID ; "Feldwert1" ; @Today )

Das Problem ist, dass der Command(FileOpenDatabase)-Befehl NACH dem SetDocField-Befehl ausgeführt wird.
Der SetDocField-Befehl funktioniert aber nur in einer geöffneten DB.

Kann man die Reihenfolge beeinflussen, damit der SetDocField zum Schluss ausgeführt wird?

Gruß Jörg

Titel: Re: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: klaussal am 30.05.14 - 11:58:40
Such mal unter "@PostedCommand".
Titel: Re: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: Jörg P am 30.05.14 - 13:56:42
Hallo Klaus,

mit postedcommand kann ich nur das "FileOpenDatabase" ans Ende setzen, nicht aber das "SetDocField". Habe die Reihenfolgen auch schon getauscht, mit posted und ohne.
Klappt leider nicht.

Trotzdem danke!

Gruß Jörg
Titel: Re: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: Tode am 30.05.14 - 14:47:06
Probier mal ein @UpdateFormulaContext vor dem SetDocField, das könnte helfen
Titel: Re: Datenbankfelder über ein Smart-Icon ändern
Beitrag von: Jörg P am 30.05.14 - 14:55:19
Hallo Torsten,

das ist die Lösung. Jetzt klappt's. Da wär ich nie drauf gekommen...

Vielen Dank!!!

Gruß Jörg