You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#### Befüllen einer Datenbank mit AHB-Informationen
137
+
In den XML-Rohdaten sind die Informationen aus den AHBs theoretisch beliebig tief verschachtelt, weil jede Segmentgruppe ihrerseits wieder Segmentgruppen enthalten kann.
138
+
Diese Rekursion ist so auch in den SQL-Model-Klassen und der Datenbank abgebildet.
139
+
Dieses Paket liefert eine Hilfsfunktion, die die AHBs wieder "flach" zieht, sodass die Datenstruktur mit den flachen AHBs aus bspw. den PDF-Dateien vergleichbar ist, ohne jedoch die Strukturinformationen zu verlieren.
140
+
Dazu wird eine rekursive Common Table Expression (CTE) verwendet, um eine zusätzliche Hilfstabelle `ahb_hierarchy_materialized` zu befüllen.
141
+
142
+
```python
143
+
# pip install fundamend[sqlmodel]
144
+
from pathlib import Path
145
+
from fundamend.sqlmodels.ahbview import create_db_and_populate_with_ahb_view
146
+
from fundamend.sqlmodels.anwendungshandbuch import AhbHierarchyMaterialized
147
+
from sqlmodel import Session, create_engine, select
| Vorgang > Bestandteil des Rechenschritts > Bestandteil des Rechenschritts | segment | Bestandteil des Rechenschritts | Muss \[2006\] | SEQ | Bestandteil des Rechenschritts | Muss | null | null | null | null | null | null |
191
+
| Vorgang > Bestandteil des Rechenschritts > Bestandteil des Rechenschritts > Handlung, Code | dataelement | Bestandteil des Rechenschritts | Muss \[2006\] | SEQ | Bestandteil des Rechenschritts | Muss | null | null | D\_1229 | Handlung, Code | null | null |
192
+
| Vorgang > Bestandteil des Rechenschritts > Bestandteil des Rechenschritts > Handlung, Code > Bestandteil des Rechenschritts | code | Bestandteil des Rechenschritts | Muss \[2006\] | SEQ | Bestandteil des Rechenschritts | Muss | null | null | D\_1229 | Handlung, Code | null | Z37 |
193
+
| Vorgang > Bestandteil des Rechenschritts > Bestandteil des Rechenschritts > Information über eine Folge | dataelementgroup | Bestandteil des Rechenschritts | Muss \[2006\] | SEQ | Bestandteil des Rechenschritts | Muss | C\_C286 | Information über eine Folge | null | null | null | null |
194
+
| Vorgang > Bestandteil des Rechenschritts > Bestandteil des Rechenschritts > Information über eine Folge > Rechenschrittidentifikator | dataelement | Bestandteil des Rechenschritts | Muss \[2006\] | SEQ | Bestandteil des Rechenschritts | Muss | C\_C286 | Information über eine Folge | D\_1050 | Rechenschrittidentifikator | X \[913\] | null |
195
+
| Vorgang > Bestandteil des Rechenschritts > Referenz auf eine Zeitraum-ID | segment | Bestandteil des Rechenschritts | Muss \[2006\] | RFF | Referenz auf eine Zeitraum-ID | Muss | null | null | null | null | null | null |
196
+
| Vorgang > Bestandteil des Rechenschritts > Referenz auf eine Zeitraum-ID > Referenz | dataelementgroup | Bestandteil des Rechenschritts | Muss \[2006\] | RFF | Referenz auf eine Zeitraum-ID | Muss | C\_C506 | Referenz | null | null | null | null |
197
+
| Vorgang > Bestandteil des Rechenschritts > Referenz auf eine Zeitraum-ID > Referenz > Referenz, Qualifier | dataelement | Bestandteil des Rechenschritts | Muss \[2006\] | RFF | Referenz auf eine Zeitraum-ID | Muss | C\_C506 | Referenz | D\_1153 | Referenz, Qualifier | null | null |
198
+
| Vorgang > Bestandteil des Rechenschritts > Referenz auf eine Zeitraum-ID > Referenz > Referenz, Qualifier > Referenz auf Zeitraum-ID | code | Bestandteil des Rechenschritts | Muss \[2006\] | RFF | Referenz auf eine Zeitraum-ID | Muss | C\_C506 | Referenz | D\_1153 | Referenz, Qualifier | null | Z46 |
199
+
| Vorgang > Bestandteil des Rechenschritts > Referenz auf eine Zeitraum-ID > Referenz > Referenz auf Zeitraum-ID | dataelement | Bestandteil des Rechenschritts | Muss \[2006\] | RFF | Referenz auf eine Zeitraum-ID | Muss | C\_C506 | Referenz | D\_1154 | Referenz auf Zeitraum-ID | X \[914\] ∧ \[937\] \[59\] | null |
f"There are duplicate pruefidentifikators in the AHBs: {', '.join(duplicate_pruefis_for_same_gueltigkeitszeitraum)}. Dropping the source tables is not a good idea."
0 commit comments