Loop

Getting started ... Alles für einen gelungenen Start.
40 Beiträge • Seite 1 von 3 (current) Nächste
40 Beiträge Seite 1 von 3 (current) Nächste

Loop

Beitrag von Kai999 (ForumUser / 39 / 3 / 0 ) »
Hallo zusammen,
ich muss aus einer bestehenden Tabelle die Strukturen in eine weitere TabelleX zwischenspeichern. Dann über die TabelleX loopen mit Bedingung 'x = 1'.
Die Werte/Attribute in die neue Tabelle einlesen und die Werte/Attribute aus der vorherigen Tabelle vergleichen.
Hat jmd. ein Code Vorschlag? Danke.

Grß
Kai K.

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


Re: Loop

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Tut mir leid, aber Deine Anforderung ist nicht verständlich. Wenn TabelleX der Name der zweiten Tabelle ist, was soll dann "x = 1" bedeuten?

ich fürchte, Du musst Dir die Mühe machen, mit ein paar mehr Sätzen Deine Anforderung ausführlich und gut nachvollziehbar zu beschreiben, sonst wird das nix.

Re: Loop

Beitrag von Kai999 (ForumUser / 39 / 3 / 0 ) »
Sorry :)
Ich will aus der zweiten Tabelle - 'TabelleX', die Strukturen, die ich aus der ersten Tabelle gespeichert habe, nun nach einer Bedingung filtern. So, dass von den 30 Strukturen (die ich von der ersten in die zweiten tabelle gespeichert habe) ich dann die auswähle, die die Bedingung erfüllen. Ich hoffe das ist nun verständlicher. :)
Gruß
Kai

Re: Loop

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Ich glaube, da müssen wir uns langsam rantasten. Ich sag mal, was jetzt bei mir angekommen ist.

Du hast eine interne Tabelle T, die mit einer bestimmten Struktur typisiert ist. In dieser Struktur befindet sich eine numerische Spalte X.

Von dieser Tabelle möchtest Du nun alle Zeilen, bei denen x den Wert 1 hat, in eine zweite interne Tabelle TX, die mit derselben Struktur typisiert ist, übernehmen.

Das sähe dann so aus:

Code: Alles auswählen.

*&---------------------------------------------------------------------*
*& Report ZTEST4
*&---------------------------------------------------------------------*
REPORT ZTEST4.

TYPES: BEGIN OF TYPE_T,
         X TYPE I,
         VKORG LIKE VBAK-VKORG,
         KUNNR LIKE VBAK-KUNNR,
         VBELN LIKE VBAK-VBELN,
         POSIT TYPE I,
       END OF TYPE_T.

DATA: T TYPE STANDARD TABLE OF TYPE_T WITH HEADER LINE,
      TX TYPE STANDARD TABLE OF TYPE_T WITH HEADER LINE,
      LAST_VKORG LIKE VBAK-VKORG,
      LAST_KUNNR LIKE VBAK-KUNNR,
      CURRENT_SPLIT(2) TYPE N,
      CURRENT_CUMULATION TYPE I.

*** START-OF-SELECTION ***
START-OF-SELECTION.

* Tabelle T mit Beispielwerten füllen
APPEND VALUE #( X = 1 VKORG = '1000' KUNNR = '123456' VBELN = '00000001' POSIT = 60 ) TO T.
APPEND VALUE #( X = 1 VKORG = '2000' KUNNR = '123456' VBELN = '00000001' POSIT = 20 ) TO T.
APPEND VALUE #( X = 2 VKORG = '3000' KUNNR = '123456' VBELN = '00000001' POSIT = 50 ) TO T.
APPEND VALUE #( X = 2 VKORG = '4000' KUNNR = '123456' VBELN = '00000001' POSIT = 30 ) TO T.
APPEND VALUE #( X = 3 VKORG = '5000' KUNNR = '223456' VBELN = '00000001' POSIT = 10 ) TO T.
APPEND VALUE #( X = 3 VKORG = '6000' KUNNR = '423456' VBELN = '00000001' POSIT = 70 ) TO T.
APPEND VALUE #( X = 3 VKORG = '7000' KUNNR = '523456' VBELN = '00000001' POSIT = 20 ) TO T.
APPEND VALUE #( X = 4 VKORG = '8000' KUNNR = '723456' VBELN = '00000001' POSIT = 15 ) TO T.

