Performance-Probleme

Benutzeroberflächen in SAP®-Systemen.
33 Beiträge • Seite 1 von 3 (current) Nächste
33 Beiträge Seite 1 von 3 (current) Nächste

Performance-Probleme

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo Abap-Gemeinde.

Ich hoff ich bin im richtigen Forumsbereich


Ich hab da mal ne Performance Frage:

Ich hab ne Liste zusammengebastelt für den SD Bereich.
Dabei sind 8 Tabellen im Zugriff.
Die ersten 5 Tabellen selektiere ich anhand eines 4-fach innerJoins

Hier mal der Select:

Code: Alles auswählen.

  SELECT a~auart AS baauart a~vbeln AS bavbeln a~erdat AS baerdat
         a~kunnr AS bakunnr a~vkbur AS bavkbur a~vkorg AS bavkorg
         a~vtweg AS bavtweg
         b~vbeln AS ipvbeln b~erdat AS iperdat
         b~wadat_ist AS ipwadat_ist
         d~matnr AS bpmatnr d~arktx AS bparktx d~kwmeng AS bpkwmeng
         d~netwr AS bpnetwr d~uepos AS bpuepos
         e~lfimg AS islfimg e~vbeln AS zvbeln  e~posnr AS zposnr
         f~bzirk AS bdbzirk
    INTO CORRESPONDING FIELDS OF TABLE gt_all
    FROM ( ( ( likp AS b INNER JOIN lips AS e
           ON b~vbeln = e~vbeln )
           INNER JOIN vbak AS a
             ON a~vbeln = e~vgbel )
             INNER JOIN vbap AS d
               ON  d~vbeln = e~vgbel
               AND d~posnr = e~vgpos )
               INNER JOIN vbkd AS f
                 ON  f~vbeln = d~vbeln
                 AND f~posnr = d~posnr
   WHERE a~vbeln     IN so_vbeln
     AND a~auart     IN so_auart
     AND a~erdat     IN so_erdat
     AND a~kunnr     IN so_kunnr
     AND a~vkbur     IN so_vkbur
     AND a~vkorg     IN so_vkorg
     AND a~vtweg     IN so_vtweg
     AND d~matnr     IN so_matnr
     AND d~uepos     IN so_uepos
     AND f~bzirk     IN so_bzirk
     AND b~vbeln     IN so_lbeln
     AND b~erdat     IN so_lerda
     AND b~wadat_ist IN so_lwati
     AND d~arktx     IN so_arktx
     AND d~netwr     IN so_netwr
     AND d~kwmeng    IN so_kwmen
     AND e~lfimg     IN so_lfimg.
Dann loope ich über die ergebnistabelle und frag noch abhängigkeiten ab:

zum einen kommt dann ein Select single über die KNA1.

und dann ein select single über die VBFA, bei sy-subrc0 wird ein select single auf die vbrk durchgeführt.
Bei erfolg wird ein modify auf der int. tabelle gemacht mit index.
Bei kein Treffer wird ein Delete auf die int. Tabelle mit index gemacht.


nun ist es so dass das ganze auf dem Entwicklersystem unheimlich schnell ist (bei einer Auswahl von einem ganzen Jahr ist die Laufzeit etwa 30 sec.)
Auf dem Testsystem, dass allgemein etwas langsamer ist, dauert das ganze bei einer Auswahl von 1 monat weit über 20 min. Das ist nicht tragbar.

Woran liegt das?
Ich dachte JOINs sind immer schneller, als wenn man jede DB-Tabelle einzeln selektiert?!

Thx 4 Info

Gruß
Markus

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


Beitrag von DeathGuardian (Expert / 759 / 0 / 3 ) »
Wieso ist es auf dem Entwicklungssystem schneller als auf dem Testsystem?
Ich weis ja nicht, wie es bei euch aussieht, aber bei uns hat das E-System eher weniger bis gar keine Daten und das Testsystem ist verhältnismässig Produktivsystem nah.
Sprich E hat weniger Daten deshalb auch schneller, weil weniger zu selectieren.

Ich dachte JOINs sind immer schneller, als wenn man jede DB-Tabelle einzeln selektiert?!
In der Regel ja, aber die Regel trifft nicht immer zu.

