Hallo Zusammen,

vielen Dank für die Infos als CTE könnte man es wie folgt lösen:
Code:
DECLARE CSR01 CURSOR FOR 
  With RPL (level, TSTNRK, TSSTNK, TSMENG) As (              
     (Select 1, ROOT.TSTNRK, ROOT.TSSTNK, ROOT.TSMENG        
      From HTSLSP ROOT where                                 
      TSTNRK = :XX_KEY )                                     
  Union All                                                  
   (Select PARENT.level+1,                                   
    CHILD.TSTNRK, CHILD.TSSTNK, CHILD.TSMENG * PARENT.TSMENG 
        From RPL PARENT, HTSLSP CHILD                        
         Where PARENT.TSSTNK = CHILD.TSTNRK)                 
  ) Select TSSTNK, Sum(TSMENG) As TSMENG From RPL            
  Group By TSSTNK
.. da ich aber Transparenz bevorzuge und hier die Gefahr von Endlosrekursion besteht, habe ich mich für folgenden Weg entschied:

- Auflösung über Rekursive RPG_Funktion
- Übergabe einer DS-Array
- jede Ebene wird über ein SQL aufgelöst welches die Daten in ein temp. Array "entläd" da der Cursor quasi Global geöffnet ist.