Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: guerilla am 13.09.06 - 12:18:09

Titel: XML und Searchview
Beitrag von: guerilla am 13.09.06 - 12:18:09
Hi Leute!

Sicher ein eher leicht zu lösendes Problem, dennoch stehe ich grade wie vor einer Wand:

Ich habe eine View als XML gebaut, so mit ViewTemplate bzw. Searchtemplate und Content-Type text/xml.

Das Problem ist, dass ich in dieser View eine Suche mit "Searchview" und "query"-Parameter machen möchte, als ViewTemplate funktioniert das ganze prächtig, allerdings bekomm ich mit den Searchview-parametern den Fehler
Zitat
HTTP Web Server: Application Exception - Documents treated as HTML cannot be edited

Liegt das an der View, die auf HTML-Ausgabe eingestellt ist, oder am Searchtemplate-Content-Type?

Sollte es am Searchtemplate liegen: Wie kann ich das trotzdem realisieren und ein gültiges (gefiltertes) XML zu erhalten?
Titel: Re: XML und Searchview
Beitrag von: m3 am 13.09.06 - 12:20:04
Zeig mal die URL her, mit der Du suchst.
Titel: Re: XML und Searchview
Beitrag von: guerilla am 13.09.06 - 12:26:12
(@webdbname)/xmlResults?searchview&Query=as
Titel: Re: XML und Searchview
Beitrag von: m3 am 13.09.06 - 12:34:35
Du musst das Hackerl "Treat document contents as HTML" bei dem Searchtemplate wegnehmen und alles als PassThrough-Text kennzeichnen.

SearchView setzt intern ein ?OpenForm ab, was sich mit dem "Hackerl" nicht verträgt.
Titel: Re: XML und Searchview
Beitrag von: guerilla am 13.09.06 - 13:08:17
Code
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta name="robots" content="noindex">

<script language="JavaScript" type="text/javascript">
<!-- 
document._domino_target = "_self";
function _doClick(v, o, t, h) {
  var form = document._DominoForm;
  if (form.onsubmit) {
     var retVal = form.onsubmit();
     if (typeof retVal == "boolean" && retVal == false)
       return false;
  }
  var target = document._domino_target;
  if (o.href != null) {
    if (o.target != null)
       target = o.target;
  } else {
    if (t != null)
      target = t;
  }
  form.target = target;
  form.__Click.value = v;
  if (h != null)
    form.action += h;
  form.submit();
  return false;
}
// -->
</script>
</head>
<body text="#000000" bgcolor="#FFFFFF">

<form method="post" action="/[xxx]/xmlResults!SearchView&amp;Query=as*&amp;Seq=1" name="_DominoForm">
<input type="hidden" name="__Click" value="0"><?xml version="1.0" encoding="UTF-8" ?> 
<viewentries toplevelentries="5">
<viewentry unid="F9813DC5FD36644CC1256DAC002E0E53"><entrydata><text>Schneider, Kai</text></entrydata></viewentry><viewentry unid="DEB20C562EB1B518C1256DAC002D

ist dann aber auch ziemlich bescheuert, oder?
Titel: Re: XML und Searchview
Beitrag von: m3 am 13.09.06 - 13:28:03
Was willst Du uns damit sagen?
Titel: Re: XML und Searchview
Beitrag von: guerilla am 13.09.06 - 13:32:58
Ganz  einfach: Wenn ich das Searchtemplate als Notes-Form rendern lasse, entsteht ein entsprechendes HTML-Gerüst, das im XML logischerweise völlig unbrauchbar ist.

Zwar funktioniert so die Suche, aber die View ist als XML nicht zu gebrauchen, was wiederum zu sehr netten XMLhttpRequest-Fehlern führt...
Titel: Re: XML und Searchview
Beitrag von: m3 am 13.09.06 - 13:34:38
Ah. Sorry, da war ich zu blöd, um das zu schnallen. Das ist natürlich korrekt. :(
Titel: Re: XML und Searchview
Beitrag von: umi am 13.09.06 - 13:53:29
Nur so am Rande, Hast du im Viewtemplate irgendwelche editierbaren Felder drin?
Titel: Re: XML und Searchview
Beitrag von: guerilla am 13.09.06 - 13:59:18
Nur zwei Computed For Display.

einmal das TOTALHITS-Feld und (logischerweise) das $$ViewBody
Wahrscheinlich macht das schon das aus, ich versuch's jetzt mal mit nem XML-Agent. Ist halt ziemlich doof, weil die Suche dabei ziemlich langsam wird...
Titel: Re: XML und Searchview
Beitrag von: Ayhan am 13.09.06 - 14:01:48
Hi,

keine Chance. Das wär eine super sexy Funktion und hätte vielen graue Haare erspart. Die einzige Lösung wäre einen Script-Agenten zu schreiben, der dir aus übergebenen URL-Parametern die Ergebnisse als XML ausgibt.

Hier mal ein Beispiel aus Notes.Net:
http://www-10.lotus.com/ldd/46dom.nsf/55c38d716d632d9b8525689b005ba1c0/611e03ace711e42085256c470052d179?OpenDocument

Vielleicht als Entschädigung dafür ein anderer Tip, hat zwar mit dem Thema nicht direkt was zu tun, aber mit XML und ReadViewEntries.

In Kombination mit dem Parameter StartKey kann auch folgender Parameter "UntilKey" verwendet werden. Dabei kann man (z. B. in einer kategorisierten Ansicht [gehen wir davon es, dort sind Themen nach dem 1. Buchstaben / Alphabet sortiert] über StartKey=A und UntilKey=D alle Einträge aus den Kategorien A - C zurückgeben lassen.

Für die, die das nicht wussten als Tip und für die, die das schon kennen eine Auffrischung  :P
Titel: Re: XML und Searchview
Beitrag von: guerilla am 13.09.06 - 14:09:00
Ayhan: Danke. Murphy mal wieder... :(

Die Sache mit den den Startkeys und den Kategorisierungen der Ansicht hatte ich schon gesehen, aber das ist in entsprechendem Fall nicht möglich, da ich damit nicht beliebig in den Feldern der Dokumente suchen kann. Leider.

Aber der Agent befindet sich grade in der Mache... Nur begeistern kann mich das jetzt nicht mehr.

*wiedertippselngeht*
Titel: Re: XML und Searchview
Beitrag von: flaite am 13.09.06 - 15:13:01
Kapier ich nicht.
Man kann doch NotesViews als xml darstellen?
Alles eine Frage der richtigen "Hackerl" in den Property Boxen und der Spaltenformel.
Titel: Re: XML und Searchview
Beitrag von: m3 am 13.09.06 - 15:16:42
Ja, aber um die View "herum" wird IMMER ein Notes-Form angezeigt, außer man verwendet z.B. ReadViewEntries, aber dann kann man wieder nicht suchen. :(