Du machst aktuell einen JOIN von LIPS der auf VBAK und VBAP gleichzeitig geht.
Mach daraus mal ein JOIN der von LIPS auf VBAP und dann von VBAP auf VBAK geht.
Das wird glaub ein wenig was raushollen und auch dafür sorgen, das das Ergbnis genauer wird.

Eventuell würden auch ein paar Index helfen.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
DeathGuardian hat geschrieben:Wieso ist es auf dem Entwicklungssystem schneller als auf dem Testsystem?
Ich weis ja nicht, wie es bei euch aussieht, aber bei uns hat das E-System eher weniger bis gar keine Daten und das Testsystem ist verhältnismässig Produktivsystem nah.
Sprich E hat weniger Daten deshalb auch schneller, weil weniger zu selectieren.

Das ist wohl wahr, aber das das ganze gleich derart ausartet? :roll:

Ich dachte JOINs sind immer schneller, als wenn man jede DB-Tabelle einzeln selektiert?!
In der Regel ja, aber die Regel trifft nicht immer zu.

Du machst aktuell einen JOIN von LIPS der auf VBAK und VBAP gleichzeitig geht.
Mach daraus mal ein JOIN der von LIPS auf VBAP und dann von VBAP auf VBAK geht.
Das wird glaub ein wenig was raushollen und auch dafür sorgen, das das Ergbnis genauer wird.

Also werde ich den Select soweit ändern, dass ich nicht 2mal die Lips hernehme.
Dann sieht der FROM Teil so aus:

Code: Alles auswählen.

    FROM ( ( ( likp AS b INNER JOIN lips AS e
           ON b~vbeln = e~vbeln )
           INNER JOIN vbap AS d
             ON  d~vbeln = e~vgbel
             AND d~posnr = e~vgpos )
             INNER JOIN vbak AS a
               ON a~vbeln = d~vbeln )
               INNER JOIN vbkd AS f
                 ON  f~vbeln = d~vbeln
                 AND f~posnr = d~posnr
Eventuell würden auch ein paar Index helfen.

Das mit den Index musste mir mal sagen was du da meinst...



Gruß
Markus

Beitrag von Krueger ( / / 0 / 3 ) »
Mein Vorschlage.../...Ich würde es mal so versuchen:

1.) INTO CORRESPONDING FIELDS OF TABLE gt_all
in der internen Tabelle GT_ALL genau die Felder aufnehmen, die ich in dem Join auch nur brauche, damit diese "INTO CORRESPONDING" wegfällt.

Lesen der KOPFtabellen in interne Tabellen und anschliessend ein Select auf die POSITIONSTabellen mit "FOR ALL ENTRIES".

Meine Erfahrungen mit JOIN's: Wenn die Joins zu gross werden, geht die Performance in die Knie und eine Select... Endselect ist performanter.
Das händeln der riesigen internen Tabellen wirkt sich zu sehr negativ aus.

Wie bereits erwähnt, evtl. mit bedacht INDEXe in der SE11 auf die DB anlegen.



Edit: "VERSUCH MACHT KLUCH!!!" :wink:

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Krueger hat geschrieben:Mein Vorschlage.../...Ich würde es mal so versuchen:

1.) INTO CORRESPONDING FIELDS OF TABLE gt_all
in der internen Tabelle GT_ALL genau die Felder aufnehmen, die ich in dem Join auch nur brauche, damit diese "INTO CORRESPONDING" wegfällt.

Lesen der KOPFtabellen in interne Tabellen und anschliessend ein Select auf die POSITIONSTabellen mit "FOR ALL ENTRIES".

Meine Erfahrungen mit JOIN's: Wenn die Joins zu gross werden, geht die Performance in die Knie und eine Select... Endselect ist performanter.
Das händeln der riesigen internen Tabellen wirkt sich zu sehr negativ aus.

Wie bereits erwähnt, evtl. mit bedacht INDEXe in der SE11 auf die DB anlegen.



Edit: "VERSUCH MACHT KLUCH!!!" :wink:
Hallo Krueger,

erstmal danke für die Infos.

Das Corresponding könnte ich weg lassen, die int. Tabelle hat nur die Felder die selektiert werden sollen ;) Ich schreib das nur aus gewohnheit hin.


