# system.kanoa.operators.getOLEData(userId, assetId, startDate, endDate, attributionMode)

Returns single-range OLE/POLE data for one user on one asset, or for every operator scheduled
or logged into the asset during the range when userId is None (one row per operator - a crew breakdown).
period is resolved automatically from the asset's currently-running item (mes.vwAssetItem) via
mes.fnGetStandardRateAndPeriod - no longer a caller-supplied input.

---
### Parameters
**userId** `Integer`: Id of user, or None to return one row per operator in the crew for this asset/period<br />
**assetId** `Integer`: Id of asset<br />
**startDate** `DateTime`: Start date<br />
**endDate** `DateTime`: End date<br />
**attributionMode** `String`: 'EvenSplit', 'FullCredit', or 'PrimaryOnly' - controls how counter output is split when the asset has a crew (multiple concurrent users). Default 'EvenSplit'.<br />

---
### Returns
**oleData** `pyDataset`<br />

---
### Example
```python
userId = None
assetId = 4
startDate = system.date.parse("2025-11-01 00:00:00")
endDate = system.date.parse("2025-11-05 00:00:00")
attributionMode = 'EvenSplit'
data = system.kanoa.operators.getOLEData(userId, assetId, startDate, endDate, attributionMode)
```
