Loading

Tópicos

Como exportar todos os dados de registros de tempo da Asana como CSV via API

Quem pode usar esta funcionalidade?
StarterAdvancedEnterpriseEnterprise+PremiumBusinesslegacy Enterprise

Visite a nossa página de preços para obter mais informações.

Para as organizações que usam as Planilhas de horas e orçamentos da Asana, os relatórios periódicos são essenciais para uma contabilidade e folha de pagamento precisas. Embora a Asana ofereça visualizações robustas no aplicativo, ocasionalmente você pode precisar de uma exportação abrangente em CSV de todos os registros de tempo em todo o seu domínio para auditoria externa ou processamento personalizado no final de um mês ou trimestre.

Este artigo explica como usar a API da Asana para agregar os registros de tempo de todo o seu espaço de trabalho e formatá-los em um CSV limpo e pronto para a contabilidade, que atenda aos seus requisitos internos.

Nota iconNota

Embora este guia seja adaptado para usuários do complemento Planilhas de horas e orçamentos, este método de exportação baseado em API também está disponível para usuários que não usam o complemento e registram o tempo por meio dos campos de tarefa padrão da Asana.

Por que exportar via API?

Embora a IU da Asana ofereça painéis poderosos, a exportação via API permite:

  • Automatizar a geração de relatórios: programe exportações mensais ou trimestrais para a sua equipe de finanças sem cliques manuais.
  • Granularidade de auditoria: acesse metadados específicos, como status da tarefa, prioridade e GIDs de entrada, que são cruciais para a manutenção de registros.
  • Integração de sistemas: transfira facilmente os seus dados de tempo da Asana para um software de ERP ou de folha de pagamento.

O formato de exportação de destino

Para assegurar a compatibilidade com as práticas contábeis padrão, o script de exportação deve produzir um arquivo CSV contendo os seguintes campos, conforme vistos nas exportações da visualização do revisor:

Coluna

Descrição

Nome da tarefa

O título da tarefa em que o tempo foi registrado.

Tempo (horas)

Duração total convertida de minutos para horas decimais.

Data

O dia específico em que o trabalho foi realizado.

Remetente

O nome do membro de equipe que registrou o tempo.

GID da tarefa

O identificador exclusivo da tarefa da Asana.

GID do projeto

O identificador exclusivo do projeto principal.

Status da tarefa

Se a tarefa está atualmente “Aberta” ou “Concluída”.

GID do registro

O identificador exclusivo do registro de tempo específico.

Implementação: exportação via Python

Para exportar “todo” o tempo, o seu script deve percorrer os seus projetos para encontrar tarefas e, em seguida, buscar os registros de tempo dessas tarefas usando o ponto de extremidade Obter registros de monitoramento de tempo para uma tarefa.

Pré-requisitos

O script de exportação

Python
import asana
import pandas as pd

# Inicializar o
cliente client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')
workspace_gid = 'YOUR_WORKSPACE_GID'

def export_domain_time():
    all_time_data = []

    # 1. Iterar por todos os projetos do espaço de trabalho
    projects = client.projects.get_projects({'workspace': workspace_gid})
   
    para projeto nos projetos:
        # 2. Obter todas as tarefas do projeto
        tasks = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            'name', 'gid', 'completed', 'completed_at', 'priority'
        ])

        for task in tasks:
            # 3. Obter registros de tempo para cada tarefa
            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:
                # Calcular as horas em formato decimal
                hours = round(entry['duration_minutes'] / 60, 2)
               
                # Criar a linha para corresponder ao modelo de CSV
                all_time_data.append({
                    "Nome da tarefa": task['name'],
                    "Tempo (horas)": hours,
                    "Data": entry['entered_on'],
                    "Remetente": entry['created_by']['name'],
                    "GID da tarefa": task['gid'],
                    "GID do projeto": project['gid'],
                    "Status da tarefa": "Concluído" if task['completed'] else "Aberto",
                    "Data de finalização da tarefa": task.get('completed_at', ''),
                    "Prioridade da tarefa": task.get('priority', ''),
                    "GID do registro": entry['gid']
                })

    # 4. Salvar para CSV
    df = pd.DataFrame(all_time_data)
    df.to_csv('asana_time_export_accounting.csv', index=False)
    print("Exportação concluída: asana_time_export_accounting.csv")

export_domain_time()

Considerações críticas para domínios grandes

Ao executar esta exportação para uma organização inteira, procure seguir as boas práticas abaixo:

  • Limites de taxa da API: a Asana tem limites para o número de solicitações que você pode fazer por minuto. Para domínios enormes, considere adicionar time.sleep() ou usar a lógica de repetição de tentativas integrada da biblioteca da Asana.
  • Filtragem de data: para a contabilidade mensal, use o campo entered_on no seu script para filtrar apenas o período relevante (por exemplo, o mês anterior).
  • Permissões: certifique-se de que o token de acesso pessoal pertença a uma conta de serviço ou a um administrador com acesso a todos os projetos relevantes, para que nenhum registro seja ignorado.

Exportar registros de tempo da página Planilhas de horas

Você pode exportar registros de tempo da página Planilhas de horas para o período que selecionar. Em Planilhas de horas, clique na seta do menu suspenso ao lado do título da página e selecione a opção de exportação que corresponda aos registros de tempo de que você precisa.
 
  • Exportar CSV dos meus registros de tempo exporta os seus próprios registros de tempo para o período selecionado.
  • Exportar CSV de registros de tempo dos remetentes exporta os registros de tempo das pessoas cujos registros de tempo você revisa.
  • Exportar CSV de registros de tempo de todos exporta todos os registros de tempo de toda a organização para o período selecionado. Esta opção está disponível para superadministradores.
Use a exportação de Planilhas de horas quando precisar de um arquivo CSV sem configurar um fluxo de trabalho de API. Para relatórios automatizados, processamento personalizado ou acesso aos campos de resposta da API descritos mais adiante neste artigo, use o método da API.

Ask the Community

Note iconNota

Este artigo foi traduzido por IA.

Dar feedback sobre a tradução.
Carregando
Exportar os dados de tempo da Asana para CSV via API | Centro de ajuda da Asana