Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

SAP ABAP Ausgabe in der Statusleiste

Empfohlene Antworten

Veröffentlicht

Hallo,

ich habe ein Problem. Ich soll in der Statusleiste während das Programm läuft ausgeben wieviele Sätze verarbeitet wurden (aber nur alle 1000) damit ich nicht in einen Laufzeitfehler rassele da es sich hier um eine unglaubliche Datenmasse handelt. Hat da jemand eine schnelle Idee oder gibt es dafür einen Baustein?

DATA: v_string TYPE string.

DO 100 TIMES.

v_string = sy-index.

CONCATENATE v_string ' records selected ' INTO v_string

SEPARATED BY space.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

percentage = sy-index

text = v_string.

ENDDO.

'SAPGUI_PROGRESS_INDICATOR' malt dir unten ne uhr hin, die dann auch anzeigt wie weit er ist wenn du also weißt wie viele datensätze du hast (z.b. per describe TABLE lines VARIABLE_LINES) dann kannst du den genauen status anzeigen lassen...

oder aber du machst:

if zähler = zähler2.

MESSAGE 'text' TYPE 'S'.

add 1000 to zähler2.

endif.

der zähler ist in dem fall deiner counter der tabelle... in nem loop sy-index z.b.

An welche Stelle im Coding muss ich das denn einbauen?

am besten da wo es sinn macht, also nicht NACH einem loop sondern darin ;)

Vor allem kommt bei mir in der Verarbeitung gar keine Uhr?!

Haste die Änderungen denn schon eingebaut?

  • Autor

So ist jetzt drin nur das 100 Time Iritiert mich. So wie cih das verstanden habe macht er das 100 mal. Was ist aber wenn ich mehr oder weniger Datensätze habe. Ja er tut es, jetzt ist auch alles eingebaut. Hat auf jedenfall schonmal den gewünschten effekt. Nur halt soll da genau ausgegeben werden wieviele Datensätze das jetzt sind und am besten nur jeder 100 oder tausendste also 100 ds 200 ds 300 ds usw hochzählt bis zur tatsächlichen ds anzahl

du brauchst dieses DO nicht drumherum, das ist doch nur ein beispiel

bau dir selber eine zählervariable ein, die machst du am anfang auf 1000 und wenn dein sy-index bei 1000 ist schreibst du ne meldung und setzt deine zählervariable dann +1000 (also beim 2. mal 2000, beim 3. mal sinds dann schon 300,...)

  • Autor

Ich bin dafür heute irgendwie eindeutig zu doof. Also Hier mein Coding

DO 100 TIMES.

H_count = sy-index.

CONCATENATE h_count ' Datensätze selektiert ' INTO h_count

SEPARATED BY space.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'

EXPORTING

percentage = sy-index

text = h_count.

ENDDO.

Ich weiß ganz toll hier raus kopiert.

So in der Statusleiste zählt er jetzt hoch nur ich kapier das nicht wie ich das hinkriege das er nur alle 1000 angibt. Vor allem darf diese Anzeige nicht die Programmverarbeitung beeinträchtigen.

Also :

Im Hg arbeite er dann an dem Programm

1000 Ds verarbeitet

2000 DS Verar

3000 DS Verar

4000 DS verar

dann kommen die Selektiereten Daten auch wenn es 4256 DS sind. Haste da nicht nen paar Goldkörnchen die auch ich verstehe?

wie verarbeitest du denn DEINE Daten?

In einem Loop oder Do oder Select - oder gar nichts von dem?

wenn doch...

mach folgendes:

- erstell eine neue variable, die zum anfang auf 1000 steht.

- schreib folgendes ins coding:

if sy-index = DEINE_NEUE_VARIABLE.
data: lv_string type string.
lv_string = sy-index.
MESSAGE lv_string TYPE 'S'.
add 1000 to DEINE_NEUE_VARIABLE. "er soll es erst beim nächsten tausender nochmal machen
endif.[/PHP]

und dann sollte das gehen...

  • Autor

Die Daten werden in einem Start-Of--selection sprich in einem Loop verarbeitet. Sie werden durch verschiedenen Tabellen udn Hilfsfelder hin und her geschoben bis alles passt und dann ausgegeben. Falls nötig schicke ich dir das verarbeitungs coding gerne per pn. Weil irgendwie komme ich auf diese art wie die hier proggen gar nciht klar. Ich habe das Programm auch nicht geschrieben, ich soll es nur um die Statusleisten ausgabe erweitern.

Die status ausgabe habe ich direkt an den Anfang geschrieben.

Die status ausgabe habe ich direkt an den Anfang geschrieben.

Anfang vom Loop ist doch ok, es muss nur irgendwo IM Loop stehen ;)

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.