Backend-API — MSB
Das Backend eines MSB bedient zwei Gruppen von Aufrufen. Die erste gilt nur für diese Rolle; die zweite ist für LF, NB und MSB wortgleich dieselbe.
Nur für MSB
| Operation | Bereich | Aufruf | deutsche Benennung | Quellen | Regeln MSB |
|---|---|---|---|---|---|
| Prozessdaten aktualiseren | Prozessdaten MSB (Backend) | POST /prozessdaten/msb/update | — | maco-api.yaml · doc.macoapp.de | — |
| Prozessdaten erstellen | Prozessdaten MSB (Backend) | POST /prozessdaten/msb/create | /erstellenProzessdaten | maco-api.yaml · macoapp-schreiben.json · doc.macoapp.de | — |
Prozessdaten aktualiseren
| Was | Aufruf | Kommando | Quelle |
|---|---|---|---|
| ausgelieferte Benennung | POST /updateProcessData | AKTUALISIEREN_PROZESSDATEN | doc.macoapp.de |
| rollengegliederte Benennung | POST /prozessdaten/msb/update | PROZESSDATEN_UPDATE_MSB | maco-api.yaml |
Rolle: MSB — belegt durch doc.macoapp.de und maco-api.yaml.
Anfragekörper: ProcessData
Antwort (200): object
Entspricht in doc.macoapp.de: „Prozessdaten aktualiseren“ im Zweig „Prozessdaten MSB (Backend)“ (prozessdaten-aktualiseren-14669402e0)
Prozessdaten erstellen
Verbuchung von Daten aus Marktprozesen im Backend
| Was | Aufruf | Kommando | Quelle |
|---|---|---|---|
| deutsche Benennung | POST /erstellenProzessdaten | ERSTELLEN_PROZESSDATEN | macoapp-schreiben.json |
| ausgelieferte Benennung | POST /createProcessData | ERSTELLEN_PROZESSDATEN | doc.macoapp.de |
| rollengegliederte Benennung | POST /prozessdaten/msb/create | PROZESSDATEN_CREATE_MSB | maco-api.yaml |
Rolle: MSB — belegt durch doc.macoapp.de und maco-api.yaml.
Drei Namen für einen Aufruf
Die drei Quellen benennen diesen Aufruf verschieden. Verbindlich für die BPMN-Diagramme dieser Doku ist die deutsche Benennung: die Diagramme sind mit ihr beschriftet.
Anfragekörper: ProcessData
Antwort (200): object
Entspricht in doc.macoapp.de: „Prozessdaten erstellen“ im Zweig „Prozessdaten MSB (Backend)“ (prozessdaten-erstellen-14669391e0)
Für alle Rollen gleich
Diese 32 Operationen nennt keine Quelle rollengebunden — ein MSB stellt sie genauso bereit wie jede andere Rolle. Die letzte Spalte zählt, an wie vielen Regeln der MSB-Konnektortabelle sie tatsächlich aufgerufen werden (Formatversion 202604).
| Operation | Bereich | Aufruf | deutsche Benennung | Quellen | Regeln MSB |
|---|---|---|---|---|---|
| Avis lesen | BO4E Lesen (Backend) | GET /getAvisBasic | /lesenAvisBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Berechnungsformel lesen | BO4E Lesen (Backend) | GET /getCalculationFormulaBasic | /lesenBerechnungsformelBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Bilanzierung lesen | BO4E Lesen (Backend) | GET /getAccountingBasic | /lesenBilanzierungBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 1 |
| Energieliefervertrag lesen | BO4E Lesen (Backend) | GET /getEnergySupplyContractBasic | /lesenEnergieliefervertragBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Energiemengen aus Abrechnungskontext lesen | BO4E Lesen (Backend) | GET /getEnergyAmount | /lesenEnergiemengeEnergiemenge | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Kommunikationsdaten des Serviceanbieters lesen | BO4E Lesen (Backend) | GET /getCommunicationDataBasic | /lesenKommunikationsdatenBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Lastgangs einer Lokation lesen | BO4E Lesen (Backend) | GET /getEnergyAmountLoadCurve | /lesenEnergiemengeLastgang | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Leistungskurvendefinition lesen | BO4E Lesen (Backend) | GET /getDefinitionPerformance | — | doc.macoapp.de | — |
| Lokationsbündel lesen | BO4E Lesen (Backend) | GET /getLocationBundleBasic | /lesenLokationsbundBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 2 |
| Marktlokation lesen | BO4E Lesen (Backend) | GET /getMarketLocationBasic | /lesenMarktlokationBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 38 |
| Messlokation lesen | BO4E Lesen (Backend) | GET /getMeterLocationBasic | /lesenMesslokationBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 54 |
| Messstellenbetriebsvertrag lesen | BO4E Lesen (Backend) | GET /getMeasuringPointOperationContractBasic | /lesenMessstellenbetriebsvertragBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Netzlokation lesen | BO4E Lesen (Backend) | GET /getGridLocationBasic | /lesenNetzlokationBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 11 |
| Netznutzungsvertrag lesen | BO4E Lesen (Backend) | GET /getGridUsageContractBasic | /lesenNetznutzungsvertragBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Preisblatt lesen | BO4E Lesen (Backend) | GET /getPriceSheetBasic | — | maco-api.yaml · doc.macoapp.de | 4 |
| Schaltzeitdefinition lesen | BO4E Lesen (Backend) | GET /getDefinitionSwitch | — | doc.macoapp.de | — |
| Steuerbare Ressource lesen | BO4E Lesen (Backend) | GET /getControllableResourceBasic | /lesenSteuerbareRessourceBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 6 |
| Technische Ressource lesen | BO4E Lesen (Backend) | GET /getTechnicalResourceBasic | /lesenTechnischeRessourceBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 2 |
| Tranche lesen | BO4E Lesen (Backend) | GET /getTrancheBasic | /lesenTrancheBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 8 |
| Zaehlzeitdefinition lesen | BO4E Lesen (Backend) | GET /getDefinitionCounting | — | doc.macoapp.de | — |
| Zähler lesen | BO4E Lesen (Backend) | GET /getCounterBasic | /lesenZaehlerBasis | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | 12 |
| Zählerstand einer Lokation lesen | BO4E Lesen (Backend) | GET /getEnergyAmountMeterReading | /lesenEnergiemengeZaehlerstand | maco-api.yaml · macoapp-lesen.json · doc.macoapp.de | — |
| Empfang einer Marktnachricht | MCS-Eingang | POST /receive | — | maco-api.yaml | — |
| Absenderdaten lesen | Obsolet | GET /lesenMarktteilnehmerAbsender | /lesenMarktteilnehmerAbsender | maco-api.yaml · macoapp-lesen.json | — |
| Empfängerdaten lesen | Obsolet | GET /lesenMarktteilnehmerEmpfaenger | /lesenMarktteilnehmerEmpfaenger | maco-api.yaml · macoapp-lesen.json | — |
| Verwendungszeitraum einer Marktlokation ermitteln | Obsolet | GET /getMarketlokationAllocationPeriod | — | maco-api.yaml | — |
| Zuordnungsemächtigung lesen (UNKNOWN) | Prozessdaten | POST /prozessdaten/unknown/update | — | maco-api.yaml | — |
| Zuordnungsemächtigung lesen | Prozessdaten lesen (Backend) | GET /getAllocationAuthorization | — | doc.macoapp.de | — |
| LESEN_MARKTLOKATION_VERWENDUNGSZEITRAUM | nur macoapp-lesen.json | GET /lesenMarktlokationVerwendungszeitraum | /lesenMarktlokationVerwendungszeitraum | macoapp-lesen.json | — |
| AKTUALISIEREN_MDOC_BASIS | nur macoapp-schreiben.json | POST /aktualisierenMdocBasis | /aktualisierenMdocBasis | macoapp-schreiben.json | — |
| ERSTELLEN_PROZESSDATEN_MALOIDENTANTWORT_NEGATIV | nur maloident-lieferant.json | POST /erstellenProzessdatenMaloidentantwortNegativ | /erstellenProzessdatenMaloidentantwortNegativ | maloident-lieferant.json | — |
| ERSTELLEN_PROZESSDATEN_MALOIDENTANTWORT_POSITIV | nur maloident-lieferant.json | POST /erstellenProzessdatenMaloidentantwortPositiv | /erstellenProzessdatenMaloidentantwortPositiv | maloident-lieferant.json | — |
Fehler und Wiederholung
Die sechste der Fragen, die diese Seiten ausgeloest haben: was geschieht, wenn euer Backend auf einen Callback mit einem Fehler antwortet.
Was euer Backend antwortet
Die Spezifikation kennt genau drei Antworten, und sie kennt sie fuer createProcessData und updateProcessData gleichermassen — gemessen ueber alle drei Rollen und beide Formatversionen:
| Code | Bedeutung | Rumpf |
|---|---|---|
200 | angenommen | keiner — „200 ok“ heißt kein Rumpf |
400 | die Anfrage ist fehlerhaft | ProblemDetails nach RFC 9457 |
422 | die Anfrage ist verstanden, aber fachlich nicht verarbeitbar | ProblemDetails nach RFC 9457 |
Alle 24 Fehlerantworten der sechs Kataloge tragen ProblemDetails; der Medientyp bleibt application/json.
Ob die MACO APP wiederholt
Beim Schreiben ins Backend nicht. Gemessen am 05.09.2026 an der Verdrahtung des Konnektor-Flusses: in die Wiederholung laeuft dort allein der Transportfehler (Verbindung nicht zustande gekommen, Zeitueberschreitung), und zwar hoechstens dreimal. Eine 5xx- und eine 4xx-Antwort gehen ohne Wiederholung in die Fehlerbehandlung.
Hier weicht die Messung von der muendlichen Auskunft ab
Auskunft des Betriebs: „bei 5xx drei Wiederholungen“. Das trifft nach dieser Messung auf den lesenden Aufruf ins Backend zu — dort laeuft die 5xx-Antwort ausdruecklich in dieselbe Wiederholung wie der Transportfehler, ebenfalls dreimal. Beim schreibenden Aufruf, also bei createProcessData und updateProcessData, tut sie es nicht.
Der lesende Fluss ist zugleich die Gegenkontrolle: dieselbe Auswertung findet die Wiederholungsbeziehung dort, die Abwesenheit im schreibenden Fluss ist also ein gemessener Unterschied und kein blinder Messfuehler.
Wer auf eine Wiederholung baut, plant hier eine ein, die es nicht gibt. Bis das gegen die laufende Instanz gegengeprueft ist, gilt die Messung.
Was stattdessen passiert
Was ein Fehler ausloest, ist je Pruefidentifikator und je Schnittstelle konfiguriert. Die Entscheidung steht in der Konnektortabelle S_NACHRICHTEN_KONNEKTOR der Prozess-Repositorien, in der Spalte „Verhalten, wenn Fehler von API“.
| Wert | Wirkung | Wie oft er tatsaechlich gesetzt ist |
|---|---|---|
IGNORIEREN | der Prozess laeuft weiter | 9 837 Regeln |
AUFGABE-SB | eine Aufgabe fuer die Sachbearbeitung entsteht | 3 364 Regeln |
AUFGABE-PC | eine Aufgabe fuer die Prozesscontrolle entsteht | 25 Regeln |
ABBRECHEN | der Prozess bricht ab | 0 Regeln — der Wert ist zugelassen und wird nirgends benutzt |
Gemessen ueber die 15 Konnektortabellen der drei Rollen und aller Fassungen. Dass ABBRECHEN in der Werteliste steht, sagt also nur, dass es moeglich waere; gesetzt ist es an keiner einzigen Regel. Was nicht ignoriert wird, wird zur Aufgabe.
Die Aufgabe erscheint im Klaerfallmonitor der Oberflaeche (/clearcaseMonitorOpen, Gruppe „Sachbearbeitung“), wo sie ein Mensch entscheidet — wiederholen, abbrechen oder beenden. Der Abbruch ist damit die Wahl eines Sachbearbeiters in der Aufgabe und keine Voreinstellung der Tabelle.
Sichtbarkeit der Fehlerantwort
Die Fehlerantwort ist am Vorgang sichtbar. Auskunft des Betriebs, gegen die laufende Instanz ungeprueft. Der Absprung auf den Vorgang steht unter Schluessel und Zuordnung.