Wenn ich die LIKP in eine int. Tabelle lese...ist das nicht genauso unperformant dann? Habe gerade nachgeschaut, da stehen 10mio Sätze drin. Wenn ich dann auch noch die VBAK in eine int. Tabelle lese killt mich womöglich der Admin :lol:

Ich würd die Joins ja wieder abschaffen, aber sehr wohl ist mir nicht dabei, dass ich dann über eine int. Tabelle mit knapp 10mio datensätze loop.

Die Index werd ich mir mal anschauen...vllt geht da ja noch was.

bin aber weiterhin für gute Ideen und Tips dankbar.

Gruß
Markus

Beitrag von Krueger ( / / 0 / 3 ) »
Das Corresponding könnte ich weg lassen, die int. Tabelle hat nur die Felder die selektiert werden sollen ;) Ich schreib das nur aus gewohnheit hin.
Schlechte Angewohnheit, würde ich versuchen mit abzugewöhnen :wink:
Wenn ich die LIKP in eine int. Tabelle lese...ist das nicht genauso unperformant dann? Habe gerade nachgeschaut, da stehen 10mio Sätze drin. Wenn ich dann auch noch die VBAK in eine int. Tabelle lese killt mich womöglich der Admin :lol:
Die User sollten "gezwungen werden" die Datenselektion einzugrenzen.
Klar, die meisten User haben die Einstellungen "Zeig mit erstmal einfach ALLES, ich wähle dann schon selber den Rest aus".

Ich würd die Joins ja wieder abschaffen, aber sehr wohl ist mir nicht dabei, dass ich dann über eine int. Tabelle mit knapp 10mio datensätze loop.
Versuch macht klug: Mach einfach eine Prog. mit Join und eines mit Select ... Endselect.

Womöglich bricht der JOIN nachher sowieso immer ab (Laufzeit > 300 Sek.???)
Ich hatte einen ähnlichen JOIN, der alleine ohne restlichem Coding > 30 Min. brauchte!!!

Übrigens, wenn der Speicherbedarf nachher mehrerer Gigabyte braucht und auch bekommt, kriegst Du bestimmt Ärger mit eurem Admin :roll:

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Werds mir abgewöhnen ;)

Es wird ja eine Eingrenzung erzwungen, Das DAtum (VBAK-ERDAT) ist nen mussfeld.

Aber die likp muss ich komplett lesen, ausser der Kunde hat explizit dafür eine selektion eingegeben.

Also im Grunde kann ich nur die VBAK 'minimieren'.

Also das Ergebnis (egal wie die auswahl ist) kann ja nur in gigabyte grössen kommen wenn 100% aller tabellen ausgegeben wird, oder?

Naja...ich werd mal die VBAK in ne int. Tab stecken (die ist ja definitiv eingegrenzt) und dann schauen wie es weiter geht...

Beitrag von Krueger ( / / 0 / 3 ) »
WHERE a~vbeln IN so_vbeln
AND a~auart IN so_auart
AND a~erdat IN so_erdat
AND a~kunnr IN so_kunnr
AND a~vkbur IN so_vkbur
AND a~vkorg IN so_vkorg
AND a~vtweg IN so_vtweg
AND d~matnr IN so_matnr
AND d~uepos IN so_uepos
AND f~bzirk IN so_bzirk
AND b~vbeln IN so_lbeln
AND b~erdat IN so_lerda
AND b~wadat_ist IN so_lwati
AND d~arktx IN so_arktx
AND d~netwr IN so_netwr
AND d~kwmeng IN so_kwmen
AND e~lfimg IN so_lfimg.
In diesen Selektionen sollte möglich VIEL eingegrenzt werden.

Das nächste Problem, bei den riesigen Datenmengen, wird wahrscheinlich auch die Ausabe im ALV werden :wink:

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
soviel mehr kann da nicht eingegrenzt werden...

die möglichkeiten sind vorhanden, aber die, welches ds prog. nutzen sollen, werden wohl nur bei so_erdat und so_auart eingrenzen können.


Die Ausgabe auf ALV macht keine Probleme, zumindest hab ich nix gemerkt...Ausgabe von mehr als 30000 Datensätze geht auf. Allerdings werden die Ergebnisse nie diese grössen bekommen...hat der Keyuser so gesagt :shock:


