Returncode bzw. Result von ausgeführter *.exe Thema ist als GELÖST markiert

Getting started ... Alles für einen gelungenen Start.
9 Beiträge • Seite 1 von 1
9 Beiträge Seite 1 von 1

Returncode bzw. Result von ausgeführter *.exe

Beitrag von stony007_de (ForumUser / 85 / 5 / 0 ) » 19.02.2020 08:43
Hi

Ich suche eine Möglichkeit eine Applikationen vom Client zu starten und den ausgegeben Text des Programms im SAP zu verwerten.

Die App muss im Usercontext laufen, da durch die Applikationen ein Druck auf benutzerspezifischen Drucker erfolgt.

Hat jemand eine Idee?


Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von a-dead-trousers (Top Expert / 3391 / 102 / 867 ) » 19.02.2020 09:07
Bietet die App eine Ausgabe auf der Befehlszeile an oder gibt es eine Möglichkeit Informationen darüber (Log usw.) aus einer Text-Datei einzulesen?
Wenn nicht, sehe ich schwarz für das was du willst.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von stony007_de (ForumUser / 85 / 5 / 0 ) » 19.02.2020 09:14
die App gibt über die Befehlszeile den gewünschten Text aus.

Mit "CALL 'SYSTEM' ID 'COMMAND' FIELD LV_CMD ID 'TAB' FIELD LT_RESULT." bekomm ich das Resultat. Wird Auber auf dem BackendServer ausgeführt.

Mit "CL_GUI_FRONTEND_SERVICES=>EXECUTE" finde ich kein zurückgegebenes Resultat.

Das schreiben des Returns in ein Logfile geht auch, wäre jetzt aber nicht mein Favorit.

Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von a-dead-trousers (Top Expert / 3391 / 102 / 867 ) » 19.02.2020 11:38
stony007_de hat geschrieben:
19.02.2020 09:14
Das schreiben des Returns in ein Logfile geht auch, wäre jetzt aber nicht mein Favorit.
Aber nur so geht es. Leider.
Den Aufruf der App mit Umleitung in ein Log-File in ein Batch-Script verpacken.
Das Script dann mit GUI_DOWNLOAD z.B in das Temp-Verzeichnis (GET_TEMP_DIRECTORY) übertragen.
Mit EXECUTE das Script am Client ausführen.
Das Log-File mit GUI_UPLOAD wieder einlesen.
Optional das Temp-Verzeichnis wieder löschen (Script und Log-File).

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
stony007_de (19.02.2020 13:54)

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von stony007_de (ForumUser / 85 / 5 / 0 ) » 19.02.2020 13:53
OK , danke!
Ist zwar ein wenig russisch, aber wenn nicht anders händelbar mach ich es so.

Danke..

Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von black_adept (Top Expert / 3350 / 63 / 629 ) » 19.02.2020 22:07
Moin stony,

eigentlich brauchst du die File-Arie nicht. Ruf deine Applikation über cmd.exe auf mit einer Pipe der Ausgabe in die Zwischenablage ( " | clip ") und hol dir dann den Inhalt der Zwischenablage.

Beispiel wie man sich so z.B. ein directorylisting holt

Code: Alles auswählen.

REPORT.
DATA: lt_data   TYPE soli_tab,
      lv_length TYPE i.
cl_gui_frontend_services=>execute( EXPORTING
                                     application = 'cmd.exe'
                                     parameter   = '/C "dir c:\temp\*.* | clip"'
                                     MINIMIZED   = 'X' " disable cmd flash
                                     SYNCHRONOUS = 'X' " wait for cmd to finish
                                   EXCEPTIONS
                                     OTHERS      = 10 ).
cl_gui_frontend_services=>clipboard_import( IMPORTING
                                              data     = lt_data   " Data Table
                                              length   = lv_length " Data length
                                            EXCEPTIONS
                                              OTHERS   = 4 ).

BREAK-POINT.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag (Insgesamt 3):
Somani (20.02.2020 07:01) • ewx (20.02.2020 07:43) • a-dead-trousers (20.02.2020 08:16)

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von Thomas R. (Expert / 699 / 43 / 27 ) » 20.02.2020 07:03
Hallo,
müsste nicht in LT_RESULT das Ergebnis bereits stehen?
Wenn nicht kannst Du ja eventuell die gerufene APP entsprechend ändern, so dass Du den Text zurück bekommst.
Oder die APP per SM49 aufrufen. Dann bekommst Du die Ausgabe zurückgeliefert.

MfG
Thomas R.

Edit: Alles Quatsch, die entscheidende Info habe ich geflissentlich überlesen 😓
Zuletzt geändert von Thomas R. am 20.02.2020 10:03, insgesamt 1-mal geändert.

Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von a-dead-trousers (Top Expert / 3391 / 102 / 867 ) » 20.02.2020 08:23
black_adept hat geschrieben:
19.02.2020 22:07
Eigentlich brauchst du die File-Arie nicht. Ruf deine Applikation über cmd.exe auf mit einer Pipe der Ausgabe in die Zwischenablage ( " | clip ") und hol dir dann den Inhalt der Zwischenablage.
Ich musste wirklich heute tage alt werden um zu erfahren, dass das Pipe auch in die Zwischenablage übertragen kann 😉
Einen kleinen Schönheitsfehler sehe ich da aber: Was ist wenn die Zwischenablage durch irgendeine andere Aktion verändert wird?

Thomas R. hat geschrieben:
20.02.2020 07:03
Müsste nicht in LT_RESULT das Ergebnis bereits stehen?
Wenn nicht kannst Du ja eventuell die gerufene APP entsprechend ändern, so dass Du den Text zurück bekommst.
Oder die APP per SM49 aufrufen. Dann bekommst Du die Ausgabe zurückgeliefert.
Klar, wenn er sich am Appl.Server bewegt, was er aber am Anfang schon ausgeschlossen hat.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Returncode bzw. Result von ausgeführter *.exe

Beitrag von black_adept (Top Expert / 3350 / 63 / 629 ) » 20.02.2020 08:46
a-dead-trousers hat geschrieben:
20.02.2020 08:23
Einen kleinen Schönheitsfehler sehe ich da aber: Was ist wenn die Zwischenablage durch irgendeine andere Aktion verändert wird?
Was ist wenn die Zwischenablage Datei durch irgendeine andere Aktion verändert wird?

Wenn man das aber wirklich als Problem sieht im auswertenden Programm eine Plausiprüfung machen, ob die Zwischenablage sinnvolle Daten enthält. Vielleicht sogar via ECHO einen vorgegebene GUID in die Ausgabe mit integrieren o.ä.
Halte ich aber alles für mit ICBMs auf Trottellummen schießen.

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
a-dead-trousers (20.02.2020 09:03)

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Seite 1 von 1