> For the complete documentation index, see [llms.txt](https://docs.solutioo.de/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.solutioo.de/entwicklerdokumentationen-business-central-dhl-connector/dhl-connector-entwicklerdokumentation/datenmodell-und-berechtigungen.md).

# Datenmodell und Berechtigungen

Die vollständigen Feld- und Schlüsseldefinitionen stehen in der [Tabellenreferenz](/entwicklerdokumentationen-business-central-dhl-connector/dhl-connector-entwicklerdokumentation/tabellenreferenz.md). Diese Seite erklärt Beziehungen, Schreibgrenzen, Permission Sets, Permission Set Extensions und Entitlements.

## Beziehungen

```mermaid
flowchart LR
  CFG[Configuration] --> PH[Package Header]
  BOX[Box] --> PH
  BN[Billing Number] --> PH
  MAP[Billing Map] --> BN
  PH --> PL[Package Line]
  PH --> CD[Customs Data]
  CD --> CL[Customs Line]
  TH[Tariff Header] --> TP[Product]
  TP --> TZ[Zone / Destination / Rate / Charge]
  RP[Rate Provider] --> RB[Temporary Result Buffer]
```

## Einheitenvertrag

* Package Header `Weight`: gerundetes Gesamtgewicht in Gramm
* Package Header `Weight UOM`: normalerweise `g`
* Package Line `Weight`: Kilogramm pro Einheit
* generierte Line-Abmessungen: Zentimeter
* Package Header-Abmessungen: mit `Dimension Unit` interpretieren
* Customs Line `Unit Weight (kg)`: Netto-Kilogramm pro Einheit

Umrechnungen über `SOUDHL Packing Mgt` verwenden und nicht duplizieren.

## Direkte Tabellenänderungen

Direkte Inserts/Deletes auf Package Header und Line sind kein unterstützter Standardweg. Sie können AutoIncrement, Composite Keys, Quellreferenzen, Empfänger, Gewicht, Billing, Label- und Inventurstatus inkonsistent machen.

Zulässige Lookup-/Relationszwecke umfassen insbesondere Box, Billing Number, Package Header und Enums. Aktive Tarifversionen, hochgeladene Pakete und terminale Inventurstatus nicht direkt verändern.

## Permission Set 72242951 SOUDHLPermissionset

**Caption:** DHL Integration Super User · **Assignable:** true

Enthält `SOUDHL User` und `SOUDHL Tariff Admin` sowie vollständige Configuration-Rechte und administrative Setup-/Customs-/Upgradeobjekte. Für Connector-Administratoren, nicht als Standard-Endanwenderrolle.

## Permission Set 72242955 SOUDHL Config Indirect

**Assignable:** false

Gewährt `tabledata "SOUDHL Configuration" = Rm`: Lesen und indirektes Ändern. Dieses interne Set wird in User und Base eingeschlossen, damit Connector-Code kontrolliert Setupstatus ändern kann, ohne direkte vollständige Konfigurationspflege freizugeben.

## Permission Set 72242952 SOUDHL User

**Assignable:** true

Operative Versandrolle:

* RIMD auf Kern-Versanddaten, soweit für Paketpflege erforderlich,
* Execute auf Packing, API, Customs, Recipient, Box Inventory, Rate und UI,
* Pages und Reports für Boxen, Pakete, Label, Customs und Rate Test,
* Configuration über das indirekte Set statt voller RIMD-Rechte.

Benötigt für Benutzer, die Pakete oder Labels erzeugen.

## Permission Set 72242953 SOUDHL Base

**Assignable:** true

Grundzugriff für AppSource-Entitlement und abhängige Apps:

* überwiegend Lesen,
* Package Header darf gelesen und geändert werden,
* Execute auf Sales UI, Sales Shipment Mgt, Rate Provider, Destination Mgt und Charge Mgt,
* keine allgemeine Berechtigung zum Anlegen operativer Pakete.

Base allein ersetzt nicht `SOUDHL User`, wenn ein Benutzer Pakete, Customs oder Labels pflegen soll.

## Permission Set 72242954 SOUDHL Tariff Admin

**Assignable:** true

RIMD auf Tarif- und Importtabellen sowie Execute auf Import, Validation, Destination, Charge und Rate Provider und alle Tarif-Admin-Pages.

## Permission Set Extensions

* `72242951 SOUDHL D365 Basic Extension` erweitert `D365 BASIC` um `SOUDHL Base`.
* `72242952 SOUDHL D365 READ Extension` erweitert `D365 READ` um `SOUDHL Base`.
* `72242953 SOUDHL D365 PREMIUM Extension` erweitert `D365 BUS PREMIUM` um `SOUDHL Base`.

Sie sorgen dafür, dass lizenzierte BC-Benutzer den grundlegenden Connector-Objektzugriff erhalten. Operative oder administrative Rollen müssen trotzdem explizit zugewiesen werden.

## Entitlements

Die App definiert Per-User-, Application- und Implicit-Entitlements.

### Per-User-Offer-Pläne

Jeweils ein User-/SuperUser-Paar existiert für:

* Standard UserNew / Standard SuperUserNew
* Medium UserNew / Medium SuperUserNew
* Large UserNew / Large SuperUserNew
* Standard User / Standard SuperUser
* Medium User / Medium SuperUser
* Large User / Large SuperUser
* Starter User / Starter SuperUser
* Business User / Business SuperUser
* Team User / Team SuperUser

User-Varianten weisen `SOUDHL User`, SuperUser-Varianten `SOUDHLPermissionset` als Object Entitlement zu.

### Spezial-Entitlements

* `SOUDHL APP`: Application-Entitlement mit der App-ID des DHL Connectors
* `SOUDHL Basic`: Implicit-Entitlement auf `SOUDHL Base`

Ein Permission Set ist kein Ersatz für ein passendes App-Entitlement und umgekehrt.

## Consumer-Permissionset

```al
permissionset 50120 "MY SHIPPING USER"
{
    Assignable = true;
    IncludedPermissionSets = "SOUDHL Base";

    Permissions =
        codeunit "My Shipping Mgt" = X;
}
```

Der ausführende Benutzer benötigt zusätzlich `SOUDHL User`, wenn der Consumer operative DHL-Procedures aufruft.

## Laufzeitprüfungen

Optionale Funktionen dürfen `ReadPermission`/`WritePermission` prüfen und sauber deaktiviert werden. Verpflichtende Prozesse sollen eine klare Berechtigungsfehlermeldung liefern.

## Sicherheit

* Credentials niemals über Tabellen oder Consumer-Telemetrie auslesen.
* Request/Response und Label enthalten personenbezogene Daten.
* Direkter Configuration-Write, Secret-Write und Tarifaktivierung nur mit minimal erforderlicher Rolle.
* Berechtigungen immer mit einem Nicht-SUPER-Benutzer testen.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.solutioo.de/entwicklerdokumentationen-business-central-dhl-connector/dhl-connector-entwicklerdokumentation/datenmodell-und-berechtigungen.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
