Autor Thema: Returncodes aus externer Anwendung  (Gelesen 1923 mal)

Offline qu1cke

  • Junior Mitglied
  • **
  • Beiträge: 61
  • Geschlecht: Männlich
Returncodes aus externer Anwendung
« am: 21.06.05 - 16:35:21 »
Hallo zusammen,

ich habe folgendes vor: Ich möchte eine Anwendung bereitstellen, über die ein angemeldeter Benutzer via http Dateien hochlädt. Diese möchte ich auf eventuellen Virenbefall untersuchen. Das wollte ich eigentlich über einen Agenten machen, der direkt nach dem Hochladen getriggert wird.

Mein Problem ist nun, daß ich mir vom Virenscanner (Sophos SAVI) den Returncode zurückgeben lassen möchte und dementsprechend das Dokument mit einem Flag sauber/verseucht kennzeichnen möchte. Shell  gibt mir nur die 33 als "ausgeführt" zurück und nicht den Returncode von SAVI...

Ich habe nun den halben Tag damit verbracht, mich von etlichen Foren-Threads inspirieren zu lassen (Ja, ich habe die Forum-Suche verwendet  ;) ) => ich habe aber nicht das gefunden, was ich brauche...

Wie macht Group das eigentlich? Ich hätte ja 'nen Job aufgesetzt, aber der Scan soll möglichst zeitnah nach dem Upload loslaufen...

Vielleicht hat jemand von Euch eine Idee...

Danke
René

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Returncodes aus externer Anwendung
« Antwort #1 am: 21.06.05 - 18:20:41 »
Hallo,

klingt jetzt vielleicht ein bisschen einfach, aber wenn's nicht anders geht, dann schreibe doch den Returncode in eine feste Datei, die Du dann mit Notes wieder auslesen kannst.


ausgabedatei = ...
ret = Shell("prog.exe 2>>" & ausgabedatei)


Die Datei würde ich ins Temporärverzeichnis legen und ihr einen festen Namen geben.

Auslesen kannst Du sie dann einfach mit

Open ausgabedatei for input as #1
line input #1, returnCode
Close #1


Vielleicht hilfts Dir ja etwas...

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Offline Semeaphoros

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.152
  • Geschlecht: Männlich
  • ho semeaphoros - agr.: der Notesträger
    • LIGONET GmbH
Re: Returncodes aus externer Anwendung
« Antwort #2 am: 21.06.05 - 18:29:58 »
Hm, Joachim, falls Quicke den Begriff Returncode richtig anwendet, dann kann man den nicht in eine Datei schreiben. Deine Methode geht für normalen Output einer Anwendung, wenn diese Standardout verwendet (was häufig nicht der Fall ist). Der Returncode wird im Environment des Betriebssystems hinterlegt. Der kommt aber vermutlich beim Shell nicht wirklich zurück, da die API an dieser Stelle andere Errorcodes zurückliefert.

Anders ausgedrückt, das geht nur, wenn die Applikation das Ergebnis auch noch als normalen STD-Output liefert und nicht nur als Returncode.
Jens-B. Augustiny

Beratung und Unterstützung für Notes und Domino Infrastruktur und Anwendungen

Homepage: http://www.ligonet.ch

IBM Certified Advanced Application Developer - Lotus Notes and Domino 7 und 6
IBM Certified Advanced System Administrator - Lotus Notes and Domino 7 und 6

Offline jr

  • Senior Mitglied
  • ****
  • Beiträge: 260
  • Geschlecht: Männlich
  • Bitte keine eierlegenden Wollmilchsäue...
    • Homepage
Re: Returncodes aus externer Anwendung
« Antwort #3 am: 21.06.05 - 19:02:22 »
Hallo Jens-B. (ist das richtig?),

meine C / C++ - Zeit ist zwar schon ein paar Jahre vorbei, aber wenn ich mich richtig erinnere, dann gibt es zwei Outputstreams, nämlich den stdout und den errout (oder wie das Ding sonst heißt). Der normale Outputstream stdout wird in der Konsole ausgegeben und kann mit >datei in eine Datei umgeleitet werden. Der Errorstream dagenen ist normalerweise nicht sichtbar und kann mit 2>datei umgeleitet werden. Je nach Applikation wird der Return-Code über diesen Errorstream ausgegeben.

Unter DOS konnte man den Errorcode mit If errorcode X befehl_ausführen abfragen. Wenn der Returncode von René ein Fehlercode ist, müsste das funktionieren.

Andere Möglichkeit, man macht sich eine Batchdatei und ruft statt des eigentlichen Programms diese Batchdatei auf und führt dann die entsprechenden If errorcode X ... Befehle aus um etwas in eine Ausgabedatei zu schreiben.

Wenn René keine andere Lösung findet, kann er es ja einfach einmal ausprobieren. Viel Aufwand ist es ja nicht.

Gruß,

Joachim
Wer in den Fußstapfen eines anderen geht, hinterlässt keine Spuren und kommt nie als Erster an.

Driri

  • Gast
Re: Returncodes aus externer Anwendung
« Antwort #4 am: 22.06.05 - 10:13:13 »
Mal ne andere Idee :

Wie wäre es denn, wenn Du die hochgeladene Datei einfach per Mail an eine Mail-In-DB oder so verschickst. Dann wird der WatchDog doch eh tätig und Du bekommst ne vernünftige Rückmeldung.

Offline qu1cke

  • Junior Mitglied
  • **
  • Beiträge: 61
  • Geschlecht: Männlich
Re: Returncodes aus externer Anwendung
« Antwort #5 am: 23.06.05 - 13:37:36 »
Danke Euch allen für die Antworten.  :) Ich habe das ganze nun wirklich über eine  Mail-In-Datenbank (die scheinbar einfachste Methode) gelöst:

In der Datenbank wird das Dokument zuerst nicht gespeichert (saveoptions=0), dafür wird es dann per Mail abgesendet, und zwar an genau die Datenbank, in der das Dok ursprünglich erstellt wurde... So habe ich keine Trennung der Daten von der eigentlichen Datenbank, was auch beabsichtigt war.

Das mit dem Errorlevel habe ich übrigens auch ausprobiert.  ;) Die o.g. Lösung war in dem Moment aber schlanker und flexibler.

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz