Skip to main content

Crate mako_gpke

Crate mako_gpke 

Source
Expand description

mako-gpke — GPKE (Geschäftsprozesse Kundenlieferantenwechsel und Netznutzungsabrechnung) process engine for German electricity market communication (BDEW MaKo).

§Process family

GPKE governs the standard market processes for supplier switching, grid connection management, and billing reconciliation in the German electricity market:

§UTILMD-based supplier-switching and feed-in processes (LFW24, S2.1/S2.2)

§Inbound ANFRAGE — routed to gpke-supplier-change
PIDProcess name (AHB)
55001Anmeldung verb. MaLo — Lieferbeginn (LFN → NB)
55004Abmeldung — Lieferende (LFN → NB)
55077Anmeldung erz. MaLo (LFN → NB, BK6-24-174)

That is the whole of UTILMD_ANFRAGE_PIDS. Two neighbours route elsewhere: 55016 (Kündigung Lieferbeginn, LFN → LFA) to gpke-kuendigung, because no NB is party to it; 55557 (Änderung MSB-Abrechnungsdaten der MaLo, GPKE Teil 4) to gpke-stammdatenaenderung, which answers it with 55559.

§Outbound ANTWORT — derived, NOT routed (NB / LFA role)

Each ANFRAGE has exactly one Bestätigung/Ablehnung pair. The pairs are not +1/+2: 55077 rejects with 55080 because 55079 is unassigned.

PIDProcess name (AHB)Derived from
55002Bestätigung Anmeldung verb. MaLo (NB → LFN)55001 accepted
55003Ablehnung Anmeldung verb. MaLo (NB → LFN)55001 rejected
55005Bestätigung Abmeldung (NB → LFN)55004 accepted
55006Ablehnung Abmeldung (NB → LFN)55004 rejected
55017Bestätigung Kündigung Lieferbeginn (LFA → LFN)55016 accepted — derived by GpkeKuendigungWorkflow
55018Ablehnung Kündigung Lieferbeginn (LFA → LFN)55016 rejected — derived by GpkeKuendigungWorkflow
55078Bestätigung Anmeldung erz. MaLo (NB → LFN)55077 accepted
55080Ablehnung Anmeldung erz. MaLo (NB → LFN)55077 rejected
§Inbound ANTWORT — routed to gpke-lf-anmeldung (LF role)

When makod acts as Lieferant, it sends the outbound ANFRAGE and subsequently receives the NB/LFA response via AS4. These are the same eight PIDs derived above, registered to route back to GpkeLfAnmeldungWorkflow (see ANTWORT_PIDS_LF).

§Sperrung / Entsperrung — routed to gpke-sperrung
PIDProcess name (AWH)Direction
17115SperrauftragLF → NB
17116Anfrage Sperrung (NB asks MSB)NB → MSB
17117EntsperrauftragLF → NB
§Stornierung — routed to gpke-stornierung
PIDProcess name (AHB)
55022Anfrage nach Stornierung (LFN → NB)
55023Bestätigung Stornierung (NB → LFN)
55024Ablehnung Stornierung (NB → LFN)

§Neuanlage — routed to gpke-neuanlage

PIDProcess name (AHB)
55600Anmeldung neue verb. MaLo (LF → NB)
55601Anmeldung neue erz. MaLo (LF → NB)

§NB-initiated Lieferende — routed to gpke-lf-abmeldung

PIDProcess name (AHB)
55007Ankündigung NB-seitiges Lieferende (NB → LFN)

§Ankündigung Zuordnung LF — routed to gpke-ankuendigung-zuordnung-lf

PIDProcess name (AHB)
55607Ankündigung Zuordnung LF (NB → LFN)

PIDs 55608 (Bestätigung) and 55609 (Ablehnung) are outbound responses derived by GpkeAnkuendigungZuordnungLfWorkflow and never routed as inbound.

PIDs 55008 (Bestätigung) and 55009 (Ablehnung) are outbound responses derived by GpkeLfAbmeldungWorkflow and never routed as inbound.