LOOP AT T.
  IF T-X = 1.
    APPEND T TO TX.
  ENDIF.
ENDLOOP.

* Ergebnis zur Veranschaulichung ausgeben
LOOP AT TX.
  WRITE: / TX-X, TX-VKORG, TX-KUNNR, TX-VBELN, TX-POSIT.
ENDLOOP.
Jetzt musst Du mir sagen, an welchen Stellen ich Dich falsch verstanden habe, und dann kommen wir der Sache vielleicht näher.

Re: Loop

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Was mir auffällt: Die Kombination aus ABAP 7.40 mit WITH HEADER LINE ist schon schräg *lol*



Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Loop

Beitrag von Kai999 (ForumUser / 39 / 3 / 0 ) »
Da kommen wir der Sache schon sehr nah.
Die erste Tabelle enthält alle Daten, die ich mit MOVE-CORRESPONDIING als Struktur kopiert habe. Ich möchte die Daten als Strukturen, die ich kopiert habe, in die zweite TabelleX speichern und drüber mit Bedingungen loopen.

Re: Loop

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Warum machst du den LOOP mit Bedingung dann nicht gleich über die erste Tabelle?

Zeig uns doch mal dein bisheriges Coding, das würde helfen.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Loop

Beitrag von Kai999 (ForumUser / 39 / 3 / 0 ) »
Hast Recht, muss es direkt beim loopen machen.
Wollte über coll wrapper loopen. Die property-struktur lesen. Falls Bedingung erfüllt ist, dann möchte ich ein weiteres Mal überprüfen, ob die Attr. in der ersten Tabelle bereits enthalten ist. Wenn nicht, dann löcshen.

Re: Loop

Beitrag von sapyard (ForumUser / 31 / 5 / 2 ) »
It would be easy for others to help you if you could share the code snippet which you are trying. And then describe the issue.
Thanking you.

With Regards,
Raju.
----------------------
Raju Shrestha
www.sapyard.com
----------------------

Re: Loop

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Wo er recht hat, hat er recht. :wink:

Von Ralf Wenzel:
Was mir auffällt: Die Kombination aus ABAP 7.40 mit WITH HEADER LINE ist schon schräg *lol*
So alt ist der Zusatz "WITH HEADER LINE" gar nicht. Bei Release 3.1i ging das syntaktisch noch nicht. Ich glaube, der ist erst mit den Tabellentypen eingeführt worden.

Du kannst mir auf Knien danken, dass ich das nicht oldschool kurz mit OCCURS 0 formuliert habe. :P Funktionieren würde das unter 7.50 auch noch. (Und da haste die Kopfzeile dann automatisch drin.)

Re: Loop

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Ich hab unter 3.1i gelernt und meine, damals gelernt zu haben: Nehmt das nicht, zwei Variablen mit demselben Namen tut man nicht.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Loop

Beitrag von DeathAndPain (Top Expert / 1795 / 213 / 396 ) »
Das wäre mir neu. Kopfzeilen waren damals üblich und nicht deprecated; das war ja, wie gesagt, sogar noch vor Einführung der Syntax "WITH HEADER LINE". Ich kann mich auch nicht erinnern, damals schon die von Dir gehasste ungarische Notation (der ich auch nichts abgewinnen kann) in Codes anderer Leute gesehen zu haben. Damals wurde Programmierern noch zugetraut, anhand des Kontextes mit einem Blick zu erkennen, ob sie eine Kopfzeile oder einen Tabellenrumpf ansprechen. Heute geht man offenbar davon aus, dass sie das nicht mehr können, obgleich man zugleich im OO-Kontext und auch bei der Definition von Variablen erheblich höheres geistiges Abstraktionsvermögen von ihnen verlangt, als Kopfzeilen das je tun könnten (ich sag nur "TYPE REF TO DATA" oder "CASTING").

