STMS via Coding aktualisieren

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
11 Beiträge • Seite 1 von 1
11 Beiträge Seite 1 von 1

STMS via Coding aktualisieren

Beitrag von ichse18577 (ForumUser / 41 / 15 / 3 ) »
Hallo zusammen,

kennt jemand eine Möglichkeit (Fuba oder Klasse) um die STMS via Coding zu aktualisieren?

Gruß Ichse

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: STMS via Coding aktualisieren

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Was bitte willst du in der STMS (um Gotteswillen!) und vorallem wie aktualisieren?
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.18
Basis: 7.50

Re: STMS via Coding aktualisieren

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Na, das ist doch der Schritt, der gemacht werden muss, bevor der Code dann alles, was neu hinzugekommen ist, automatisch und ohne dass einer nochmal draufschaut durchtransportiert. 😁

Re: STMS via Coding aktualisieren

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Um die Frage des Threaderstellers zu beantworten: Das kriegt man sicherlich per programmiertem Batch Input hin (Transaktion SHDB, damit eine Aufzeichnung der STMS erstellen, in der man auffrischt, dann von der SHDB passenden Code generieren lassen und den dann ins eigene Programm einbauen).

Zur Sinnhaftigkeit des Unterfangens äußere ich mich nicht. 😁

Folgende Benutzer bedankten sich beim Autor DeathAndPain für den Beitrag:
ichse18577


Re: STMS via Coding aktualisieren

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Vielleicht hilft dir schon der Schalter "Update Display automatically" in den Einstellungen der STMS?
Menü: Extras - Personal Settings

Re: STMS via Coding aktualisieren

Beitrag von ichse18577 (ForumUser / 41 / 15 / 3 ) »
Im allgemeinen geht es darum, dass ich ein virtuelles System anlegen möchte via Coding und danach die STMS aktualisieren muss.
Im weiteren Programmverlauf werde ich nämlich Aufträge in meine neu angelegte Queue anhängen und dazu sollte die STMS aktuell sein.

Re: STMS via Coding aktualisieren

Beitrag von ichse18577 (ForumUser / 41 / 15 / 3 ) »
Danke an DeathAndPain

der Batch Input war die Lösung die ich letztlich benutzt habe.
Wen es interessiert so sieht dann mein Coding aus:

Code: Alles auswählen.


  DATA: lt_bdc TYPE TABLE OF bdcdata,
        ls_bdc LIKE LINE OF lt_bdc,
        ls_options TYPE ctu_params.

  ls_options-dismode = 'N'.

**********************************************************************
*STMS via Batch Input starten
**********************************************************************

  "Start
  ls_bdc-program = 'SAPLTMSU'.
  ls_bdc-dynpro = 0100.
  ls_bdc-dynbegin = 'X'.
  ls_bdc-fnam = ''.
  ls_bdc-fval = ''.
  APPEND ls_bdc TO lt_bdc.
  CLEAR ls_bdc.

  ls_bdc-program = ''.
  ls_bdc-dynpro = '' .
  ls_bdc-dynbegin = ''.
  ls_bdc-fnam = 'BDC_CURSOR'.
  ls_bdc-fval = 'WTMSU-SYSNAM'.
  APPEND ls_bdc TO lt_bdc.
  CLEAR ls_bdc.

  ls_bdc-program = ''.
  ls_bdc-dynpro = ''.
  ls_bdc-dynbegin = ''.
  ls_bdc-fnam = 'BDC_OKCODE'.
  ls_bdc-fval = '=IMPO'.
  APPEND ls_bdc TO lt_bdc.
  CLEAR ls_bdc.

  ls_bdc-program = 'SAPMSSY0'.
  ls_bdc-dynpro = 0120.
  ls_bdc-dynbegin = 'X'.
  ls_bdc-fnam = ''.
  ls_bdc-fval = ''.
  APPEND ls_bdc TO lt_bdc.
  CLEAR ls_bdc.

  ls_bdc-program = ''.
  ls_bdc-dynpro = ''.
  ls_bdc-dynbegin = ''.
  ls_bdc-fnam = 'BDC_CURSOR'.
  ls_bdc-fval = '02/03'.
  APPEND ls_bdc TO lt_bdc.
  CLEAR ls_bdc.

  ls_bdc-program = ''.
  ls_bdc-dynpro = ''.
  ls_bdc-dynbegin = ''.
  ls_bdc-fnam = 'BDC_OKCODE'.
  ls_bdc-fval = '=REFR'.
  APPEND ls_bdc TO lt_bdc.
  CLEAR ls_bdc.

  CALL TRANSACTION 'STMS' USING lt_bdc OPTIONS FROM ls_options.

