Skip to main content

EdaStartProcess@1

Node EdaStartProcess@1 starts an EDA market process: it validates the process data, creates the EDA request message and sends it to the HttpAdapter of the Ponton X/P Messenger. Processes with a planned start date are only validated, so that the pipeline can store them and start them later.

The supported processes are CR_REQ_PT, EC_PODLIST, CM_PODLIST, EC_REQ_ONL, EC_PRTFACT_CHANGE, CM_REV_SP and CM_REQ_ONL, see Processes. An overview of the market processes is given in the user guide under Supported EDA processes.

Adapter Prerequisites​

Node Configuration​

For fields path, targetPath, targetValueWriteMode, and targetValueKind, see Overview.

transformations:
- type: EdaStartProcess@1
path: $.body.requestData # EdaProcessInfo
targetPath: $.request # EdaClientResult
# processDataPath: $.key.Values[2] # only to start a planned process
# host, user, password, isSimulationMode: optional, override the adapter configuration
PropertyTypeRequiredDefaultDescription
pathstringNo$Path to the EdaProcessInfo with the process to start
targetPathstringNo$Path where the EdaClientResult is written
processDataPathstringNo-Path to the process data of a planned process; when set, the process is started now (see Planned processes)
hoststringNoadapter configurationOverrides Host of the adapter configuration
userstringNoadapter configurationOverrides User of the adapter configuration
passwordstringNoadapter configurationOverrides Password of the adapter configuration
isSimulationModeboolNoadapter configurationOverrides IsSimulationMode; if true the message is sent with document mode SIMU instead of PROD

The configuration properties are documented in the API reference.

Input: EdaProcessInfo​

The node reads an EdaProcessInfo object from path:

PropertyTypeRequiredDescription
processNamestringYesName of the EDA process, see Processes
commentstringNoFree text; not used by the node, but available to the pipeline (e.g. to store it with the process)
startDateDateTimeNoPlanned start of the process. If set (and processDataPath is not configured), the process is only validated and not sent
processDataobjectYes¹Process-specific data, see Processes

¹ Not needed when the process data is read from processDataPath.

{
"processName": "CR_REQ_PT",
"comment": "Request consumption data for January",
"processData": {
"sender": "RC100001",
"receiver": "AT000001",
"meteringPoint": "AT0000000000000000000000000000001",
"from": "2026-01-01T00:00:00",
"to": "2026-02-01T00:00:00"
}
}

Property names are matched case-insensitively, so camelCase and PascalCase both work. Enum values (sector, energyDirection, interval and dataType of CM_REQ_ONL) can be given as number or as name, e.g. "energyDirection": "Consumption" or "energyDirection": 1. Dates are ISO 8601 strings.

  • If nothing is found at path, the node does nothing and the pipeline continues.
  • If processName is empty or there is no process data, the node fails with Invalid input data.
  • An unknown processName fails the node with Process <name> is not supported.
  • Process data that violates the rules of its process fails the node with Invalid input data for <processName>.

Planned processes​

The node distinguishes three cases:

CaseProcess data fromBehavior
New process, startDate not setprocessDataValidated, message created and sent immediately
New process, startDate setprocessDataPlanned: only validated; no message is created or sent. The result has StatusCode 200 and carries the StartDate
processDataPath configured (start of a planned process)processDataPathValidated, message created and sent immediately, regardless of startDate

A planned process is typically stored as an entity by the pipeline (with its startDate and the process data). A second pipeline polls the due processes and starts them with processDataPath pointing to the stored process data. The process data can be stored either as a JSON object or as a JSON string; a string is parsed. The message (and therefore its message id and creation date) is only created when the process is actually sent. Rules that are checked when the message is created (an Unknown energyDirection or dataType) therefore only fail the node when the planned process is started.

note

The startDate of the EdaProcessInfo decides whether a process is planned. The startDate inside the processData of some processes (e.g. EC_REQ_ONL, EC_PRTFACT_CHANGE) is a separate value that is written into the EDA message.

Output: EdaClientResult​

The node writes an EdaClientResult to targetPath. In the data context the property names are PascalCase, e.g. $.request.IsSuccess.

PropertyDescription
StatusCodeHTTP status code of the HttpAdapter as number (e.g. 200); 200 for a planned process
HeadersNot set when sending (null)
ContentResponse body of the HttpAdapter
MessageThe EDA message that was sent (MarketParticipantDirectory, ProcessDirectory); null for a planned process. E.g. $.request.Message.ProcessDirectory.ConversationId is the conversation id that the replies of the process carry
StartDatePlanned start date; only set for a planned process
IsSuccesstrue if StatusCode is a 2xx status code
note

An HTTP error of the HttpAdapter does not fail the node. Check IsSuccess in the pipeline (e.g. with If@1).

The result is documented in EdaClientResult, the input in EdaProcessInfo.

