Importing a fixture template is a quick and easy way to create matches within the BowlsLink application that conform to some custom structure which the application may be unable to "auto" generate.
The BowsLink application expects a fixture template to be a file of comma-separated values (CSV), where each line of the file represents a single matche. CSV files are a common way to represent tabular data using only plain text, and many popular spreadsheet applications like Microsoft Excel support saving worksheets as CSV files.
Each match is represented using three mandatory values and four optional values. A round-number, a "home" team/opponent number, and an "away" team/opponent number make up a match's mandatory values; a time, a day, a green/rink allocation ID, and a section-number make up a match's optional values.
Byes are represented using a reserved team/opponent number of negative 1 (-1), and to-be-determined (TBD) designations are represented using a reserved team/opponent number of zero (0).
|=================================| | Round | Home | Away | |=============+=========+=========| | 1 | 1 | 2 | |-------------+---------+---------| | 1 | 3 | -1 | |-------------+---------+---------| | 2 | 1 | 3 | |-------------+---------+---------| | 2 | -1 | 2 | |-------------+---------+---------| | 3 | 1 | -1 | |-------------+---------+---------| | 3 | 2 | 3 | +-------------+---------+---------+
The template above is a typical representation of a round-robin competition with only 3 teams, where teams play each other only once. The template above includes only the mandatory values for each match: a round-number, and two opponent numbers.
As a CSV file, the template above will look something like:
Round,Home,Away 1,1,2 1,3,-1 2,1,3 2,-1,2 3,1,-1 3,2,3
In contrast, the template below is more complex, and includes optional values for each match, including a day, time, green/rink allocation ID, and section.
|========================================================================================| | Round | Home | Away | Day | Time | Green/Rink | Section | |=============+=========+=========+============+==========+================+=============| | 1 | 1 | 2 | 2021-04-01 | 09:15 | 4642 | | |-------------+---------+---------+------------+----------+----------------+-------------| | 1 | 3 | -1 | | 17:30 | 76 | 1 | |-------------+---------+---------+------------+----------+----------------+-------------| | 2 | 1 | 3 | 2021-05-21 | 13:20 | | | |-------------+---------+---------+------------+----------+----------------+-------------| | 2 | -1 | 2 | 2021-05-22 | | 5367 | 1 | |-------------+---------+---------+------------+----------+----------------+-------------| | 3 | 1 | -1 | | | | | |-------------+---------+---------+------------+----------+----------------+-------------| | 3 | 2 | 3 | 2021-11-03 | | 345 | | |-------------+---------+---------+------------+----------+----------------+-------------| | 1 | 4 | 5 | 2021-04-01 | 09:15 | 4642 | 2 | |-------------+---------+---------+------------+----------+----------------+-------------| | 1 | 6 | -1 | | 17:30 | 76 | 2 | |-------------+---------+---------+------------+----------+----------------+-------------| | 2 | 4 | 6 | 2021-05-21 | 13:20 | | 2 | |-------------+---------+---------+------------+----------+----------------+-------------| | 2 | -1 | 5 | 2021-05-22 | | 5367 | 2 | |-------------+---------+---------+------------+----------+----------------+-------------| | 3 | 4 | -1 | | | | 2 | |-------------+---------+---------+------------+----------+----------------+-------------| | 3 | 5 | 6 | 2021-11-03 | | 345 | 2 | +----------------------------------------------------------------------------------------+
Note that in the template above, optional values are just that: optional. A match may have a day, but no time; or a time, but no day.
As a CSV file, the template above will look something like:
Round,Home,Away,Day,Time,Green/Rink,Section 1,1,2,2021-04-01,09:15,4642, 1,3,-1,,17:30,76, 2,1,3,2021-05-21,13:20,, 2,-1,2,2021-05-22,,5367, 3,1,-1,,,, 3,2,3,2021-11-03,,345, 1,1,2,2021-04-01,09:15,4642,2 1,3,-1,,17:30,76,2 2,1,3,2021-05-21,13:20,,2 2,-1,2,2021-05-22,,5367,2 3,1,-1,,,,2 3,2,3,2021-11-03,,345,2
A match may require one or both of its opponents to be determined by the outcome of other matches - such as a round-2 match in a knock-out competition having both opponents determined by the winners of two distinct round-1 matches.
This can be achieved in a template by using an opponent source identifier in place of a team/opponent number for the "home" value, "away" value, or both.
An opponent source identifier follows the format (n)-W
or (n)-L
, where (n)
represents the index of the match from which an opponent should be sourced, and W
and L
discriminate between the "winner" and "loser" of that match respectively. For example: 3-W
identifies the winner of the 3rd match in the template; 11-L
identifies the loser of the 11th match in the template. If working with a spreadsheet application like MS Excel, be careful not to confuse the number of the row in which a match is templated for the index of the match. Because a template will include a "header" row, the match in the second row of the spreadsheet is actually the first match of the template (so, index 1).
|=================================| | Round | Home | Away | |=============+=========+=========| | 1 | 3 | 4 | |-------------+---------+---------| | 1 | 1 | 2 | |-------------+---------+---------| | 2 | 2-L | 1-W | |-------------+---------+---------| | 3 | 2-W | 3-W | +-------------+---------+---------+
The template above represents matches conforming to the Page-McIntyre system. In the first round of the Page-McIntyre system, the highest two ranked teams play each other, with the winner going straight through to the grand final and the loser going through to the preliminary final. The lowest two ranked teams play each other, and the winner advances to the preliminary final. The winner of the preliminary final gets through to the grand final (round 3).
As a CSV file, the template above will look something like:
Round,Home,Away 1,3,4 1,1,2 2,2-L,1-W 3,2-W,3-W
It's common for some spreadsheet applications to save CSV files so that all values are delimited by quotation marks - e.g. "1","3","-1". If your CSV file exhibits this trait, don't worry, the BowlsLink importer handles these types of CSV files just fine.
Before attempting to import your own fixture template CSV file, take note of the following:
- Ensure your CSV file has a .csv extension; the BowlsLink application may be unable to recognise the file as a fixture template otherwise.
- Ensure your CSV file's first row represents "column headers" (like 'Round', 'Home', etc), and not a match; the BowlsLink template importer is configured to ignore the first row. As such, feel free to use whatever "column headers" make sense to you.
- Ensure every row of your CSV file has values for all three mandatory columns: round-number, "home" team/opponent number, and "away" team/opponent number.
- Round numbers don't have to be contiguous, nor do they have to start at 1; a fixture template with rounds 5, 21, and 40 is perfectly valid.
- Round numbers do, however, need to be greater than zero (0).
- Like round numbers, team/opponent numbers don't have to be contiguous, nor do they have to start at 1. We recommend, however, that you use team/opponent numbers that are greater than zero (0), as the BowlsLink application reserves numbers less than one (1) for specialised cases (like byes, which are represented using -1).
- Team/opponent numbers must be no greater than 9000.
- Days must conform to the format YYYY-MM-DD.
- Times must use 24-hour time and conform to the format HH:MM.
- Green/rink allocation IDs must identify greens/rinks allocated to the competition to which the match(s) belong. The Greens & Rinks Report can be used to generate a list of green/rink allocation IDs per competition.
- Section numbers don't have to be contiguous, nor do they have to start at 1; a fixture template with sections 7, 2, and 11 is perfectly valid.
- Section numbers do, however, need to be greater than zero (0).
- For any match that doesn't define a section number, section 1 will be used as default.
- For templates that define more than single section, the same team/opponent number must not appear in more than one section. Example: if one section uses team/opponent numbers 1-3, no other section may use these numbers. The exception to this rule is team/opponent numbers below 1, such as -1 (byes).
- A fixture template that defines more than a single section cannot have its matches extrapolated using the Apply the template to how many sections? feature.