§Ersatz-/Grundversorgung — routed to gpke-eog

PIDProcess name (AHB)Direction
55013Anmeldung / Zuordnung EOGNB → LF
55014Bestätigung EOG AnmeldungLF → NB
55015Ablehnung EOG AnmeldungLF → NB

GpkeEogWorkflow covers both roles: the NB initiates the Zuordnung (statutory fallback supply, §36/§38 EnWG) and the Grundversorger responds. See eog for the full model.

§Beendigung der Zuordnung — routed to gpke-beendigung-zuordnung

PIDProcess name (AHB)Direction
55010Anfrage zur Beendigung der ZuordnungNB → LFA

PID 55010 is the NB Abmeldeanfrage toward the LFA (BGM+E02 Abmeldungen, UTILMD AHB Strom 2.1). The responses PIDs 55011 (Bestätigung) and 55012 (Ablehnung) are derived by GpkeBeendigungZuordnungWorkflow. See beendigung_zuordnung for the full model.

The 3 answerable inbound ANFRAGE PIDs (UTILMD_ANFRAGE_PIDS) share GpkeSupplierChangeWorkflow (workflow name: "gpke-supplier-change"). The pruefidentifikator stored in wechselprozesse::InitiatedData lets read-models distinguish variants. The derived ANTWORT PIDs (55002/55003, 55005/55006, 55078/55080) are recorded in the AntwortGesendet event but are not routed as inbound messages — except in an LF-role deployment, where all eight of ANTWORT_PIDS_LF route back to GpkeLfAnmeldungWorkflow.

§INVOIC-based billing processes (GPKE Netznutzungsabrechnung / MMM Strom)

PIDProcess name
31001Abschlagsrechnung (Netznutzung)
31002NN-Rechnung (Netznutzungsabrechnung)
31005MMM-Rechnung (Mehr-/Mindermengensaldo)
31006MMM-Rechnung (selbst ausgestellt)

All 4 PIDs use GpkeAbrechnungWorkflow (workflow name: "gpke-abrechnung") — the shared INVOIC state machine from mako-invoic, which this crate parameterises with the GPKE family. The pruefidentifikator stored in mako_invoic::InvoicData lets read-models distinguish variants. PID 31003 (WiM-Rechnung) belongs to mako-wim. PID 31004 (Stornorechnung) is the Sparte-neutral universal Storno (INVOIC AHB §3.1.2) — checked generically by invoicd, not registered as a GPKE billing PID here. PIDs 31007/31008 (Aggreg. MMM-Rechnung NB → MGV, Gas-only) belong to mako-gabi-gas gabi-gas-invoic — MGV is a Gas-only market role. PID 31009 (MSB-Rechnung, multi-domain: GPKE Teil 3 / WiM Strom Teil 1) is registered by mako-wim (wim-invoic) to avoid double-registration; see crates/mako-wim/src/invoic.rs.

§Architecture

Each BDEW process group maps to a single parameterised workflow. The PID value, stored in domain state, distinguishes process variants within a group without requiring duplicate workflow implementations.

This crate contains only pure domain logic — no I/O, no EDIFACT parsing, no network calls. Parsing and validation of raw EDIFACT bytes happen at the transport boundary (AS4 reception layer), before constructing a domain command.

§Command construction example (UTILMD)

use edi_energy::{AnyMessage, EdiEnergyMessage, Platform};
use mako_gpke::wechselprozesse::{GpkeSupplierChangeWorkflow, SupplierChangeCommand};

let msg    = Platform::with_all_profiles().parse(&raw_bytes)?;
let report = msg.validate()?;
let AnyMessage::Utilmd(u) = &msg else { anyhow::bail!("not UTILMD") };

