The Trade Loader reads fixed trades from either XML or Excel files, and swing nominations and capacity trades from XML files, it runs under File Services.
Trades are loaded into EuroRunner by the Trade Loader by placing the XML or Excel file into the EuroRunner inbox. Then they are validated, invalid trades are marked as Invalid, and must be corrected to make them valid (or deleted) before they can be processed. Valid trades are imported into EuroRunner, from then on they are treated the same as manually entered trades. Swing nominations can also be marked as Failed Checks if they are valid, but do not pass contract checks, i.e. if the BDR exceeds the flange maximum limit.
You can enable and disable automatic loading of valid trades using the Options tab of the System Options screen:
Disabling auto-import of trades inserts an extra stage can be into the trade load process to allow the users wish to manually check and accept every trade (this is useful in situations such as UAT, but is not expected to be used in normal processing).
When the option if off, valid loaded trades are marked as Ready, and must be manually accepted using the Import function before they are treated the same as manually entered trades.
Note: This option is available for administrators only.
The Trade Loader runs under Notice Manager. To be identified as containing trades an XML notice must have its main element called <gmsl_trades>; an Excel notice must contain a workbook called GMSL Fixed Trades.
Once identified as containing trades the EuroRunnerTL.TradeLoaderQC component is activated in the EuroRunnerTLQC COM+ Application, asynchronously to process the file, and the trades are loaded into EuroRunner in a single transaction.
See the Trades section of the Registry documentation.
This section details what is required to import trade details into EuroRunner. The trade interface supports any number of trades, which may be of different types, in a single XML or Excel file.
The file must be a valid XML format with a .xml extension, and should comply with the gmsl_trades.xsd schema.
The root element must be <gmsl_trades>, all trade elements must be direct
descendents of the root element. Trade data must be in attributes with the format
attribute="value", attributes can be in any order, optional attributes can be
omitted (completely missing or containing no data). Blank rows (containing no attributes or
all empty attributes) will be ignored.
Numbers must be defined using '.' as decimal separator, with no thousand separator (9999.99)
Date/Times must be defined as ISO date/timestamp (yyyy-mm-ddThh:mm:ss)
The file must be a valid Excel format with a .xls extension, the first worksheet with a name matching the criteria will be imported. The header row defines what columns are present in the data, and it must be on the first populated row, columns can be in any order, optional columns can be omitted (completely missing column or containing no data). Blank rows will be ignored.
Numbers must be defined as Excel Numbers
Date/Times must be defined as Excel date/timestamps in a non-ambiguous date/time format, i.e. dd-mmm-yyyy hh:mm
Note: Currently only fixed trades support the Excel format.
Can be imported from XML or Excel formats using the following details.
| Format | Identifier | ||||
|---|---|---|---|---|---|
| XML | XML Element: <fixed trade> |
||||
| Excel | Excel Worksheet: GMSL Fixed Trades |
||||
| XML Attribute | Excel Column | Type | Properties | Allowed Values | Description |
| code | Code | Text(20) | Optional | Free Text | Trade identifier from source system Depending upon the originating system, it may be unique or unique only for a certain period, i.e. we may have the same trade code used several times so long as their dates do not overlap If omitted then the system will automatically generate a value |
| contract | Contract | Text(50) | Required | Any valid fixed contract | The name of the contract |
| flange | Flange | Text(50) | Required | Any valid flange | The name of the flange |
| buy_sell | Buy/Sell | Text(1) | Required | B or S | Is trade a Buy or Sell |
| amount_type | Amount Type | Text(1) | Required | H or D | Is amount specified Hourly or Daily |
| amount | Amount | Number (22,12) | Required | A non-negative number | Amount of gas traded |
| unit | Unit | Text(6) | Required | Any valid energy unit | The name of the unit that amount is specified in (i.e. kWh) |
| temperature | Temperature | Text(6) | Required | Any valid temperature | The temperature in degrees Celsius that amount is specified in (i.e. 25) |
| time_zone | Time Zone | Text(50) | Required | Any valid time zone | The name of the time zone that start_dts/Start Datetime and end_dts/End Datetime are specified in |
| start_dts | Start Datetime | Date/Time | Required | A date earlier than end_dts/End Datetime | Date and time at which the trade starts |
| end_dts | End Datetime | Date/Time | Required | A date later than start_dts/Start Datetime | Date and time at which the trade ends |
| price | Price | Number (12,4) | Optional | Omitted or a non-negative number | Price at which the trade is agreed |
| firmness | Firmness | Text(1) | Optional Default=F | F or I | Is trade Firm or Interruptible |
Trades are processed in order, so trades appearing in the same file with duplicate code/start datetime/end datetime will result in versions of the trade appearing earliest in the file being replaced with the version appearing latest.
Can be imported from XML format using the following details.
| Format | Identifier | |||
|---|---|---|---|---|
| XML | XML Element: <swing_nomination> |
|||
| XML Attribute | Type | Properties | Allowed Values | Description |
| contract | Text(50) | Required | Any valid swing contract | The name of the contract |
| flange | Text(50) | Required | Any valid flange | The name of the flange |
| buy_sell | Text(1) | Required | B or S | Is trade a Buy or Sell |
| amount_type | Text(1) | Required | H or D | Is amount specified Hourly or Daily |
| bdr | Number (22,12) | Required | A non-negative number | Buyers Daily Request - Amount of gas requested |
| unit | Text(6) | Required | Any valid energy unit | The name of the unit that bdr is specified in (i.e. kWh) |
| temperature | Text(6) | Required | Any valid temperature | The temperature in degrees Celsius that bdr is specified in (i.e. 25) |
| time_zone | Text(50) | Required | Any valid time zone | The name of the time zone that start_dts and end_dts are specified in |
| start_dts | Date/Time | Required | A date earlier than end_dts | Date and time at which the nomination starts |
| end_dts | Date/Time | Required | A date later than start_dts | Date and time at which the nomination ends |
Nominations are processed in order, so duplicate nominations appearing in the same file will result in versions of the nominations appearing earliest in the file being replaced with the version appearing latest.
Can be imported from XML format using the following details.
| Format | Identifier | |||
|---|---|---|---|---|
| XML | XML Element: <capacity trade> |
|||
| XML Attribute | Type | Properties | Allowed Values | Description |
| code | Text(20) | Optional | Free Text | Trade identifier from source system Unique If omitted then the system will automatically generate a value |
| network | Text(50) | Required | Any valid network | The name of the network |
| shipper | Text(50) | Required | Any valid shipper | The code of the shipper |
| trader | Text(50) | Optional | Omitted or any valid trader | The name of the trader |
| location_type | Text(1) | Optional Default=F | P or F or J | Is trade for a Point, Flange or Journey |
| location | Text(50) | Required | Any valid Point, Flange or Journey depending on value of location_type | Point, Flange or Journey that the trade is for: The name of the point The name of the flange The name of the journey |
| category | Text(1) | Optional Default=T | I or R or T | Is trade an Initial Booking, Rebooking or Trade |
| direction | Text(1) | Required | N (Entry) or X (Exit) | Is trade for Entry or Exit capacity |
| buy_sell | Text(1) | Required | B or S | Is trade a Buy or Sell |
| amount_type | Text(1) | Required | H or D | Is amount specified Hourly or Daily |
| amount | Number (22,12) | Required | A non-negative number | Amount of gas traded |
| unit | Text(6) | Required | Any valid unit | The name of the unit that amount is specified in (i.e. kWh) |
| temperature | Text(6) | Required | Any valid temperature | The temperature in degrees Celsius that amount is specified in (i.e. 25) |
| time_zone | Text(50) | Required | Any valid time zone | The name of the time zone that start_dts and end_dts are specified in |
| start_dts | Date/Time | Required | A date earlier than end_dts | Date and time at which the trade starts |
| end_dts | Date/Time | Required | A date later than start_dts | Date and time at which the trade ends |
| price | Number (12,4) | Optional | Omitted or a non-negative number | Price at which the trade is agreed |
| firmness | Text(1) | Optional Default=F | F or I | Is trade Firm or Interruptible |
| comment | Text(50) | Optional | Free Text | Any comment |
Trades are processed in order, so trades appearing in the same file with duplicate codes will result in versions of the trade appearing earliest in the file being replaced with the version appearing latest.
Text(x) is defined as text with a maximum length of x digits.
Number(x,y) is defined as a number with x significant digits, of which a maximum of y can be after the decimal place.