Skip to main content

GpkeModule

Struct GpkeModule 

Source
pub struct GpkeModule;
Expand description

Engine module for the GPKE process family.

Registers all GPKE Prüfidentifikator values:

  • PIDs 55001–55002, 55016 (inbound ANFRAGE, UTILMD) → "gpke-supplier-change"
  • PIDs 55022, 55023, 55024 (Stornierung Anfrage + Antwort, UTILMD) → "gpke-stornierung"
  • PIDs 55600, 55601 (Neuanlage ANFRAGE, UTILMD) → "gpke-neuanlage"
  • PID 55007 (NB-seitiges Lieferende, UTILMD) → "gpke-lf-abmeldung"
  • PID 55607 (Ankündigung Zuordnung LF, UTILMD) → "gpke-ankuendigung-zuordnung-lf"
  • PIDs 17115/17116/17117 (Sperrung/Entsperrung, ORDERS) → "gpke-sperrung"
  • PID 55555 (Anfrage Daten der individuellen Bestellung, UTILMD) → "gpke-anfrage-bestellung"
  • PIDs 31001, 31002, 31005, 31006 (billing, INVOIC) → "gpke-abrechnung" (31003 → mako-wim; 31004 = Sparte-neutral universal Storno, checked by invoicd)
  • PIDs 19001, 19002 (inbound ORDRSP, NB role only) → "gpke-konfiguration"

Role-conditional PIDs (ORDRSP 19001/19002):

PIDs 19001 (Bestellbestätigung) and 19002 (Ablehnung der Bestellung) are registered only when DeploymentRoles contains Marktrolle::Nb.

In the GPKE Konfiguration workflow:

  • NB sends outbound ORDERS 17134/17135 (via outbox) to the designated MSB.
  • The MSB responds with inbound ORDRSP 19001/19002, which must route back to gpke-konfiguration for the NB-role makod instance.

On a nMSB (Herausforderer-MSB) instance, the same PIDs 19001/19002 are the response to WiM Geräteübernahme ORDERS 17001 sent by the nMSB to the NB. They route to wim-geraeteubernahme instead. Set explicit DeploymentRoles to prevent both modules from claiming the same PIDs.

Not registered (outbound-only):

  • PIDs 55002/55003, 55005/55006, 55017, 55018 are outbound ANTWORT messages derived by GpkeSupplierChangeWorkflow::handle. They are never routed as inbound.
  • PIDs 17134, 17135 are outbound ORDERS messages dispatched via the outbox by GpkeKonfigurationWorkflow. They are never routed as inbound.

PIDs 55007–55009 (NB-seitiges Lieferende) are handled by GpkeLfAbmeldungWorkflow. PIDs 55013–55015 (Ersatz-/Grundversorgung) are handled by GpkeEogWorkflow. PIDs 55010–55012 (Anfrage zur Beendigung der Zuordnung — NB Abmeldeanfrage an den LFA) are handled by GpkeBeendigungZuordnungWorkflow.

Use with mako_engine::builder::EngineBuilder::register:

use mako_gpke::GpkeModule;
use mako_engine::builder::EngineBuilder;
use mako_engine::marktrolle::DeploymentRoles;

let ctx = EngineBuilder::new()
    .with_event_store(store)
    .with_deployment_roles(DeploymentRoles::nb())
    .register(Box::new(GpkeModule))
    .build();

Trait Implementations§

Source§

impl EngineModule for GpkeModule

Source§

fn name(&self) -> &'static str

Stable, unique name for this domain module. Read more
Source§

fn workflow_names(&self) -> &'static [&'static str]

Every workflow this module owns, named. Read more
Source§

fn register_pids_with_roles( &self, router: &mut PidRouter, roles: &DeploymentRoles, )

Register PIDs with role-context awareness. Read more
Source§

fn profile_requirements(&self) -> &'static [ProfileRequirement]

Declare the EDIFACT profile types this module requires at runtime. Read more
Source§

fn configure(&self) -> Result<(), String>

Validate adapter coverage and configuration at engine startup. Read more
Source§

fn register_pids(&self, _router: &mut PidRouter)

Register all PIDs this module handles into the shared PidRouter. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more