let cmd = SupplierChangeCommand::ReceiveUtilmd {
    pid:               msg.detect_pruefidentifikator()?,
    sender:            u.sender().and_then(|n| n.party_id.clone()).unwrap_or_default(),
    receiver:          u.receiver().and_then(|n| n.party_id.clone()).unwrap_or_default(),
    location_id:       u.transactions().first()
                        .and_then(|t| t.marktlokation()).unwrap_or_default(),
    document_date:     u.dtm().iter().find(|d| d.is_document_date())
                        .and_then(|d| d.value.clone()).unwrap_or_default(),
    message_ref:       msg.message_ref().to_owned(),
    validation_passed: report.is_valid(),
    validation_errors: report.errors().iter()
                        .map(|i| format!("{i}")).collect(),
};

process.execute(cmd).await?;

Re-exports§

pub use abrechnung::ABRECHNUNG_WINDOW_LABEL;
pub use abrechnung::GPKE_COMDIS_ABLEHNUNG_PID;
pub use abrechnung::GPKE_INVOIC_PIDS;
pub use abrechnung::GPKE_REMADV_PIDS;
pub use abrechnung::GpkeAbrechnung;
pub use abrechnung::GpkeAbrechnungWorkflow;
pub use abrechnung::WORKFLOW_NAME as ABRECHNUNG_WORKFLOW_NAME;
pub use abrechnungsdaten::ABRECHNUNGSDATEN_PIDS;
pub use abrechnungsdaten::AbrechnungsdatenCommand;
pub use abrechnungsdaten::AbrechnungsdatenData;
pub use abrechnungsdaten::AbrechnungsdatenEvent;
pub use abrechnungsdaten::AbrechnungsdatenState;
pub use abrechnungsdaten::BEARBEITUNGSSTAND_PID;
pub use abrechnungsdaten::BEARBEITUNGSSTAND_WINDOW_LABEL;
pub use abrechnungsdaten::GpkeAbrechnungsdatenWorkflow;
pub use abrechnungsdaten::WORKFLOW_NAME as ABRECHNUNGSDATEN_WORKFLOW_NAME;
pub use allokationsliste::AllokationslisteCommand;
pub use allokationsliste::AllokationslisteEvent;
pub use allokationsliste::AllokationslisteState;
pub use allokationsliste::AnforderungData;
pub use allokationsliste::GpkeAllokationslisteWorkflow;
pub use allokationsliste::MSCONS_RESPONSE_PIDS as ALLOKATIONSLISTE_MSCONS_PIDS;
pub use allokationsliste::ORDERS_ANFRAGE_PIDS as ALLOKATIONSLISTE_ORDERS_PIDS;
pub use allokationsliste::ORDRSP_ABLEHNUNG_PIDS as ALLOKATIONSLISTE_ORDRSP_PIDS;
pub use allokationsliste::WORKFLOW_NAME as ALLOKATIONSLISTE_WORKFLOW_NAME;
pub use anfrage_bestellung::ANFRAGE_PID as ANFRAGE_BESTELLUNG_PID;
pub use anfrage_bestellung::ANFRAGE_WINDOW_LABEL;
pub use anfrage_bestellung::AnfrageBestellungCommand;
pub use anfrage_bestellung::AnfrageBestellungEvent;
pub use anfrage_bestellung::AnfrageBestellungState;
pub use anfrage_bestellung::AnfrageData;
pub use anfrage_bestellung::GpkeAnfrageBestellungWorkflow;
pub use anfrage_bestellung::WORKFLOW_NAME as ANFRAGE_BESTELLUNG_WORKFLOW_NAME;
pub use ankuendigung_zuordnung_lf::ANKUENDIGUNG_ZUORDNUNG_ANTWORT_WINDOW_LABEL;
pub use ankuendigung_zuordnung_lf::ANKUENDIGUNG_ZUORDNUNG_PIDS;
pub use ankuendigung_zuordnung_lf::AnkuendigungZuordnungLfCommand;
pub use ankuendigung_zuordnung_lf::AnkuendigungZuordnungLfData;
pub use ankuendigung_zuordnung_lf::AnkuendigungZuordnungLfEvent;
pub use ankuendigung_zuordnung_lf::AnkuendigungZuordnungLfState;
pub use ankuendigung_zuordnung_lf::GpkeAnkuendigungZuordnungLfWorkflow;
pub use ankuendigung_zuordnung_lf::WORKFLOW_NAME as ANKUENDIGUNG_ZUORDNUNG_LF_WORKFLOW_NAME;
pub use antwortfrist::antwort_deadline;
pub use antwortfrist::antwort_obligation;
pub use beendigung_zuordnung::ANFRAGE_PID as BEENDIGUNG_ZUORDNUNG_ANFRAGE_PID;
pub use beendigung_zuordnung::ANTWORT_PIDS as BEENDIGUNG_ZUORDNUNG_ANTWORT_PIDS;
pub use beendigung_zuordnung::BEENDIGUNG_ZUORDNUNG_ANTWORT_WINDOW_LABEL;
pub use beendigung_zuordnung::BEENDIGUNG_ZUORDNUNG_PIDS;
pub use beendigung_zuordnung::BeendigungZuordnungCommand;
pub use beendigung_zuordnung::BeendigungZuordnungData;
pub use beendigung_zuordnung::BeendigungZuordnungEvent;
pub use beendigung_zuordnung::BeendigungZuordnungState;
pub use beendigung_zuordnung::GpkeBeendigungZuordnungWorkflow;
pub use beendigung_zuordnung::NB_ANFRAGE_WINDOW_LABEL;
pub use beendigung_zuordnung::WORKFLOW_NAME as BEENDIGUNG_ZUORDNUNG_WORKFLOW_NAME;
pub use datenabruf::DatenabrufCommand;
pub use datenabruf::DatenabrufEvent;
pub use datenabruf::DatenabrufState;
pub use datenabruf::GpkeDatenabrufWorkflow;
pub use datenabruf::ORDERS_ANFRAGE_PIDS as DATENABRUF_ORDERS_PIDS;
pub use datenabruf::ORDRSP_ABLEHNUNG_PIDS as DATENABRUF_ORDRSP_PIDS;
pub use datenabruf::WORKFLOW_NAME as DATENABRUF_WORKFLOW_NAME;
pub use eog::EOG_ANMELDUNG_PID;
pub use eog::EOG_ANTWORT_PIDS;
pub use eog::EOG_PIDS;
pub use eog::EOG_RESPONSE_WINDOW_LABEL;
pub use eog::EogCommand;
pub use eog::EogData;
pub use eog::EogEvent;
pub use eog::EogState;
pub use eog::GpkeEogWorkflow;
pub use eog::Versorgungsart;
pub use eog::WORKFLOW_NAME as EOG_WORKFLOW_NAME;
pub use eog::eog_antwort_due_at;
pub use eog::eog_response_pid;
pub use konfiguration::BeauftragungData;
pub use konfiguration::GpkeKonfigurationWorkflow;
pub use konfiguration::KONFIGURATION_WINDOW_LABEL;
pub use konfiguration::KonfigurationCommand;
pub use konfiguration::KonfigurationEvent;
pub use konfiguration::KonfigurationProjection;
pub use konfiguration::KonfigurationRecord;
pub use konfiguration::KonfigurationState;
pub use konfiguration::ORDERS_PIDS;
pub use konfiguration::ORDRSP_PIDS;
pub use konfiguration::WORKFLOW_NAME as KONFIGURATION_WORKFLOW_NAME;
pub use konfiguration_aenderung::GpkeKonfigurationAenderungWorkflow;
pub use konfiguration_aenderung::IFTSTA_PIDS as KONFIGURATION_AENDERUNG_IFTSTA_PIDS;
pub use konfiguration_aenderung::KonfigurationAenderungCommand;
pub use konfiguration_aenderung::KonfigurationAenderungEvent;
pub use konfiguration_aenderung::KonfigurationAenderungState;
pub use konfiguration_aenderung::ORDERS_ANFRAGE_PIDS as KONFIGURATION_AENDERUNG_ORDERS_PIDS;
pub use konfiguration_aenderung::ORDRSP_PIDS as KONFIGURATION_AENDERUNG_ORDRSP_PIDS;
pub use konfiguration_aenderung::WORKFLOW_NAME as KONFIGURATION_AENDERUNG_WORKFLOW_NAME;
pub use kuendigung::GpkeKuendigungWorkflow;
pub use kuendigung::KuendigungCommand;
pub use kuendigung::KuendigungData;
pub use kuendigung::KuendigungEvent;
pub use kuendigung::KuendigungState;
pub use lf_abmeldung::GpkeLfAbmeldungWorkflow;
pub use lf_abmeldung::LF_ABMELDUNG_ANTWORT_WINDOW_LABEL;
pub use lf_abmeldung::LF_ABMELDUNG_PIDS;
pub use lf_abmeldung::LfAbmeldungCommand;
pub use lf_abmeldung::LfAbmeldungData;
pub use lf_abmeldung::LfAbmeldungEvent;
pub use lf_abmeldung::LfAbmeldungState;
pub use lf_abmeldung::WORKFLOW_NAME as LF_ABMELDUNG_WORKFLOW_NAME;
pub use lf_anmeldung::ANFRAGE_PIDS_LF;
pub use lf_anmeldung::ANTWORT_PIDS_LF;
pub use lf_anmeldung::GpkeLfAnmeldungWorkflow;
pub use lf_anmeldung::LfAnmeldungCommand;
pub use lf_anmeldung::LfAnmeldungData;
pub use lf_anmeldung::LfAnmeldungEvent;
pub use lf_anmeldung::LfAnmeldungState;
pub use lf_anmeldung::NB_RESPONSE_WINDOW_LABEL;
pub use lf_anmeldung::WORKFLOW_NAME as LF_ANMELDUNG_WORKFLOW_NAME;
pub use lf_antwort::AntwortForm;
pub use lf_antwort::AntwortMesslokation;
pub use lf_antwort::LfAntwort;
pub use lf_antwort::ZugeordneterMsb;
pub use lf_antwort::antwort_outbox;
pub use messwerte::GpkeMesswerteLieferungWorkflow;
pub use messwerte::MSCONS_PIDS;
pub use messwerte::MesswerteLieferungCommand;
pub use messwerte::MesswerteLieferungData;
pub use messwerte::MesswerteLieferungEvent;
pub use messwerte::MesswerteLieferungState;
pub use messwerte::WORKFLOW_NAME as MESSWERTE_WORKFLOW_NAME;
pub use neuanlage::GpkeNeuanlageWorkflow;
pub use neuanlage::NEUANLAGE_ANTWORT_WINDOW_LABEL;
pub use neuanlage::NEUANLAGE_PIDS;
pub use neuanlage::NeuanlageCommand;
pub use neuanlage::NeuanlageData;
pub use neuanlage::NeuanlageEvent;
pub use neuanlage::NeuanlageState;
pub use neuanlage::WORKFLOW_NAME as NEUANLAGE_WORKFLOW_NAME;
pub use partin::GpkePartinWorkflow;
pub use partin::KommunikationsdatenCommand;
pub use partin::KommunikationsdatenData;
pub use partin::KommunikationsdatenEvent;
pub use partin::KommunikationsdatenState;
pub use partin::PARTIN_STROM_PIDS;
pub use partin::WORKFLOW_NAME as PARTIN_WORKFLOW_NAME;
pub use sperrung::GpkeSperrungWorkflow;
pub use sperrung::MSB_ANTWORT_PIDS;
pub use sperrung::ORDCHG_STORNIERUNG_PIDS;
pub use sperrung::SPERRUNG_PIDS;
pub use sperrung::SPERRUNG_WINDOW_LABEL;
pub use sperrung::SperrungCommand;
pub use sperrung::SperrungData;
pub use sperrung::SperrungEvent;
pub use sperrung::SperrungState;
pub use sperrung::WORKFLOW_NAME as SPERRUNG_WORKFLOW_NAME;
pub use sperrung_lf::ANTWORT_WINDOW_LABEL as SPERRUNG_LF_ANTWORT_WINDOW_LABEL;
pub use sperrung_lf::GpkeSperrungLfWorkflow;
pub use sperrung_lf::IFTSTA_SPERRUNG_PID;
pub use sperrung_lf::ORDRSP_SPERRUNG_PIDS;
pub use sperrung_lf::ORDRSP_STORNO_PIDS;
pub use sperrung_lf::SPERRUNG_ANFRAGE_PIDS as SPERRUNG_LF_ANFRAGE_PIDS;
pub use sperrung_lf::SperrungAuftragData;
pub use sperrung_lf::SperrungLfCommand;
pub use sperrung_lf::SperrungLfEvent;
pub use sperrung_lf::SperrungLfState;
pub use sperrung_lf::WORKFLOW_NAME as SPERRUNG_LF_WORKFLOW_NAME;
pub use stammdatenaenderung::GpkeStammdatenaenderungWorkflow;
pub use stammdatenaenderung::Qualitaet;
pub use stammdatenaenderung::RUECKMELDUNG_WINDOW_LABEL as STAMMDATEN_WINDOW_LABEL;
pub use stammdatenaenderung::STAMMDATEN_PAIRS;
pub use stammdatenaenderung::StammdatenCommand;
pub use stammdatenaenderung::StammdatenData;
pub use stammdatenaenderung::StammdatenEvent;
pub use stammdatenaenderung::StammdatenObjekt;
pub use stammdatenaenderung::StammdatenState;
pub use stammdatenaenderung::WORKFLOW_NAME as STAMMDATEN_WORKFLOW_NAME;
pub use stammdatenaenderung::is_aenderung_pid;
pub use stammdatenaenderung::is_rueckmeldung_pid;
pub use stammdatenaenderung::objekt_of;
pub use stammdatenaenderung::rueckmeldung_pid_for;
pub use stornierung::GpkeStornierungCommand;
pub use stornierung::GpkeStornierungData;
pub use stornierung::GpkeStornierungEvent;
pub use stornierung::GpkeStornierungState;
pub use stornierung::GpkeStornierungWorkflow;
pub use stornierung::STORNIERUNG_ANTWORT_WINDOW_LABEL as STORNIERUNG_GPKE_ANTWORT_WINDOW_LABEL;
pub use stornierung::STORNIERUNG_PIDS as STORNIERUNG_GPKE_PIDS;
pub use stornierung::WORKFLOW_NAME as STORNIERUNG_GPKE_WORKFLOW_NAME;
pub use utilts::GpkeUtiltsWorkflow;
pub use utilts::UTILTS_PIDS;
pub use utilts::UtiltsKonfigCommand;
pub use utilts::UtiltsKonfigData;
pub use utilts::UtiltsKonfigEvent;
pub use utilts::UtiltsKonfigState;
pub use utilts::WORKFLOW_NAME as UTILTS_WORKFLOW_NAME;
pub use wechselprozesse::GPKE_PROCESS_RESPONSE_LABEL;
pub use wechselprozesse::GpkeSupplierChangeWorkflow;
pub use wechselprozesse::IFTSTA_PIDS as IFTSTA_VOLLZUGS_PIDS;
pub use wechselprozesse::InitiatedData;
pub use wechselprozesse::InitiatedDetails;
pub use wechselprozesse::SupplierChangeCommand;
pub use wechselprozesse::SupplierChangeEvent;
pub use wechselprozesse::SupplierChangeProjection;
pub use wechselprozesse::SupplierChangeRecord;
pub use wechselprozesse::SupplierChangeState;
pub use wechselprozesse::UTILMD_ANFRAGE_PIDS;
pub use wechselprozesse::UTILMD_PIDS;
pub use wechselprozesse::WORKFLOW_NAME as SUPPLIER_CHANGE_WORKFLOW_NAME;
pub use zuordnungsmeldung::AUFHEBUNG_PID;
pub use zuordnungsmeldung::BEENDIGUNG_PID;
pub use zuordnungsmeldung::GpkeZuordnungsmeldungWorkflow;
pub use zuordnungsmeldung::INFORMATION_PID;
pub use zuordnungsmeldung::WORKFLOW_NAME as ZUORDNUNGSMELDUNG_WORKFLOW_NAME;
pub use zuordnungsmeldung::ZUORDNUNGSMELDUNG_PIDS;
pub use zuordnungsmeldung::Zuordnungsmeldung;
pub use zuordnungsmeldung::ZuordnungsmeldungCommand;
pub use zuordnungsmeldung::ZuordnungsmeldungEvent;
pub use zuordnungsmeldung::ZuordnungsmeldungState;