Versuche gerade das so hinzubiegen, das ich mit einer int. tabelle über die vbak arbeiten kann.

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Hallo zusammen,

so sieht nun mein Coding aus:

Code: Alles auswählen.

FORM select_data .

  DATA:
        lf_vbfavbeln        TYPE vbeln_von,
        lf_anzi             TYPE i,
        lf_anzs             TYPE string,
        lf_fehler           TYPE c.

  SELECT a~auart AS baauart a~vbeln AS bavbeln a~erdat AS baerdat
         a~kunnr AS bakunnr a~vkbur AS bavkbur a~vkorg AS bavkorg
         a~vtweg AS bavtweg
         b~matnr AS bpmatnr b~arktx AS bparktx b~kwmeng AS bpkwmeng
         b~netwr AS bpnetwr b~uepos AS bpuepos b~posnr AS zposnr
         f~bzirk AS bdbzirk
    INTO CORRESPONDING FIELDS OF TABLE gt_all "gt_vkbel
    FROM ( vbak AS a INNER JOIN vbap AS b
            ON a~vbeln = b~vbeln )
            INNER JOIN vbkd AS f
              ON  f~vbeln = b~vbeln
              AND f~posnr = b~posnr
   WHERE a~erdat     IN so_erdat
     AND a~kunnr     IN so_kunnr
     AND a~auart     IN so_auart
     AND a~vkbur     IN so_vkbur
     AND a~vkorg     IN so_vkorg
     AND a~vtweg     IN so_vtweg
     AND b~matnr     IN so_matnr
     AND b~uepos     IN so_uepos
     AND b~arktx     IN so_arktx
     AND b~netwr     IN so_netwr
     AND b~kwmeng    IN so_kwmen
     AND f~bzirk     IN so_bzirk
   ORDER BY a~vbeln b~posnr.

  LOOP AT gt_all INTO gs_all.

    CLEAR lf_fehler.

    SELECT c~vbeln AS ipvbeln c~erdat AS iperdat
           c~wadat_ist AS ipwadat_ist
           d~lfimg AS islfimg "d~vbeln AS zvbeln  d~posnr AS zposnr
      INTO CORRESPONDING FIELDS OF gs_all
      FROM likp AS c INNER JOIN lips AS d
             ON c~vbeln = d~vbeln
     WHERE d~vgbel     = gs_all-bavbeln
       AND d~vgpos     = gs_all-zposnr
       AND c~vbeln     IN so_lbeln
       AND c~erdat     IN so_lerda
       AND c~wadat_ist IN so_lwati
       AND d~lfimg     IN so_lfimg.

* Name des Auftraggebers(Kunde) ermitteln
      SELECT SINGLE name1 AS zkunam
        FROM kna1
        INTO CORRESPONDING FIELDS OF gs_all
       WHERE kunnr = gs_all-bakunnr.

* Fakturadaten ermitteln. Lieferungsbezogene Rechnungs-Faktura ('M').
* Wenn nix gefunden, wird der ganze Datensatz nicht mehr ausgegeben.
      SELECT SINGLE vbeln
        FROM vbfa
        INTO lf_vbfavbeln
       WHERE vbelv   = gs_all-ipvbeln
         AND posnv   = gs_all-zposnr
         AND vbtyp_n = 'M'.
      IF sy-subrc EQ 0.
        SELECT SINGLE vbeln AS brvbeln erdat AS brerdat
          FROM vbrk
          INTO CORRESPONDING FIELDS OF gs_all
         WHERE vbeln = lf_vbfavbeln
           AND vbeln IN so_rbeln
           AND erdat IN so_rerda.
        IF sy-subrc NE 0.
          lf_fehler = 'X'.
        ENDIF.
      ELSE.
        lf_fehler = 'X'.
      ENDIF.

      IF lf_fehler IS INITIAL.
        MODIFY gt_all FROM gs_all.
      ENDIF.

    ENDSELECT.

    IF sy-subrc <> 0 OR lf_fehler = 'X'.
      DELETE gt_all INDEX sy-tabix.
    ENDIF.

  ENDLOOP.

