Algorithmus gesucht!!!

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

Algorithmus gesucht!!!

Beitrag von cali (ForumUser / 51 / 0 / 0 ) »
Hallo!

Ich bin gerade verkrampft dabei einen möglichst effizienten Algorithmus zu entwerfen. Es geht schlicht darum zu einem Equipment alle untergeordneten Equipments zu ermitteln.

Es gibt einen Funktionsbaustein EQUIPMENT_SUCCESSORS, der liefert mir zu einem Equipment alle Nachfolger, allerdings nur auf der ersten Hierarchiestufe, also falls ein untergeordnetes Equipment wiederum einen Nachfolger hat wird dieser nicht zurückgegeben! Ich benötige als Endresualtat also eine Tabelle mit allen Equipments die unter dem Ausgangsequpment hängen.

Ich habe es mit einem while scheiife und mit einem Loop über die erste Rückgabetabelle versucht, aber bis jetzt hauts immer noch nicht hin!!! Bin mir nicht sicher ob ich eventuell mit Assigns arbeiten muss oder gar dynamisch interne tabellen erzeugen muss?!?!

Falls es hier irgendwelche Algorithmus-Cracks gibt und diese einen Tipp hätten wäre ich super dankbar!!

viele grüße cali

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


Beitrag von uh (Specialist / 158 / 0 / 1 ) »
Hi cali,

Rekursion!!!

FuBa (REKU) Basteln, der Als Input ein Equipment (I_equi) hat und zusätzlich eine Tabelle mit Equipmentnummern (T_equi) hat... FuBa sähe ca. so aus.

1. Append I_equi an T_equi
2. Aufruf EQUIPMENT_SUCCESSORS
3. Durch die Equi_Tab von 2. laufen und mit jedem Equipement den eigenen FuBa aufrufen (REKU). =>1.

Den FuBa mit deinem Equipemnt aufrufen und dann hast du das Ergebnis in T_equi.
Wenn du ganz sicher sein willst, kannst du:
0. Zuerst prüfen ob I_equi in T_equi => wenn ja, sofort return.

Beitrag von black_adept (Top Expert / 4133 / 130 / 956 ) »
Hallo cali,

wenn es grundsätzlich um einen Algorithmus geht hat ja uh schon eine Antwort für dich gehabt.

Wenn es hingegen lediglich darum geht eine (komplette) Equipmenthierearchie zusammenzuklauben kannst du ja auch folgendes Coding verwenden:

Code: Alles auswählen.

  call function 'EQUI_HIERARCHY_READ'
    exporting
      equipment  = equipment
      level_down = '99'
    tables
      hier_tab   = equis.
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

wenn's schnell fertig sein muß, SAP-Baustein nehmen. (s.o.)

Wenn's um die Ehre geht, macht man doch keinen rekursiven Funktionsbaustein. Dann gleich mit Abap-OO.

Gruß
babap

Beitrag von cali (ForumUser / 51 / 0 / 0 ) »
Halllo! besten Dank für eure Hilfe!!
Okay, der FuBa scheint genau das zu machen, was ich brauchte!! So kann man sich Arbieit sparen ;)
ich hab in der Zwischenzeit doch noch ne ganz vernünftige Lösung ohne Rekursion hinbekommen:

Ich habe eine Endergebnistabelle lt_equi_all in die alle Töchter Equis reinkommen und eine Temp Tabelle lt_equi_all_tmp die ich durchloope und jeweils einfach die neuen gefundenen Töchter-Equipments unten dranhänge....funktioniert....

Code: Alles auswählen.


DATA: lt_equi_all      LIKE TABLE OF v_equi.
DATA: ls_equi_all      LIKE v_equi.
DATA: lt_equi_all_tmp  LIKE TABLE OF v_equi.
DATA: ls_equi_all_tmp  LIKE v_equi.
DATA: lt_equi_return   LIKE TABLE OF v_equi.
DATA: ls_equi_return   LIKE v_equi.


* Alle unter dem Ausgangsequipment hängenden Equis in Tabelle sammeln
* --------------------------------------------------------------------
ls_equi_all_tmp-equnr = data_equi-equnr.
APPEND ls_equi_all_tmp TO lt_equi_all_tmp.

LOOP AT lt_equi_all_tmp INTO ls_equi_all_tmp.

  CALL FUNCTION 'EQUIPMENT_SUCCESSORS'
    EXPORTING
      equi_no               =  ls_equi_all_tmp-equnr
    TABLES
      equi_tab              = lt_equi_return
   EXCEPTIONS
     no_successors         = 1
     succ_read_error       = 2
     OTHERS                = 3.