Processes​

All process data contain the market partner ids of sender and receiver:

PropertyTypeRequiredDescription
senderstringYesMarket partner id of the sender, e.g. the energy community or the service provider
receiverstringYesMarket partner id of the receiver, usually the distribution grid operator

If sender or receiver is missing, the process data cannot be read and the node fails.

The replies of the market partners are received with EdaReceiver@1 and evaluated with EdaParseMessage@1.

CR_REQ_PT​

Requests the consumption or production data of a metering point for a period.

PropertyTypeRequiredDescription
meteringPointstringYesMetering point number
fromDateTimeYesStart of the requested period; must be before to
toDateTimeYesEnd of the requested period
sectorenumNoElectricity (1) or Gas (2); any other value is treated as electricity
{
"sender": "RC100001",
"receiver": "AT000001",
"meteringPoint": "AT0000000000000000000000000000001",
"from": "2026-01-01T00:00:00",
"to": "2026-02-01T00:00:00"
}

Message: CPRequest 01.12, message code ANFORDERUNG_PT. The period is sent as local time (Central Europe), the assumption of costs is always false. Replies: ANTWORT_PT / ABLEHNUNG_PT, the data itself arrives as DATEN_CRMSG.

EC_PODLIST​

Requests the list of metering points of an energy community.

PropertyTypeRequiredDescription
energyCommunityIdstringYesId of the energy community
fromDateTimeYesStart of the requested period
toDateTimeYesEnd of the requested period
{
"sender": "RC100001",
"receiver": "AT000001",
"energyCommunityId": "AT00000000000RC100001000000000001",
"from": "2026-01-01T00:00:00",
"to": "2026-12-31T00:00:00"
}

Message: CPRequest 01.12, message code ANFORDERUNG_ECP, sector electricity. The id of the energy community is sent in the MeteringPoint element. Replies: SENDEN_ECP (ECMPList) / ABLEHNUNG_ECP.

CM_PODLIST​

A service provider for end consumers reconciles its active and inactive data consents with the distribution grid operator.

PropertyTypeRequiredDescription
serviceProviderIdstringYesMarket partner id of the service provider
fromDateTimeYesStart of the requested period; must be before to
toDateTimeYesEnd of the requested period
sectorenumNoElectricity (1) or Gas (2); any other value is treated as electricity
{
"sender": "EP100001",
"receiver": "AT000001",
"serviceProviderId": "EP100001",
"from": "2026-01-01T00:00:00",
"to": "2026-12-31T00:00:00",
"sector": "Electricity"
}

Message: CPRequest 01.12, message code ANFORDERUNG_CMP. Unlike EC_PODLIST, the MeteringPoint element carries the id of the service provider, not a community id. Replies: ANTWORT_CMP (ECMPList) / ABLEHNUNG_CMP.

note

According to the market role permission matrix, CM_PODLIST may only be used by the market roles VNB and EDL (service provider for end consumers). The node does not check the market role.

EC_REQ_ONL​

Registers a metering point with an energy community (online request).

PropertyTypeRequiredDescription
meteringPointstringYesMetering point number
energyCommunityIdstringYesId of the energy community
partitionFactorintNoParticipation factor in percent (0–255 accepted by the node)
energyDirectionenumYesConsumption (1) or Production (2); Unknown (0) is rejected when the message is created
startDateDateTimeNoDate of the registration; must be after today. Default: tomorrow
{
"sender": "RC100001",
"receiver": "AT000001",
"meteringPoint": "AT0000000000000000000000000000001",
"energyCommunityId": "AT00000000000RC100001000000000001",
"partitionFactor": 100,
"energyDirection": "Consumption",
"startDate": "2026-11-01T00:00:00"
}

Message: CMRequest 01.30, message code ANFORDERUNG_ECON with request type EnergyCommunityRegistration, transmission cycle D and a generated CMRequestId. Replies: ANTWORT_ECON, ZUSTIMMUNG_ECON, ABSCHLUSS_ECON (ECMPList) or ABLEHNUNG_ECON / ABBRUCH_ECON.

EC_PRTFACT_CHANGE​

Changes the participation factor of a metering point in an energy community (ECMPList 01.20, EDA config patch 3.7.29).

PropertyTypeRequiredDescription
meteringPointstringYesMetering point number
energyCommunityIdstringYesId of the energy community
partitionFactorintYesNew participation factor in percent, from 1 to 100
startDateDateTimeYesDate from which the new factor applies; must be after today
endDateDateTimeNoEnd of the validity; must be after startDate. Without it the change is open-ended
energyDirectionenumYesConsumption (1) or Production (2); Unknown (0) is rejected when the message is created
dataTypestringYesData type of the request (MPTimeData/DataType, e.g. EnergyCommunityRegistration), at most 30 characters
transmissionCyclestringNoTransmission cycle of the consumption data: D, M or V
purposestringNoPurpose of the data sharing, at most 100 characters
techCodestringNoTechnology code according to AIB EECS Fact Sheet 5, at most 10 characters
fuelCodestringNoFuel code according to EECS, at most 10 characters

