Loading

Sujets

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Aucun article trouvé sur ce sujet.

Comment exporter toutes les données de saisie de temps depuis Asana au format CSV via l’API

Qui peut utiliser cette fonctionnalité?
StarterAdvancedEnterpriseEnterprise+PremiumBusinesslegacy Enterprise

Pour en savoir plus, consultez notre page de tarification.

Pour les organisations qui utilisent les feuilles de temps et les budgets d’Asana, des rapports périodiques sont essentiels pour une comptabilité et une paie précises. Bien qu’Asana fournisse des vues robustes dans l’application, vous pouvez parfois avoir besoin d’une exportation CSV complète de toutes les entrées de temps dans l’ensemble de votre domaine pour un audit externe ou un traitement personnalisé à la fin d’un mois ou d’un trimestre.

Cet article explique comment utiliser l’API Asana pour regrouper les entrées de temps de l’ensemble de votre espace de travail et les mettre en forme dans un fichier CSV propre et prêt pour la comptabilité qui correspond à vos exigences internes.

Note iconNote

Bien que ce guide soit conçu pour les utilisateurs de l’extension Feuilles de temps et budgets, cette méthode d’exportation basée sur l’API est également disponible pour les utilisateurs qui n’utilisent pas d’extensions et qui enregistrent le temps via les champs de tâches Asana standard.

Pourquoi exporter via l’API ?

Bien que l’interface utilisateur d’Asana propose des tableaux de bord puissants, l’exportation via l’API vous permet de :

  • Automatiser les rapports : planifiez des exportations mensuelles ou trimestrielles pour votre équipe financière sans clics manuels.
  • Auditer la granularité : accédez à des métadonnées spécifiques, telles que le statut des tâches, la priorité et les GID d’entrée, qui sont essentielles à la tenue des dossiers.
  • Intégration de systèmes : transférez facilement vos données de temps Asana dans un logiciel ERP ou de paie.

Le format d’exportation cible

Pour assurer la compatibilité avec les pratiques comptables standard, votre script d’exportation doit produire un fichier CSV contenant les champs suivants, comme indiqué dans les exportations de votre vue de réviseur :

Colonne

Description

Nom de la tâche

Le titre de la tâche pour laquelle le temps a été enregistré.

Durée (heures)

Durée totale convertie de minutes en heures décimales.

Date

Le jour spécifique où le travail a été effectué.

Personne à l’origine de l’envoi

Le nom du membre de l’équipe qui a enregistré le temps.

GID des tâches

L’identifiant unique de la tâche Asana.

GID du projet

Identifiant unique du projet parent.

Statut des tâches

Indique si la tâche est actuellement « En cours » ou « Terminée ».

GID d’entrée

Identifiant unique pour le journal de temps spécifique.

Implémentation : exportation via Python

Pour exporter « tout » le temps, votre script doit parcourir vos projets pour trouver des tâches, puis récupérer les entrées de temps pour ces tâches à l’aide du point de terminaison Obtenir des entrées de suivi du temps pour une tâche.

Conditions préalables

Le script d’exportation

Python
import Asana
import pandas as pd

# Initialiser le
client client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')
workspace_gid = 'VOTRE_GID_ESPACE_DE_TRAVAIL'

def export_domain_time() :
    all_time_data = []

    # 1. Parcourir tous les projets de l’espace de travail
    projects = client.projects.get_projects({'espace de travail': workspace_gid})
   
    pour le projet dans les projets :
        # 2. Obtenir toutes les tâches du projet
        tasks = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            'name', 'gid', 'terminé', 'terminé_à', 'priorité'
        ])

        for tâche in tâches:
            # 3. Récupérer les entrées de temps pour chaque tâche
            time_entries = client.time_tracking_entries.get_time_tracking_entries_for_task(
                task['gid'],
                opt_fields=['created_by.name', 'duration_minutes', 'entered_on', 'gid']
            )

            pour l'entrée dans time_entries :
                # Calculer les heures au format décimal
                hours = round(entry['duration_minutes'] / 60, 2)
               
                # Construire la ligne pour qu'elle corresponde au modèle CSV
                all_time_data.append({
                    "Nom de la tâche" : tâche["nom"],
                    "Time (hours)" : hours,
                    "Date" : entry['entered_on'],
                    "Submitter" : entry['created_by']['name'],
                    "GID de la tâche" : tâche["gid"],
                    "GID du projet" : project['gid'],
                    "Task Status": "Terminé" if task['completed'] else "Ouvert",
                    "Task Completion Date" : task.get('completed_at', ''),
                    "Priorité des tâches" : tâche.get('priorité', ''),
                    "GID d'entrée" : entrée['gid']
                })

    # 4. Enregistrer au format CSV
    df = pd.DataFrame(all_time_data)
    df.to_csv('asana_time_export_accounting.csv', index=False)
    print("Export terminé : asana_time_export_accounting.csv")

export_domain_time()

Considérations critiques pour les grands domaines

Lorsque vous exécutez cet export pour l’ensemble d’une organisation, gardez à l’esprit les bonnes pratiques suivantes :

  • Limites de débit de l’API : Asana limite le nombre de demandes que vous pouvez effectuer par minute. Pour les domaines volumineux, envisagez d’ajouter time.sleep() ou d’utiliser la logique de nouvelle tentative intégrée à la bibliothèque Asana.
  • Filtrage de la date : pour la comptabilité mensuelle, utilisez le champ entered_on dans votre script pour filtrer uniquement pour la période concernée (par exemple, le mois précédent).
  • Autorisations : assurez-vous que le jeton d’accès Personal appartient à un compte de service ou à un administrateur qui a accès à tous les projets pertinents, afin qu’aucune entrée ne soit ignorée.

Ask the Community

Note iconNote

Cet article a été traduit par l’IA.

Donnez votre avis sur la traduction.
Chargement
Exporter les données de temps Asana au format CSV via l’API | Centre d’aide Asana