# Freie Datenbank-Tabellen über GraphQL nutzen

<span class="custom-button red-button">Gen. 24 Enterprise</span>

Freie Datenbank-Tabellen lassen sich über die GraphQL-Schnittstelle lesen und schreiben – vorausgesetzt, sie wurden im DB-Manager entsprechend vorbereitet. Diese Seite beschreibt, was dafür einzurichten ist und wie eine solche Tabelle anschließend über GraphQL erreichbar ist.

## Voraussetzung: GraphQL-Bezeichnung im DB-Manager eintragen

Damit eine Freie Datenbank-Tabelle über GraphQL erreichbar ist, muss im DB-Manager das Feld **„GraphQL-Bezeichnung"** gefüllt sein. Bleibt das Feld leer, ist kein GraphQL-Zugriff auf diese Tabelle möglich.

**Wo Sie das Feld finden:**

Registerkarte: DATEI – INFORMATIONEN – EINSTELLUNGEN – DB-MANAGER → Freie Datenbank-Tabelle auswählen → Schaltfläche: ÄNDERN → Register: **„Einstellungen"**

![Alt-Text](https://assets.hilfe.microtech.de/bilder/18_graphql/graphqlfreidb_01.png)

Das Feld **„GraphQL-Bezeichnung"** befindet sich im Abschnitt „Symbol und Bezeichnungen", unterhalb von „Datensatz-Bezeichnung". Der Hinweis in Klammern gibt das erforderliche Format vor: **(Singular, Englisch)**.

## Warum englisch und Singular?

Die Tabellen der microtech GraphQL-Schnittstelle folgen durchgehend einer englischen Benennung im Singular – zum Beispiel `tblAddresses`, `tblProducts`, `tblTransactions`. Dieses Muster entspricht dem GraphQL-Standard, der von Entwicklungswerkzeugen, Code-Generatoren und KI-gestützten Tools erwartet wird.

Freie Datenbank-Tabellen fügen sich mit dem Präfix `tblCust` in dieses Schema ein. Der eingetragene englische Bezeichner bildet zusammen mit diesem Präfix den Namen, unter dem die Tabelle im GraphQL-Schema erscheint:

| GraphQL-Bezeichnung (DB-Manager) | Tabellenname im GraphQL-Schema |
|----------------------------------|-------------------------------|
| `MotorcycleAccessory`            | `tblCustMotorcycleAccessory`  |
| `CustomerFeedback`               | `tblCustCustomerFeedback`     |

!!! warning "Beachten Sie"

    Verwenden Sie **ausschließlich lateinische Buchstaben und Ziffern** für die GraphQL-Bezeichnung. Umlaute (ä, ö, ü), Sonderzeichen und Leerzeichen sind als GraphQL-Bezeichner nicht zulässig und führen zu Fehlern. Bewährt hat sich die Schreibweise in CamelCase: An sich anschließende Wörter werden mit Großschreibung optisch voneinander getrennt (z. B. `MotorcycleAccessory`).

## Beispiel: Freie Tabelle „Motorradzubehör"

In diesem Beispiel wurde im DB-Manager eine Freie Datenbank-Tabelle für Motorradzubehör eingerichtet. Im Feld „GraphQL-Bezeichnung" wurde nun `MotorcycleAccessory` eingetragen, damit diese FreieDB auch mit GraphQL genutzt werden kann.

![Alt-Text](https://assets.hilfe.microtech.de/bilder/18_graphql/graphqlfreidb_02.png)

Die Tabelle ist damit unter dem Namen `tblCustMotorcycleAccessory` über GraphQL erreichbar.

### Datensätze abfragen

```graphql
query {
  tblCustMotorcycleAccessory {
    rowsRead {
      fldID
      fldNr
      fldBez
      fldSuchBeg
      fldInfo
    }
  }
}
```

### Neuen Datensatz anlegen

```graphql
mutation {
  tblCustMotorcycleAccessory {
    rowNew {
      fldBez(set: { text: "Tankrucksack" })
      fldSuchBeg(set: { text: "TANKRUCKSACK" })
      fldFrei1(set: { text: "Gepäck" })
      rowSave {
        fldNr
        fldBez
      }
    }
  }
}
```

!!! info "Hinweis"

    Welche Felder (`fldFrei1`, `fldFrei2` usw.) in Ihrer Freien Datenbank-Tabelle verfügbar sind, hängt von der individuellen Einrichtung im DB-Manager ab. Die verfügbaren Felder lassen sich per Introspection ermitteln – weitere Informationen dazu finden Sie unter [GraphQL Entwickler Dokumentation – Abfragen](./graphqldoku.md).

## Berechtigungen

Der Zugriff auf eine Freie Datenbank-Tabelle über GraphQL setzt voraus, dass der verwendete Benutzer die entsprechende **Berechtigung auf diese Tabelle** besitzt. Ist keine Berechtigung vorhanden, wird die Tabelle im Schema nicht angezeigt.

## Weitere Freie Datenbank-Tabellen anbinden

Jede Freie Datenbank-Tabelle, die über GraphQL erreichbar sein soll, muss einzeln mit einer GraphQL-Bezeichnung versehen werden. Tabellen ohne eingetragene Bezeichnung bleiben für GraphQL unsichtbar – unabhängig davon, ob sie im Programm aktiv genutzt werden. Prüfen Sie Ihren vorhandenen Freien Datenbank-Tabellen und ergänzen Sie bei allen benötigten Tabellen 

---

**Weiterführende Informationen:**

- [Vorbereitung im DB-Manager](../05_wawi/anhang/freie datenbank-tabellen/glfdtdbmanagervorbereitungen.md)
- [GraphQL Entwickler Dokumentation – Abfragen](./graphqldoku.md)
- [GraphQL Entwickler Dokumentation – Mutationen](./graphqlmutations.md)
