# Sage 100 – Installation

Diese Seite führt Schritt für Schritt durch die Einrichtung der Workist-Anbindung in Ihrer Sage 100.
Was der Konnektor liest und schreibt und welche Angaben Workist von Ihnen benötigt, steht unter
[Sage 100 Konnektor](/docs/data-exchange/connectors/sage-100.md).

## Ablauf im Überblick

Die Einrichtung nehmen in der Regel Ihre IT oder Ihr Sage 100-Partner vor – meist gemeinsam mit
Workist in einem Termin. Ihr Partner kann die Schritte 1–9 auch allein durchführen und uns danach
die [Angaben aus Schritt 10](#schritt-10-verbindung-in-workist-anlegen) mitteilen. Rechnen Sie mit
etwa einer Stunde für die Installation, zuzüglich des Neustarts des Applikationsservers. Endpunkte
müssen Sie nicht von Hand einrichten – sie kommen mit der Workist API-Erweiterung.

Danach prüfen wir zusammen, ob Stammdaten ankommen und ein Testbeleg richtig in Ihrer Sage 100
landet.

| Phase | Schritte | Wer |
| --- | --- | --- |
| [Vorbereitung](#vorbereitung) | Lizenz, Version, Zugänge, Wartungsfenster | Ihre IT / Ihr Sage 100-Partner |
| [Einrichtung in Sage 100](#einrichtung-in-ihrer-sage-100) | Schritte 1–9 | Ihre IT / Ihr Sage 100-Partner |
| [Verbindung in Workist](#schritt-10-verbindung-in-workist-anlegen) | Schritt 10 | Workist, gemeinsam mit Ihnen |
| [Test](#schritt-11-verbindung-prüfen) | Stammdaten und Testbeleg | gemeinsam |

:::tip Mit der Testumgebung beginnen
Richten Sie die Anbindung zuerst auf einer Testdatenbank Ihrer Sage 100 ein. Erst wenn
Stammdaten und Testbelege dort sauber durchlaufen, wird die Produktivdatenbank angebunden – siehe
[Wechsel in die Produktivumgebung](#wechsel-in-die-produktivumgebung).
:::

## Vorbereitung

Klären Sie diese Punkte vor dem Einrichtungstermin. Fehlt einer davon, kommt die Einrichtung
meist an genau dieser Stelle zum Stehen.

| Punkt | Warum |
| --- | --- |
| **Lizenz 3rd Party Gateway** liegt vor | Ohne sie ist die Sage 100 API von außen nicht erreichbar – siehe [Lizenz](#voraussetzung-3rd-party-gateway-lizenz) |
| **Sage 100-Version** ist bekannt (z. B. 9.0.9) | Bestimmt, welches Paket der Workist API-Erweiterung installiert wird – siehe [Unterstützte Versionen](/docs/data-exchange/connectors/sage-100.md#unterstützte-sage-100-versionen) |
| **Sage ID des Hauptansprechpartners** ist zur Hand | Mit ihr wird das Connectivity Gateway verbunden (Schritt 1) und Workist als externer API-Benutzer zugelassen (Schritt 8). Bei Zwei-Faktor-Authentifizierung muss der Hauptansprechpartner während der Einrichtung erreichbar sein. |
| **Administrativer Zugriff** auf Server Manager, AppDesigner, Sage 100 Administrator und SQL Server Management Studio | Alle Schritte finden auf dem Sage 100-Server statt |
| **Wartungsfenster** ist eingeplant | Der Applikationsserver muss neu gestartet werden; währenddessen kann niemand in Sage 100 arbeiten (Schritt 9) |
| **Belegart** ist festgelegt | Bestimmt, als welcher Beleg Workist-Bestellungen in Sage 100 entstehen – siehe [Belegart](/docs/data-exchange/connectors/sage-100.md#belegart). Die Entscheidung trifft Ihr Vertrieb bzw. Ihre Auftragsbearbeitung, nicht der Partner. Soll Workist eine eigene Belegart nutzen, etwa einen wirkungslosen Vorbeleg, muss Ihr Partner sie vor dem Test anlegen. |
| **Andere API-Anbindungen** sind bekannt | Nutzt bereits ein anderes Produkt die Externe API, beeinflusst die Installation diese Anbindung – siehe Hinweis unten. Die Einrichtung für Workist ersetzt sie nicht: Auch dann sind alle Schritte nötig, insbesondere [Schritt 8](#schritt-8-workist-als-externen-api-benutzer-zulassen). |

:::warning Neustart im laufenden Betrieb einplanen
Der Neustart des Applikationsservers (Schritt 9) unterbricht die Arbeit aller Sage 100-Benutzer.
Zudem lässt sich eine Datei der Erweiterung nicht austauschen, solange Sage 100 sie verwendet.
Bei mehr als einer Handvoll Benutzern empfiehlt es sich, die Schritte 2–9 in ein Wartungsfenster
außerhalb der Geschäftszeiten zu legen.
:::

:::warning Andere API-Anbindungen auf demselben Server
Sind weitere Anbindungen über die Sage 100 API aktiv, funktionieren sie zwischen dem
Metadatenimport (Schritt 3) und dem Neustart (Schritt 9) unter Umständen nicht korrekt. Führen Sie
Import und Neustart deshalb unmittelbar nacheinander im selben Wartungsfenster aus. Weil pro
Installation nur eine Verbindung zum Connectivity Gateway möglich ist, teilen sich alle Anbindungen
diese Verbindung – sprechen Sie uns vorab an, wenn ein anderes Produkt sie bereits nutzt.
:::

### Voraussetzung: 3rd Party Gateway-Lizenz

Für die externe Nutzung der Sage 100 API wird eine Lizenz **3rd Party Gateway** benötigt – Sage
empfiehlt eine Lizenz pro Kunde. Bei der Lizenzierung registriert Sage die E-Mail-Adresse Ihres
Hauptansprechpartners zusammen mit einer KundenID – der
[EntitlementID](/docs/data-exchange/connectors/sage-100.md#entitlementid) – im Entitlement Service. Die Lizenz beziehen Sie
über Ihren Sage 100-Partner.

Bestellen Sie die Lizenz frühzeitig – die Freischaltung durch Sage dauert erfahrungsgemäß einige
Tage. Für die Freischaltung fragt Sage nach der Anwendung: Workist ist eine Webanwendung, die
**Maschine-zu-Maschine** mit Ihrer Sage 100 kommuniziert. Prüfen Sie dabei, welche E-Mail-Adresse
Sage für Ihr Entitlement hinterlegt hat – mit genau dieser Adresse wird in Schritt 1 angemeldet.

## Einrichtung in Ihrer Sage 100

Die offizielle Anleitung zum Sage Connectivity Gateway finden Sie in der Sage Dokumentation:

<a href="https://sagegmbh.atlassian.net/wiki/spaces/S1/pages/2651324425/2.1+Einrichtung+der+Sage+100" target="_blank" rel="noopener noreferrer">Einrichtung der Sage 100 – Sage Dokumentation ↗</a>

### Schritt 1: Connectivity Gateway verbinden

Im Sage 100 Server Manager unter **Externe API** → **Verbindung herstellen**:

1. Melden Sie sich über Sage ID mit der E-Mail-Adresse des Hauptansprechpartners an.
2. Wählen Sie das Entitlement aus.
3. Wählen Sie den Applikationsserver, an den Anfragen weitergeleitet werden. Bei Bedarf
   hinterlegen Sie im selben Dialog einen Proxy.

Unter **Externe API** → **Konfiguration** sehen Sie anschließend die
[EntitlementID](/docs/data-exchange/connectors/sage-100.md#entitlementid) – sie wird in Schritt 10 benötigt.

:::note Eine Verbindung pro Installation
Pro Kundeninstallation ist genau **eine** Verbindung zum Connectivity Gateway möglich.
:::

### Schritt 2: Passendes Paket auswählen

Laden Sie die [Workist API-Erweiterung](#downloads) herunter und entpacken Sie sie. Sie enthält
für jede unterstützte Sage 100-Version einen eigenen Ordner, jeweils mit den Unterordnern
`METADATA`, `DLLS` und `SKRIPTE`. Verwenden Sie **ausschließlich** den Ordner, der zu Ihrer
Sage 100-Version passt – die Pakete sind nicht untereinander austauschbar und nicht
abwärtskompatibel.

Maßgeblich sind die ersten drei Stellen der Version (9.0.X). Die Ordner heißen etwa
`Workist-170163136-9.0.10.3`; die letzte Stelle bezeichnet den Stand der Erweiterung, nicht Ihren
Patch-Stand. Bei Sage 100 9.0.10.4 verwenden Sie also den Ordner für 9.0.10.

### Schritt 3: Metadaten importieren

Im AppDesigner unter **Metadaten** → **Import**:

1. Wählen Sie die Datei `100096740.WorkistAPI.….metadata` aus dem Ordner `METADATA` des passenden
   Pakets.
2. Ab Version 9.0.9: Aktivieren Sie die Option **Berechtigungen beim Import erzeugen und in der
   aktuellen Datenbank anwenden**.
3. Bestätigen Sie den Dialog.

Der Import ist erst abgeschlossen, wenn der Aufbau des Metadaten-Index beendet ist. In der
Übersicht erscheint die Workist-Erweiterung unter der Partnernummer **96740**.

### Schritt 4: Berechtigungen einspielen

Wie die Berechtigungen der Erweiterung in Ihre Datenbanken kommen, hängt von der Version ab:

| Sage 100-Version | Vorgehen |
| --- | --- |
| ab 9.0.9 | Werden beim Metadatenimport erzeugt (Schritt 3). Für weitere Datenbanken spielen Sie sie nach dem Import dort ebenfalls ein. Ab Version 8 der Erweiterung führen Sie zusätzlich das Skript aus – siehe unten. |
| 9.0.8 | Führen Sie das Skript `…-Berechtigungen.sql` aus dem Ordner `SKRIPTE` im SQL Server Management Studio auf jeder betroffenen Datenbank aus. |

Ab Version 8 der Erweiterung führen Sie das Skript `2026-10-06-Berechtigungen.sql` aus dem Ordner
`SKRIPTE` **auf allen Sage 100-Versionen** aus: Version 8 bringt neue Endpunkte für Kostenstellen
und Kostenträger mit (Bereich `API.Rewe`). Steht die Berechtigungsvergabe auf **Detailliert**,
berechtigen Sie den Workist-Benutzer zusätzlich für diesen Bereich – siehe
[Benötigte Berechtigungen](#benötigte-berechtigungen).

### Schritt 5: Workist-Felder anlegen

Führen Sie das Skript `…-UpdateUserFields-Workist.sql` aus dem Ordner `SKRIPTE` im SQL Server
Management Studio auf jeder Datenbank aus, die Workist ansprechen soll. Es legt die beiden Felder
an, über die sich Workist-Belege zurückverfolgen lassen – siehe
[Zusätzliche Felder in Ihren Tabellen](/docs/data-exchange/connectors/sage-100.md#zusätzliche-felder-in-ihren-tabellen).
Nach dem Ausführen dauert es einen Moment, bis Sage 100 seinen Cache neu aufgebaut hat und die
Felder bereitstehen.

Beide Skriptnamen tragen ein vorangestelltes Datum, etwa `2026-06-29-UpdateUserFields-Workist.sql`.
Ist der Ordner `SKRIPTE` leer, wenden Sie sich an uns.

:::warning Nicht im Metadatenimport enthalten
Dieses Skript wird **nicht** über den Metadatenimport ausgeführt und ist in der
Installationsanleitung von Sage nicht aufgeführt. Ohne diesen Schritt fehlen die Felder.
:::

### Schritt 6: Datenbanken freigeben

Geben Sie im Sage 100 Administrator jede Datenbank, die Workist erreichen soll,
**ausdrücklich** für die Konnektivität frei. Eine Datenbank, die nicht freigegeben ist, ist für
Workist nicht sichtbar – auch wenn alle anderen Schritte erledigt sind.

### Schritt 7: Workist-Benutzer anlegen und berechtigen

Im Sage 100 Administrator:

1. Legen Sie einen Sage 100-Benutzer für Workist an. Vergeben Sie einen sprechenden Namen (etwa
   „Workist"), damit erkennbar bleibt, zu welchem Partner-Dienst der Benutzer gehört – wie er
   heißt, spielt für Workist keine Rolle.
2. Erteilen Sie dem Benutzer die [benötigten Berechtigungen](#benötigte-berechtigungen) im
   Bereich **API**.

Steht die Berechtigungsvergabe in Ihrer Sage 100 auf **Detailliert** statt auf **Alle**, müssen
die Berechtigungen pro Benutzer oder Gruppe gesetzt werden. Die Berechtigungen dieses Benutzers
bestimmen, was Workist in Ihrer Sage 100 lesen und anlegen darf. Verbietet Ihre Gruppe **Public**
den Bereich **API** bereits vollständig, erteilen Sie die Berechtigungen über eine eigene Gruppe,
der Sie den Workist-Benutzer zuordnen.

Dieser Benutzer ist ein technischer Benutzer – getrennt von der persönlichen Sage ID des
Hauptansprechpartners aus Schritt 1. Workist braucht für ihn **kein** Kennwort: Schicken Sie uns
keine Sage-Anmeldedaten.

:::tip Fehlende Berechtigungen schnell eingrenzen
Meldet die Verbindungsprüfung, dass der Zugriff auf Verkaufsbelege nicht erlaubt ist, liegt es
fast immer an den Berechtigungen dieses Benutzers. Prüfen Sie zuerst die Bereiche aus der Tabelle
[Benötigte Berechtigungen](#benötigte-berechtigungen).
:::

### Schritt 8: Workist als externen API-Benutzer zulassen

Erst dieser Schritt verbindet Workist mit dem Benutzer aus Schritt 7. Fehlt er, weist Sage 100
jede Anfrage von Workist mit *Zugriff verweigert* (HTTP 401) ab – auch wenn alle anderen Schritte
erledigt sind. In der Anleitung von Sage steht er nur in einer Abbildung und wird deshalb leicht
übersehen.

Im Sage 100 Administrator:

1. Öffnen Sie oben das Menü **Extras** → **Externe API-Benutzer verwalten**.
2. Melden Sie sich mit dem Sage-Konto an, mit dem das Connectivity Gateway verbunden ist
   (Schritt 1). Ist für dieses Konto eine Zwei-Faktor-Authentifizierung eingerichtet, muss der
   Hauptansprechpartner dafür erreichbar sein.
3. Fügen Sie die [Workist Client-ID](#workist-client-id) als externen API-Benutzer hinzu. In der
   Liste erscheint Workist nicht mit Namen, sondern als diese Zeichenfolge.
4. Ordnen Sie ihn dem Workist-Benutzer aus Schritt 7 zu.
5. Starten Sie anschließend den Applikationsserver neu (Schritt 9). Erst danach greift die
   Freigabe.

:::warning Eine bestehende API-Anbindung ersetzt diesen Schritt nicht
Jedes Produkt, das die Sage 100 API nutzt, meldet sich mit einer eigenen Client-ID an. Ist in der
Liste bereits ein anderer externer API-Benutzer eingetragen – etwa für einen Webshop oder ein
anderes Partnerprodukt –, gilt diese Freigabe nicht für Workist. Die Workist Client-ID muss
zusätzlich eingetragen werden.
:::

### Schritt 9: Applikationsserver neu starten

Erst mit dem Neustart werden die Dateien der Erweiterung verteilt und die neuen Endpunkte aktiv.

1. Stoppen Sie im Sage Server Manager unter **Server** → **Verwaltung** → **Dienste** den Dienst
   **Sage Application Server**.
2. Prüfen Sie im Task-Manager, ob alle Prozesse `Sagede.ApplicationServer.IsolationProcess.exe`
   beendet sind. Beenden Sie verbliebene Prozesse von Hand.
3. Starten Sie den Dienst wieder.
4. Prüfen Sie im Shared-Verzeichnis Ihrer Sage 100 (Standard:
   `C:\Program Files (x86)\Sage\Sage 100\9.0\Shared`), ob diese Dateien vorhanden sind:

| Datei | Prüfung |
| --- | --- |
| `PSDev.Sage100.Workist.BusinessLogic.dll` | Dateiversion passt zur Sage 100-Version |
| `PSDev.Sage100.Workist.Core.dll` | Dateiversion passt zur Sage 100-Version |
| `PSDev.Sage100.Workist.DataAccess.dll` | Dateiversion passt zur Sage 100-Version |
| `PSDev.Sage100.Workist.RealTimeData.dll` | Dateiversion passt zur Sage 100-Version |
| `Newtonsoft.Json.dll` | vorhanden |

Die Dateiversion setzt sich aus Major, Minor und Build Ihrer Sage 100 sowie dem Stand der
Erweiterung zusammen – etwa `9.0.9173.1` für Sage 100 9.0.8:

| Sage 100-Version | Major.Minor | Build |
| --- | --- | --- |
| 9.0.8 | 9.0 | 9173 |
| 9.0.9 | 9.0 | 9670 |
| 9.0.10 | 9.1 | 268 |
| 9.0.11 | 9.1 | 866 |

Fehlen die Dateien nach dem Neustart, kopieren Sie sie aus dem Ordner `DLLS` des passenden Pakets
in das Shared-Verzeichnis. Ist eine Datei – meist `Newtonsoft.Json.dll` – in Benutzung, lässt sie
sich erst ersetzen, wenn Sage 100 und der Applikationsserver beendet sind. Anschließend starten
Sie den Applikationsserver erneut.

### Checkliste vor der Übergabe an Workist

Haken Sie diese Punkte ab, bevor Sie uns die Angaben für Schritt 10 schicken:

- [ ] Connectivity Gateway verbunden, EntitlementID notiert (Schritt 1)
- [ ] Paket zur Sage 100-Version importiert, Berechtigungen und Workist-Felder eingespielt (Schritte 2–5)
- [ ] Jede Datenbank für Workist freigegeben (Schritt 6)
- [ ] Workist-Benutzer angelegt und im Bereich **API** berechtigt (Schritt 7)
- [ ] Workist Client-ID unter **Externe API-Benutzer verwalten** eingetragen und dem Workist-Benutzer zugeordnet (Schritt 8)
- [ ] Applikationsserver **nach** Schritt 8 neu gestartet, DLLs vorhanden (Schritt 9)
- [ ] Belegart angelegt und Kennzeichen bekannt ([Belegart](/docs/data-exchange/connectors/sage-100.md#belegart))

## Schritt 10: Verbindung in Workist anlegen

Mit den folgenden Angaben legt Workist die Verbindung zu Ihrer Sage 100 an – in Workist unter
**Einstellungen** → **Integrationen** → **Sage 100**:

| Angabe | Beispiel | Erläuterung |
| --- | --- | --- |
| **Name** | `Sage 100 Test` | Frei wählbar. Ein Name, der Test- und Produktivumgebung unterscheidet, erleichtert später den Wechsel. |
| **EntitlementID** | – | Aus Schritt 1 – siehe [EntitlementID](/docs/data-exchange/connectors/sage-100.md#entitlementid) |
| **DataSet** | `WAWI_DB;1` | Datenbankname, Semikolon, Mandantennummer – siehe [DataSet](/docs/data-exchange/connectors/sage-100.md#dataset), dort auch, wo Sie beide Werte finden |
| **Belegart** | `VVA` | Kennzeichen der Belegart – siehe [Belegart](/docs/data-exchange/connectors/sage-100.md#belegart) |
| **Kanäle** | – | Die Workist-Kanäle, deren Bestellungen in diese Sage 100 übertragen werden |
| **Version der Erweiterung** (*Sage 100 API Version*) | `8` | Installierte Version der Workist API-Erweiterung – siehe [Version](/docs/data-exchange/connectors/sage-100.md#version-der-workist-api-erweiterung) |
| **Angebots-Belegart** (*Sage 100 Offer Document Type*) | `VPA` | Kennzeichen der Angebote für den Angebotsabgleich, ab Version 8 – siehe [Angebots-Belegart](/docs/data-exchange/connectors/sage-100.md#angebots-belegart) |

Ab Version 8 stellen Sie in derselben Verbindung außerdem die Preisprüfung, das Anlegen als Entwurf
und das Schreiben durch Agenten ein – siehe
[Funktionen ab Version 8](/docs/data-exchange/connectors/sage-100.md#funktionen-ab-version-8-der-erweiterung). Alle drei sind im
Standard ausgeschaltet.

:::warning DataSet genau so schreiben, wie es in Sage 100 steht
Datenbankname und Mandantennummer werden durch ein **Semikolon** getrennt, ohne Leerzeichen. Ein
Tippfehler im Datenbanknamen oder ein vertauschtes Trennzeichen führt dazu, dass Workist keine
Verbindung zur Datenbank bekommt.
:::

## Schritt 11: Verbindung prüfen

### Stammdaten

Nach dem Anlegen der Verbindung stößt Workist den ersten Stammdatenimport an. Danach
aktualisiert Workist die Stammdaten **einmal täglich** automatisch. Den Stand sehen Sie in
Workist unter **Einstellungen** → **Integrationen** → **Sage 100**: Dort stehen der Status der
Verbindung, der Zeitpunkt der letzten Stammdatenaktualisierung und – während ein Import läuft – der
Hinweis auf die laufende Datenaktualisierung. Laden Sie die Seite neu, um den aktuellen Stand zu
sehen. Über dieselbe Seite lässt sich eine Aktualisierung auch von Hand anstoßen.

Der erste Import kann je nach Datenmenge einige Zeit dauern. Prüfen Sie danach unter
**Stammdaten verwalten** im jeweiligen Kanal, ob die Anzahl an Kunden, Lieferadressen und Artikeln
plausibel ist.

:::note Änderungen in Sage 100 erreichen Workist mit dem nächsten Import
Was Sie tagsüber in Sage 100 ändern – etwa einen neu angelegten Artikel – steht in Workist erst
nach der nächsten Stammdatenaktualisierung zur Verfügung.
:::

### Testbeleg

Schicken Sie eine echte Bestellung als Test durch Workist und schließen Sie sie ab. Prüfen Sie in
Sage 100:

- Ist der Beleg in der hinterlegten Belegart entstanden?
- Stehen Kunde, Bestellnummer, Artikel und Mengen in den richtigen Feldern?
- Wurde eine Lieferadresse übernommen? Ist auf der Bestellung keine angegeben, setzt Sage 100 die
  Standard-Lieferadresse des Kunden.

Testbelege entstehen in der **Testdatenbank** – suchen Sie sie dort, nicht in der Vorgangsauskunft
Ihrer Produktivdatenbank. Löschen Sie sie nach dem Test. Eine eigene Test-Belegart ohne weitere
Wirkung macht Testbelege zusätzlich leicht erkennbar.

Workist legt einen Beleg nur an, wenn eine **Kundennummer** ermittelt wurde. Lehnt Sage 100 den
Beleg ab, zeigt Workist die Meldung von Sage 100 am Dokument an. Nach der Korrektur lässt sich die
Übertragung direkt am Dokument erneut anstoßen – Sie müssen das Dokument nicht noch einmal an
Workist senden.

## Wechsel in die Produktivumgebung

Laufen Stammdaten und Testbelege in der Testumgebung sauber, wird die Produktivdatenbank
angebunden. Planen Sie dafür einen eigenen kurzen Termin mit Ihrem Sage 100-Partner und Workist ein.

1. Führen Sie die Schritte 4–7 auf der Produktivdatenbank aus, sofern noch nicht geschehen: Die
   Datenbank muss freigegeben sein, und der Workist-Benutzer braucht dort dieselben Berechtigungen
   wie in der Testdatenbank.
2. Teilen Sie uns das DataSet der Produktivdatenbank mit. Die EntitlementID bleibt dieselbe.
3. Workist legt eine Verbindung mit dem DataSet der Produktivdatenbank an oder stellt die
   bestehende um. Die Umstellung nehmen wir in Workist vor – in Sage 100 ist dafür nichts weiter
   zu tun.
4. Ihre Mitarbeitenden leiten Bestellungen ab jetzt an die Adresse des **produktiven** Kanals
   weiter, nicht mehr an die des Testkanals.

Steht Ihnen kein eigenes Testsystem zur Verfügung, genügt eine Kopie der Datenbank auf dem
produktiven Applikationsserver – sofern die Schritte 4–7 auch auf der Kopie ausgeführt wurden.

## Neue Version der Workist API-Erweiterung

Erweitert Workist den Konnektor, erhalten Sie eine neue Version der Erweiterung. Installieren Sie
sie genauso wie die erste Version – Schritte 2–5 und 9, einschließlich der Skripte und des Neustarts
im Wartungsfenster. Welche Version installiert ist, zeigt der AppDesigner. Geben Sie uns Bescheid,
sobald die neue Version installiert ist.

Version 8 ergänzt die Belegfelder Speicherstatus, Belegdatum, Matchcode, Memo, Kostenstelle und
Kostenträger – siehe [Feldreferenz](/docs/data-exchange/connectors/sage-100-fields.md#weitere-felder-ab-version-8-der-erweiterung).
Führen Sie beim Update auf Version 8 das Berechtigungsskript aus
([Schritt 4](#schritt-4-berechtigungen-einspielen)). Danach stellt Workist die Verbindung auf
Version 8 um; erst dann stehen die [Funktionen ab Version 8](/docs/data-exchange/connectors/sage-100.md#funktionen-ab-version-8-der-erweiterung)
zur Verfügung.

## Nach einem Sage 100-Update

Die Erweiterung ist an Ihre Sage 100-Version gebunden. Planen Sie ein Update von Sage 100, gehört
die Erweiterung dazu: Nach dem Update installieren Sie das Paket für die **neue** Version erneut
(Schritte 2–5 und 9). Steht für die neue Version noch kein Paket bereit, sprechen Sie uns vor dem Update
an.

## Fehlerbehebung

| Meldung oder Verhalten | Ursache | Lösung |
| --- | --- | --- |
| *Es konnte kein Handler für ENDPUNKT ermittelt werden.* | Die Endpunkte der Erweiterung oder die Freigabe aus Schritt 8 sind im Applikationsserver noch nicht aktiv. | Applikationsserver neu starten – [Schritt 9](#schritt-9-applikationsserver-neu-starten). |
| *Websocket client 'NUMMER' has not been connected to the WebSocket Server.* | Der Dienst **Sage Cloud Connectivity Client** läuft nicht, oder die Externe API ist nicht konfiguriert. | Dienst starten; Externe API im Server Manager prüfen – [Schritt 1](#schritt-1-connectivity-gateway-verbinden). |
| Kein Zugriff auf Verkaufsbelege | Dem Workist-Benutzer fehlen Berechtigungen. | Berechtigungen prüfen – [Schritt 7](#schritt-7-workist-benutzer-anlegen-und-berechtigen). |
| *Der Wert … ist für das Feld Belegtyp-Kennzeichen nicht gültig.* | Die hinterlegte Belegart gibt es in diesem Mandanten nicht. | Kennzeichen der Belegart prüfen – [Belegart](/docs/data-exchange/connectors/sage-100.md#belegart). |
| *Der Wert … ist für das Feld … nicht gültig.* (etwa für die Lieferbedingung) | Sage 100 akzeptiert nur Werte, die in Ihrem Mandanten hinterlegt sind – in genau dieser Schreibweise. | Wert in Sage 100 anlegen oder die Schreibweise abgleichen. |
| Zugriff verweigert (HTTP 401 oder 403), beim ersten Verbinden oder nach dem Wechsel auf die Produktivdatenbank | Die Anmeldung von Workist wird abgewiesen – bei HTTP 401 meist, weil Workist nicht als externer API-Benutzer zugelassen ist. | Prüfen Sie zuerst: Client-ID unter **Externe API-Benutzer verwalten** eingetragen und dem Workist-Benutzer zugeordnet, danach Applikationsserver neu gestartet ([Schritt 8](#schritt-8-workist-als-externen-api-benutzer-zulassen)). Danach: Berechtigungen dieses Benutzers in **dieser** Datenbank, Datenbank freigegeben ([Schritt 6](#schritt-6-datenbanken-freigeben)), Dienst **Sage Cloud Connectivity Client** läuft, Entitlement und Applikationsserver ausgewählt ([Schritt 1](#schritt-1-connectivity-gateway-verbinden)), andere Produkte auf demselben Gateway. |
| Fehler beim Datenbankzugriff nur bei Ansprechpartnern, alle anderen Daten kommen an | Fehler in älteren Versionen der Erweiterung bei benutzerdefinierten Feldern der Adressentabelle | Aktuelle Version der Erweiterung installieren – siehe [Neue Version](#neue-version-der-workist-api-erweiterung). Kunden, Artikel und Belege sind davon nicht betroffen. |
| Beleg wird abgelehnt, weil ein Wert zu lang ist | Sage 100 begrenzt die Feldlänge – der Name einer Lieferadresse etwa ist auf 50 Zeichen beschränkt. | Wert im Dokument kürzen und die Übertragung erneut anstoßen. |
| Abweichende Lieferadresse kommt nicht in Sage 100 an | Ohne Namen übernimmt Sage 100 eine abweichende Lieferadresse nicht. | Namen der Lieferadresse im Dokument ergänzen. |
| Belege werden abgelehnt, oder die letzte Stammdatenaktualisierung liegt mehrere Tage zurück | Der API-Dienst auf Ihrem Sage 100-Server reagiert nicht mehr. | Dienste **Sage Application Server** und **Sage Cloud Connectivity Client** neu starten. Behalten Sie den Zeitpunkt der letzten Stammdatenaktualisierung in Workist im Blick – er zeigt früh, wenn die Verbindung hängt. |
| Verbindung schlägt fehl, obwohl alle Schritte erledigt sind | DataSet falsch geschrieben, Datenbank nicht freigegeben, Workist nicht als externer API-Benutzer zugelassen oder Applikationsserver noch nicht neu gestartet. | [DataSet](/docs/data-exchange/connectors/sage-100.md#dataset), [Schritt 6](#schritt-6-datenbanken-freigeben), [Schritt 8](#schritt-8-workist-als-externen-api-benutzer-zulassen) und [Schritt 9](#schritt-9-applikationsserver-neu-starten) prüfen. |
| Datei im Shared-Verzeichnis lässt sich nicht ersetzen | Die Datei ist in Benutzung. | Sage 100 und Applikationsserver beenden, Datei ersetzen, Applikationsserver starten. |

### Protokolle für den Support

Die genaue Fehlerursache gibt die Sage 100 API nicht nach außen weiter – sie steht im TraceLog
Ihrer Sage 100. Brauchen wir oder Sage für die Analyse ein Protokoll:

1. Packen Sie den gesamten Protokollordner als ZIP-Datei (Standard: `C:\SageLog\Default`).
2. Nennen Sie uns den ungefähren Zeitpunkt des Fehlers.

Wurde am betreffenden Tag noch keine Protokolldatei geschrieben, starten Sie zuvor den Dienst
**Sage Logging Service** neu. Das ist auch im laufenden Betrieb möglich.

## Referenz

### Downloads

| Datei | Inhalt |
| --- | --- |
| [Workist API-Erweiterung Version 8 (ZIP)](/files/sage-100/workist-api-erweiterung.zip) | Je ein Paket pro unterstützter Sage 100-Version |
| [Workist API Installationsanleitung (PDF)](/files/sage-100/workist-api-installationsanleitung.pdf) | Anleitung von Sage: Metadatenimport, Dateiverteilung, Fehleranalyse |

### Workist Client-ID

Workist authentifiziert sich gegenüber Ihrem Sage 100-System über **Sage ID** mittels OpenID
Connect im Maschine-zu-Maschine-Betrieb (M2M).

Die Workist Client-ID lautet: `WPw9RlvT5I5XCX25kAsOKB3REYv98FRq`

:::note Die Client-ID ist kein Passwort
Die Client-ID ist eine öffentliche Anwendungskennung und für alle Workist-Kunden identisch. Es
gibt kein Passwort und kein Client Secret, das Sie hinterlegen müssten.

Im M2M-Betrieb tritt die Client-ID **an die Stelle der Sage ID-E-Mail-Adresse** als Identität des
aufrufenden Systems. Sie wird also dort hinterlegt, wo bei einem interaktiven Benutzer das
Sage-Konto eingetragen wird – nicht als Kennwort, nicht als Lizenzschlüssel und nicht als Eingabe
im Server Manager. Wo genau, steht in
[Schritt 8](#schritt-8-workist-als-externen-api-benutzer-zulassen).
:::

### Benötigte Berechtigungen

Die für die API relevanten Berechtigungen werden im Sage 100 Administrator im Bereich **API**
aufgeführt:

| Bereich | Berechtigungen |
| --- | --- |
| `API.VK` | Verkaufsbeleg, Verkaufsbelegposition, VKBeleg, VKBelegePositionen, VKBelegPositionLager, VKArtikelPreisfinding |
| `API.EK` | EKBeleg, EKBelegPosition, EKBelegPositionLager |
| `API.Artikel` | Artikel, Lagerplatzbestände |
| `API.Kunden` | Kunde |
| `API.Ansprechpartner` | Ansprechpartner |
| `API.Lager` | Lagersuche |
| `API.Lieferanschriften` | Lieferanschriften |
| `API.Projekte` | Projekte |
| `API.Rewe` | Suche Kostenstelle, Suche Kostenträger (ab Version 8) |

Zusätzlich legt die API-Erweiterung Berechtigungen im Bereich **SData-Dienste** an (Stammdaten,
Bewegungsdaten und Realtime-Data).
