1. Introduction
1.1. Purpose of the document
The objective of this Implementation Guide (IG) is to describe the format of input and output files to be used when dealing with Let’s Coordinate application. This can help developers to prepare input and output files adapted to a business tool that Let’s Coordinate will support for any RSC services. The implementation guide is one of the building blocks for using UML (Unified Modelling Language) based techniques in defining processes and messages for exchange between actors in the electrical industry in Europe. The implementation guide is developed for the harmonization of the underlying data exchange
1.2. Normative reference documentation
The following documents, in whole or in part, are normatively referenced in this document and are indispensable for its application. For dated references, only the edition cited applies. For undated references, the latest edition of the referenced document (including any amendments) applies:
-
IEC 61968-100 IEC : 2018 Application integration at electric utilities – System interfaces for distribution management
-
ISO 8601:2014 : Data elements and interchange formats – Information interchange – Representation of dates and times
-
RFC4122 : A Universally Unique IDentifier (UUID) URN Namespace Available from http://www.rfc-base.org/rfc-4122.html.
2. Let’s Coordinate business process
2.1. Process overview
Note
|
DCC = Distributed Communication Component as Kakfa, FTP server etc… |
2.2. Use cases
This table gives a list of actors involved in Let’s Coordinate data exchange:
Actor Label |
Actor Description |
Let’s Coordinate application |
Software to display some notifications and RSC KPIs |
Business tool |
Tool which will be supported by Let’s Coordinate for its operational communication and business cases validation/coordination |
Distributed Communication Component (DCC) |
Shared component between Let’s Coordinate and other business tool |
User |
User of Let’s Coordinate (RSC or TSO) |
RSC KPIs storage |
Database of RSC KPIs |
Notification Storage |
Database of notification |
Notification actions Storage |
Database of actions done within the notification |
Feed screen |
Screen where notifications arrive |
Archive screen |
Screen where all notifications can be retrieved from notification database |
RSC KPIs screens |
All screens referring to RSC KPIs |
Monitoring and Logging screens |
All screens referring to notifications actions |
This table gives a list of use cases for Let’s Coordinate data exchange:
Use case Label |
Actor Involved |
Actions description and assertions |
Provides input data information to DCC Business tool |
DCC / Business tool |
provides input file to DCC |
Retrieves input data information from DCC |
DCC / Let’s Coordinate |
Let’s Coordinate retrieves input files from DCC |
Emits a notification |
Let’s Coordinate / Notification Recipient |
Based on the format described in this IG, Let’s Coordinate will map the input file with correlated templates to display information from the input file as a notification (informative or SMART) |
Consults a notification |
User / Feed screen / Archives screen |
User is able to consult notification from different screens: Feed and/or Archives |
Records notifications |
Let’s Coordinate / Notification Storage |
Notifications are stored in a database |
Updates RSC KPIs information |
Let’s Coordinate |
Based on the format described in this IG, Let’s Coordinate will update the RSC KPIs database with information received from input file |
Consults RSC KPIs |
User / RSC KPIs screens / RSC KPIs storage |
User is able to consult RSC KPIs from KPIs DB in the dedicated RSC KPIs screens |
Exports RSC KPIs |
User / RSC KPIs screens / RSC KPIs storage |
User is able to export the RSC KPIs in xlsx or pdf format from RSC KPIs screens |
Acknowledges notifications |
User |
User is able to acknowledge informative notification |
Acts on the notifications |
User |
User is able to act (accept/reject/add comments) in SMART notification |
Records notification actions |
Let’s Coordinate / Notification actions Storage |
Actions done by user in the notification are stored in a database |
Consults Monitoring and/or Logging screens |
Monitoring / Logging screens / User / Notification actions storage |
User is able to consults Monitoring and logging information in the dedicated screens |
Send output data information to DCC |
Let’s Coordinate / DCC |
T-COO is able to export output data to DCC after validation/coordination |
Retrieves output data information from DCC |
Business tool / Let’s Coordinate |
Business tool is able to retrieve output date file from DCC |
3. Input data format
Input data format is the same format for Informative and SMART notifications. The only difference are linked to the data user wants to provide (text, RSC KPI, timseries…).
Two formats are proposed for input data:
-
XLSX, Office Open XML worksheet sheet (OOXML), ECMA-376 standard file format, Microsoft Excel XML (2007+) file format
-
JSON, JavaScript Object Notation, ISO/IEC 21778:2017 open standard file format (only encoded in UTF-8 and Unix Line Feed)
NOTE:
-
M ⇒ Mandatory & this field is mandatory for XLSX and JSON files.
-
O ⇒ Optional & this field is optional for XLSX and JSON files
-
M(JSON) or O(JSON) ⇒ to be used only for JSON files
-
M(XLSX) or O(XLSX) ⇒ to be used only for XLSX files
3.1. Document header part
Attributes | Mandatory / Optional | Values | Type | Description |
---|---|---|---|---|
eventMessage |
M (JSON) |
- |
Map |
Message description |
xmlns |
M (JSON) |
String |
Name space |
|
header |
M (JSON) |
- |
Map |
Header part of the file |
verb |
M |
- |
- |
The <verb> shall specify the semantics of the message and the interpretation of the data supplied in the <payload> element. |
created |
Enumeration |
Used to publish a notification of the instantiation of one or more objects. |
||
canceled |
Enumeration |
Used to publish a notification that one or more actions have been aborted. |
||
changed |
Enumeration |
Used to publish a notification that one or more objects have been replaced. |
||
deleted |
Enumeration |
Used to publish a notification that an object has been deleted. |
||
executed |
Enumeration |
Used to publish a notification that the execution of a complex transaction that uses the <payload> element has taken place. |
||
updated |
Enumeration |
Used to publish a notification that one or more objects have been modified. |
||
noun |
M |
NotificationCategory |
String |
Category of notification. The <noun> shall specify the semantics of the message and the interpretation of the data supplied in the <payload> element. |
timestamp |
M |
2020-03-18T09:34:08Z |
DateTime |
Creation date and hour of the input file : This element shall indicate when the message was produced. (It is not the time the message was transmitted because the actual send may occur later due to transactions or other client side queueing of messages). The timestamp shall conform to ISO 8601. It shall include either the letter “Z” to denote UTC or an explicit timezone offset. |
source |
M |
ProcessName |
String |
Name of the service or process : This element shall be used to identify the origin of the informational content. The values assigned to this element are non-normative and have meaning only within the local organisation. |
messageId |
M |
d18d3733d7884d798cadc2ecf30bef0b |
UUID |
Unique ID of the message : This element shall be a 128-bit universally unique identifier (UUID) generated according to RFC 4122. It has no normative meaning other than to provide a unique identifier for the message. This element together with the <timestamp> element is useful for tracing or logging messages as they are processed by the requesting, responding or other systems. |
properties |
M (JSON) |
- |
Map |
Message properties : This element consists of a set of name/value pairs that may be used to customize the system behaviour in ways going beyond those defined by this International Standard. This may be used to provide some implementation-specific functionality. The values assigned to these elements are non-normative and have meaning only within the local implementation. |
format |
M (JSON) |
JSON |
String |
Format of the message |
businessDataIdentifier |
M (JSON) |
- |
Map |
- |
businessApplication |
O |
PanEuropeanServiceATool, ServiceBTool, … |
String |
Name of the business application |
messageType |
O |
102 |
String |
ID of the message |
messageTypeName |
M |
ProcessNotificationTypeA |
String |
Name of the message |
businessDayFrom |
M |
2020-03-18T09:34:08Z |
DateTime |
Business period start date and time |
businessDayTo |
O |
2020-03-19T09:34:08Z |
DateTime |
Business period end date and time / If this value is not provided, it will take the <businessDayFrom> value plus 24 hours. |
sendingUser |
O |
10X-CHSWISSGRIDC |
Alphanumeric |
EIC code of sender of the message or input file (if different from tso) |
processStep |
O |
1st Run |
String |
Name of the process step to distinguish different steps of the same process |
timeframe |
O |
D-2, D-1, ID, W, M, Y |
Alphanumeric |
Timeframe of the message |
timeframeNumber |
O |
3 |
String |
If Timeframe is W, number of the week. If Timeframe is M, number of the month. If Timeframe is Y, number of the year. Empty for other ones. |
recipients |
O |
10YCZ-CEPS-----N;10X-CHSWISSGRIDC |
List<String> |
EIC codes of specific recipient(s) for this notification. This field is optional if this information can be deducted from provided timeseries. |
caseId |
O |
ProcessNotifTypeA_20210609_001 |
String |
Business identifier of the notification. The reuse of the same caseId means that the old notification will be overriden by the new one. If the caseId is not provided, it will be calculated using the following fields: source, businessApplication, messageTypeName, businessDayFrom and businessDayTo. |
Following lines are only used for Input data validation by ENTSO-E Acknowledgement |
||||
fileName |
M |
Input_file_TSO.xml |
String |
Name of the file provided by TSO (or its RSC) |
tso |
M |
10X-CHSWISSGRIDC |
Alphanumeric |
EIC code of owner of validated input file |
biddingZone |
O |
10YCZ-CEPS-----N |
Alphanumeric |
EIC code of Bidding zone of validated input file |
Ex: Input file Header JSON (without input data validation)
{ "eventMessage": { "xmlns": "https://www.iec.ch/tc57/supportdocuments", "header": { "verb": "created", "noun": "ServiceA_CalculationResults", "timestamp": "2020-03-17T12:32:19Z", "source": "ServiceA", "messageId": "b071aa50097f49f1bd69e82a070084b6", "properties": { "format": "JSON", "businessDataIdentifier": { "businessApplication": "PanEuropeanServiceATool", "messageType": "101", "messageTypeName": "ServiceA_NotificationA", "businessDayFrom": "2020-01-10T23:00:00Z", "businessDayTo": "2020-01-17T23:00:00Z", "sendingUser": "10XCH-SWISSGRIDC", "processStep": "INITIAL_RUN", "timeframe": "W", "timeframeNumber": 24, "recipients": [ "10XBA-JPCCZEKC-K", "10XAL-KESH-----J" ], "caseId": "ProcessNotifTypeA_20210609_001" } } }, "payload": { … } } }
Input file header JSON sample file (without input data validation):
Input file header XLSX sample file (without input data validation):
For more details, see the excel sample file: line 1 and 2 in XLSX header for input file sample
Ex: Input file Header JSON (with input data validation)
{ "eventMessage": { "xmlns": "https://www.iec.ch/tc57/supportdocuments", "header": { "verb": "created", "noun": "ServiceA_CalculationResults", "timestamp": "2020-03-17T12:32:19Z", "source": "ServiceA", "messageId": "b071aa50097f49f1bd69e82a070084b6", "properties": { "format": "JSON", "businessDataIdentifier": { "businessApplication": "PanEuropeanServiceATool", "messageType": "101", "messageTypeName": "ServiceA_NotificationA", "businessDayFrom": "2020-01-10T23:00:00Z", "businessDayTo": "2020-01-17T23:00:00Z", "sendingUser": "10XCH-SWISSGRIDC", "processStep": "INITIAL_RUN", "timeframe": "W", "timeframeNumber": 24, "fileName": "20200317_1230_SERVICEA_CH.xlsx", "tso": "10XCH-SWISSGRIDC", "biddingZone": "10YCH-SWISSGRIDZ" "recipients": [ "10XBA-JPCCZEKC-K", "10XAL-KESH-----J" ], "caseId": "ProcessNotifTypeA_20210609_001" } } }, "payload": { ... } } }
Input file header JSON sample file (with input data validation):
3.2. Payload part
Payload can be customized by each message producer to fit with their need. In case user wants to provide one type of information (text, links, data…), this table presents the needed fields to support this with information if this field is mandatory or optional depending of the format of input file.
Attributes | Mandatory / Optional | Values | Type | Description |
---|---|---|---|---|
payload |
M (JSON) |
- |
Map |
The application-specific data are located within the <payload> elements, depending on the purpose of the message. The <payload> element contains application-specific data conforming to other IEC 61968 standards. IEC 61968-100 makes no attempt to define these application-specific data. They are left to be defined by the relevant IEC working groups or the local organization. |
datatype |
M(XLSX) |
text OR links OR timeserie OR rscKpi |
- |
Indicate the type of data that will be provided - text : to provide text information - links : to provide url link to download some files - timeserie : to provide data as timeseries - rscKpi : to provide RSC KPIs |
Following lines described the needed fields for provision of text information |
||||
text |
M (JSON) |
- |
List<Map> |
Provide some text informations |
name |
M |
Conclusion |
String |
Name of related information |
value |
M |
OK for tomorrow |
String |
Value of related information |
Following lines described the needed fields for provision of url links to download file with url address or access to web pages |
||||
links |
M (JSON) |
- |
List<Map> |
Structure to provide links to download some files |
name |
M |
ProcessReport |
String |
Name of the url |
value |
M |
String |
Url address of the file or the webpage |
|
eicCode |
O |
["eicCode1", "eicCode2", …] |
list<String> |
EIC code of concerned TSO |
Following lines described the needed fields for provision of RSC KPI information |
||||
rscKpi |
M (JSON) |
- |
List<Map> |
Structure to provide KPIs |
name |
M |
GP01, GP02…. BP01, BP02…. |
String |
KPI name: there are 2 categories : Global Performance (GP) or Business process (BP) : GP or BP followed by the number of KPIs Note: The labels of GPxx and BPxx will be parameterized in the configuration bundles of the application, so that the final displayed information to the screen will have the <kpi_name – kpi_label> format. (e.g: GPxx – Global Performance x) When a business KPI has multiple values, the conventional naming is GPxx_1 to GPxx_9 or BPxx_1 to BPxx_9 where xx are digits 0 to 9. The associated label is GPxx.1 to GPxx.9 and BPxx.1 and BPxx.9. |
joinGraph |
O |
true (default) or false |
Boolean |
If “true”, allows to join rsc kpi data into one graph, else if “false”, the rsc kpi data will be displayed into separate graphs. |
data |
M (JSON) |
- |
List<Map> |
Structure to provide kpi data |
timestamp |
M |
2020-03-18T23:00:00Z |
DateTime |
Date of related KPI |
granularity |
M |
D |
Enumeration |
Used to display the RSC KPI report in a daily view |
Y |
Enumeration |
Used to display the RSC KPI report in a yearly view |
||
label |
M |
CalculationFailed, ProcessDelayed… |
String |
Name of sub item of KPI if exists |
detail |
M (JSON) |
- |
List<Map> |
Structure to provide kpi data details |
eicCode |
O |
38X-BALTIC-RSC-H |
Alpha-numeric |
EIC code of concerned TSO if exists |
value |
M |
e.g : 1, 2, 2691 … |
Integer |
Value of KPI’s item or sub item |
Following lines described the needed fields for provision of timeseries information |
||||
timeserie |
M (JSON) |
- |
List<Map> |
Structure to provide timeseries |
name |
M |
probabilisticResults |
String |
Name of related data |
data |
M (JSON) |
- |
List<Map> |
Structure to provide timeserie data |
timestamp |
M |
2020-03-18T23:00:00Z |
DateTime |
Date of related timeserie |
detail |
M (JSON) |
- |
List<Map> |
Structure to provide timeserie data details |
id |
O |
"1", "2", "3" … |
String |
Id of related timeserie if exists |
label |
O |
ResultsA |
String |
Label of related timeserie if exists |
eicCode |
O |
38X-BALTIC-RSC-H |
Alpha-numeric |
EIC code of related timeserie if exists |
value |
M |
"89", "5585", "Open Line Z", … |
String |
Value of related timeserie |
Following lines described the needed fields for provision of input data validation by ENTSO-E Acknowledgement (only JSON) information |
||||
validation |
M (JSON) |
- |
Map |
Only used for Input data validation by ENTSO-E Acknowledgement |
validationType |
M |
TECHNICAL or BUSINESS |
String |
Type of validation by ACK which start by technical validation and then business validation |
status |
M (JSON) |
ACCEPTED or REJECTED |
String |
Status of ACK validation: accepted or rejected for validation type done of related source |
result |
M (JSON) |
OK or WARNING or ERROR |
String |
This field presents the worst case detected: If no warning and no error ⇒ OK If some warnings and no error ⇒ warning If some errors with/out warnings ⇒ error |
validationMessages |
M (JSON) |
- |
List<Map> |
Validation details |
code |
M (JSON) |
VAL_OUT1 |
Alphanumeric |
Business code for the validation information |
severity |
M (JSON) |
ERROR or WARNING |
String |
Severity of validation information (Error or warning) |
title |
M (JSON) |
“Error in input format” |
String |
Category of issue for this validation information |
message |
M (JSON) |
“Issue located in business period” “Application check: Error identified while checking process <processMrid>. The coordinated TSO: <missingTsoList> not provided” |
String |
Details about this validation information |
params |
O (JSON) |
{“processMrid”: “6fc941b6-e7ab-4962-a2a8-c965f5bf78e9”, “missingTsoList”: [“10X1001A1001A094”, “10XES-REE------E”]} |
Map<String, Object> |
Provides <key,value> parameters for the validation message |
businessTimestamp |
M (JSON) |
2020-03-18T23:00:00Z |
DateTime |
Business date and time of this validation information |
sourceDataRef |
M (JSON) |
- |
Map |
Information about the data |
relatedElement |
M (JSON) |
header |
String |
This means that the dedicated information is concerning whole file and is not specific to any timeseries or any period in the file. In the timeline, the bubble about this information will be displayed at arrival time (‘timestamp’ field in the header) of the notification. |
timeseries |
String |
This means that the dedicated information is related to a specific timeseries in the file but not to a specific period within that timeseries, in this case also a field 'relatedTimeseriesId' will be field and will contain usually MRID. Each timeserie can have a different start time. In the timeline, the bubble about this information will be displayed at the timestamp (‘dataName’/’hour’ field in the payload) of this information |
||
period |
String |
This means that the dedicated information is concerning specific period within specific timeseries, in this case there will be also 3 other fields 'relatedTimeseriesId', 'relatedPeriodStartId' and ‘relatedPeriodEndId’. In the timeline, the bubble about this information will be displayed at the timestamp (“relatedPeriodStartId” field in the payload) of this information |
||
relatedTimeseriesId |
M (JSON) |
CZ_P_3047 |
Alphanumeric |
This field describes the name of the timeserie. It is mandatory only in case the relatedElement is ‘timeseries’ or ‘period’ |
relatedPeriodStartId |
M (JSON) |
54 |
Number |
This field describes the start time of the timeserie and this is the shift of hours from ‘businessDayFrom’. It is mandatory only in case the relatedElement is ‘period’ |
relatedPeriodEndId |
M |
121 |
Number |
This field describes the end time of the timeserie and this is the shift of hours from ‘businessDayFrom’. It is mandatory only in case the relatedElement is ‘period’ |
Ex: Input file payload JSON (without input data validation)
{ "eventMessage": { "xmlns": "https://www.iec.ch/tc57/supportdocuments", "header": { … }, "payload": { "text": [ // text details sample { "name": "comment", "value": "No specific remarks for today" } ], "links": [ // links details sample { "name": "ServiceA_Report1", "value": "https://www.site.com/file1.pdf", "eicCode": [ "22XCORESO------S", "10X1001C--00008J", "10X1001C--00003T", "38X-BALTIC-RSC-H", "34X-0000000068-Q" ] } ], "rscKpi": [ // rscKpi details sample { "name": "GP01", "data": [ { "timestamp": "2020-03-18T01:00:00", "granularity": "Y", "label": "ProcessSuccess", "detail": [ { "value": 1 } ] } ] }, { "name": "BP01", "data": [ { "timestamp": "2020-03-18T01:00:00", "granularity": "D", "label": "BusinessKpiAServiceA", "detail": [ { "eicCode": "22XCORESO------S", "value": 0 }, { "eicCode": "10X1001C--00008J", "value": 1 }, { "eicCode": "10X1001C--00003T", "value": 0 }, { "eicCode": "38X-BALTIC-RSC-H", "value": 1 }, { "eicCode": "34X-0000000068-Q", "value": 0 } ] } ] } ], "timeserie": [ // timeserie details sample { "name": "ResultsA", "data": [ { "timestamp": "2020-03-01T00:00:00", "detail": [ { "value": "79" } ] }, { "timestamp": "2020-03-01T01:00:00", "detail": [ { "value": "42" } ] }, { "timestamp": "2020-03-01T02:00:00", "detail": [ { "value": "4" } ] }, { "timestamp": "2020-03-01T03:00:00", "detail": [ { "value": "58" } ] } ] } ] } } }
Input file payload JSON sample file (without input data validation):
Input file payload XLSX sample file (without input data validation):
For more details, see the excel file: from line 4 to end of the document XLSX payload for input file sample
Ex: Input file payload JSON (with input data validation)
{ "eventMessage": { "xmlns": "https://www.iec.ch/tc57/supportdocuments", "header": { … }, "payload": { "validation": { // validation details sample "validationType": "BUSINESS", "status": "ACCEPTED", "result": "ERROR", "validationMessages": [ { "code": "ServiceA_Error_01", "severity": "ERROR", "title": "Rule_A_Violated", "message": "Application check: Error 01 detected in input file", "businessTimestamp": "2020-02-26T14:24:38Z", "sourceDataRef": { "relatedPeriodStartId": 3247, "relatedElement": "timeseries", "relatedPeriodEndId": 3856, "relatedTimeseriesId": "Timeseries_12345" } }, { "code": "ServiceA_Error_02", "severity": "ERROR", "title": "Rule_B_Violated", "message": "Application check: Error 02 detected in input file", "businessTimestamp": "2020-02-26T14:24:46Z", "sourceDataRef": { "relatedElement": "header" } }, { "code": "ServiceA_Warning_01", "severity": "WARNING", "title": "Rule_C_Violated", "message": "Application check: Warning 01 detected in input file", "businessTimestamp": "2020-02-26T14:24:47Z", "sourceDataRef": { "relatedElement": "header" } }, { "code": "ServiceA_Warning_02", "severity": "WARNING", "title": "Rule_D_Violated", "message": "Application check: Warning 02 detected in input file", "businessTimestamp": "2020-02-26T14:25:23Z", "sourceDataRef": { "relatedPeriodStartId": 897, "relatedElement": "timeseries", "relatedPeriodEndId": 928, "relatedTimeseriesId": "Timeseries_45678" } } ] } } } }
Input file payload JSON sample file (with input data validation):
4. Output data format
Output data format is only used for SMART notifications as a result of a validation or coordination of some proposals received in the input file. In case the input file is used for informative notification, no output file will be generated.
Two formats are proposed for output data:
-
XLSX, Office Open XML worksheet sheet (OOXML), ECMA-376 standard file format, Microsoft Excel XML (2007+) file format
-
JSON, JavaScript Object Notation, ISO/IEC 21778:2017 open standard file format (only encoded in UTF-8 and Unix Line Feed)
But this output format will be always the same format as the one received for input file. (Ex: if Let’s Coordinate receives 1 input file in XLSX, then the output file will be also in XLSX)
NOTE:
-
M ⇒ Mandatory & this field is mandatory for XLSX and JSON files.
-
O ⇒ Optional & this field is optional for XLSX and JSON files
-
M(JSON) or O(JSON) ⇒ to be used only for JSON files
-
M(XLSX) or O(XLSX) ⇒ to be used only for XLSX files
4.1. Document header part
Header is the really similar as the one described for the input file with addition of:
-
Global field about the validation or coordination status of the overall notification to be validated. This change is in the header of the output file.
-
CON(firmed): the status of this notification is confirmed (based on the different answers done for each timeserie to be validated inside this notification)
-
REJ(ected): the status of this notification is rejected (based on the different answers done for each timeserie to be validated inside this notification)
-
MIX(ed): the status of this notification is mixed (based on the different answers done for each timeserie to be validated inside this notification)
-
CAN(celed): the status of this notification is canceled
-
-
List of general comments of the overall notification to be validated. This change is in the header of the output file.
Attributes | Mandatory / Optional | Values | Type | Description |
---|---|---|---|---|
eventMessage |
M (JSON) |
- |
Map |
Message description |
xmlns |
M (JSON) |
String |
Name space |
|
header |
M (JSON) |
- |
Map |
Header part of the file |
verb |
M |
- |
- |
The <Verb> shall specify the semantics of the message and the interpretation of the data supplied in the <Payload> element. |
created |
Enumeration |
Used to publish a notification of the instantiation of one or more objects. |
||
canceled |
Enumeration |
Used to publish a notification that one or more actions have been aborted. |
||
changed |
Enumeration |
Used to publish a notification that one or more objects have been replaced. |
||
deleted |
Enumeration |
Used to publish a notification that an object has been deleted. |
||
executed |
Enumeration |
Used to publish a notification that the execution of a complex transaction that uses the <Payload><OperationSet> element has taken place. |
||
updated |
Enumeration |
Used to publish a notification that one or more objects have been modified. |
||
noun |
M |
NotificationCategory |
String |
Category of notification. The <Noun> shall specify the semantics of the message and the interpretation of the data supplied in the <Payload> element. |
timestamp |
M |
2020-03-18T09:34:08Z |
DateTime |
Creation date and hour of the input file : This element shall indicate when the message was produced. (It is not the time the message was transmitted because the actual send may occur later due to transactions or other client side queueing of messages). The timestamp shall conform to ISO 8601. It shall include either the letter “Z” to denote UTC or an explicit timezone offset. |
source |
M |
ProcessName |
string |
Name of the service or process : This element shall be used to identify the origin of the informational content. The values assigned to this element are non-normative and have meaning only within the local organisation. |
messageId |
M |
d18d3733d7884d798cadc2ecf30bef0b |
UUID |
Unique ID of the message : This element shall be a 128-bit universally unique identifier (UUID) generated according to RFC 4122. It has no normative meaning other than to provide a unique identifier for the message. This element together with the <Timestamp> element is useful for tracing or logging messages as they are processed by the requesting, responding or other systems. |
properties |
M (JSON) |
- |
Map |
Message properties : This element consists of a set of name/value pairs that may be used to customize the system behaviour in ways going beyond those defined by this International Standard. This may be used to provide some implementation-specific functionality. The values assigned to these elements are non-normative and have meaning only within the local implementation. |
format |
M (JSON) |
JSON |
String |
Format of the message |
businessDataIdentifier |
M (JSON) |
- |
Map |
- |
businessApplication |
O |
PanEuropeanServiceATool, ServiceB.tool, … |
String |
Name of the business application |
messageType |
O |
102 |
String |
ID of the message |
messageTypeName |
M |
ProcessNotificationTypeA |
String |
Name of the message |
businessDayFrom |
M |
2020-03-18T09:34:08Z |
DateTime |
Business period start date and time |
businessDayTo |
O |
2020-03-19T09:34:08Z |
DateTime |
Business period end date and time / If this value is not provided, it will take the <businessDayFrom> value plus 24 hours. |
sendingUser |
O |
10X-CHSWISSGRIDC |
Alphanumeric |
EIC code of sender of the message or input file (if different from tso) |
processStep |
O |
1st Run |
String |
Name of the process step to distinguish different steps of the same process |
timeframe |
O |
D-2, D-1, ID, W, M, Y |
Alphanumeric |
Timeframe of the message |
timeframeNumber |
O |
3 |
String |
If Timeframe is W, number of the week. If Timeframe is M, number of the month. If Timeframe is Y, number of the year. Empty for other ones. |
recipients |
O |
10YCZ-CEPS-----N;10X-CHSWISSGRIDC |
List<String> |
EIC codes of specific recipient(s) for this output file. This field is optional if this information can be deducted from provided timeseries. |
caseId |
O |
ProcessNotifTypeA_20210609_001 |
String |
Business identifier of the notification. The reuse of the same caseId means that the old notification will be overriden by the new one. If the caseId is not provided, it will be calculated using the following fields: source, businessApplication, messageTypeName, businessDayFrom and businessDayTo. |
coordinationStatus |
M |
CON or REJ or MIX or CAN |
Enumeration |
Global status of coordination : CON(firmed), REJ(ected), MIX(ed) or CAN(celed). This status is global for the all notification |
coordinationComments |
O |
- |
List<Map> |
List of general comments |
eicCode |
M |
22XCORESO------S |
Alpha-numeric |
EIC code of the user providing a general comment |
generalComment |
M |
OK for us! |
String |
General comment for the coordination |
Ex: Output file header JSON sample
{ "eventMessage": { "xmlns": "https://www.iec.ch/tc57/supportdocuments", "header": { "verb": "created", "noun": "ServiceA_CalculationResults", "timestamp": "2020-03-17T12:32:19Z", "source": "ServiceA", "messageId": "b071aa50097f49f1bd69e82a070084b6", "properties": { "format": "JSON", "businessDataIdentifier": { "businessApplication": "PanEuropeanServiceATool", "messageType": "101", "messageTypeName": "ServiceA_NotificationB", "businessDayFrom": "2020-01-10T23:00:00Z", "businessDayTo": "2020-01-17T23:00:00Z", "sendingUser": "10XCH-SWISSGRIDC", "processStep": "INITIAL_RUN", "timeframe": "W", "timeframeNumber": 24, "recipients": [ "10XBA-JPCCZEKC-K", "10XAL-KESH-----J" ], "caseId": "ProcessNotifTypeA_20210609_001", "coordinationStatus": "CON", "coordinationComments": [ { "eicCode": "10XFR-RTE------Q", "generalComment": "OK for us!" }, { "eicCode": "22XCORESO------S", "generalComment": "Super!" } ] } } }, "payload": { ... } } }
Output file header JSON sample:
Output file header XLSX sample:
For more details, see the excel sample file: line 4 and 5 in XLSX header for output file sample
4.2. Payload part
The Payload Output file is like the one described for the input file with addition of:
-
new field results in each proposal/timeseries inside the notification:
-
eicCode: EIC code of the entity providing the answer
-
answer: CON or REJ or MIX or NOT, the different value meanings are CON(firmed), REJ(ected), MIX(ed) or NOT (Not answered).
-
explanation: in case of rejection/refusal of the proposition to justify this choice from a list of values
-
comment: about the validation or coordination of the proposal
-
Following table will describe only the part to be affected by these new fields for timeserie information (even if there are text information, RSC KPI information…).
Attributes | Mandatory / Optional | Values | Type | Description |
---|---|---|---|---|
payload |
M (JSON) |
- |
Map |
The application-specific data are located within the <payload> elements, depending on the purpose of the message. The <Payload> element contains application-specific data conforming to other IEC 61968 standards. IEC 61968-100 makes no attempt to define these application-specific data. They are left to be defined by the relevant IEC working groups or the local organization. |
datatype |
M(XLSX) |
text OR links OR timeserie OR rscKpi |
String |
Indicate the type of data that will be provided: - text : to provide text information - links : to provide url link to download some files - timeserie : to provide data as timeseries - rscKpi : to provide RSC KPIs Only changes affecting timeseries validation/coordination will be described. |
Following lines are only describing the new fields which will be added in the timeserie(s) details to describe the results of the validation & coordination for proposed timeserie(s) information |
||||
timeserie |
M (JSON) |
- |
List<Map> |
Structure to provide timeseries |
name |
M |
probabilisticResults |
String |
Name of related data |
data |
M (JSON) |
- |
List<Map> |
Structure to provide timeserie data |
timestamp |
M |
2020-03-18T23:00:00Z |
DateTime |
Date of related timeserie |
detail |
M (JSON) |
- |
List<Map> |
Structure to provide timeserie data details |
id |
O |
"1", "2", "3" … |
String |
Id of related timeserie if exists |
label |
O |
ProbabilistResultsA |
String |
Label of related timeserie if existd |
eicCode |
O |
38X-BALTIC-RSC-H |
Alpha-numeric |
EIC code of related timeserie if exists |
value |
M |
"89", "5585", "Open Line Z", … |
String |
Value of related timeserie |
results |
O (JSON) |
- |
List<Map> |
Structure to provide output results |
eicCode |
M |
10XFR-RTE------Q |
Alpha-numeric |
EIC code of the entity providing the answer |
answer |
M |
CON or REJ or MIX or NOT |
Enumeration |
Status of the remedial actions: CON(firmed), REJ(ected), MIX(ed) or NOT (Not answered). |
explanation |
O |
“Not available” |
String |
List of choice in a predefined list of values as text. |
comment |
O |
“3 nodes should work” |
String |
Comment about the proposal by the concerned EIC code |
JSON sample:
XLSX sample
See the excel file: from line 7 to end of the document, columns G, H, I, and J in XLSX payload for output file sample