Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: jww am 09.09.11 - 15:16:41
-
Hallo,
ich habe - denke ich - ein eigentlich triviales Problem aber steh irgendwie vor einer Wand. Bei der Suche kriege ich viele Treads, aber nix, was mir hilft:
Browser-Nutzer. Server V7.03
Ich würde gerne in einem Frame den Value für eine Url berechnen lassen. Dabei ist "der hintere Teil" relativ einfach, ein Dokument soll geöffnet werden, wozu ich "<viewname>/<indexname>?OpenDocument" benutzen will.
Mein Problem: Der Link soll auf den Server weisen, von dem auch das Frameset gezogen wurde. Mir fehlt also die Teilstrecke "http://<ip-nummer oder dnsname/<dbname>".
Dass der "aktuelle (lokale) Server" benutzt werden soll, ist insofern wichtig, als in einer replizierten Umgebung an Standorten mit sehr langsamem Internet immer der jeweils lokale Server benutzt werden soll, um die Ladezeiten zu reduzieren.
Kann mir da jemand auf die Sprünge helfen?
1000 Dank im Voraus!
jww
-
@Name( [CN] ; @Subset( @DbName ) ; 1 ) ) ?
-
DBname siehe oben. ;)
Und Protokoll, Hostname und Port würde ich durch ein "/" ersetzten - dann passts immer ;)
-
Danke für die schnellen Re's. Ich blick's immer noch nicht.
@subset(@DbName;-1) ist klar.
Aber wenn ich im Frameset bei dem fraglichen Frame bei Type "URL" und Value "Computed" eingebe:
"/" + @Subset( @dbname ; -1) + "/xxx/" + "yyy" + "?OpenDocument"
kriege ich die Meldung "invalid URL Syntax". Er braucht offenbar http:// ...
Mit
"http://101.101.101.101/testdir/test.nsf/xxx/yyy?OpenDocument" (als Formel)
funktioniert's.
Ich habe hier mal noch in Fettdruck dargestellt, was ich per Formel ermitteln müsste:
"http://101.101.101.101/testdir/test.nsf/xxx/yyy?OpenDocument"
Wat mach ich da nur falsch?
Danke!
jww
-
Du must das http:// vor den @Subset schreiben
"http://" + @Subset( @dbname ; -1) + "/xxx/" + "yyy" + "?OpenDocument"
-
Christian, das würde
"http://testdir/test.nsf/xxx/yyy?OpenDocument"
ergeben, was keine gültige URL ist.
Darf ich
"/" + @WebDbName + "/xxx/" + "yyy" + "?OpenDocument"
vorschlagen?
Und wenn es wirklich eine voll qualifizierte URL sein soll, dann würde ich die CGI-Variablen (http://www-10.lotus.com/ldd/ddwiki.nsf/dx/07252008102848AMKMKJYL.htm)
Server_Name
Server_Protocol
Server_Port
nutzen.
-
Hallo und Danke nochmals.
Der Erste Hinweis von Martin wäre eigentlich schon ausreichend gewesen - hätte ich mich nicht von der blöden Fehlermeldung des Designer fehl leiten lassen.
Der sagt nämlich "Invalid URL Syntax", obwohl es damit geht.
Was soll man da schon sagen? Typisch Notes halt.
Hab' den Code jetzt so gestaltet - vielleicht kann mal jemand was damit anstellen:
_view := "WebDocs";
_index := "UserWeblinks";
_command := "?OpenDocument";
_slash := "/";
_prefix := "/";
_db := @Subset( @DbName; -1) ;
_prefix + _db + _slash + _view + _slash + _index + _command
Wer will (und kann - ich hab da keine Lösung, weil ich ja in einem Frameset eine URL-Formel schreibe und da keine Felder einer Maske zur Verfügung hab) , kann dann ja das "_prefix" auch full qualified machen.
Grüße
jww
-
Bis im _db auf einmal ein "\" auftaucht ..... ::)
-
Du brauchst z.B. in der Maske ein berechnetes Feld zur Anzeige Namens "path_info" mit Wert=@thisValue
in diesem Feld steht dann der Pfad inkl Protokoll etc. und zwar genau, der im Browser eingegeben wurde.
d.h. egal ob du die Maske über http://<ip>/ oder https://domain/ aufrufst, es steht immer diese URL drin.
Mit @left(path_info;"/") bekommst du dann gewünschten String
(Dies ist evtl wichtig damit keine doppelten Passwortabfragen kommen)
Ob du auf den Wert im Framset zugreifen kannst weiß ich nicht. In der Maske geht es z.B. nur wenn das Feld existiert. In einem LS-Agent geht es wenn du session.contextDocument.path_info zugreifst.
Normalerweise braucht man sowas aber nicht. wenn man auf den gleichen Server will, verwendet man "/" + @WebDbName + "...."
Man verbaut sich durch solche Konstrukte oft, dass die Anwendung bei bestimmten DNS/Portforwardingkonstellationen nicht mehr funktionieren
Gruß
Roland