Autor Thema: @DbName gibt kein Server zurück...  (Gelesen 2515 mal)

Offline Raymond

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Geschlecht: Männlich
  • who notes?
    • Who Notes
@DbName gibt kein Server zurück...
« am: 05.04.07 - 15:45:28 »
Hallo zusammen

ich debugge gerade eine Web-Applikation. Dort wurde @subset(@dbname;1) verwendet um den Servernamen zu erhalten und basierend auf diesem Wert geschehen Lookups in andere Datenbanke etc. Also Notes Standard.

Plötzlich funktionierten die Lookups nicht mehr und siehe da, beim Debuggen bemerkte ich, dass das Feld Server nicht berechnet wurde, beziehungsweise "@Subset(@DbName;1)" keinen Rückgabewert hatte. Wie gesagt, ich bin nicht Lokal, dies ist ein produktiver Lotus Domino Server Version 7  ???

Hat jemand von euch sowas schon gesehen bzw. eine Idee, was die Ursache sein könnte?

Besten Dank für alle Tipps

Gruss
Ray
« Letzte Änderung: 10.04.07 - 11:28:16 von Raymond »
aktuelle Versionen:
Lotus Notes/Domino 7
Lotus Notes/Domino 8.5

dabei seit Lotus Notes 4.x

Offline spamSTOP

  • Frischling
  • *
  • Beiträge: 42
Re: @DbName gibt kein Server zurück...
« Antwort #1 am: 05.04.07 - 18:37:32 »
versuch mal @Servername

Gibt den Namen des Servers zurück, auf dem sich die aktuelle Datenbank befindet. Wenn die Datenbank lokal ist, wird der Benutzername zurückgegeben.
Hinweis  Diese @Funktion gibt es ab Version 6.

Offline Raymond

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Geschlecht: Männlich
  • who notes?
    • Who Notes
Re: @DbName gibt kein Server zurück...
« Antwort #2 am: 09.04.07 - 22:04:02 »
Danke, natürlich könnte ich den ganzen Code umschreiben. Das wäre aber wohl mehr Sympthombekämpfung. Ich würde aber gerne die Ursache finden. Der anhin eingesetzte Code hat während mehreren Jahren einwandfrei funktioniert. Ich möchte rausfinden, warum @Servername plötzlich den Servernamen-Teil nicht mehr zurückgibt...

Vielleicht hat sonst noch jemand die gleiche Erfahrung gemacht.

Gruss
Ray
aktuelle Versionen:
Lotus Notes/Domino 7
Lotus Notes/Domino 8.5

dabei seit Lotus Notes 4.x

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: @DbName gibt kein Server zurück...
« Antwort #3 am: 10.04.07 - 07:36:36 »
Falls ich mich recht erinnere, gibt @dbName für den ersten Wert der Ergebnisliste nie etwas zurück. (Kann mich irren).
Hiess diese seit Notes4 in der Webentwicklung sehr gebräuchliche Formel zur Generierung von nicht-hart-kodierten URLs nicht:
Code
@Subset(@DbName;-1);
(das -1 ist wichtig). Das funktioniert auch. Eben ausprobiert. Guck besser noch mal bei den Formeln nach, die schon vorher in der Datenbank funktioniert haben. Vielleicht hast du einfach das - übersehen.
Oder noch besser:
Code
@ReplaceSubstring(@Subset(@dbName;-1); "\\";"/"); 
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Raymond

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Geschlecht: Männlich
  • who notes?
    • Who Notes
Re: @DbName gibt kein Server zurück...
« Antwort #4 am: 10.04.07 - 10:25:36 »
Danke für die Antort. Klar, um den Server unabhängig den Db-Pfad zu erhalten, kann man deinen Code verwenden.

Gemäss Help sollte @DbName aber wirklich zwei Werte zurückgeben.

Zitat
Syntax
@DbName
Return value
server ; path
Text list with two elements


Code
@Subset(@DbName;-1);
gibt den Pfad zurück

Code
@Subset(@DbName;1);
sollte den Servernamen zurückgeben, und genau das funktioniert nicht mehr.


Als Workaround verwende ich jetzt
Code
@ReplaceSubstring( @UpperCase(@Name([Abbreviate]; @ServerName));"\\"; "/" )

Gruss
Ray
aktuelle Versionen:
Lotus Notes/Domino 7
Lotus Notes/Domino 8.5

dabei seit Lotus Notes 4.x

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: @DbName gibt kein Server zurück...
« Antwort #5 am: 10.04.07 - 11:22:14 »
IMHO hat das im Web nie funktioniert. Zumindest mit den Versionen 4 und 5 nicht.
Du kannst das aber so machen:
Code
"/" + @ReplaceSubstring(@Subset(@dbName;-1); "\\";"/") + "/" + dieFormOderWasImmer. 
Bei solchen relativen Links nimmt Domino immer den aktuellen Server und das ist in der Regel was du willst.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

Offline Raymond

  • Aktives Mitglied
  • ***
  • Beiträge: 111
  • Geschlecht: Männlich
  • who notes?
    • Who Notes
Re: @DbName gibt kein Server zurück...
« Antwort #6 am: 10.04.07 - 11:34:01 »
Hallo Axel

Danke für die Infos. Die DB wurde von mir debugged und nicht entwickelt weshalb ich davon ausging, das das versteckte Feld "Server" mit eben dieser Formula auch mal korrekt abgefüllt wurde...
Möglicherweise war das aber wirklich nie der Fall. Wie wir nun rausgefunden haben wurde der Fehler in der Applikation durch ein fehlendes DB-Config-Dokument verursacht und nicht durch den fehlenden Servernamen.

Nochmals vielen Dank für alle beigesteuerten Antworten/Vorschläge

Ray
aktuelle Versionen:
Lotus Notes/Domino 7
Lotus Notes/Domino 8.5

dabei seit Lotus Notes 4.x

Offline flaite

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 2.966
    • mein del.icio.us
Re: @DbName gibt kein Server zurück...
« Antwort #7 am: 11.04.07 - 07:44:20 »
Es ist aber eigentlich eine schlechte Praxis den letztlich hartkodierten Servernamen irgendwo wie auch immer zu pflegen.
Ein solcher Link "/myApp.nsf/view1/doc3?openDocument" geht dank des ersten slashes immer gegen den Server, auf den er geklickt wird. Zur Verlinkung von Notesanwendung braucht es deshalb den Servernamen gar nicht.
Ich hab das in Domino Web Anwendungen immer so gemacht, dass es in allen Dokumenten, in denen Links erzeugt werden, ein Feld baseURL mit der Formel
Code
"/" + @ReplaceSubstring(@Subset(@dbName;-1); "\\";"/") + "/"
gab. Da konnte man die Links auf Dokumente, Views, etc. easy drauf aufbauen.
Unnötige Konfigurationen (wie der hartkodierte Servername) besitzen ein hohes Risiko, doofe Arbeit, Verwirrung, etc. in der Zukunft zu erzeugen.
Ich stimm nicht mit allen überein, aber mit vielen und sowieso unterhaltsam -> https://www.youtube.com/channel/UCr9qCdqXLm2SU0BIs6d_68Q

---

Aquí no se respeta ni la ley de la selva.
(Hier respektiert man nicht einmal das Gesetz des Dschungels)

Nicanor Parra, San Fabian, Región del Bio Bio, República de Chile

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz