Calendar
Main > frePPLe Manual > Modeling > Calendar
A calendar represents a value that is varying over time.
Calendars can be linked to multiple entities: a maximum capacity limit of a resource, a minimum capacity usage of a resource, a minimum or maximum inventory limit of a buffer, etc...
Different types of calendar exist:
- calendar_void:
A calendar without any value in its buckets. - calendar_double:
A calendar storing double numbers. - calendar_integer:
A calendar storing integer numbers. - calendar_boolean:
A calendar storing boolean values. - calendar_string:
A calendar storing string values. - calendar_operation:
A calendar storing operation values.
A calendar has multiple buckets to define the values over time. To determine the calendar value at a certain date the calendar will evaluate each of the buckets and combine the results in the following way:
- A bucket is only valid from its "start" date (inclusive) till its "end" date (exclusive).
Outside of this date range a bucket is never selected. - If multiple bucket are effective on a date, the one with the lowest "priority" value is taken.
In case buckets have the same priority, the value of the bucket with the latest start date is selected. - In case no bucket is effective on a certain date, the calendar will return the "default" value.
Calendar Fields
| Field | Type | Description |
| name | non-empty string | Name of the calendar. This is the key field and a required attribute. |
| default | Varies with the calendar type | The default value of the calendar when no bucket is effective. |
| buckets | List of bucket | A list of a buckets. |
| action | A C AC (default) R | Type of action to be executed:
|
Bucket Fields
| Field | Type | Description |
| start | dateTime | Start date of the validity of this bucket. When left unspecified, the entry is effective from the infinite past. |
| end | dateTime | End date of the validity of this bucket. When left unspecified, the entry is effective indefinately in the future. |
| name | normalizedString | Optional name of the bucket. When left unspecified the default name is the start date of the bucket. |
| priority | integer | Priority of this bucket when multiple buckets are effective for the same date. Lower values indicate higher priority. |
| value | Varies with the calendar type | The actual time-varying value. |
| action | A C AC (default) R | Type of action to be executed:
|
Example XML structures:
- Adding or changing a calendar and its buckets
<plan>
<calendars>
<calendar name="cal" xsi:type="calendar_double">
<default>5</default>
<buckets>
<bucket start="2007-01-01T00:00:00" value="10"
priority="1"/>
<!-- This entry overrides the first one during February. -->
<bucket start="2007-02-01T00:00:00" end="2007-03-01T00:00:00
value="20" priority="0"/>
</buckets>
</calendar >
</calendars>
</plan>
- Removing a calendar
<plan>
<calendars>
<calendar name="cal" action="R"/>
</calendars>
</plan>
Example Python code:
- Adding or changing a calendar and its buckets
cal = frepple.calendar_double(name="cal", default=5)
- Removing a calendar
frepple.calendar(name="cal", action="R")
