SAP Jobsuche bei DV-Treff
evil_rasta
vor 11 Jahre
Moin,

ich bekomme es nicht mehr hin, einen Pushbutton auf dem Start-Bildschirm anzulegen, der die TA SA38 aufruft und dabei dem Feld Programm einen Wert übergibt.

Ich habe jetzt etwa 4 Stunden alle möglichen Kombinationen bei der Syntax ausprobiert aber es klappt nicht.

Eigentlich müsste diese Syntax stimmen:

Pushbutton (1,1) "ZReport1" "/NSA38" F[RS38M-PROGRAMM] ="Z_Report" Enter "/8"

Habe es auch mit F[Programm] probiert:

Pushbutton (1,1) "ZReport1" "/NSA38" F[Programm] ="Z_Report" Enter "/8"

Die SA38 wird aufgerufen aber das Feld für den Programmnamen bleibt leer

... und ich hatte es schon mal am laufen ... 🤬

Hat Jemand eine (vulkanische) Erklärung für mich, oder zumindest die Lösung?

Vielen Dank vorab!

... der verwirrte rasta

ScriptMan
vor 11 Jahre
Hallo rasta,

ich habe keinen Zugriff auf SA38 und daher kann ich nur mutmaßen, wie es gehen könnte.

z.B.

Pushbutton (1,1) "ZReport1" "/NSA38" Process="ZReport1.txt"

//InputScript ZReport1.txt:

Screen SAPMS38M.0101

set F[Programm] "Z_Report"

Enter "/8"

Die Syntax müsste stimmen. Aber ob die Parameter Screen und F[Programm] stimmen, weiß ich nicht.

Freundliche Grüße

ScriptMan

evil_rasta
vor 11 Jahre
Hi Scriptman,

danke für deinen Vorschlag, aber es müsste aus dem saplsmtr_navigation.d0100.txt (SAP Startbildschirm) heraus gehen.

Für Process="...txt" benötigt man den InputAssistent, und habe ich leider nicht 😢

Habe es auch mal über eine Variable probiert, aber auch nicht hinbekommen.

Pushbutton (1,1) "ZReport1" "/NSA38" Set V[temp] "Z_Report" Enter "/8"

und in der sapms38m.d0101.txt so probiert:

// ABAP: Programmausführung

Screen SAPMS38M.0101

IF not V[temp=""]

Set F[Programm] "&V[temp]"

Enter "/8" // Ausführen

endif

Das Feld bleibt weiterhin leer aber beim ersten Versuch zurück ins Startmenü zu gehen, gibt es jetzt die Fehlermeldung "Bitte Programmnamen eingeben"

Hier die technischen Infos zu dem Feld:

Dynpro-Daten:

Programmname SAPMS38M

Bildnummer 0101

GUI-Daten

Programmname SAPMS38M

Status REPO

Feld-Daten

Tabellenname RS38M

Tabellenart Struktur

Feldname PROGRAMM

Datenelement PROGRAMM

Parameter-Id RID

feldbezeichnung für Batch-Input

Dynprofeld RS38M-PROGRAMM

ScriptMan
vor 11 Jahre
Hallo rasta,

ohne den InputAssistant könnte es u.U. wie folgt klappen:

1. Im Startbildschirm saplsmtr_navigation.d0100.txt:

Pushbutton (1,1) "ZReport1" "/NSA38"

2. Im Folgebildschirm sapms38m.d0101.txt:

// ABAP: Programmausführung

//Screen SAPMS38M.0101

//IF not V[temp=""]

//Set F[Programm] "&V[temp]"

Set F[Programm] "Z_Report"

Enter "/8" // Ausführen

//endif

Damit wird aber immer im Folgebildschirm das gewählte Programm gestartet. Egal woher und wie man dorthin kommt. Man muss es einfach testen.

Freundliche Grüße

ScriptMan

Scripti
vor 11 Jahre
Hallo rasta,

hier die kurze Variante mit Pushbutton in der Toolbar, falls sie noch benötigt wird. So könntest du pro Button ein Programm hinterlegen.

Pushbutton (toolbar) "ZReport1" "/NSA38 RS38M-PROGRAMM=Z_Report" size=(2,20)

(bis auf die Anführungszeichen, war dein erster Befehl schon richtig)

In der sapms38m.d0101.txt muss dann lediglich folgende Zeile stehen:

Enter "/8"

um das Programm automatisch auszuführen.

Viel Spaß

Scripti

evil_rasta
vor 11 Jahre
You got it!!!

Vielen Dank scripti, jetzt rockt es wieder... 😁