Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: reraru am 23.09.05 - 10:31:04

Titel: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: reraru am 23.09.05 - 10:31:04
Guten Morgen zusammen!

Folgendes Problem.

Ich habe eine kleines Adressbuch erstellt. In diesem werden unsere Kunden verwaltet.
Unsere Vertriebler haben diese DB Lokal auf Ihrem Notebook.

Wenn man einen Kunden aufruft, dann gibt es einen Button über den über @Dialog eine Maske
mit berechneten Feldern aufgerufen wird.

Folgende Formel liegt den Feldern zu grunde:

Code
str:= @Text(@Year(@Now));
str2:= @Right(str; 2);
jahr:= @TextToNumber(str2) - 2;

sql1:= "SELECT SUM(UXNWEF) AS SUM FROM SRVAS01.ANCRADTA.UMSSTAL1 WHERE UXKDNR = " + @Text(kundennr) + " AND UXERJJ = " + @Text(jahr);

erg1:=@DbCommand("ODBC" ; "as400" ; "user" ; "password" ; sql1);

erg1

Ich hole mir so den Umsatz direkt aus unserer Buchhaltung (AS/400)

Wenn der User jetzt aber keine Verbindung zum Netzwerk hat, dann möchte ich verhindern
das die Formel ausgeführt bzw. der Button ausgeblendet wird.

Ansonsten kommt es zu Fehlermeldungen.

Wie könnte ich das realisieren???

Ich bin über jede Idee oder Anregung dankbar!

Gruß René
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: umi am 23.09.05 - 10:42:37
Wenn Ihr mit verschiedenen Location Dokumenten arbeitet, könntest Du diese zuerst prüfen.
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: reraru am 23.09.05 - 10:45:03
Moin Umi!

Location Dokument???

Wie genau meinst Du das?
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: guerilla am 23.09.05 - 11:01:27
Darf die Formel nur dann ausgeführt werden, oder willst Du nur Fehlermeldungen verhindern?

Für den zweiten  Fall gäbe es auch die Option:

Code
xRes := @DbCommand("ODBC" ; "as400" ; "user" ; "password" ; sql1);

erg1 := @if(
@iserror(xRes);
     "[beliebiger wert, der im Fehlerfall ausgegeben werden soll]"; 
     erg1);

damit wird die formel zwar ausgeführt, aber für den fall, dass die abfrage fehlschlägt, wird dein persönlicher FehlerwertTM ausgegeben.
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: reraru am 23.09.05 - 11:15:18
Hi guerilla!

Ich möchte eigentlich nur die Fehlemeldungen unterdrücken!

Deinen Vorschlag habe ich ausprobiert. Die Fehlermeldungen kommen leider
trotzdem, da versucht wird eine ODBC Verbindung zu unserer AS/400 aufzubauen.

Noch ne Idee?
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: umi am 23.09.05 - 11:17:37
Wenns nur um Fehlermeldung geht :
Code
xRes := @iferror(@DbCommand("ODBC" ; "as400" ; "user" ; "password" ; sql1);"FEHLER");

Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: umi am 23.09.05 - 11:27:04
 Die undokumentierte @LocationGetInfo([HomeServer]) liefert den Eintrag "Mailserver" des aktiven Location Dokuments retour.

Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: guerilla am 23.09.05 - 11:28:59
@umi: danke für's kürzen ;) allerdings muss es dann
Code
erg1 := @iferror(@DbCommand("ODBC" ; "as400" ; "user" ; "password" ; sql1);"FEHLER");
sein

@reraru:
die Abfrage in einem anderen (versteckten) Feld machen und bei einem passenden Wert übernehmen lassen?
dann hast du den fehler woanders und nicht angezeigt. oder wo  kommt die fehlermeldung?
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: reraru am 23.09.05 - 11:53:12
Hi!

Die Fehlermeldung:

(http://www.anton-cramer.de/fehler_as.JPG)

erscheint als erstes!

Danach kommt dann mein Dialog:

(http://www.anton-cramer.de/fehler_as2.JPG)
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: klaussal am 23.09.05 - 12:16:41
Man könnte ja per @dbname prüfen, ob die DB auf einem Server liegt.
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: guerilla am 23.09.05 - 12:33:43
Hi!

Die Fehlermeldung:

(http://www.anton-cramer.de/fehler_as.JPG)

erscheint als erstes!

Danach kommt dann mein Dialog:

(http://www.anton-cramer.de/fehler_as2.JPG)

okay, dann weiss ich auch nicht weiter...
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: reraru am 23.09.05 - 12:35:28
Danke trotzdem!

Ich werde jetzt mal versuchen etwas über @dbname zu erreichen.

Gruß René
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: Axel am 23.09.05 - 13:05:22
Hi,

du könntest auch mit @FileDir prüfen, ob du auf eine Datei im Netz zugreifen kannst. Bekommst du nichts zurück, bis du nicht am Netz und du beendest die Formel.


Axel
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: reraru am 23.09.05 - 17:01:21
Hi zusammen!

Das klappt leider alles nicht so wie es soll.

Ich gebe ersteinmal auf. Ich habe einfach mal nen fetten Hinweis
eingefügt: "Achtung! Nur bei bestehender Netzwerkverbindung möglich!".

Mal schauen ob das reicht!

Vielen Dank dennoch!

Ein schönes Wochenende wünscht

René
Titel: Re: Formel -> Nur ausführen wenn Verbindung zum Server
Beitrag von: SomeoneYouKnow am 24.09.05 - 19:27:57
Hmm blöde Frage: wieso ziehste Dir nicht einfach via nem DBLookup nen Wert ausm Adressbuch des Servers von dem Du weisst, dass er existiert (z.B. Shortname des Users oder so was)... wenn er nichts zurückgibt weisst Du, dass die Verbindung nicht steht.