Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: rambrand am 15.05.14 - 14:28:37

Titel: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: rambrand am 15.05.14 - 14:28:37
Hallo,

mein Chef hatte eine super Idee.
Er möchte die Funktion "In Ansicht suchen" per Button aus einer Datenbank heraus vorkonfigurieren.
Bzw. er möchte gerne ein "Konfigurationsdokument" in dem er auch schon die Suchbegriffe hinterlegen will.

Gibt es da überhaupt Zugriffsmöglichkeiten auf die Notes-API, wo kann ich dazu Beispiele oder Doku finden?

Bye,
Markus
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: pram am 15.05.14 - 16:15:11
Hi, das geht relativ einfach (allerdings erst seit Notes 8.0 oder 8.5).

Code
... Dialog öffnen mit Einstellungen etc.
Call workspace.Urlopen(myUIView.view.Notesurl+"&Query=" + dlgDoc.Suchformel(0)) ' @URLEncode("UTF-8"... erfolgt im Dialog

dlgDoc.Suchformel landet dann einfach im Query-Feld der Ansicht. Auf Optionen kann man leider nicht zugreifen.


Ich habe in meinem Dialog dann folgende Formel für das Feld "Suchformel".
Damit kann ich "Suchbegriffe" im "Suchbereich" body, bodyUndFiles oder komplett suchen.
Ausserdem bestimmt "nurWort" ob ganze Wörter gesucht werden.
Code
begriffe := @Trim(@Explode(Suchbegriffe;" ,."));
begriffe := @If(nurWort="1";"\"" + begriffe + "\""; "\"*" + begriffe + "*\"");
suche := @If(
     Suchbereich="body";
         "([Body] CONTAINS " + @Implode(begriffe;") AND ([Body] CONTAINS ")+")";

     Suchbereich="bodyUndFiles";
         @Implode(@Transform(begriffe; "ele"; "(([Body] CONTAINS " + ele +") OR ([$File] CONTAINS " + ele +"))"); " AND ")

     @Implode(begriffe;" AND "));

@Text(@If(Suchbegriffe="";"";@URLEncode("UTF-8";suche)))

Gruß
Roland
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: m3 am 15.05.14 - 17:51:31
Zitat
A Search when stored is contained within the physical database, as an Agent. Depending on the Search, it could be stored as Private or Shared, private needing the user's id to use it.
The Agent itself cannot be seen or accessed from the Notes or Designer UI, however, a utility such as Notespeek can be used to find it within the database. When the database is opened in Notespeek, simply drill down beneath the Design Elements twistie or section, and look for the Agents, which are denoted by a light bulb icon preceding their name.
http://www-01.ibm.com/support/docview.wss?uid=swg21504221
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: rambrand am 16.05.14 - 15:33:55
Hi,

@Roland: Das ist wirklich gut. Hab jetzt in die Rahmengruppe ein kleines Suchfeld eingebaut, ein paar kleine Anpassungen und es funzt. Was halt schade ist, dass man auf die Optionen - meinem Chef geht es um die Ergebnissortierung - nicht vorgeben kann. Er will da halt "Reihenfolge beibehalten (sortierbar)". Aber so wie ich es sehe, muss man das wohl organisatorisch regeln.

@Martin: Das klingt sehr interessant. Aber wenn ich das richtig verstehe, dann scheitere ich mit Lotusscript schon daran, dass ich auf den Agent nicht zugreifen kann, geschweige denn wahrscheinlich das Feld $SimpleQuery manipulieren kann.

Bye,
Markus
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: pram am 16.05.14 - 19:50:47
Evtl gibt es noch einen undokumentierten Befehl "....&SortOptions" oder so ähnlich. Ich hab damals jedenfalls nicht raus gefunden wie das geht.

Gruß Roland
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: m3 am 17.05.14 - 23:43:41
Ueber LS sollte das mit den Agenten funktionieren
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: rambrand am 19.05.14 - 13:45:05
Hallo Roland & Martin,

hab es jetzt fast hinbekommen.
Ich hab nicht genug um die Ecke gedacht. Die gespeicherte Suche ist ja auch nichts anderes als ein Dokument. Also habe ich diese als Dokument geöffnet und hier kann ich dann die Felder $SimpleQuery und $V4QueryOptions ändern und speichern.

So weit so gut. Nun will ich aber diese Suche auch ausführen. Auch wenn die gespeicherte Suche unter den Gestaltungselementen bei den Agenten zu finden sind, kann ich per getagent nicht auf die Suche zugreifen.

Gibt es eine Krücke eventuell mit urlopen? Irgendeine Variable für gespeicherte Suchdefinitionen?

Bye,
Markus
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: m3 am 19.05.14 - 14:37:26
Schau Dir eine gespeicherte Suche (= gespeicherter Agent) mit NotesPeek an. Ev. musst Du da noch ein paar andere Items aka. Felder setzen.
Titel: Re: Zugriff per LS auf Clientfunktion "In Ansicht suchen"?
Beitrag von: rambrand am 21.05.14 - 15:54:53
Hab nichts gefunden was da der Auslöser sein könnte. damit die gespeicherte Suche als Agent ausgeführt werden kann.

Bin jetzt einen anderen Weg gegangen, mittels einer Ansicht, die per FTSearch durchsucht wird, das Ergebnis in einen Ordner schiebt und dann den Ordner anzeigt. Bei jeder neuen Suche wird der Ordner vorher geleert.
Ist zwar nicht super performant, aber ich glaube man kann damit leben.

Bye,
Markus