The length limits are checked after collapsing whitespace (leading and trailing whitespace removed, inner whitespace reduced to one space), as defined by the XML schema.

{
"sender": "RC100001",
"receiver": "AT000001",
"meteringPoint": "AT0000000000000000000000000000001",
"energyCommunityId": "AT00000000000RC100001000000000001",
"partitionFactor": 50,
"startDate": "2026-11-01T00:00:00",
"energyDirection": "Production",
"dataType": "EnergyCommunityRegistration",
"transmissionCycle": "D",
"techCode": "T010100"
}

Message: ECMPList 01.20, message code ANFORDERUNG_CPF. The process date, DateFrom and DateActivate are startDate; DateTo is endDate or 9999-12-31. ECType and ECDisModel are not sent. Replies: ANTWORT_CPF / ABLEHNUNG_CPF.

CM_REV_SP​

The service provider revokes an existing data consent.

PropertyTypeRequiredDescription
meteringPointstringYesMetering point number
consentIdstringYesId of the consent to revoke
endDateDateTimeNoEnd of the consent; must not be in the past. Default: tomorrow
energyCommunityIdstringNoId of the energy community; not part of the sent message
sectorenumNoElectricity (1) or Gas (2); other values are sent as electricity
{
"sender": "RC100001",
"receiver": "AT000001",
"meteringPoint": "AT0000000000000000000000000000001",
"consentId": "AT000001000000000000000000000001",
"endDate": "2026-11-01T00:00:00"
}

Message: CMRevoke 01.10, message code AUFHEBUNG_CCMS. Replies: ANTWORT_CCMS / ABLEHNUNG_CCMS.

note

CM_REV_SP is the only outgoing revocation process. Revocations by the customer (CM_REV_CUS) or by the grid operator (CM_REV_IMP) are only received, as AUFHEBUNG_CCMC and AUFHEBUNG_CCMI, and evaluated with EdaParseMessage@1.

CM_REQ_ONL​

Requests a data sharing consent of the end customer (online request).

PropertyTypeRequiredDescription
meteringPointstringYesMetering point number
purposestringYesPurpose of the data sharing; sent for metering data requests
dataTypeenumYesMeteringData (1) or MasterData (2); Unknown (0) is rejected when the message is created
startDateDateTimeYes²Start of the consent. Default: today
consentIdstringYes²Id of an existing consent; only sent for master data requests
endDateDateTimeNoEnd of the consent
intervalenumNoMetering interval for metering data: QuarterHourly (0, default), Hourly (1), Daily (2), Variable (3)
sectorenumNoElectricity (1) or Gas (2); other values are sent as electricity

² At least one of startDate and consentId must be set.

{
"sender": "EP100001",
"receiver": "AT000001",
"meteringPoint": "AT0000000000000000000000000000001",
"dataType": "MeteringData",
"interval": "QuarterHourly",
"purpose": "Energy monitoring",
"startDate": "2026-11-01T00:00:00",
"endDate": "2027-10-31T00:00:00"
}

Message: CMRequest 01.30, message code ANFORDERUNG_CCMO with a generated CMRequestId. For metering data, the metering interval (QH, H, D, V), transmission cycle D and the purpose are sent. Replies: ANTWORT_CCMO, ZUSTIMMUNG_CCMO / ABLEHNUNG_CCMO.

Complete sample of pipeline configuration​

This sample receives a process via HTTP, starts it (or only validates it if it is planned) and returns the result.

triggers:
- type: FromHttpRequest@1
path: /startProcess
method: POST
transformations:
- type: EdaStartProcess@1
path: $.body.requestData
targetPath: $.request
- type: If@1
description: request successful
path: $.request.IsSuccess
operator: Equals
value: true
valueType: Boolean
transformations:
- type: Logger@1
message: EDA process started or planned

This second sample starts planned processes that are due. The query returns the process name in Values[0] and the stored process data in Values[2].

triggers:
- type: FromPolling@1
interval: 00:10:00
transformations:
- type: DateTime@1
operation: Now
targetPath: $.Now
- type: GetQueryById@1
targetPath: $.query
queryRtId: 000000000000000000000003 # planned processes
fieldFilters:
- attributePath: startTime
operator: LessEqualThan
comparisonValuePath: $.Now
- type: ForEach@1
iterationPath: $.query.Rows
maxDegreeOfParallelism: 1
transformations:
- type: SetPrimitiveValue@1
valueType: String
targetPath: $.process.processName
valuePath: $.key.Values[0]
- type: EdaStartProcess@1
path: $.process
processDataPath: $.key.Values[2]
targetPath: $.request