ENDFORM.                    " select_data

Dauert immer noch Ewigkeiten :cry:
Es wird auf so_erdat und so_kunnr mindestens abgegrenzt (sind MUSS-Felder; habs geschafft das wenigstens ein anderes Feld noch als MussFeld dasein muss)

Hab nu extra die VBAK und VBAP von der LIKP und LIPS getrennt.
Bringt aber rein performancemässig gar nix.. naja zumindest nicht spürbar.

Hier wurden schon öfters Indizies angesprochen...ich hab nachgeschaut. Auf der VBAK gibt es einen der auf erdat geht.
Aber wie benutz ich den? Oder wird der automatisch gezogen? Muss ich mein Select auf die VBAK dann komplett ausklammern, sprich erstmal nur direkt die VBAK selectieren, in eine int. Tab. und dann die vbap und und und... drauf anwenden?

Hab mir auch schon die SAP-Hinweise zu Performance durchgelesen. So richtig was rauslesen kann ich für mein Fall nicht...aber ich les es nochmal, vllt hilfts ja :roll:


Wäre dankbar für weitere Tips und Hilfen!
Vielleicht ist ja hier einer da, der sich im SD-Bereich gut auskennt

Gruß
Markus

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Zum vorherigen Post:

Die neue Art (getrennt von VBAK und LIKP) dauert sehr viel länger als die Megaschachtelung der Joins.
Und mit den Joins hab ich auch eine bessere Trefferquote (mehr Ergebnisse)

Also kann man davon ausgehen, dass die Joins tatsächlich schneller sind und genauer?!
Aber irgendwo muss man doch noch Performance rauskitzeln können...?

Gruß
Markus

Beitrag von JHM (Top Expert / 1201 / 1 / 197 ) »
MarkusW hat geschrieben: Wäre dankbar für weitere Tips und Hilfen!
Vielleicht ist ja hier einer da, der sich im SD-Bereich gut auskennt
Weißt du ob der Index von der VBAK gezogen wird?
evtl. mit ST05 einen SQL-Trace durchführen um das zu klären.

Weißt du welcher Select wie lange dauert?
evtl. mit se30 eine Laufzeitanalyse durchführen um den ungünstigen Select zu finden.

Der Select Single auf die KNA1 ist in meinen Augen ungünstig. Da über so_kunnr die Kunden eingegrenzt werden müssen, kann man sich die Daten auf einen Schlag in das Programm lesen und in einer itab zwischen speichern. Beim zusammen setzten der Daten mittels READ TABLE BINARY SEARCH aus der itab lesen oder zum Schluss einen LOOP über die itab_kunnr und die Ausgabetabelle mit einem MODIFY WHERE füllen.

Der Select auf die likp/lips ist ungünstig, da kein Index auf vgbel/vgpos existiert. Evtl. ist es schneller sich voher die Schlüssel aus der VBFA zulesen und mit FOR ALL ENTRIES auf die LIKP/LIPS zugehen. (Bei FOR ALL ENTRIES auf Sortierung achten). Evtl. kannst du auf die VBFA schon mit FOR ALL ENTRIES gt_all gehen. Dann mit den gelesenen Lieferungsdaten auf die LIKP/LIPS auch mit FOR ALL ENTRIES gt_vbfa. Die Daten dann mittels READ BINARY SEARCH während dem erstellen der Ausgabetabelle dazu lesen.

MOVE-CORRESPONDING ist immer unperformant und gehört verboten, ist nur etwas für faule Programmierer.

ORDER BY ist auch nicht unbedingt performant. Evtl. hier die itab nach dem Select sortieren. (Das hängt ein wenig von den Servern ab, welche da schneller sind. Bei uns ist der ApplicationServer deutlich schneller als der DB-Server)

Wenn ihr nicht pro Auftragsposition genau eine Lieferungsposition und genau eine Rechnungsposition habt arbeitet dein Programm nicht korrekt. Nur der erste Satz kann mit MODIFY übernommen werden, danach müsste mit APPEND ein neuer Satz in die Tabelle gt_all aufgenommen werden. Wenn du hier mit einer zweiten reinen Ausgabetabelle arbeiten würdest, könntest du alle Sätze mittels APPEND übernehmen und der DELETE würde überflüssig.