ich habe das Ganze einfach in eine eigene Klasse gepackt um die Wiederverwendbarkeit zu gewährleisten und es funktioniert auch einwandfrei

Gruß Ichse

Folgende Benutzer bedankten sich beim Autor ichse18577 für den Beitrag:
hga


Re: STMS via Coding aktualisieren

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Für den MODE hat der CALL TRANSACTION einen eigenen Parameter, dafür hättest Du nicht extra eine Optionsstruktur ls_options deklarieren und füllen brauchen. Beim CALL TRANSACTION direkt MODE 'N' anzugeben ist kürzer und übersichtlicher. Ich würde dort auch UPDATE 'S' angeben, damit der Kram direkt verbucht wird.

Außerdem empfehle ich, direkt im Anschluss noch ein CLEAR lt_bdc. anzugeben. Zu oft ist es mir passiert, dass ich später noch einen weiteren Batch Input ausführen wollte und in der Tabelle noch der alte Kram drinstand, an den der neue dann drangehängt wurde. Kann natürlich nicht passieren, wenn Du den Code in eine eigene Unterroutine packst, in der lt_bdc lokal deklariert ist und die nach dem CALL TRANSACTION endet.

Die APPENDs kannst Du übrigens kürzer gestalten, indem Du Dir das Include BDCRECX1 anschaust. Das wird vom Standard benutzt. Bei allen meinen Arbeitgebern habe ich mir davon eine Kopie ZDCRECX2 gemacht, in der ich alles rausgeschmissen habe, was ich für einfache Onlineverbuchung per CALL TRANSACTION nicht brauche (insbesondere die ganzen Selektionsbildbefehle). In ZDCRECX2 muss nur ein DATA für die Felder BDCDATA und GROUP drinstehen und die ganzen Formroutinen aus BDCRECX1. Dann kannst Du die Batchtabelle so elegant mit Routinenaufrufen aufbauen, wie der von der SHDB generierte Code das macht. Damit kannst Du dann Code zur Sofortverbuchung oder zur Erzeugung von Batchmappen schreiben, die später per SM35 verbucht werden sollen. Der Code ist derselbe; der Unterschied besteht nur darin, ob Du nach dem Aufbau Deiner Batchtabelle (bei Dir: lt_bdc, bei ZDCRECX2: bdcdata) CALL TRANSACTION oder PERFORM BDC_TRANSACTION schreibst. In letzterem Fall musst Du vorher auch noch ein PERFORM OPEN_GROUP und hinterher ein PERFORM CLOSE_GROUP schreiben. (Die ganzen Formroutinen stehen alle im Include ZDCRECX2, das Du Dir wie oben beschrieben aus dem Include BDCRECX1 erzeugst.)

Re: STMS via Coding aktualisieren

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
Mit VALUE nochmal kürzer, übersichtlicher und eleganter:

Code: Alles auswählen.

DATA(bdc) = VALUE bdcdata_tab(
  ( program  = 'SAPLTMSU'    dynpro   = '0100'    dynbegin = 'X' )
  ( fnam     = 'BDC_CURSOR'  fval     = 'WTMSU-SYSNAM' )
  ( fnam     = 'BDC_OKCODE'  fval     = '=IMPO' )
  ( program  = 'SAPMSSY0'    dynpro   = '0120'    dynbegin = 'X' )
  ( fnam     = 'BDC_CURSOR'  fval     = '02/03' )
  ( fnam     = 'BDC_OKCODE'  fval     = '=REFR' )
 ).

