diff --git a/docs/ap/okonomi/gold/_category_.json b/docs/ap/okonomi/gold/_category_.json new file mode 100644 index 000000000..cf6ba4c10 --- /dev/null +++ b/docs/ap/okonomi/gold/_category_.json @@ -0,0 +1,4 @@ +{ + "label": "Gold", + "position": 1 +} diff --git a/docs/ap/okonomi/gold/dim_anlegg.md b/docs/ap/okonomi/gold/dim_anlegg.md new file mode 100644 index 000000000..077a89f9d --- /dev/null +++ b/docs/ap/okonomi/gold/dim_anlegg.md @@ -0,0 +1,55 @@ +# dim_anlegg + +## Formål + +Laster anleggsdimensjonen (`dim_anlegg`) i gold-laget fra kildetabellen `silver_ubw.aatasset`. Tabellen inneholder informasjon om anleggsmidler per institusjon. For BOT-institusjoner berikes dataene med relasjonsverdier (serienummer, servicetag, plassering, utstyrsgruppe, eiersted). + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| ---------------------------- | ----------------- | ------------------------------------------------------------------------ | ------------------------------------ | +| **silver_ubw.aatasset** | Anleggsmidler | Ingen | Hovedkilde | +| **silver_ubw.aatassetgroup** | Anleggsgrupper | Ingen | Lookup for `anlegg_gruppe_navn` | +| **silver_ubw.aatrelvalue** | Relasjonsverdier | `attributes=["F0"]`, `related_attributes` varierer | Kilde for BOT-spesifikke attributter | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | `attributt_id='W22'` (plassering) / `attributt_id='W23'` (utstyrsgruppe) | Lookup for beskrivelsestekst | + +## Forretningsnøkler + +`attributt_id` + `anlegg_id` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per forretningsnøkkel (`attributt_id`, `anlegg_id`) basert på `sist_oppdatert` via `remove_duplicates_on_sort_key`. + +### 2. Tabellkoblinger + +- **aatassetgroup**: Left join på `anlegg_gruppe_kode` for å hente `anlegg_gruppe_navn`. +- **BOT-institusjoner** (institusjon starter med `bot`): Fem separate left joins med relasjonsverdier hentet via `get_relation_data`: + +| Join | Nøkkel | Kilde | +| ------------- | ------------------------------------- | ------------------------------- | +| serienummer | `anlegg_id = serienummer_anlegg_id` | aatrelvalue (W20) | +| servicetag | `anlegg_id = servicetag_anlegg_id` | aatrelvalue (W21) | +| plassering | `anlegg_id = plassering_anlegg_id` | aatrelvalue (W22) + agldimvalue | +| utstyrsgruppe | `anlegg_id = utstyrsgruppe_anlegg_id` | aatrelvalue (W23) + agldimvalue | +| eiersted | `anlegg_id = eiersted_anlegg_id` | aatrelvalue (C1) | + +- **Ikke-BOT-institusjoner**: Kolonnene `serienummer`, `servicetag`, `anlegg_plassering`, `anlegg_utstyrsgruppe` og `eiersted` settes til `null`. + +### 3. Beregnede kolonner + +| Kolonne | Logikk | +| ---------------------- | ----------------------------------------------------------------------------------------------------- | +| `anlegg_plassering` | `concat(plassering_relasjon_verdi, " ", beskrivelse)` fra agldimvalue (W22, siste gyldige periode) | +| `anlegg_utstyrsgruppe` | `concat(utstyrsgruppe_relasjon_verdi, " ", beskrivelse)` fra agldimvalue (W23, siste gyldige periode) | + +### 4. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_anlegg` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True` (sletter rader som ikke lenger finnes i kilden). diff --git a/docs/ap/okonomi/gold/dim_arbeidspakke_bygg.md b/docs/ap/okonomi/gold/dim_arbeidspakke_bygg.md new file mode 100644 index 000000000..0c22150fa --- /dev/null +++ b/docs/ap/okonomi/gold/dim_arbeidspakke_bygg.md @@ -0,0 +1,50 @@ +# dim_arbeidspakke_bygg + +## Formål + +Laster dimensjonen for arbeidspakker/bygg (`dim_arbeidspakke_bygg`) i gold-laget fra `silver_ubw.agldimvalue` filtrert på aktivitetskode `B1`. For BOT-institusjoner berikes dataene med eierskap og byggruppe via relasjonsverdier. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| -------------------------- | ----------------- | -------------------------------------------------- | ------------------------------------ | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | `attributt_id = 'B1'` | Hovedkilde | +| **silver_ubw.aatrelvalue** | Relasjonsverdier | `attributes=["B1"]`, `related_attributes` varierer | Kilde for BOT-spesifikke attributter | + +## Forretningsnøkler + +`attributt_id` + `arbeidspakke_bygg_nummer` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per forretningsnøkkel basert på `periode_til` (synkende) via `remove_duplicates_on_sort_key`. + +### 2. Tabellkoblinger + +- **BOT-institusjoner**: To separate left joins med relasjonsverdier via `get_relation_data`: + +| Join | Nøkkel | Kilde | +| --------- | -------------------------- | ---------------- | +| eierskap | `arbeidspakke_bygg_nummer` | aatrelvalue (X2) | +| byggruppe | `arbeidspakke_bygg_nummer` | aatrelvalue (X3) | + +- **Ikke-BOT-institusjoner**: Kolonnene `eierskap_kode`, `eierskap_navn`, `byggruppe_kode`, `byggruppe_navn` settes til `null`. + +### 3. Beregnede kolonner + +| Kolonne | Logikk | +| -------------------------- | --------------------------------------------------------------- | +| `arbeidspakke_bygg_nummer` | Omdøpt fra `dimensjon_verdi` | +| `arbeidspakke_bygg_navn` | Omdøpt fra `beskrivelse` | +| `arbeidspakke_bygg` | `concat(arbeidspakke_bygg_nummer, " ", arbeidspakke_bygg_navn)` | + +### 4. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_arbeidspakke_bygg` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_bilagstype.md b/docs/ap/okonomi/gold/dim_bilagstype.md new file mode 100644 index 000000000..95d181842 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_bilagstype.md @@ -0,0 +1,30 @@ +# dim_bilagstype + +## Formål + +Laster dimensjonen for bilagstyper (`dim_bilagstype`) i gold-laget fra `silver_ubw.acrvouchtype`. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| --------------------------- | ----------- | ------ | ---------- | +| **silver_ubw.acrvouchtype** | Bilagstyper | Ingen | Hovedkilde | + +## Forretningsnøkler + +`bilagstype_kode` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `bilagstype_kode` basert på `sist_oppdatert` via `remove_duplicates_on_sort_key`. + +### 2. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_bilagstype` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_budsjettprofil.md b/docs/ap/okonomi/gold/dim_budsjettprofil.md new file mode 100644 index 000000000..b8740293c --- /dev/null +++ b/docs/ap/okonomi/gold/dim_budsjettprofil.md @@ -0,0 +1,26 @@ +# dim_budsjettprofil + +## Formål + +Laster dimensjonen for budsjettprofiler (`dim_budsjettprofil`) i gold-laget fra `silver_ubw.aplprofile`. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| ------------------------- | ---------------- | ------ | ---------- | +| **silver_ubw.aplprofile** | Budsjettprofiler | Ingen | Hovedkilde | + +## Forretningsnøkler + +`budsjettprofil_kode` + +## Transformasjonslogikk + +### 1. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_budsjettprofil` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_budsjettversjon.md b/docs/ap/okonomi/gold/dim_budsjettversjon.md new file mode 100644 index 000000000..47c3496c8 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_budsjettversjon.md @@ -0,0 +1,45 @@ +# dim_budsjettversjon + +## Formål + +Laster dimensjonen for budsjettversjoner (`dim_budsjettversjon`) i gold-laget. Kildetabell varierer basert på institusjon: HVL, UiA og USN bruker `agldimvalue`, øvrige institusjoner bruker `aplversion`. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| -------------------------- | ----------------- | ---------------------- | -------------------------------- | +| **silver_ubw.aplversion** | Budsjettversjoner | Ingen | Hovedkilde (ikke-HVL/UiA/USN) | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | `attributt_id = 'K10'` | Alternativ kilde (HVL, UiA, USN) | + +## Forretningsnøkler + +`versjon_kode` + +## Transformasjonslogikk + +### 1. Institusjonsspesifikk kildevalg + +| Institusjon | Kilde | Dedupliseringsnøkkel | +| ------------- | ---------------------------------- | --------------------------- | +| HVL, UiA, USN | `agldimvalue` (attributt_id='K10') | `periode_til` (synkende) | +| Øvrige | `aplversion` | `sist_oppdatert` (synkende) | + +### 2. Beregnede kolonner (kun HVL, UiA, USN) + +Følgende kolonner finnes ikke i `agldimvalue` og settes til plassholderverdien "Ukjent": + +| Kolonne | Verdi | +| ------------------ | -------- | +| `valuta_kode` | "Ukjent" | +| `tidsramme` | "Ukjent" | +| `transaksjonstype` | "Ukjent" | +| `status` | "Ukjent" | + +### 3. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_budsjettversjon` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_delprosjekt.md b/docs/ap/okonomi/gold/dim_delprosjekt.md new file mode 100644 index 000000000..3ca017f2d --- /dev/null +++ b/docs/ap/okonomi/gold/dim_delprosjekt.md @@ -0,0 +1,72 @@ +# dim_delprosjekt + +## Formål + +Laster dimensjonen for delprosjekter (`dim_delprosjekt`) i gold-laget fra `silver_ubw.atsworkorder`. Tabellen berikes med kontraktsdata, finansieringsdata, rolledata og institusjonsspesifikke dimensjoner via en rekke lookups og relasjonsverdier. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| ----------------------------- | ------------------- | -------------------------------------------------- | ------------------------------------------------------ | +| **silver_ubw.atsworkorder** | Delprosjekter | Ingen | Hovedkilde | +| **silver_ubw.ahsresources** | Ressurser | Ingen | Lookup for delprosjektansvarlig | +| **silver_ubw.atsproject** | Prosjekter | Ingen | Lookup for `prosjekt_navn` | +| **silver_ubw.afxaofin** | Kontraktsbeløp | Ingen | Lookup for finansieringsbeløp | +| **silver_ubw.afxaoegenfin** | Egenfinansiering | Ingen | Lookup for `egenfinansiering_prosent` | +| **silver_ubw.afxaoindirekte** | Indirekte kostnader | Ingen | Lookup for `dekning_ik_prosent` | +| **silver_ubw.afxaobesk** | Beskrivelse | Ingen | Lookup for `saksnr`, `annen_ekstern_ref`, `sammendrag` | +| **silver_ubw.afxprokontrakt** | Kontrakt | Ingen | Lookup for kontraktdetaljer | +| **silver_ubw.afxpropreaward** | Pre-award | Ingen | Lookup for `kostnadskalkyle` | +| **silver_ubw.aatrelvalue** | Relasjonsverdier | `attributes=["BF"]`, `related_attributes` varierer | Kilde for institusjonsspesifikke dimensjoner | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | Varierer per relasjon | Lookup for dimensjonsbeskrivelser | + +## Forretningsnøkler + +`delprosjekt_nummer` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `delprosjekt_nummer` basert på `dato_til` via `remove_duplicates_on_sort_key`. + +### 2. Tabellkoblinger + +| Lookup | Nøkkel | Henter | +| -------------- | -------------------- | --------------------------------------------------------------------------------------------------------- | +| ahsresources | `ressurs_id` | `delprosjektansvarlig_ressursnummer`, `delprosjektansvarlig_navn` | +| atsproject | `prosjekt_nummer` | `prosjekt_navn` | +| afxaofin | `delprosjekt_nummer` | `kontraktsbeloep_valutabeloep`, `kontraktsbeloep_valuta`, `kontraktsbeloep_valutakurs`, `kontraktsbeloep` | +| afxaoegenfin | `delprosjekt_nummer` | `egenfinansiering_prosent` | +| afxaoindirekte | `delprosjekt_nummer` | `dekning_ik_prosent` | +| afxaobesk | `delprosjekt_nummer` | `saksnr`, `annen_ekstern_ref`, `sammendrag` | +| afxprokontrakt | `prosjekt_nummer` | Kontraktdetaljer | +| afxpropreaward | `delprosjekt_nummer` | `kostnadskalkyle` | + +### 3. Institusjonsspesifikke dimensjoner (via `get_relation_data`) + +| Dimensjon | Attributter | Henter | +| ------------------------- | ----------- | ------------------------------------------------------------------ | +| koststed | BF + C1 | `koststed_kode`, `koststed_navn`, `koststed` | +| kundenummer | BF + A4 | `kundenummer`, `kunde_navn` | +| aktivitet | BF + V25 | `aktivitet_kode`, `aktivitet_navn` | +| aktivitetstype | BF + V22 | `aktivitetstype_kode`, `aktivitetstype_navn` | +| avsetning | BF + V24 | `avsetninger_overfoeringer_kode`, `avsetninger_overfoeringer_navn` | +| finansieringskilde | BF + V21 | `finansieringskilde_kode`, `finansieringskilde_navn` | +| finanskilde spesifisering | BF + V23 | `finanskilde_spesifisering_kode`, `finanskilde_spesifisering_navn` | + +### 4. Beregnede kolonner + +| Kolonne | Logikk | +| ----------------------- | --------------------------------------------------- | +| `delprosjekt` | `concat(delprosjekt_nummer, " ", delprosjekt_navn)` | +| `dato_fra` / `dato_til` | Datoer før 1900-01-01 erstattes med 1900-01-01 | + +### 5. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_delprosjekt` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_hovedfinansiering.md b/docs/ap/okonomi/gold/dim_hovedfinansiering.md new file mode 100644 index 000000000..dd32077a1 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_hovedfinansiering.md @@ -0,0 +1,26 @@ +# dim_hovedfinansiering + +## Formål + +Laster dimensjonen for hovedfinansiering (`dim_hovedfinansiering`) i gold-laget fra en manuelt opplastet referansetabell. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| ----------------------------------------------- | --------------------------------------------- | ------ | ---------- | +| **manual_files.manual_files.hovedfinansiering** | Manuelt vedlikeholdt finansieringskodekatalog | Ingen | Hovedkilde | + +## Forretningsnøkler + +`hovedfinansiering_kode` + +## Transformasjonslogikk + +### 1. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_hovedfinansiering` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_konto.md b/docs/ap/okonomi/gold/dim_konto.md new file mode 100644 index 000000000..6ad20f153 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_konto.md @@ -0,0 +1,75 @@ +# dim_konto + +## Formål + +Laster kontodimensjonen (`dim_konto`) i gold-laget fra `silver_ubw.aglaccounts`. Tabellen berikes med hierarkiske grupperingsnivåer (klasse, gruppe, undergruppe, kategorisering) via relasjonsverdier. Logikken er sterkt institusjonsspesifikk for SIKT, UiA, BOT og UiO. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| -------------------------- | ----------------- | -------------------------------------------------- | ---------------------------- | +| **silver_ubw.aglaccounts** | Kontoplan | Ingen | Hovedkilde | +| **silver_ubw.aatrelvalue** | Relasjonsverdier | `attributes=["A0"]`, `related_attributes` varierer | Kilde for hierarkiske nivåer | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | Varierer per relasjon | Lookup for beskrivelsestekst | + +## Forretningsnøkler + +`konto_kode` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `konto_kode` basert på `periode_til` via `remove_duplicates_on_sort_key`. + +### 2. Institusjonsspesifikk kontoplanstruktur + +**SIKT:** Bruker `create_standard_kontoplan_columns()` for standardisert kontoplanstruktur. + +**Øvrige institusjoner:** Hierarkiske koder utledes ved substring av `konto_kode`: +| Kolonne | Logikk | +|---------|--------| +| `klasse_kode` | `substring(konto_kode, 1, 1)` | +| `gruppe_kode` | `substring(konto_kode, 1, 2)` | +| `undergruppe_kode` | `substring(konto_kode, 1, 3)` | + +### 3. Relasjonslookups (alle institusjoner unntatt SIKT) + +| Dimensjon | Attributter | Henter | +| -------------- | ------------------- | -------------------------------------------------------------------------------- | +| klasse | A0 + klasse | `klasse_beskrivelse` → `klasse_navn` | +| gruppe | A0 + gruppe | `gruppe_beskrivelse` → `gruppe_navn` | +| undergruppe | A0 + undergruppe | `undergruppe_beskrivelse` → `undergruppe_navn` | +| kategorisering | A0 + kategorisering | Range join på `konto_kode` mellom `attributt_verdi_fra` og `attributt_verdi_til` | + +### 4. Relasjonslookups (institusjonsspesifikke) + +| Institusjon | Dimensjon | Attributter | Henter | +| ----------- | ------------------- | ------------------------------ | ------------------------------------------------------- | +| UiA | regnskapsgruppe3 | 25 + 26 | Range join – `rapportklasse_kode`, `rapportklasse_navn` | +| BOT | rappgrp | A0 + rapport gruppe | `rappgrp_beskrivelse`, `rappgrp_relasjon_verdi` | +| BOT | rappnfr | rapport nfr | `rappnfr_beskrivelse` | +| UiO | kontorelasjon1-5 | A0 + Q41 → Q45 (kjedede joins) | `kontorelasjon1`–`kontorelasjon5` | +| UiO | egenfinansiering | A0 + Q30 | `egenfinansiering` | +| UiO | indirekte kostnader | A0 + Q31 | `indirekte_kostnader` | + +### 5. Beregnede kolonner + +| Kolonne | Logikk | +| ---------------- | ------------------------------------------------------- | +| `konto` | `concat(konto_kode, " ", konto_navn)` | +| `klasse` | `concat(klasse_kode, " ", klasse_navn)` | +| `gruppe` | `concat(gruppe_kode, " ", gruppe_navn)` | +| `undergruppe` | `concat(undergruppe_kode, " ", undergruppe_navn)` | +| `kategorisering` | `concat(kategorisering_kode, " ", kategorisering_navn)` | +| `konto_regel` | Castet til integer | +| `b_flagg` | Castet til integer | + +### 6. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_konto` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_koststed.md b/docs/ap/okonomi/gold/dim_koststed.md new file mode 100644 index 000000000..0bd1e09f8 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_koststed.md @@ -0,0 +1,57 @@ +# dim_koststed + +## Formål + +Laster koststedsdimensjonen (`dim_koststed`) i gold-laget fra `silver_ubw.agldimvalue` filtrert på attributt `C1`. Tabellen berikes med et hierarki av organisasjonsnivåer (koststedtype, campus, seksjon, institutt, fakultet) via relasjonsverdier med prioritetshåndtering. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| -------------------------- | ----------------- | --------------------------------------------- | --------------------------------- | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | `attributt_id = 'C1'` | Hovedkilde | +| **silver_ubw.aatrelvalue** | Relasjonsverdier | `attributes` og `related_attributes` varierer | Kilde for organisasjonshierarkiet | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | Varierer per nivå | Lookup for beskrivelsestekst | + +## Forretningsnøkler + +`koststed_kode` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `dimensjon_verdi` (omdøpt til `koststed_kode`) basert på `periode_til` (synkende) via `remove_duplicates_on_sort_key`. + +### 2. Hierarkiske relasjonslookups + +| Dimensjon | Attributter | Henter | +| ------------------ | ----------- | ----------------------------------------------------------------- | +| koststedtype | C1 + R40 | `koststedtype_kode`, `koststedtype_navn` | +| campus | C1 + R30 | `campus_kode`, `campus_navn` | +| nivaa4 (seksjon) | C1 + R20 | Range join – `nivaa4_kode`, `nivaa4_navn` | +| nivaa3 (institutt) | R20 + R21 | Range join med prioritet (0, 1, 2) – `nivaa3_kode`, `nivaa3_navn` | +| nivaa2 (fakultet) | R21 + R22 | Range join med prioritet (0, 1, 2) – `nivaa2_kode`, `nivaa2_navn` | + +### 3. Prioritetshåndtering (nivaa2 og nivaa3) + +For organisasjonsnivåer med overlappende relasjoner brukes `coalesce()` for å velge laveste prioritet (0 → 1 → 2) som gjeldende verdi. + +### 4. Beregnede kolonner + +| Kolonne | Logikk | +| --------------- | ------------------------------------------- | +| `koststed_kode` | Omdøpt fra `dimensjon_verdi` | +| `koststed_navn` | Omdøpt fra `beskrivelse` | +| `koststed` | `concat(koststed_kode, " ", koststed_navn)` | +| `seksjon` | `concat(nivaa4_kode, " ", nivaa4_navn)` | +| `institutt` | `concat(nivaa3_kode, " ", nivaa3_navn)` | +| `fakultet` | `concat(nivaa2_kode, " ", nivaa2_navn)` | + +### 5. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_koststed` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_kunde.md b/docs/ap/okonomi/gold/dim_kunde.md new file mode 100644 index 000000000..85837b42b --- /dev/null +++ b/docs/ap/okonomi/gold/dim_kunde.md @@ -0,0 +1,58 @@ +# dim_kunde + +## Formål + +Laster kundedimensjonen (`dim_kunde`) i gold-laget fra `silver_ubw.acuheader`. Tabellen berikes med kundegruppe, språk, land og adresseinformasjon via lookups. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| -------------------------- | ------------ | -------------------- | ----------------------------------------------------- | +| **silver_ubw.acuheader** | Kundehoder | Ingen | Hovedkilde | +| **silver_ubw.acugroup** | Kundegrupper | Ingen | Lookup for `kunde_gruppe_navn` | +| **silver_ubw.aaglanguage** | Språkkoder | Ingen | Lookup for `spraak_navn` | +| **silver_ubw.aagcountry** | Landkoder | `spraak_kode = 'NO'` | Lookup for `land_navn` | +| **silver_ubw.agladdress** | Adresser | Ingen | Lookup for adresse, postnr, poststed, e-post, telefon | + +## Forretningsnøkler + +`kunde_nummer` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `kontakt_id` basert på `sist_oppdatert` via `remove_duplicates_on_sort_key`. + +### 2. Tabellkoblinger + +| Lookup | Nøkkel | Henter | +| ----------- | ------------------- | ---------------------------------------------------------------------------------------------------------- | +| acugroup | `kontakt_gruppe_id` | `kunde_gruppe_navn` | +| aaglanguage | `spraak_kode` | `spraak_navn` | +| aagcountry | `land_kode` | `land_navn` | +| agladdress | `kontakt_id` | `adresse`, `postnr`, `poststed`, `e_post`, `telefon` (nyeste adresse via vindufunksjon på `adr_sekvensnr`) | + +### 3. Beregnede kolonner + +| Kolonne | Logikk | +| --------------------- | ----------------------------------------------------- | +| `kunde_nummer` | Omdøpt fra `kontakt_id` | +| `kunde_navn` | Omdøpt fra `kontakt_navn` | +| `kunde_type` | Omdøpt fra `kontakt_type` | +| `kunde_navn_kort` | Omdøpt fra `navn_kort` | +| `kunde_referanse` | Omdøpt fra `kontakt_id_referanse` | +| `kunde_gruppe_nummer` | Omdøpt fra `kontakt_gruppe_id` | +| `hovedkunde_nummer` | Omdøpt fra `hovedkontakt_id` | +| `kunde` | `concat(kunde_nummer, " ", kunde_navn)` | +| `kunde_gruppe` | `concat(kunde_gruppe_nummer, " ", kunde_gruppe_navn)` | +| `swift` | `substring(swift_kode, 1, 11)` | + +### 4. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_kunde` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_leverandor.md b/docs/ap/okonomi/gold/dim_leverandor.md new file mode 100644 index 000000000..cac238d94 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_leverandor.md @@ -0,0 +1,53 @@ +# dim_leverandor + +## Formål + +Laster leverandørdimensjonen (`dim_leverandor`) i gold-laget fra `silver_ubw.asuheader`. Tabellen berikes med leverandørgruppe, språk og land via lookups. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| -------------------------- | ----------------- | ------------------ | -------------------------------- | +| **silver_ubw.asuheader** | Leverandørhoder | Ingen | Hovedkilde | +| **silver_ubw.aaglanguage** | Språkkoder | Ingen | Lookup for `spraak_navn` | +| **silver_ubw.aagcountry** | Landkoder | `land_kode = 'NO'` | Lookup for `land_navn` | +| **silver_ubw.asugroup** | Leverandørgrupper | Ingen | Lookup for `kontakt_gruppe_navn` | + +## Forretningsnøkler + +`leverandor_nummer` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `["kontakt_id", "leverandor_type"]` basert på `sist_oppdatert` via `remove_duplicates_on_sort_key`. + +### 2. Tabellkoblinger + +| Lookup | Nøkkel | Henter | +| ----------- | ------------------- | --------------------- | +| aaglanguage | `spraak_kode` | `spraak_navn` | +| aagcountry | `land_kode` | `land_navn` | +| asugroup | `kontakt_gruppe_id` | `kontakt_gruppe_navn` | + +### 3. Beregnede kolonner + +| Kolonne | Logikk | +| -------------------------- | --------------------------------------------------------------- | +| `leverandor_nummer` | Omdøpt fra `kontakt_id` | +| `leverandor_referanse` | Omdøpt fra `kontakt_id_referanse` | +| `leverandor_gruppe_nummer` | Omdøpt fra `kontakt_gruppe_id` | +| `leverandor_gruppe_navn` | Omdøpt fra `kontakt_gruppe_navn` | +| `hovedleverandor_nummer` | Omdøpt fra `hovedkontakt_id` | +| `leverandor` | `concat(leverandor_nummer, " ", leverandor_navn)` | +| `leverandor_gruppe` | `concat(leverandor_gruppe_nummer, " ", leverandor_gruppe_navn)` | + +### 4. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_leverandor` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_periode.md b/docs/ap/okonomi/gold/dim_periode.md new file mode 100644 index 000000000..69d6c4255 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_periode.md @@ -0,0 +1,42 @@ +# dim_periode + +## Formål + +Laster periodedimensjonen (`dim_periode`) i gold-laget fra `silver_ubw.acrperiod`. Tabellen beriker kildedata med lesbare periode- og månedsnavn på norsk. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| ------------------------ | ----------------- | ------ | ---------- | +| **silver_ubw.acrperiod** | Regnskapsperioder | Ingen | Hovedkilde | + +## Forretningsnøkler + +`periode_id` + `periode` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `["periode_id", "periode"]` basert på `sist_oppdatert` via `remove_duplicates_on_sort_key`. + +### 2. Beregnede kolonner + +| Kolonne | Logikk | +| ----------------- | ------------------------------------------------------------- | +| `maanednr` | `cast(substring(periode, 5, 2) as int)` – månedsnummer (0–12) | +| `maaned_kortnavn` | Mapping: 1→Jan, 2→Feb, …, 12→Des, 0→P0 | +| `maaned` | Mapping: 1→Januar, 2→Februar, …, 12→Desember, 0→Periode 0 | +| `periode_navn` | `concat(maaned_kortnavn, "-", aar)` (f.eks. "Jan-2024") | +| `periode_dato` | `to_date(concat(periode, "01"), "yyyyMMdd")` | +| `dato_fra` | Castet til `DateType` | +| `dato_til` | Castet til `DateType` | + +### 3. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_periode` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_prosjekt.md b/docs/ap/okonomi/gold/dim_prosjekt.md new file mode 100644 index 000000000..0d65f1410 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_prosjekt.md @@ -0,0 +1,92 @@ +# dim_prosjekt + +## Formål + +Laster prosjektdimensjonen (`dim_prosjekt`) i gold-laget fra `silver_ubw.atsproject`. Tabellen suppleres med interne prosjekter fra `agldimvalue` og berikes med et stort antall lookups for prosjekttyper, organisasjonstilhørighet, kontraktdata, administrative roller og institusjonsspesifikke rapporteringsstrukturer. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| ---------------------------------- | --------------------- | -------------------------------------------------- | ---------------------------------------------------------------- | +| **silver_ubw.atsproject** | Prosjekter | Ingen | Primærkilde | +| **silver_ubw.agldimvalue** | Interne prosjekter | `attributt_id = 'B0'`, IKKE i atsproject | Supplerende kilde (union) | +| **silver_ubw.ahsresources** | Ressurser | Ingen | Lookup for prosjektleder | +| **silver_ubw.atsproject** | Prosjekter | Ingen | Self-join for `hovedprosjekt_navn` | +| **silver_ubw.afxprobesk** | Prosjektbeskrivelse | Ingen | Lookup for `saksnr`, `annen_ekstern_ref`, `sammendrag` | +| **silver_ubw.afxprosamarbeid** | Samarbeidsinfo | Ingen | Lookup for koordinator- og partnerprosjektdata | +| **silver_ubw.agldimvalue** | Dimensjonsverdier | `attributt_id='A4'` | Lookup for `prosjektkoordinator_navn` | +| **silver_ubw.afxproadmin** | Administrative roller | Ingen | Lookup for prosjektøkonom, forskningsrådgiver, admin (aggregert) | +| **silver_ubw.afxpropreaward** | Pre-award | Ingen | Lookup for `referanse_navn`, `kostnadskalkyle` | +| **silver_ubw.udv_proj_change_log** | Endringslogg | `status IN ('C','T')` | Lookup for `dato_sperret_avsluttet` | +| **silver_ubw.aatrelvalue** | Relasjonsverdier | `attributes=["B0"]`, `related_attributes` varierer | Institusjonsspesifikke dimensjoner | + +## Forretningsnøkler + +`prosjekt_nummer` + +## Transformasjonslogikk + +### 1. Kildebygging + +Interne prosjekter fra `agldimvalue` (B0) som ikke finnes i `atsproject` union-eres inn. + +### 2. Relasjonslookups (alle institusjoner) + +| Dimensjon | Attributter | Henter | +| ------------------ | ----------- | -------------------------------------------------------------- | +| prosjekttype | B0 + B4 | `prosjekttype_kode`, `prosjekttype_navn`, `prosjekttype` | +| koststed | B0 + C1 | `koststed_kode`, `koststed_navn`, `koststed` | +| kunde | B0 + A4 | `kunde_nummer`, `kunde_navn`, `kunde` | +| overkategorisering | B0 + S11 | `overproj_kategorisering_kode`, `overproj_kategorisering_navn` | +| strategisk satsing | B0 + S12 | `strategisk_satsing_kode`, `strategisk_satsing_navn` | +| sentertype | B0 + S13 | `sentertype_kode`, `sentertype_navn` | + +### 3. Relasjonslookups (institusjonsspesifikke) + +| Institusjon | Dimensjon | Attributter | Henter | +| ----------- | ------------- | ----------- | ----------------------------------------------------------------------------------- | +| UiA | rapportklasse | 25 + 26 | Range join – `rapportklasse_kode`, `rapportklasse_navn`, `rapportklasse` | +| UiA | rapportgruppe | 25 | `rapportgruppe_kode`, `rapportgruppe_navn`, `rapportgruppe`, `rapportgruppe_status` | + +### 4. Tabellkoblinger + +| Lookup | Nøkkel | Henter | +| ------------------- | ---------------------------- | -------------------------------------------------------------------------------------------------- | +| ahsresources | `ressurs_id` | `prosjektleder_ressurs_id`, `prosjektleder_navn` | +| atsproject (self) | `hovedprosjekt_nummer` | `hovedprosjekt_navn`, `hovedprosjekt` | +| afxprobesk | `prosjekt_nummer` | `saksnr`, `annen_ekstern_ref`, `sammendrag` | +| afxprosamarbeid | `prosjekt_nummer` | `koordinatorprosjekt`, `ingen_samarbeidspartnere`, `partnerprosjekt`, `prosjektkoordinator_nummer` | +| agldimvalue (A4) | `prosjektkoordinator_nummer` | `prosjektkoordinator_navn` | +| afxpropreaward | `prosjekt_nummer` | `referanse_navn`, `kostnadskalkyle` | +| udv_proj_change_log | `prosjekt_nummer` | `dato_sperret_avsluttet` (nyeste) | + +### 5. Administrative roller (afxproadmin – aggregert med pipe-separator) + +| Kolonne | Rolle | +| ------------------------------------------------------------ | ----------------- | +| `prosjektoekonom_id`, `prosjektoekonom_navn` | PROOK | +| `prosjektoekonom_ansv_id`, `prosjektoekonom_ansv_navn` | PROOK (ansvarlig) | +| `forskningsraadgiver_id`, `forskningsraadgiver_navn` | FORSK | +| `forskningsraadgiver_ans_id`, `forskningsraadgiver_ans_navn` | FORSK (ansvarlig) | +| `admin_personell_id`, `admin_personell_navn` | ANNEN | +| `admin_personell_ansv_id`, `admin_personell_ansv_navn` | ANNEN (ansvarlig) | + +### 6. Beregnede kolonner + +| Kolonne | Logikk | +| -------------------------- | --------------------------------------------- | +| `prosjekt` | `concat(prosjekt_nummer, " ", prosjekt_navn)` | +| `aar_fra` | `year(periode_fra)` | +| `aar_til` | `year(periode_til)` | +| `koordinatorprosjekt` | Boolean konvertert til integer (0/1) | +| `ingen_samarbeidspartnere` | Boolean konvertert til integer (0/1) | +| `partnerprosjekt` | Boolean konvertert til integer (0/1) | + +### 7. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_prosjekt` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_prosjekt_arbeidspakke.md b/docs/ap/okonomi/gold/dim_prosjekt_arbeidspakke.md new file mode 100644 index 000000000..dba354b80 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_prosjekt_arbeidspakke.md @@ -0,0 +1,30 @@ +# dim_prosjekt_arbeidspakke + +## Formål + +Laster dimensjonen for prosjektarbeidspakker (`dim_prosjekt_arbeidspakke`) i gold-laget fra `silver_ubw.atsactivity`. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| -------------------------- | ----------------------------------- | ------ | ---------- | +| **silver_ubw.atsactivity** | Prosjektaktiviteter / arbeidspakker | Ingen | Hovedkilde | + +## Forretningsnøkler + +`prosjekt_nummer` + `arbeidspakke_nummer` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per forretningsnøkkel basert på `sist_oppdatert` via `remove_duplicates_on_sort_key`. + +### 2. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_prosjekt_arbeidspakke` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/dim_ressurs.md b/docs/ap/okonomi/gold/dim_ressurs.md new file mode 100644 index 000000000..b0379acb2 --- /dev/null +++ b/docs/ap/okonomi/gold/dim_ressurs.md @@ -0,0 +1,40 @@ +# dim_ressurs + +## Formål + +Laster ressursdimensjonen (`dim_ressurs`) i gold-laget fra `silver_ubw.ahsresources`. Tabellen beriker kildedata med normaliserte kjønnsverdier. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| --------------------------- | ------------------- | ------ | ---------- | +| **silver_ubw.ahsresources** | Ressurser / ansatte | Ingen | Hovedkilde | + +## Forretningsnøkler + +`ressurs_nummer` + +## Transformasjonslogikk + +### 1. Deduplisering + +Velger nyeste rad per `ressurs_id` (omdøpt til `ressurs_nummer`) basert på `sist_oppdatert` via `remove_duplicates_on_sort_key`. + +### 2. Beregnede kolonner + +| Kolonne | Logikk | +| ------------------ | -------------------------------------------------------------------------------- | +| `ressurs_nummer` | Omdøpt fra `ressurs_id` | +| `kjonn_kode` | `CASE WHEN kjonn='M' THEN 'M' WHEN kjonn='F' THEN 'K' ELSE 'Ukjent'` | +| `kjonn_navn` | `CASE WHEN kjonn='M' THEN 'Mann' WHEN kjonn='F' THEN 'Kvinne' ELSE 'Ukjent'` | +| `kjonn` | `CASE WHEN kjonn='M' THEN 'M Mann' WHEN kjonn='F' THEN 'K Kvinne' ELSE 'Ukjent'` | +| `ressurstype_kode` | `coalesce(ressurstype_kode, 'Ukjent')` | + +### 3. Datakvalitet + +- `replace_empty_column_values`: Erstatter tomme verdier i forretningsnøkkelkolonner. +- `insert_unknown_row`: Legger til ukjent-rad for uløste fremmednøkler. + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.dim_ressurs` som SCD Type 1 via `load_dimension_scd1` med `delete_when_not_matched=True`. diff --git a/docs/ap/okonomi/gold/fak_okonomi.md b/docs/ap/okonomi/gold/fak_okonomi.md new file mode 100644 index 000000000..e6524e82c --- /dev/null +++ b/docs/ap/okonomi/gold/fak_okonomi.md @@ -0,0 +1,95 @@ +# fak_okonomi + +## Formål + +Laster faktatabellen for økonomi (`fak_okonomi`) i gold-laget. Tabellen kombinerer regnskapstransaksjoner (`agltransact`) og budsjetttransaksjoner (`apltransact` + `apltransactvalue`) og slår opp alle dimensjonsnøkler. Støtter inkrementell lasting basert på antall år. + +## Datakilder + +| Tabell | Formål | Filtre | Rolle | +| ------------------------------------------ | -------------------------- | ------------------------- | ---------------------- | +| **silver_ubw.agltransact** | Regnskapstransaksjoner | Inkrementelt basert på år | Primærkilde regnskap | +| **silver_ubw.apltransact** | Budsjetttransaksjoner | Inkrementelt basert på år | Primærkilde budsjett | +| **silver_ubw.apltransactvalue** | Budsjettransaksjonsverdier | Ingen | Join med apltransact | +| **gold_okonomi.dim_anlegg** | Anleggsdimensjon | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_arbeidspakke_bygg** | Arbeidspakke/bygg | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_bilagstype** | Bilagstyper | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_budsjettprofil** | Budsjettprofiler | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_budsjettversjon** | Budsjettversjoner | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_delprosjekt** | Delprosjekter | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_konto** | Kontoplan | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_koststed** | Koststed | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_kunde** | Kunder | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_leverandor** | Leverandører | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_periode** | Perioder | `periode_id = 'GL'` | Dimensjonslookup | +| **gold_okonomi.dim_prosjekt** | Prosjekter | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_prosjekt_arbeidspakke** | Prosjektarbeidspakker | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_ressurs** | Ressurser | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_hovedfinansiering** | Hovedfinansiering | Ingen | Dimensjonslookup | +| **gold_okonomi.dim_organisasjon** | Organisasjon | Ingen | Dimensjonslookup (BOT) | + +## Forretningsnøkler + +`transaksjon_id` (faktatabell – transaksjonsnøkkel) + +## Transformasjonslogikk + +### 1. Kildebygging + +Regnskaps- og budsjettdata union-eres: + +- **Regnskap**: Fra `agltransact`, flagget med `kilde = 'regnskap'`. +- **Budsjett**: Join mellom `apltransact` og `apltransactvalue` på `transaksjon_id`, flagget med `kilde = 'budsjett'`. + +### 2. Inkrementell lasting + +Parametere styrer om tabellen lastes fullt på nytt eller kun for de siste N år. + +### 3. Institusjonsspesifikke kolonner (BOT) + +| Kolonne | Logikk | +| -------------------------- | ------------------------------------------------------------------------ | +| `kopi_budsjett` | Hentes fra `kostnadskategori_budsjett` der `fri_attributt_2_id = 'S02'` | +| `stillingskode_budsjett` | Hentes fra `kostnadskategori_budsjett` der `fri_attributt_2_id = 'ZZ04'` | +| `kopibeskrivelse_budsjett` | Lookup fra agldimvalue via `kostnadskategori_budsjett` (S02) | +| `organisasjon_id_nivaa6` | Lookup fra koststedtabell | + +### 4. Beregnede kolonner + +| Kolonne | Logikk | +| ------------------------ | ------------------------------------------------------------------------------- | +| `zk_dim_dato` | Periodemapping: periode 00→0101, 01–12→MM01, 13→1231; konvertert til dato | +| `prosjekt_nummer` | Utledet fra `dimensjon_2`–`dimensjon_7` basert på institusjonskonfigurasjon | +| `delprosjekt_nummer` | Utledet fra `dimensjon_2`–`dimensjon_7` basert på institusjonskonfigurasjon | +| `bygg_nummer` | Utledet fra `dimensjon_2`–`dimensjon_7` basert på institusjonskonfigurasjon | +| `ressurs_nummer` | Utledet fra `dimensjon_2`–`dimensjon_7` basert på institusjonskonfigurasjon | +| `hovedfinansiering_kode` | Utledet via `create_hovedfinansiering_columns()` (institusjonsspesifikk logikk) | +| Opprinnelig budsjett | Utledet via `create_opprinnelig_budsjett_columns()` | +| Revidert budsjett | Utledet via `create_revidert_budsjett_columns()` | + +### 5. Dimensjonslookups + +Alle dimensjonssurrogatnøkler lagres med prefiks `zk_dim_`: + +| Surrogatnøkkel | Join-nøkkel | +| ------------------------------ | ----------------------------------- | +| `zk_dim_konto` | `konto_kode` | +| `zk_dim_koststed` | `koststed_kode` | +| `zk_dim_prosjekt` | `prosjekt_nummer` | +| `zk_dim_delprosjekt` | `delprosjekt_nummer` | +| `zk_dim_arbeidspakke_bygg` | `bygg_nummer` | +| `zk_dim_ressurs` | `ressurs_nummer` | +| `zk_dim_kunde` | `kontakt_id` + `kontakt_type` | +| `zk_dim_leverandor` | `kontakt_id` + `kontakt_type` | +| `zk_dim_periode` | `periode` (kun periode_id='GL') | +| `zk_dim_bilagstype` | `bilagstype_kode` | +| `zk_dim_budsjettprofil` | `budsjettprofil_kode` | +| `zk_dim_budsjettversjon` | `versjon_kode` | +| `zk_dim_prosjekt_arbeidspakke` | `prosjekt_nummer` + `bygg_nummer` | +| `zk_dim_anlegg` | `attributt_6_id` + `ressurs_nummer` | +| `zk_dim_hovedfinansiering` | `hovedfinansiering_kode` | +| `zk_dim_organisasjon` | `organisasjon_id_nivaa6` (BOT) | + +### Lastelogikk og måltabeller + +Laster til `gold_okonomi.fak_okonomi` inkrementelt via `write_table_incrementally()` med mulighet for full reload. diff --git a/docs/ap/sidebars.js b/docs/ap/sidebars.js index 890e3d8cc..d5fb8670d 100644 --- a/docs/ap/sidebars.js +++ b/docs/ap/sidebars.js @@ -43,6 +43,16 @@ module.exports = [ }, ], }, + { + type: 'category', + label: 'Økonomi', + items: [ + { + type: 'autogenerated', + dirName: 'ap/okonomi', + }, + ], + }, { type: 'category', label: 'Rapporter',