Datensätze innerhalb von Hierarchien umschlüsseln

Die Objektorientierung mit ABAP®: Vererbung, Dynamische Programmierung, GUI Controls (u.a. ALV im OO).
9 Beiträge Seite 1 von 1
9 Beiträge Seite 1 von 1

Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von toni89 (ForumUser / 17 / 0 / 0 ) » 29. Okt 2019 09:59

Hallo liebe Experten,

ich habe (mal wieder) eine Nuss zu knacken und weiß nicht so recht, ob das was ich mir überlege, Sinn macht bzw. umsetzbar ist.

Ich möchte Ausprägungen in einem Hierarchie-Merkmale ( wie z.B. OrgEinheit ) auszählen und wenn eine gewisse Anzahl unterschritten wird, sollen diese auf einen Sibling-Node umgeschrieben werden.

Kleines Beispiel:

- DSO mit 10 Datensätzen
- 8 Datensätze haben als OrgUnit 0000001
- 2 Datensätze haben als OrgUnit 0000002
- Programm erkennt, dass OrgUnit 0000002 nur 2 mal besetzt ist und schlüsselt die zugehörigen Datensätze auf OrgUnit 0000001 um

ist so etwas machbar?

vielen dank schonmal für eure Ideen und Tipps

toni


Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von DeathAndPain (Top Expert / 1157 / 132 / 251 ) » 29. Okt 2019 12:22

Sicherlich ist das machbar. Aber Du hast zu wenig über die Begleitumstände geschrieben. Von was für Orgeinheiten reden wir hier? Welche im HCM, also Tabelle HRP1000? Und stehen die umzuschlüsselnden Sätze auf der Datenbank, oder bezieht sich Deine Frage rein auf interne Tabellen?

Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von toni89 (ForumUser / 17 / 0 / 0 ) » 29. Okt 2019 13:20

hey deathandpain,

vielen dank für deine Antwort.

Also es geht um die OrgEinheiten aus dem HCM-Umfeld. Aber das Auslesen und ggf. umschlüsseln findet im BW 7.5 statt.

Momentan habe ich Datensätze aus einem Flatfile und auch die Hierarchie kommt aus einer Flatfile-Datasource.

Die umzuschlüsselnden Sätze stehen in einem DSO, von daher auf der Datenbank oder?

Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von DeathAndPain (Top Expert / 1157 / 132 / 251 ) » 30. Okt 2019 12:47

Wahrscheinlich. Aber ich habe mit der Art und Weise, wie Daten in einem DSO abgelegt sind und vor allem, wie man darauf zugreifen kann, leider keine Erfahrung, da ich keine Ahnung von SAP BW habe. Du sitzt ja mit Deinem Programm im BW, also nicht im HCM-System, aus dem die Daten stammen, richtig?

Aber welchen Sinn macht es dann umzuschlüsseln? Das HCM-System ist ja für die Daten das führende System; BW dient üblicherweise nur zur Datenauswertung. Wenn Du in BW Daten woandershin umschlüsselst, dann deckt sich Deine Auswertung nicht mehr mit der (durch das HCM-System vorgegebenen) Realität. Korrekturen der Daten (bzw. der Zuordnungen in der HRP1001) können sinnvollerweise nur im führenden System erfolgen.

Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von toni89 (ForumUser / 17 / 0 / 0 ) » 30. Okt 2019 14:01

Ah okay. Naja das umschlüsseln soll im Sinne Aggregatbildung erfolgen,da ich mich momentan mit Methoden zur Anonymisierung beschäftige. Diese Klassifizierung wäre sozusagen ein Teil von Vielen.

Es soll also sichergestellt werden,dass unter einem bestimmten Hierarchieblatt soundsoviel Personen zu finden sind. Falls dem nicht so ist, werden sie mit einem sibling zusammengefasst.

Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von DeathAndPain (Top Expert / 1157 / 132 / 251 ) » 30. Okt 2019 18:26

Mit "Sibling" meinst Du eine gleichrangige Orgeinheit, die dieselbe übergeordnete Orgeinheit hat wie die lächerlich kleine? Aber welche willst Du da nehmen? Die bevölkerungsreichste?

Im HCM würde ich Dir helfen können. Da holst Du Dir die Daten aus der HRP1001 und fasst sie dann nach Deinen Vorstellungen zusammen. Wenn Du freilich im BW-System sitzt, dann weiß ich nicht, in welcher Form Dir die Daten serviert werden.

