Das Notes Forum

Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: mgubler am 26.10.09 - 11:09:30

Titel: Suchformular Web
Beitrag von: mgubler am 26.10.09 - 11:09:30
Hallo zusammen,

ich müsste ein Such-Formular für eine Intranetseite zusammenbasteln.
Hier soll über ein Listenfeld oder zwei Eingabefelder gesucht werden.
Hat hierzu vielleicht jemand schon eine Lösung?

Besten Dank im voraus für alle Antworten.

Marc
Titel: Re: Suchformular Web
Beitrag von: dirk_2909 am 26.10.09 - 13:21:18
Hallo Marc,

eine Lösung habe ich so jetzt nicht parat. Aber Du hattest so was auch schon mal gemacht ;-)

Was genau willst Du wissen? Wo hängt es?
Titel: Re: Suchformular Web
Beitrag von: mgubler am 26.10.09 - 13:40:56
Hi Dirk!

Es hängt im Prinzip an der Query.
Das Formular selbst habe ich...aber wie gehts weiter?
Ich habe dort wie bereits erwähnt 3 Felder und muss je nachdem die Query machen.
Momentan bin ich irgendwie blockiert...
Titel: Re: Suchformular Web
Beitrag von: LN4ever am 26.10.09 - 22:31:33
Hallo,

ich habe einmal eine Suchmaske mit der Eingabemöglichkeit von bis zu drei in sich geklammerten Querystrings, die selbst wieder eine Teil-Query enthalten dürfen und zwei Operatoren gemacht und in dem SEARCH-Button dann den unten stehenden CODE eingebaut:

path := @WebDbName;
_phrase1:=@Left(@Right(Query1;@Char(34));@Char(34));
_q1:=@Trim(@ReplaceSubstring(Query1;_phrase1;"$phrase$"));
_query1:=@ReplaceSubstring(_q1;" -";"+AND+NOT+");
_query1a:=@ReplaceSubstring(_query1;", ";"+OR+");
_query1b:=@ReplaceSubstring(_query1a;" ";"+AND+");
_query1c:=@ReplaceSubstring(_query1b;"$phrase$";_phrase1);

_phrase2:=@Left(@Right(Query2;@Char(34));@Char(34));
_q2:=@Trim(@ReplaceSubstring(Query2;_phrase2;"$phrase$"));
_query2:=@ReplaceSubstring(_q2;" -";"+AND+NOT+");
_query2a:=@ReplaceSubstring(_query2;", ";"+OR+");
_query2b:=@ReplaceSubstring(_query2a;" ";"+AND+");
_query2c:=@ReplaceSubstring(_query2b;"$phrase$";_phrase2);

_phrase3:=@Left(@Right(Query3;@Char(34));@Char(34));
_q3:=@Trim(@ReplaceSubstring(Query3;_phrase3;"$phrase$"));
_query3:=@ReplaceSubstring(_q3;" -";"+AND+NOT+");
_query3a:=@ReplaceSubstring(_query3;", ";"+OR+");
_query3b:=@ReplaceSubstring(_query3a;" ";"+AND+");
_query3c:=@ReplaceSubstring(_query3b;"$phrase$";_phrase3);

_xoperator1:=@If(@Trim(Query2)="";"";d_Operator1);
_xoperator2:=@If(@Trim(Query3)="";"";d_Operator2);

_Query:=@If(_xOperator1="";_query1c;
"("+_query1c+")+"+_xOperator1+"+("+_query2c+")")
+@If(_xOperator2="";"";"+"+_xOperator2+"+("+_query3c+")");

@If(_Query="";
   @Return("")
;
   @Do(
      @SetTargetFrame("view");
      @URLOpen ( "/" +
      path +
      "/" + searchView + "/?SearchView&Query=" + _Query +
      "&SearchOrder=" + @Text ( SortOrder ) +
      "&SearchMax=" + @Text ( MaxResults ) +
      "&SearchWV=" + @If ( WordVariants = ""; "FALSE" ; "TRUE") +
      "&SearchThesaurus=" + @If ( UseThesaurus = ""; "FALSE"; "TRUE" ) +
      "&SearchFuzzy=" + @If(FuzzySearch = ""; "FALSE" ; "TRUE")
      )
   )
)

Ist es das, was du suchst ?

Gruß

Norbert
Titel: Re: Suchformular Web
Beitrag von: mgubler am 27.10.09 - 16:16:17
Danke, das hat soweit funktioniert.
Ich habe es noch ein wenig vereinfacht.

