Loading

Argomenti

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

Nessun articolo trovato per questo argomento.

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 i fogli ore e i budget di Asana, la creazione di resoconti periodici è essenziale per una contabilità e un libro paga accurati. Sebbene Asana fornisca solide viste in-app, potresti occasionalmente aver bisogno di un'esportazione CSV completa di tutte le voci temporali nell'intero dominio per l'auditing esterno 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 di tempo da tutto lo spazio di lavoro e formattarle in un file CSV pulito 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 non add-on che registrano il tempo tramite i campi delle attività standard di Asana.

Perché esportare tramite API?

Sebbene l'interfaccia utente di Asana offra potenti dashboard, l'esportazione tramite API ti consente di:

  • Automatizzare la creazione di resoconti: pianifica esportazioni mensili o trimestrali per il tuo team finanziario senza clic manuali.
  • Granularità dell’audit: accedi a metadati specifici, come lo stato delle attività, la priorità e i GID di inserimento, che sono fondamentali per la tenuta dei registri.
  • Integrazione di sistema: trasferisci facilmente i tuoi dati relativi al tempo di Asana in software ERP o di gestione delle retribuzioni.

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 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 lasso di tempo.

GID attività

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

GID del progetto

L’identificatore univoco del progetto principale.

Stato delle attività

Indica se l’attività è attualmente “Aperta” o “Completata”.

GID voce

L’identificatore univoco per il registro delle ore specifico.

Implementazione: esportazione tramite Python

Per esportare "tutto" il tempo, lo script deve iterare attraverso i progetti per trovare le attività, quindi recuperare le voci temporali per tali attività utilizzando l’endpoint Ottieni voci di monitoraggio del tempo per un’attività.

Prerequisiti

Lo script di esportazione

Python
import Asana
import pandas come pd

# Inizializza 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. Iterare tutti i progetti nello spazio di lavoro
    projects = client.projects.get_projects({'spazio di lavoro': workspace_gid})
   
    per project in projects:
        # 2. Ottieni tutte le attività per il progetto
        attività = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            "name", "gid", "completed", "completed_at", "priority"
        ])

        for attività in attività:
            # 3. Recupera le voci temporali per ogni attività
            time_entries = client.time_tracking_entries.get_time_tracking_entries_for_task(
                attività['gid'],
                opt_fields=['created_by.name', 'duration_minutes', 'entered_on', 'gid']
            )

            per l'inserimento in time_entries:
                # Calcola le ore in formato decimale
                hours = round(entry[’duration_minutes’] / 60, 2)
               
                # Costruisci la riga in modo che corrisponda al modello CSV
                all_time_data.append({
                    "Nome attività": task['name'],
                    "Time (hours)": hours,
                    "Data": entry['entered_on'],
                    "Submitter": entry['created_by']['name'],
                    "GID attività": task['gid'],
                    "GID progetto": project['gid'],
                    "Task Status": "Completed" if task['completed'] else "Open",
                    "Data di completamento attività": task.get('completed_at', ''),
                    "Task Priority": task.get('priority', ''),
                    "GID voce": 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 velocità 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 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 pertinenti, in modo che nessuna voce venga ignorata.

Ask the Community

Note iconNota

Questo articolo è stato tradotto dall’IA.

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