Loading

Argomenti

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Come esportare tutti i dati relativi al tempo da Asana in formato CSV tramite API

Chi può usare questa funzionalità?
StarterAdvancedEnterpriseEnterprise+PremiumBusinessEnterprise legacy

Visita la pagina dei prezzi per maggiori informazioni.

Per le organizzazioni che utilizzano Fogli ore e budget di Asana, i resoconti periodici sono essenziali per una contabilità e un libro paga accurati. Sebbene Asana fornisca solide visualizzazioni in-app, occasionalmente potrebbe essere necessario un'esportazione CSV completa di tutti i tempi inseriti in tutto il dominio per la revisione esterna o l'elaborazione personalizzata alla fine di un mese o di un trimestre.

Questo articolo spiega come usare l'API Asana per aggregare le voci relative al tempo provenienti da tutto il tuo spazio di lavoro e formattarle in un file CSV ordinato e pronto per la contabilità, che soddisfi i tuoi requisiti interni.

Nota iconNota

Sebbene questa guida sia pensata per gli utenti dell'add-on Fogli ore e budget, questo metodo di esportazione basato su API è disponibile anche per gli utenti che non utilizzano l'add-on e che registrano il tempo tramite i campi standard delle attività di Asana.

Perché esportare tramite API?

Mentre l'interfaccia utente di Asana offre potenti Dashboard, l'esportazione tramite API ti consente di:

  • Automatizzare la creazione di resoconti: programma esportazioni mensili o trimestrali per il tuo team finanziario senza clic manuali.
  • Granularità dell'audit: accedere a metadati specifici, come lo stato dell'attività, la priorità e i GID delle voci, che sono fondamentali per la tenuta dei registri.
  • Integrazione di sistema: trasferisci facilmente i tuoi dati dei tempi di Asana in un software ERP o per le buste paga.

Il formato di esportazione di destinazione

Per garantire la compatibilità con le pratiche contabili standard, lo script di esportazione dovrebbe produrre un file CSV contenente i seguenti campi, come mostrato nelle esportazioni della vista del revisore:

Colonna

Descrizione

Nome attività

Il titolo dell'attività in cui è stato registrato il tempo.

Tempo (ore)

Durata totale convertita da minuti a ore decimali.

Data

Il giorno specifico in cui è stato eseguito il lavoro.

Mittente

Il nome del membro del team che ha registrato il tempo.

GID dell'attività

L'identificatore univoco per l'attività di Asana.

GID del progetto

L'identificatore univoco del progetto principale.

Stato dell'attività

Se l'attività è attualmente "Aperta" o "Completata".

GID di inserimento

L'identificatore univoco per il registro temporale specifico.

Implementazione: esportazione tramite Python

Per esportare "tutto" il tempo, lo script deve scorrere i tuoi progetti per trovare le attività, quindi recuperare le voci di monitoraggio del tempo per quelle attività utilizzando l'endpoint Ottieni voci di monitoraggio del tempo per un'attività.

Prerequisiti

Lo script di esportazione

Python
import asana
import pandas as pd

# Inizializza il client
client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')
workspace_gid = 'IL_TUO_GID_DELLO_SPAZIO_DI_LAVORO'

def export_domain_time():
    all_time_data = []

    # 1. Esegui un'iterazione su tutti i progetti nello spazio di lavoro
    projects = client.projects.get_projects({'workspace': workspace_gid})
   
    per progetto nei progetti:
        # 2. Ottieni tutte le attività del progetto
        attività = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            'name', 'gid', 'completed', 'completed_at', 'priority'
        ])

        for task in tasks:
            # 3. Recupera i tempi per ogni attività
            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:
                # Calcola le ore in formato decimale
                hours = round(entry['duration_minutes'] / 60, 2)
               
                # Crea la riga in modo che corrisponda al modello CSV
                all_time_data.append({
                    "Nome dell'attività": task['name'],
                    "Tempo (ore)": hours,
                    "Data": entry['entered_on'],
                    "Mittente": entry['created_by']['name'],
                    "GID attività": task['gid'],
                    "GID progetto": project['gid'],
                    "Stato attività": "Completata" if task['completed'] else "Aperta",
                    "Data di completamento dell'attività": task.get('completed_at', ''),
                    "Priorità attività": task.get('priority', ''),
                    "GID inserimento": entry['gid']
                })

    # 4. Salva in CSV
    df = pd.DataFrame(all_time_data)
    df.to_csv('asana_time_export_accounting.csv', index=False)
    print("Esportazione completata: asana_time_export_accounting.csv")

export_domain_time()

Considerazioni critiche per domini di grandi dimensioni

Quando esegui questa esportazione per un'intera organizzazione, tieni a mente le seguenti Best practice:

  • Limiti di frequenza dell'API: Asana ha dei limiti sul numero di richieste che puoi effettuare al minuto. Per i domini di grandi dimensioni, prendi in considerazione l'aggiunta di time.sleep() o l'utilizzo della logica di ripetizione dei tentativi integrata nella raccolta di Asana.
  • Filtro per data: per la contabilità mensile, utilizza il campo entered_on all'interno dello script per filtrare solo per il periodo pertinente (ad esempio, il mese precedente).
  • Autorizzazioni: assicurati che il token di accesso personale appartenga a un account di servizio o a un amministratore che abbia accesso a tutti i progetti rilevanti, in modo che nessuna voce venga saltata.

Esportazione delle ore inserite dalla pagina Schede attività

Puoi esportare i tempi dalla pagina Fogli ore per l'intervallo di tempo selezionato. Da Fogli ore, clicca sulla freccia a discesa accanto al titolo della pagina, quindi seleziona l'opzione di esportazione che corrisponde ai tempi di cui hai bisogno.
 
  • Esporta il file CSV dei tempi esporta i tuoi tempi per l'intervallo di tempo selezionato.
  • Esporta il file CSV dei tempi degli utenti esporta i tempi delle persone di cui approvi i tempi.
  • Esporta il file CSV dei tempi di tutti gli utenti esporta tutti i tempi in tutta l’organizzazione per l’intervallo di tempo selezionato. Questa opzione è disponibile per gli amministratori avanzati.
Usa l'esportazione Fogli ore quando hai bisogno di un file CSV senza configurare un flusso di lavoro API. Per la creazione automatica di resoconti, l'elaborazione personalizzata o l'accesso ai campi di risposta API descritti più avanti in questo articolo, utilizza il metodo API.

Ask the Community

Note iconNota

Questo articolo è stato tradotto dall’IA.

Invia feedback sulla traduzione.
Caricamento
Esportare i dati di monitoraggio del tempo di Asana in CSV tramite API | Centro assistenza Asana