Code
path := @WebDbName;
_nachname:=@Trim(tx_nachname);
_nummer:=@Trim(tx_nummer);
_abteilung:=@Trim(tx_abteilung);

searchView:=@If(_nachname!="";"v_nachnamen";_abteilung!="";"v_abteilungen"; _nummer!="";"v_nummern";"");
nn:=@If(_nachname="";"";"[tx_nachname]+CONTAINS+"+_nachname);
nr:=@If(_nummer="";"";"[tx_nummer]+CONTAINS+"+_nummer);
abt:=@If(_abteilung="";"";"[tx_abteilung]+CONTAINS+"+_abteilung);

@Do(
Y:=@If(_nachname!="";nn;_abteilung!=""; abt;_nummer!="";nr;"");
@URLOpen ( "/" + path+"/v_nachid/?SearchView&Query="+Y)
)

Jedoch erhalte ich einen 500er Fehler wenn ich die SearchView starte.
Die View existiert definitiv.
Wenn ich diese nämlich ohne SearchView aufrufe klappt alles.
Hat jemand eine Idee, woran das nun wieder liegen kann?!?

Marc
Titel: Re: Suchformular Web
Beitrag von: koehlerbv am 27.10.09 - 16:28:04
Haben die Webuser auch die erforderlichen Rechte auf die SearchView (View ACL)?

Bernhard
Titel: Re: Suchformular Web
Beitrag von: mgubler am 27.10.09 - 16:35:00
Hallo Bernhard,

die ACL schaut wie folgt aus:
"All readers and above" und "Available to public users"

Die DB ACL:
Anonymous: Reader
Default: Reader
Titel: Re: Suchformular Web
Beitrag von: koehlerbv am 27.10.09 - 17:17:00
Das passt ... seitens der view ACL. Die Parameter für @UrlOpen kommen mir aber dubios vor.

Bernhard
Titel: Re: Suchformular Web
Beitrag von: mgubler am 28.10.09 - 08:41:27
Wieso kommen dir die parameter denn merkwürdig vor?
Ich setze (je nachdem welches Feld gefüllt ist) die URL zusammen und mache dann das OPEN.
Titel: Re: Suchformular Web
Beitrag von: it898ur am 28.10.09 - 09:26:58
Bernhard hat den Finger schon in die Wunde gelegt - zwischen dem Viewnamen und ?SearchView darf kein Slash mehr kommen, da Notes sonst den Viewnamen an der falschen Stelle sucht.

Gruß

André
Titel: Re: Suchformular Web
Beitrag von: mgubler am 28.10.09 - 11:49:55
das habe ich auch schon getestet.
jedoch ist das ergebnis immer dasselbe.
Error 500 - A View.....
Titel: Re: Suchformular Web
Beitrag von: it898ur am 28.10.09 - 12:54:15
Wie sieht denn die aufgerufene URL aus (mit anonymisiertem Server) ?

Denn hier muss der Fehler liegen, wenn ein Error 500 erscheint.

Gruß

André
Titel: Re: Suchformular Web
Beitrag von: mgubler am 28.10.09 - 15:12:36
Hallo,

die URL schaut wie folgt aus:
http://IP-DES-SERVERS/IT/telgmbh.nsf/v_nachid?SearchView&Query=[tx_nummer]+CONTAINS+12*

Wenn ich nur
http://IP-DES-SERVERS/IT/telgmbh.nsf/v_nachid
eingebe wird mir die komplette View angezeigt, wie es auch sein sollte.
Titel: Re: Suchformular Web
Beitrag von: it898ur am 29.10.09 - 08:54:58
Die URL sieht erst einmail korrekt aus - ergibt die URL nur mit ?Searchview eine leere Trefferliste und wie sieht das Ergebnis mit ?Searchview&Query=Suchbegriff (also ohne Feldeinschränkung) aus ?

Liefert das Server-Log zusätzliche Hinweise ?

Gruß

André
Titel: Re: Suchformular Web
Beitrag von: m3 am 29.10.09 - 09:01:30
Sicher, dass die "+" anstelle der Leerzeichen korrekt sind? Unsere Suchurls sehen z.B. so aus:

http://host/dir1/dir2/db.nsf/view?SearchView&SearchOrder=4&query=%28[FELDNAME]%3D%28Alois%20Maier%29%29

bzw. so

http://host/dir1/dir2/db.nsf/view?SearchView&SearchOrder=4&query=%28[FELDNAME]%3D%28Alois Maier%29%29

