Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: geissbock am 01.03.11 - 16:37:41

Titel: Webformular öffnen mit Parameterübergabe
Beitrag von: geissbock am 01.03.11 - 16:37:41
Hallo,
ist es möglich in ein Webformular mit Aufruf der URL und Übergabe von Parametern, diese direkt in die Felder des Webformulars zu übernehmen?
Also zum Beispiel:
Mit solch einer URL das Formular fmArticle aufzurufen und dann dort die Felder Autor mit Meier und year mit 2011 "vorzubelegen"
http://server/path1/path2/file.nsf/fmArticles?OpenForm&AUTOR=Meier&year=2011

Danke
Titel: Re: Webformular öffnen mit Parameterübergabe
Beitrag von: Tode am 01.03.11 - 17:59:33
Erstelle in Deiner Maske mal ein Feld Namens "QUERY_STRING" oder "QUERY_STRING_DECODED". Das enthält automatisch die Parameter. Dann kannst Du im Vorgabewert Deiner Felder einfach per @Word , @Explode und/oder @Right( QUERY_STRING , "Autor=" ) o.ä. die Werte in die Felder übernehmen.

Dazu willst Du Dir in der Designer- Hilfe in der Index- Ansicht die Einträge zu "Table of CGI variable names" anschauen...

Gruss
Tode
Titel: Re: Webformular öffnen mit Parameterübergabe
Beitrag von: pram am 02.03.11 - 00:14:44
Guten Abend, ist zwar ein bisschen OT, aber das muss ich an dieser Stelle los werden:
Bei der Implementierung von  QUERY_STRING_DECODED wurde m.E. nicht zu Ende gedacht und kann in vielen Fällen m.E. nicht sinnvoll verwendet werden.

Angenommen ich will
- Firma: 2&2 Internet
- Tel:1234
- Fax:2345
übergeben, so muss ich das folgendermaßen encoden (man beachte das & Zeichen):
http://server/pfad/maske?OpenForm&Firma=2%262%20Internet&Tel=1234&Fax=2345

QUERY_STRING ist dann korrekterweise: "OpenForm&Firma=2%262%20Internet&Tel=1234&Fax=2345" und ich kann diesen mit
Code
parts:= @URLDecode("Domino";@Explode(QUERY_STRING;"&"))
in eine Liste (Inhalt: name=wert) zurückverwandeln. ein
Code
sanityfiler:="Firma":"Tel":"Fax"
@Transform(parts;"x";@if(@left(x;"=")=sanityFilter;@SetField(@left(x;"=");@right(x;"="));""))
könnte dann die Inhalte auf die Felder verteilen. (Achtung: Formel ist nicht getestet)


Jetzt zum Problem:
QUERY_STRING_DECODED dekodiert den ganzen Query-String, was m.E falsch ist. Als Ergebnis bekommt man "OpenForm&Firma=2&2 Internet&Tel=1234&Fax=2345" und man kann nicht mehr eindeutig feststellen was als Value für Firma übergeben wurde... :-:

Ein weiterer Fallstrick: Will man auf eine CGI-Variable zugreifen, so muss ein entsprechend benanntes Feld in der Maske vorhanden sein (Text,Computed for Display und per Hideformel versteckt)
Gruß
Roland
Titel: Re: Webformular öffnen mit Parameterübergabe
Beitrag von: geissbock am 02.03.11 - 09:44:58
Moin, moin,
vielen Dank für die beiden Hinweise. Klappt perfekt und ich bin immer wieder begeistert über die schnelle und kompetente Hilfe in diesem Forum.
Noch einen scönen sonnigen Tag.