Loading

Ämnen

Exportera alla tidsangivelser från Asana som CSV via API

Vem kan använda den här funktionen?
StarterAdvancedEnterpriseEnterprise+PremiumBusinesstidigare Enterprise

Gå till vår prissättningssida för mer information.

För organisationer som använder Asanas Tidrapporter och Budgetar är periodisk rapportering avgörande för korrekt bokföring och löneadministration. Även om Asana erbjuder robusta vyer i appen kan du ibland behöva en omfattande CSV-export av alla tidsangivelser i hela din domän för extern revision eller anpassad bearbetning i slutet av en månad eller ett kvartal.

Den här artikeln förklarar hur du använder Asana API för att samla tidsposter från hela arbetsytan och formatera dem till en tydlig CSV-fil som är redo för redovisning och som uppfyller dina interna krav.

Anteckning iconAnteckning

Den här guiden är skräddarsydd för användare av tillägget Tidrapporter och budgetar, men den API-baserade exportmetoden är också tillgänglig för användare som inte använder tillägget och som loggar tid via Asanas standarduppgiftsfält.

Varför exportera via API?

Asana-användargränssnittet erbjuder kraftfulla paneler, men genom att exportera via API kan du göra följande:

  • Automatisera rapporteringen: Schemalägg månatliga eller kvartalsvisa exporter för ditt ekonomiteam utan manuella klick.
  • Granskningsdetaljer: Få tillgång till specifika metadata, såsom uppgiftsstatus, prioritet och GID:er för poster, som är avgörande för registerföring.
  • Systemintegrering: Överför enkelt dina Asana-tidsuppgifter till ERP- eller löneprogramvara.

Målexportformatet

För att säkerställa kompatibilitet med standardiserade redovisningsmetoder bör ditt exportskript producera en CSV-fil som innehåller följande fält, så som de visas i dina exporter för granskningsvyn:

Kolumn

Beskrivning

Uppgiftsnamn

Titeln på uppgiften där tiden loggades.

Tid (timmar)

Total varaktighet konverterad från minuter till decimaltimmar.

Datum

Den specifika dagen då arbetet utfördes.

Inlämnare

Namnet på teammedlemmen som loggade tiden.

Uppgiftens GID

Den unika identifieraren för Asana-uppgiften.

Projekt-GID

Den unika identifieraren för det överordnade projektet.

Uppgiftsstatus

Om uppgiften för närvarande är "Öppen" eller "Slutförd".

GID för noteringen

Den unika identifieraren för den specifika tidsloggen.

Implementering: Export via Python

För att exportera ”all” tid måste ditt skript iterera genom dina projekt för att hitta uppgifter och sedan hämta tidsposter för dessa uppgifter med hjälp av slutpunkten Hämta tidsspårningsangivelser för en uppgift.

Förutsättningar

Exporteringsskriptet

Python
import asana
import pandas as pd

# Initiera klient
client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')
workspace_gid = 'DIN_ARBETSYTAS_GID'

def export_domain_time():
    all_time_data = []

    # 1. Iterera genom alla projekt i arbetsytan
    projects = client.projects.get_projects({'workspace': workspace_gid})
   
    för projekt i projekt:
        # 2. Hämta alla uppgifter för projektet
        uppgifter = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            'name', 'gid', 'slutförd', 'completed_at', 'prioritet'
        ])

        for task in tasks:
            # 3. Hämta tidsangivelser för varje uppgift
            time_entries = client.time_tracking_entries.get_time_tracking_entries_for_task(
                task['gid'],
                opt_fields=['created_by.name', 'duration_minutes', 'entered_on', 'gid']
            )

            for entry in time_entries:
                # Beräkna timmar i decimalformat
                hours = round(entry['duration_minutes'] / 60, 2)
               
                # Skapa raden så att den matchar CSV-mallen
                all_time_data.append({
                    "Uppgiftsnamn": task['name'],
                    "Tid (timmar)": hours,
                    "Datum": entry['entered_on'],
                    "Inlämnare": entry['created_by']['name'],
                    "Uppgiftens GID": task['gid'],
                    "Projekt-GID": project['gid'],
                    "Uppgiftsstatus": "Slutförd" if task['completed'] else "Öppen",
                    "Uppgiftens slutförandedatum": task.get('completed_at', ''),
                    "Uppgiftsprioritet": task.get('priority', ''),
                    "GID för införande": entry['gid']
                })

    # 4. Spara till CSV
    df = pd.DataFrame(all_time_data)
    df.to_csv('asana_time_export_accounting.csv', index=False)
    print("Export slutförd: asana_time_export_accounting.csv")

export_domain_time()

Kritiska överväganden för stora domäner

När du kör den här exporten för en hel organisation bör du ha följande bästa praxis i åtanke:

  • API-hastighetsgränser: Asana har gränser för hur många förfrågningar du kan göra per minut. För stora domäner kan du lägga till time.sleep() eller använda Asana-bibliotekets inbyggda logik för att göra nya försök.
  • Datumfiltrering: För månatlig redovisning kan du använda fältet entered_on i ditt skript för att endast filtrera för den relevanta perioden (t.ex. föregående månad).
  • Behörigheter: Se till att den personliga åtkomsttoken tillhör ett servicekonto eller en administratör som har åtkomst till alla relevanta projekt, så att inga poster hoppas över.

Exportera tidsangivelser från sidan Tidrapporter

Du kan exportera tidsangivelser från sidan Tidrapporter för den tidsperiod du väljer. Från Tidrapporter klickar du på den nedrullningsbara pilen intill sidtiteln och väljer sedan det exportalternativ som matchar de tidsangivelser du behöver.
 
  • Exportera mina tidsangivelser som CSV exporterar dina egna tidsangivelser för den valda tidsperioden.
  • Exportera CSV med inlämnarens tidsangivelser exporterar tidsangivelser för de personer vars tidsangivelser du granskar.
  • Exportera CSV med allas tidsangivelser exporterar alla tidsangivelser i hela organisationen för den valda tidsperioden. Det här alternativet är tillgängligt för superadministratörer.
Använd exporten av tidrapporter när du behöver en CSV-fil utan att konfigurera ett API-arbetsflöde. Använd API-metoden för automatiserad rapportering, anpassad bearbetning eller åtkomst till API-svarsfälten som beskrivs längre fram i den här artikeln.

Ask the Community

Note iconAnteckning

This article has been AI-translated.

Send translation feedback.
Laddar
Exportera Asana-tidsdata till CSV via API | Asanas hjälpcenter