# Leistungsverzeichnis (List of Services)

Für Leistungsverzeichnisse gibt es diese Standardformate: [SAP IDoc BOMMAT07](#sap-idoc) als Ausgabedatei (Standard) und [GAEB DA XML X94](#gaeb-x94), das Ihr System über die API erzeugen lässt. Kopfdaten, Positionen und vorgeschlagene Artikel können Sie außerdem über die [Dokument-API](/docs/api-documentation/document-api.md) als JSON abrufen. Eigene Layouts in JSON, CSV, TXT oder XLSX, z. B. mit einer Zeile je vorgeschlagenem Artikel, baut Workist auf Anfrage, siehe [Individuelle Formate auf Anfrage](/docs/output-formats.md#custom-formats).

---

## SAP IDoc BOMMAT07 {#sap-idoc}

**Dateiendung:** `.xml`  
**Dateiname:** `BOM_<IDoc-Nummer>.xml`

Das Standardformat für Leistungsverzeichnisse: ein SAP-Stücklisten-IDoc (Basistyp `BOMMAT07`). Workist schreibt einen Stücklistenkopf und je Artikel einer relevanten Position eine Stücklistenposition mit Text. Vortexte und als nicht relevant markierte Positionen sowie Positionen ohne Artikelnummer lässt Workist weg.

Das Format hat eine feste Struktur. Die Feldauswahl Ihres Kanals ändert es nicht.

### Vollständiges Beispiel

Im Beispiel hat das Leistungsverzeichnis einen Vortext, zwei relevante Positionen und eine nicht relevante Position. Nur die beiden relevanten Positionen erscheinen.

```xml
<?xml version="1.0" encoding="utf-8"?>
<BOMMAT07>
  <IDOC BEGIN="1">
    <EDI_DC40 SEGMENT="1">
      <TABNAM>EDI_DC40</TABNAM>
      <MANDT>050</MANDT>
      <DOCNUM>0000000000004711</DOCNUM>
      <STATUS>30</STATUS>
      <DIRECT>1</DIRECT>
      <OUTMOD>2</OUTMOD>
      <IDOCTYP>BOMMAT07</IDOCTYP>
      <MESTYP>BOMMAT</MESTYP>
      <STD>0</STD>
      <STDMES>BOMMAT</STDMES>
      <SNDPOR>SAPC11</SNDPOR>
      <SNDPRT>LS</SNDPRT>
      <SNDPRN>WORKIST</SNDPRN>
      <RCVPOR>XML_WKI</RCVPOR>
      <RCVPRT>LS</RCVPRT>
      <RCVPRN>WORKIST</RCVPRN>
      <CREDAT>20250315</CREDAT>
      <CRETIM>143025</CRETIM>
    </EDI_DC40>
    <E1CSUMHDR SEGMENT="1">
      <MATNR>OBJ-2025-17</MATNR>
      <WERKS>CUST-12345</WERKS>
      <STLAL>01</STLAL>
      <STLNR>0000000001</STLNR>
      <STLAN>1</STLAN>
      <STLST>01</STLST>
      <BASEQ />
      <BASEU />
      <DATUV />
      <DATUB />
      <BOM_STATUS>1</BOM_STATUS>
      <AUTH_GROUP>0001</AUTH_GROUP>
      <CHANGE_NO>0000000000001</CHANGE_NO>
      <ITEM_CAT>L</ITEM_CAT>
    </E1CSUMHDR>
    <E1STPOM SEGMENT="1">
      <POSNR>01.01.0010</POSNR>
      <IDNRK>ART-001-A</IDNRK>
      <MENGE>12</MENGE>
      <MEINS>Stk</MEINS>
      <SORTF>0001</SORTF>
      <POSTP>L</POSTP>
      <DATUV />
      <DATUB />
    </E1STPOM>
    <E1STKOM SEGMENT="1">
      <IDNRK>ART-001-A</IDNRK>
      <POSNR>01.01.0010</POSNR>
      <TEXT1>Industrial Sensor Module Type A</TEXT1>
      <POSTP>L</POSTP>
      <ALPGR>01</ALPGR>
      <SORTF>0001</SORTF>
    </E1STKOM>
    <E1STPOM SEGMENT="1">
      <POSNR>01.01.0020</POSNR>
      <IDNRK>ART-002-B</IDNRK>
      <MENGE>250</MENGE>
      <MEINS>m</MEINS>
      <SORTF>0001</SORTF>
      <POSTP>L</POSTP>
      <DATUV />
      <DATUB />
    </E1STPOM>
    <E1STKOM SEGMENT="1">
      <IDNRK>ART-002-B</IDNRK>
      <POSNR>01.01.0020</POSNR>
      <TEXT1>Cable duct 60x40</TEXT1>
      <POSTP>L</POSTP>
      <ALPGR>01</ALPGR>
      <SORTF>0001</SORTF>
    </E1STKOM>
  </IDOC>
</BOMMAT07>
```

### Segmente

| Element | Inhalt |
|---|---|
| `EDI_DC40` | Kontrollsatz. Fest: `TABNAM`, `MANDT` (`050`), `STATUS` (`30`), `DIRECT` (`1`), `OUTMOD` (`2`), `IDOCTYP` (`BOMMAT07`), `MESTYP` und `STDMES` (`BOMMAT`), `STD` (`0`), `SNDPOR` (`SAPC11`), `SNDPRT` (`LS`), `SNDPRN` (`WORKIST`). `DOCNUM` = fortlaufende 16-stellige IDoc-Nummer, `CREDAT`/`CRETIM` = Erstellungszeitpunkt (UTC). `RCVPOR`, `RCVPRT` und `RCVPRN` stellt Workist für Sie ein (Standard `XML_WKI`, `LS`, `WORKIST`). |
| `E1CSUMHDR` | Stücklistenkopf: `MATNR` = Objektnummer des Leistungsverzeichnisses, `WERKS` = Kundennummer. Fest: `STLAL` (`01`), `STLNR`, `STLAN` (`1`), `STLST` (`01`), `BOM_STATUS` (`1`), `AUTH_GROUP` (`0001`), `CHANGE_NO`, `ITEM_CAT` (`L`). `BASEQ`, `BASEU`, `DATUV` und `DATUB` bleiben leer. |
| `E1STPOM` | Eine Stücklistenposition je Artikel einer relevanten Position: `POSNR` = Positionsnummer aus dem Leistungsverzeichnis, `IDNRK` = Artikelnummer (max. 35 Zeichen), `MENGE` = Menge (max. 10 Zeichen), `MEINS` = Mengeneinheit. Fest: `SORTF` (`0001`), `POSTP` (`L`); `DATUV` und `DATUB` bleiben leer. |
| `E1STKOM` | Text zur Stücklistenposition: `IDNRK` und `POSNR` wie oben, `TEXT1` = Artikelbeschreibung. Fest: `POSTP` (`L`), `ALPGR` (`01`), `SORTF` (`0001`). |

### Einstellungen

Diese Werte stellt Workist bei der Einrichtung passend zu Ihrem SAP-System ein. Längere Werte werden abgeschnitten.

| Feld | Standard | Max. Zeichen |
|---|---|---|
| `RCVPOR` | `XML_WKI` | 10 |
| `RCVPRT` | `LS` | 2 |
| `RCVPRN` | `WORKIST` | 10 |

---

## GAEB DA XML X94 {#gaeb-x94}

**Dateiendung:** `.xml`

Ist das Leistungsverzeichnis als GAEB-Datei X83 (GAEB DA XML 3.3) eingegangen, kann Ihr System über die Workist-API ein Angebot im Format X94 erzeugen lassen. Details zum Aufruf finden Sie in der [Dokument-API](/docs/api-documentation/document-api.md).

So funktioniert es:

1. Ihr System übermittelt je Position, die es anbieten möchte, die GAEB-ID der Position und Ihre Angebotsdaten: Artikelnummer, Positionsart (Normal-, Alternativ- oder Bedarfsposition), Menge, Einheit, Nettopreis, Angebotspreis, Preisbasis und Abrechnungseinheit, Umsatzsteuer, EAN und Langtext.
2. Dazu kommen Ihre Lieferantendaten: Lieferantennummer, Adresse, Steuernummer und Registrierungsnummer.
3. Workist erzeugt aus der ursprünglichen X83-Datei und Ihren Angaben eine X94-Datei, prüft sie gegen das GAEB-Schema und gibt sie zurück.

Workist lehnt die Anfrage ab, wenn eine GAEB-ID zu keiner Position des Leistungsverzeichnisses gehört, wenn das Leistungsverzeichnis nicht als X83-Datei eingegangen ist oder wenn die erzeugte X94-Datei nicht schemakonform ist.