Das Schlüsselwort OCCURS hat mir allerdings optisch noch nie gefallen. Anders als die übrigen Tokens suggeriert es nicht englischsprachig-intuitiv das, was es tut. Deshalb bin ich sofort auf die eigentlich längere, aber bedeutend anschaulichere Notation INITIAL SIZE ... WITH HEADER LINE umgestiegen, als sie verfügbar wurde. Wobei man an OCCURS leider bis heute nicht vorbeikommt, wenn man rasch mal eine lokale interne Tabelle verwenden möchte, ohne dafür extra einen Typ zu definieren, den man anschließend genau einmal verwendet. In einer kleinen zwanzigzeiligen Formroutine finde ich das Overkill, der nicht nur unnötige Tipparbeit verursacht, sondern die Lesbarkeit auch noch erschwert. Tatsächlich sehe ich das sogar bei kleineren, überschaubaren Reports so.

Re: Loop

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Du hast vollkommen recht, so eine zusätzliche Programmzeile ist natürlich nicht vertretbar.



Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Loop

Beitrag von Daniel (Specialist / 314 / 68 / 44 ) »
Wohltuend zu lesen daß es noch Programmierer gibt die nicht
irgendwelchen religiösen Ideologien nacheifern sondern ein gut
lesbares und kompaktes Coding schreiben.

Folgende Benutzer bedankten sich beim Autor Daniel für den Beitrag (Insgesamt 2):
DeathAndPainUnit605


Re: Loop

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
Daniel hat geschrieben:Wohltuend zu lesen daß es noch Programmierer gibt die nicht
irgendwelchen religiösen Ideologien nacheifern sondern ein gut
lesbares und kompaktes Coding schreiben.
Lesbarkeit ist immer subjektiv. Ich finde eindeutige Namen sehr wichtig (sonst geht z. B. ein "clear" schnell ins Leere) -- Globale Felder, die irgendwo in einem 2.000-Zeilen-Monster geändert werden (deren Funktion man ohne Debugger nur ungefähr erahnen kann), wie es *hust* "andere" hier bevorzugen, finde ich sehr schwer zu warten. Ich bevorzuge kleine, autonome Module, die in sich testbar sind und eine gescheite Schnittstelle haben. Da bin ich froh, wenn gerade die jüngeren Entwickler, die zunehmend nachrutschen, Softwareentwicklung betreiben statt zu programmieren.

Sie haben auch gar keine Wahl, wenn man sieht, was uns Entwicklern bevorsteht (S/4HANA). Denn wenn man UI von der Logik endlich trennen muss, kommt man mit "ich drück mal F8 und debugge mich durch" nicht mehr weit. Unsere Welt wird deutlich abstrakter und spannender.

Mit religiösen Ideologien hat das weniger zu tun als mit Abstraktionsmöglichkeiten, die mit alten Techniken gar nicht umsetzbar sind. Beispiele habe ich hier oft genug und ausführlich beschrieben. Früher hat man Dinge, die man nicht verstand oder sich nicht erklären konnte, einer Religion zugeordnet. Heute sind die Menschen da weiter. Die meisten.


Ralf

Nachtrag: Ein Trabbi war auch einfach und kompakt, das machte dieses "Auto" noch lange nicht gut.
Zuletzt geändert von ralf.wenzel am 09.08.2017 16:54, insgesamt 1-mal geändert.

Folgende Benutzer bedankten sich beim Autor ralf.wenzel für den Beitrag:
sapyard

Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Vergleichbare Themen

1
Antw.
721
Views
4
Antw.
3450
Views
LOOP in einem LOOP
von Bjuti » 10.09.2013 15:18 • Verfasst in ABAP® für Anfänger
52
Antw.
9285
Views
LOOP AT
von cuncon » 01.02.2018 09:28 • Verfasst in ABAP® für Anfänger
34
Antw.
6297
Views
ein loop
von user2008 » 19.07.2017 10:50 • Verfasst in ABAP® für Anfänger
7
Antw.
2262
Views
Loop-Problem
von TobiB » 17.12.2007 13:15 • Verfasst in ABAP® Core

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.

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 4 Tagen von Lucyalison 1 / 71
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 111
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 141