Letztlich wirst Du vermutlich einen ganzen Baum runter wollen und dort alles bearbeiten und ggf. zusammenfassen wollen. Das ist einer der ganz wenigen Fälle, bei denen sich bei mir rekursive Programmierung bewährt hat. Du musst also eine Unterroutine schreiben, die sich für jeden Unterbaum selber aufruft und die Ergebnisse dann hochreicht. So bekommst Du eine Tabelle aller Orgeinheiten, die unter der von Dir gewählten Wurzel liegen, zusammen. Darin kannst Du auch Spalten für die Ebene oder die nächsthöhere Orgeinheit der jeweils betrachteten Orgeinheit vorsehen. Über die könntest Du dann LOOPen und bei jeder Orgeinheit darin schauen, welche anderen Orgeinheiten dieselbe nächsthöhere Orgeinheit haben. So schaust Du dann, welche Tabelleneinträge Du verschmelzen musst.

Die Verschmelzung musst Du dann wahrscheinlich von unten nach oben vornehmen, denn es kann ja sein, dass die Siblings auch alle lächerlich klein sind und auch wenn Du sie fusionierst, immer noch eine lächerlich kleine Orgeinheit übrigbleibt. Nach Deiner Logik müsste die dann vermutlich mit einer anderen Orgeinheit der nächsthöheren Stufe verschmolzen werden.

Ist eine reizvolle Aufgabe! Erst rekursiv inder HRP1001 den Baum runter in eine interne Tabelle, dann die interne Tabelle über die Spalte mit der Stufe (angefagen von der tiefsten Stufe, die in Deinem Baum vorkommt) wieder hoch und Zeilen verschmelzen. So würde ich da rangehen.

Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von toni89 (ForumUser / 17 / 0 / 0 ) » 5. Nov 2019 09:27

hey deathandpain,

danke erstmal für deine ausführliche antwort und sorry, dass meine replies manchmal etwas dauern. bin nur werkstudent und nur ein paar tage die woche vor ort.
so eine rekursive logik, wie du sie beschreibst, hatte ich auch im sinn. genau, mit sibling meinte ich die gleichrangige orgeinheit im selben level. und wenn der wert dann immer noch nicht ausreicht eine weitere verschmelzung zur nächsten orgeinheit im selben level usw. und im zweifelsfall müssen die zeilen dann zum nächsthöheren knoten gepusht werden. Die auszählung der einzelnen stufen könnte ja dann über sql geschehen, denke ich.
dann bleibt nun nur noch die handarbeit *seufz* und ich werde mich nun mal ransetzen, ein bisschen pseudocode zu entwerfen und das problem anzugehen. ich halte auf jeden fall auf dem laufenden und nerve vielleicht das ein oder andere mal auch noch mit anfänger-fragen :)

liebe grüße

Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von Legxis (Specialist / 146 / 66 / 24 ) » 6. Nov 2019 16:52

Schau dir mal die Funktionsgruppe RSAB an, mit den BAPIs kannst du bestimmt die Daten von der DSO lesen und ändern.
Also erst deine CSV in interne Tabelle einlesen, dann manuell verarbeiten und dann mit BAPI auf DSO speichern. Oder erst von der DSO in interne Tabelle lesen, dann mit der CSV vergleichen und abändern und auf der DSO updaten.

DSO Beschreibung: https://activate-hr.de/hcm-berechtigung ... -objekten/

Normalerweise fügt man Daten manuell ohne extra Prüfungen ein: https://erproof.com/bi/sap-bw-training/ ... ng-to-dso/

Ich habe auch noch nie mit DSO gearbeitet, kann also auch nicht mehr tun.

Wieso traust du dich nicht, bei deiner Arbeit nach mehr Hilfe zu fragen? Das kann doch nicht sein, dass dir eine Aufgabe gestellt wird ohne dass du eine Ahnung von irgendwas hast. Die rekursive Logik ist hier doch das kleinste Problem.
( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Re: Datensätze innerhalb von Hierarchien umschlüsseln

Beitrag von toni89 (ForumUser / 17 / 0 / 0 ) » 8. Nov 2019 12:19

ich tue mich manchmal echt etwas schwer, nach hilfe auf arbeit zu fragen, das ist wahr.

hab manchmal das gefühl, dass Sachen vorausgesetzt werden, was wahrscheinlich gar nicht der fall ist. Da muss ich wohl noch etwas an mir arbeiten und über meinen Schatten springen.

Seite 1 von 1

Aktuelle Forenbeiträge

Testdaten für verschiedene Module
vor 3 Stunden von deejey 2 / 14
Inner Join
vor 9 Stunden von Tron 9 / 272
Reisemanagement
vor 15 Stunden von jocoder 2 / 47
Objekte zu Transportauftrag aufnehmen gelöst
vor 18 Stunden von ichse18577 10 / 113

Unbeantwortete Forenbeiträge

Serviceauftrag Druck und Druckvorschau
vor 20 Stunden von christof 1 / 44
RFC_READ_TABLE mit RANGES selection
vor 20 Stunden von Tron 1 / 50
HR Formulareditor - Bedingten Seitenwechsel
vor 3 Wochen von Kerstin 1 / 322
Funktionsbaustein MASTERIDOC_CREATE_COND_A
vor 3 Wochen von SAP_ENTWICKLER 1 / 345