aus.
Titel: Re: Suchformular Web
Beitrag von: mgubler am 29.10.09 - 09:19:44
Guten Morgen zusammen,

also sobald ich etwas an die View als Parameter hänge ist Ende.  :-:
Ein einfaches ?SearchView liefert direkt den 500er Fehler, alles andere ebenso.
Im Log bzw. in der Console finde ich auch nur die Notes Exception wieder  :(
Titel: Re: Suchformular Web
Beitrag von: m3 am 29.10.09 - 09:20:49
FT-Index ist erstellt und OK? compact auf die DB mal laufen gelassen? Ev. hat die Db einen "Schaden".

P.S.: Wie lautet die *komplette* Fehlermeldung?
Titel: Re: Suchformular Web
Beitrag von: mgubler am 29.10.09 - 09:44:07
Hallo m3,

ja, der FT-Index ist erstellt und okay.
Compact und fixup über die DB laufen lassen.
Aber nich immer dasselbe

Die vollständige Fehlermeldung lautet:
"Fehler 500

HTTP Web Server: Lotus Notes Ausnahme - A view of that name cannot be found in the specified database"

Ich könnte alternativ auch mal die DB posten...
Titel: Re: Suchformular Web
Beitrag von: m3 am 29.10.09 - 10:07:18
Und die View "v_nachid" existiert mit genau dem Namen in der Datenbank?

Und was sagt das HTTP-Log? Ev. wird die URL durch irgendeine "Sicherheitslösung", ... umgeschrieben, sodass beim Server nur mehr Blödsinn ankommt.
Titel: Re: Suchformular Web
Beitrag von: mgubler am 29.10.09 - 10:30:15
Hallo!

ja, die View "v_nachid" existiert genau in dieser DB mit genau diesem Namen.
Die URL wird nicht umgeschrieben.
Auf der console wird genau die angezeigte URL zurückgegeben.
Im Log steht genau dasselbe....
Titel: Re: Suchformular Web
Beitrag von: ascabg am 29.10.09 - 10:34:23
HAllo,

Und die View ist auch fuer die Verwendung im Web freigegeben?
=> siehe Eigenschaften der View


Andreas
Titel: Re: Suchformular Web
Beitrag von: mgubler am 29.10.09 - 10:57:55
In den Eigenschaften stehts nichts dergleichen drin, dass ich die View nicht freigegeben habe.
Webzugriff ist demnach erlaubt, die ACL scheint korrekt zu sein...
Titel: Re: Suchformular Web
Beitrag von: ascabg am 29.10.09 - 11:02:35
Sorry, war etwas zu schnell.

Den genannten Punkt solltest Du in der Uebersicht aller Views (im Designer) finden.
- Gestaltungselement verbergen


Andreas
Titel: Re: Suchformular Web
Beitrag von: mgubler am 29.10.09 - 11:12:09
Nein, die View(s) sind sowohl für's web als auch für Notes sichtbar!
Titel: Re: Suchformular Web
Beitrag von: mgubler am 30.10.09 - 08:35:25
Ich habe nun die DB neu geschrieben.
Jetzt erhalte ich (zumindest auf meinem PC) keinen Error 500.

Jedoch (irgendwo muss ja ein Haken sein):
Die Suche klappt nur bedingt.

Ich habe einige Testeinträge
Es gibt zum Beispiel die Einträge "Theo Test" "Thea Tester"
Wenn ich eine FTSearch mache erhalte ich aber diese Einträge nicht.
Und die Daten sind 100%ig richtig.
Nur die Suche klappt nicht. Weder Notes-Intern, noch im Web!!!
Titel: Re: Suchformular Web
Beitrag von: ascabg am 30.10.09 - 08:45:41
Die Dokumente, die gesucht werden sind aber bei dieser "neuen" Db schon im FT-Index enthalten?


Andreas
Titel: Re: Suchformular Web
Beitrag von: mgubler am 30.10.09 - 08:48:31
ja, die Dokumente sind enthalten...
Ich packe nun mal die DB dazu...
Vielleicht kann der ein oder andere das ja auch noch nachvollziehen...
Titel: Re: Suchformular Web
Beitrag von: mgubler am 30.10.09 - 14:28:55
Nach langem hin und her klappt es nun halbwegs.
Ich habe die Queries nochmals angepasst und getestet....
Resultat: Es klappt fast alles (bis auf die Telefonnummern).

Trotz alledem möchte ich mich hier bei allen Teilnehmern bedanken, die mir geholfen haben...

Ich wünsche Euch allen ein schönes Wochenende!