Modules§

abrechnung
GPKE Netznutzungsabrechnung / Mehr-Mindermengen — the INVOIC billing family.
abrechnungsdaten
GPKE Teil 2 § 3.1 — the NB’s Bearbeitungsstand on Abrechnungsdaten.
allokationsliste
GPKE Allokationsliste — LF requests allocation lists and billing basis data.
anfrage_bestellung
GPKE Anfrage Daten der individuellen Bestellung — UTILMD Strom PID 55555 (GPKE Teil 4, BK6-22-024 Anlage 1d).
ankuendigung_zuordnung_lf
GPKE Ankündigung Zuordnung LF — the NB assigns a supplier to an erzeugende Marktlokation or Tranche.
antwortfrist
GPKE Strom answer Fristen — the table itself lives in mako_fristen::antwort, and what stays here is the check that it agrees with these workflows.
beendigung_zuordnung
GPKE Anfrage zur Beendigung der Zuordnung — NB-initiated Abmeldeanfrage.
datenabruf
GPKE Datenabruf — LF requests data values / reclamations from NB or MSB.
eog
GPKE Ersatz-/Grundversorgung (EoG) — Zuordnung by the Netzbetreiber.
konfiguration
GPKE Konfigurationseinrichtung — ORDERS 17134/17135 workflow (GPKE Teil 4).
konfiguration_aenderung
GPKE Teil 3 Konfigurationsänderung — LF-initiated configuration change requests.
kuendigung
GPKE Kündigung — the incoming supplier terminates the incumbent’s contract.
lf_abmeldung
GPKE NB-initiated Lieferende — Kündigung by the Netzbetreiber.
lf_anmeldung
GPKE LF-side Anmeldung workflow — Lieferbeginn, Lieferende, Kündigung.
lf_antwort
The answer an LF sends on an NB- or LFN-initiated process.
messwerte
GPKE / WiM MSCONS data delivery workflow — inbound metered data (NB/MSB → LF).
neuanlage
GPKE Neuanlage — new Marktlokation registration process.
partin
GPKE PARTIN Kommunikationsdaten workflow — master data exchange (GPKE Teil 4).
post_acceptance
Post-acceptance obligation builders for GPKE processes.
sperrung
GPKE Sperrung / Entsperrung workflow — NB-role inbound (ORDERS PIDs 17115–17117).
sperrung_lf
GPKE LF-side Sperrung / Entsperrung workflow (ORDRSP 19116–19119, IFTSTA 21039).
stammdatenaenderung
GPKE Teil 4 Stammdatenänderung — master-data change process family.
stornierung
GPKE Stornierung — cancellation of supplier-change requests (PIDs 55022–55024).
utilts
GPKE UTILTS Konfigurationsdaten workflow — tariff/meter configuration exchange.
wechselprozesse
GPKE Wechselprozesse Strom — UTILMD-based connection processes.
zuordnungsmeldung
GPKE Zuordnungs-Meldungen — the one-way notifications the NB owes when it moves a Zuordnung.

Structs§

AntwortObligation
One inbound PID’s answer obligation.
GpkeModule
Engine module for the GPKE process family.
LfVorgangsdaten
The SG4 facts an LF-answered Vorgang carries, and the de.mako.process.initiated it builds.

Enums§

FristShape
The shape of an answer Frist.

Constants§

ANTWORT_OBLIGATIONS
GPKE Strom — every inbound PID whose answer Frist Teil 2 states.