Die Abbruchbedingungen kommen viel zu spät. Wenn keine Lieferung gefunden wurde, muss erst garnicht nach einer Faktura gesucht werden.

Soweit meine Ideen
Gruß Hendrik

Beitrag von ereglam (Top Expert / 1829 / 2 / 7 ) »
JHM hat geschrieben:...
MOVE-CORRESPONDING ist immer unperformant und gehört verboten, ist nur etwas für faule Programmierer.
...
dem kann ich so nicht zustimmen.
  • Diese Anweisung(en) sind zumindest dann notwendig, wenn man z.B. dynamische SELECTS baut, wo die Feldliste wegen dynamischer Ziele nicht angegeben werden kann.
  • Ein anderer Fall besteht dort, wo man am SAP-Standard oder in Branchenlösungen arbeitet, wenn man Strukturen verwendet, die typischer Weise durch kundeneigene Felder erweitert wurden. Wenn man da alle Feldzuweisungen explizit programmiert, wie das m.W. in der Bestandsführung der Fall ist, haben die Kunden viel Spaß mit dem Modifizieren.
  • Erweiterungen in Kundenprogrammen, wo man wegen der expliziten Verwendung von Zuweisungen, alle betroffenen Programme anpassen muss, sorgen auch für viel Freude.
  • etc.
Fazit:
es hängt immer von der Art der Anwendung ab, welche Sprachkonstrukte sinnvoll sind.
Etwas pauschal zu verdammen, weil man die gesamte Bandbreite der Anwendungen nicht kennt, halte ich für unangebracht.
Gruß
Ereglam


May the Force be with your code
|| .| |.|| | .... . ..|. ||| .|. |.|. . |... . .|| .. | .... |.|| ||| ..| .|. |.|. ||| |.. .

Beitrag von MarkusW (Specialist / 406 / 5 / 0 ) »
Vielen Dank Hendrik,

die Punkte die du angesprochen hast, werde ich mal überprüfen.
Die Abfrage über die KNA1 werd ich wohl eh komplett Streichen, war nur nen kleines Gimick, aber stört eher als das es was bringt.

Der Rest wird nu von mir mal geprüft.


Wegen corresponding... muss ich ereglam zustimmen, manchmal ist es unabwendbar es zu benutzen. Manchmal (wie in meinem Select) ist es auch die schreibfaulheit des Programmierers ;)

Gruß
Markus

Beitrag von JHM (Top Expert / 1201 / 1 / 197 ) »
ereglam hat geschrieben: es hängt immer von der Art der Anwendung ab, welche Sprachkonstrukte sinnvoll sind.
Etwas pauschal zu verdammen, weil man die gesamte Bandbreite der Anwendungen nicht kennt, halte ich für unangebracht.
Meine Sichtweise bezog sich auf ein reinen Z-Report, der vorgegebene Daten liest. Bei uns wird teilweise von Kollegen in solchen Fällen mit SELECT * INTO CORRESPONDING gearbeitet, wobei nicht alle Felder benötigt werden. Wenn solche Programme dann performence Probleme haben ist natürlich die Hardware schuld.

Die von dir genannten Punkte rechtfertigen natürlich den Einsatz von MOVE/INTO CORRESPONDING.
Zuletzt geändert von JHM am 14.05.2007 14:26, insgesamt 1-mal geändert.
Gruß Hendrik

Vergleichbare Themen

0
Antw.
1154
Views
performance probleme mit V_V2
von slim » 24.02.2006 14:00 • Verfasst in Sales and Distribution
0
Antw.
1759
Views
3
Antw.
2702
Views
Performance von INE vs. EEQ
von Birdy » 14.08.2013 11:35 • Verfasst in ABAP® für Anfänger
3
Antw.
2949
Views
Performance
von SAP_ENTWICKLER » 19.02.2018 07:06 • Verfasst in SAP HANA für Anfänger
2
Antw.
2165
Views
SQL und Performance
von Hagbard » 24.11.2005 08:51 • Verfasst in ABAP® für Anfänger

Aktuelle Forenbeiträge

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1748
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2296

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1748
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2296

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 302
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 892
MS-Word als Editor
letzen Monat von tekko 1 / 4400