* Rückgabe-Equis an Endergebnis- und TMP-Tabelle hängen
  LOOP AT lt_equi_return INTO ls_equi_return.
    APPEND ls_equi_return TO lt_equi_all_tmp.
    APPEND ls_equi_return TO lt_equi_all.
  ENDLOOP.

  CLEAR lt_equi_return.

ENDLOOP.
Ich muss das selebe noch für Technische Plätze mache, gibts daüfr auch schon einen fertigen FuBa um die komplette Hierarchie in ne interne Tabelle zu schreiben??

viele grüße cali

Beitrag von cali (ForumUser / 51 / 0 / 0 ) »
Hab schon einen FuBa nur für anhängende TP gefunden, PM_HIERARCHY_CALL_IFLO
brauche aber noch einen, der mir TP UND Equis anzeigt...

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

probier es mal mit PM_HIERARCHY_CALL oder den Ablegern dazu.

Gruß
babap
P.S. habe ich "wiedergefunden" mit Eingabe von '*HIERARCHY*" in der SE37 gefolgt von einem "freundlichen F4" :wink:

Beitrag von erp-bt (Specialist / 163 / 4 / 21 ) »
babap hat geschrieben:Hallo,

Wenn's um die Ehre geht, macht man doch keinen rekursiven Funktionsbaustein. Dann gleich mit Abap-OO.

Gruß
babap
Hallo,

das interessiert mich. Hast Du ein kleines Beispiel?
...entwickelnder Berater...beratender Entwickler

Beitrag von babap (Expert / 681 / 1 / 1 ) »
Hallo,

es geht um die "manuelle" Suche von hierarchisch untergeordneten Objekten.

Man macht eine Klasse, die ein einzelnes Objekt (EQUI/TP) repräsentiert.

Dann gibt man der Klasse eine Objektnummer und lässt eine Instanz davon "anlegen". Der Konstruktur liest sich dann das Objekt von der Datenbank.

Dann verpasst man der Klasse eine Methode, die alle Nachfolger herausfindet und sie als (eben genau die gleichen) Instanzen anlegt und deren Referenzen als Tabelle speichert oder zurückgibt.

Findet ein Objekt keine Nachfolger, so ist die Nachfolgertabelle eben leer ...

Wenn man es ganz schnell haben will, lässt man bereits im Konstruktor die Nachfolger raussuchen.

Wenn dann das Top-Element "zurückkommt" hat es bereits im Speicher einen Baum mit allen Nachfolgern aufgebaut.

Gruß
babap

Seite 1 von 1

Vergleichbare Themen

11
Antw.
3179
Views
Algorithmus
von Studi » 22.02.2017 10:06 • Verfasst in ABAP® für Anfänger
1
Antw.
1176
Views
Algorithmus
von Studi » 22.02.2017 10:07 • Verfasst in ABAP® für Anfänger
0
Antw.
1818
Views
RSA-Algorithmus im ABAP-Code
von stefan76 » 05.10.2006 17:31 • Verfasst in ABAP® Core
2
Antw.
1778
Views
Eigene Funktion (Luhn-Algorithmus) schreiben
von roman1983 » 21.08.2008 09:05 • Verfasst in ABAP® für Anfänger
0
Antw.
1453
Views
SAP IS-U Profi gesucht
von phil1982 » 07.08.2007 08:26 • Verfasst in ABAP® für Anfänger

Über diesen Beitrag


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

Aktuelle Forenbeiträge

FOR mit CORRESPONDING
Gestern von black_adept 9 / 1002
SALV: Titel zu lang
Gestern von ralf.wenzel 3 / 154
Web Feature Services (WFS) im SAP
vor 4 Tagen von msfox 1 / 583
WM: Transportauftrag quittieren - drucken
vor einer Woche von JHM 4 / 2317

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

FOR mit CORRESPONDING
Gestern von black_adept 9 / 1002
SALV: Titel zu lang
Gestern von ralf.wenzel 3 / 154
Web Feature Services (WFS) im SAP
vor 4 Tagen von msfox 1 / 583
WM: Transportauftrag quittieren - drucken
vor einer Woche von JHM 4 / 2317

Unbeantwortete Forenbeiträge

Web Feature Services (WFS) im SAP
vor 4 Tagen von msfox 1 / 583
Erweiterung in ME51N/ME52N:
vor 3 Wochen von ABAPlerv 1 / 2875
Erweiterung in ME51N/ME52N:
vor 3 Wochen von ABAPlerv 1 / 2728