Forum Discussion

SnoekLaurens's avatar
SnoekLaurens
Advocate I
1 year ago
Solved

Notebook semantic link (sempy) extract report usage

Hi, does anyone know if there is a way to use Python semantic link package to extract report usage form all reports that are in a workspace or connected to a certain shared dataset in power bi Servic...
  • SnoekLaurens's avatar
    SnoekLaurens
    1 year ago

    Already found it 🙂

     

    This works for me:

     

    import sempy.fabric as fabric
    import json

    method = 'GET'
    start_time = "'2024-12-11T00:55:00.000Z'"
    end_time = "'2024-12-11T12:00:00.000Z'"
    filter = "$filter=Activity eq 'viewreport'"
    query = '&'.join(['startDateTime='+start_time,'endDateTime='+end_time,filter])
    full_url = url + '?' + query

    client = fabric.PowerBIRestClient()

    def get_activity_events(url😞
        response = client.request(method, url)
        data = response.json()
       
        # Process the current batch of events
        events = data.get('activityEventEntities', [])
       
        # Check for continuation
        continuation_uri = data.get('continuationUri')
        while continuation_uri:
            response = client.request(method, continuation_uri)
            data = response.json()
            events.extend(data.get('activityEventEntities', []))
            continuation_uri = data.get('continuationUri')
       
        return events

    events = get_activity_events(full_url)
    print(json.dumps(events, indent=4))