Folgende Benutzer bedankten sich beim Autor ewx für den Beitrag:
Somani


Re: STMS via Coding aktualisieren

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Sofern der auszuführende Batch komplett statisch ist und nicht partiell in Unterroutinen berechnet werden muss, mag das gehen. Aber - ohne es ausprobiert zu haben - kann man dann nicht auch gleich den DATA(bdc) weglassen und den ganzen VALUE-Block direkt an den CALL TRANSACTION übergeben? Oder ist das wie bei PERFORM, dass VALUE an der Stelle nicht unterstützt wird? Wobei es bei PERFORM ja einen gewissen Sinn macht, da es syntaktisch erlaubt ist, USING-Parameter in der Unterroutine zu ändern, was bei einem CALL TRANSACTION aber kein Problem sein sollte.

Die BDC_CURSOR-Einträge kann man übrigens so gut wie alle weglassen. Das ist extrem selten, dass die Cursorposition in einem Batch Input eine Rolle spielt. Der SHDB zeichnet sie bei jedem einzelnen Dynpro mit auf, aber das ist eigentlich immer das erste, was ich aus dem aus der Aufzeichnung generierten Code ersatzlos rausschmeiße wegen nutzlos. Dadurch wird das Ganze nochmal deutlich kürzer und übersichtlicher und auch ein bisschen schneller.

Re: STMS via Coding aktualisieren

Beitrag von ewx (Top Expert / 4784 / 294 / 628 ) »
DeathAndPain hat geschrieben:
18.11.2019 17:07
Sofern der auszuführende Batch komplett statisch ist und nicht partiell in Unterroutinen berechnet werden muss, mag das gehen. Aber - ohne es ausprobiert zu haben - kann man dann nicht auch gleich den DATA(bdc) weglassen und den ganzen VALUE-Block direkt an den CALL TRANSACTION übergeben? Oder ist das wie bei PERFORM, dass VALUE an der Stelle nicht unterstützt wird? Wobei es bei PERFORM ja einen gewissen Sinn macht, da es syntaktisch erlaubt ist, USING-Parameter in der Unterroutine zu ändern, was bei einem CALL TRANSACTION aber kein Problem sein sollte.
Klar. Sofern Logik dahinter ist, ist eine Verwendung von Modulen (FORM oder METHOD) sinnvoller.
Der CALL TRANSACTION unterstütz den VALUE Befehl m.W. nicht...
DeathAndPain hat geschrieben:
18.11.2019 17:07
Die BDC_CURSOR-Einträge kann man übrigens so gut wie alle weglassen. Das ist extrem selten, dass die Cursorposition in einem Batch Input eine Rolle spielt. Der SHDB zeichnet sie bei jedem einzelnen Dynpro mit auf, aber das ist eigentlich immer das erste, was ich aus dem aus der Aufzeichnung generierten Code ersatzlos rausschmeiße wegen nutzlos. Dadurch wird das Ganze nochmal deutlich kürzer und übersichtlicher und auch ein bisschen schneller.
BDC_CURSOR ist dann wichtig, wenn du einen "Doppelklick" (F2) in einem TableControl aufnimmst. Durch den BDC_CURSOR weiß das Programm in welcher Zeile du dich befindest.

Seite 1 von 1

Vergleichbare Themen

1
Antw.
194
Views
MiniSAP STMS
von Renata_2 » 05.06.2023 09:56 • Verfasst in ABAP® für Anfänger
1
Antw.
1828
Views
STMS - Import läuft
von Niekohle » 23.07.2007 19:21 • Verfasst in Basis
3
Antw.
1766
Views
Ersteller Transport STMS
von dkast » 25.03.2021 07:46 • Verfasst in ABAP® für Anfänger
2
Antw.
3379
Views
Transaktion STMS und Transport
von an4kh4 » 06.06.2006 11:16 • Verfasst in SAP - Allgemeines
2
Antw.
2333
Views
ALV aktualisieren
von dawns » 22.11.2006 10:36 • Verfasst in ABAP Objects®

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140