Loading

Tematy

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Nie znaleziono artykułów na ten temat.

Jak wyeksportować wszystkie dane dotyczące czasu z Asany jako plik CSV za pośrednictwem interfejsu API

Kto może korzystać z tej funkcji?
StarterAdvancedEnterpriseEnterprise+PremiumBusinessLegacy Enterprise

Odwiedź naszą stronę z cennikiem, aby uzyskać więcej informacji.

W organizacjach korzystających z kart czasu pracy i budżetów w Asanie okresowe raportowanie jest niezbędne do prowadzenia dokładnej księgowości i listy płac. Chociaż Asana zapewnia solidne widoki w aplikacji, czasami może być potrzebny kompleksowy eksport wszystkich wpisów dotyczących czasu z całej domeny do pliku CSV na potrzeby audytu zewnętrznego lub przetwarzania niestandardowego na koniec miesiąca lub kwartału.

Z tego artykułu dowiesz się, jak używać API Asany do agregowania wpisów dotyczących czasu z całego obszaru roboczego i formatowania ich w czysty, gotowy do księgowania plik CSV, który spełnia Twoje wewnętrzne wymagania.

Uwaga iconUwaga

Chociaż ten przewodnik jest przeznaczony dla użytkowników dodatku Karty czasu pracy i budżety, ta metoda eksportu oparta na interfejsie API jest również dostępna dla użytkowników, którzy nie korzystają z dodatków, ale rejestrują czas za pomocą standardowych pól zadań w Asanie.

Dlaczego warto eksportować dane za pośrednictwem API?

Chociaż interfejs użytkownika Asany oferuje zaawansowane pulpity nawigacyjne, eksportowanie za pośrednictwem API umożliwia:

  • Automatyzacja raportowania: zaplanuj miesięczne lub kwartalne eksporty dla swojego zespołu finansowego bez konieczności wykonywania ręcznych kliknięć.
  • Szczegółowość audytu: uzyskaj dostęp do określonych metadanych, takich jak status zadania, priorytet i identyfikatory GID wpisów, które są kluczowe dla prowadzenia dokumentacji.
  • Integracja systemów: z łatwością przesyłaj dane dotyczące czasu z Asany do oprogramowania ERP lub do obsługi listy płac.

Docelowy format eksportu

Aby zapewnić zgodność ze standardowymi praktykami księgowymi, skrypt eksportu powinien wygenerować plik CSV zawierający następujące pola, które są widoczne w widoku recenzenta eksportu:

Kolumna

Opis

Nazwa zadania

Tytuł zadania, dla którego zarejestrowano czas.

Czas (w godzinach)

Całkowity czas trwania przeliczony z minut na godziny dziesiętne.

Data

Konkretny dzień, w którym wykonano pracę.

Osoba przesyłająca

Imię i nazwisko członka zespołu, który zarejestrował czas.

GID zadania

Unikalny identyfikator zadania w Asanie.

GID projektu

Unikalny identyfikator projektu nadrzędnego.

Status zadania

Czy zadanie jest obecnie „Otwarte” czy „Ukończone”.

Identyfikator GID wpisu

Unikalny identyfikator określonego wpisu dotyczącego czasu.

Wdrożenie: eksportowanie za pomocą języka Python

Aby wyeksportować „cały” czas, skrypt musi przejść przez projekty, aby znaleźć zadania, a następnie pobrać wpisy czasu dla tych zadań za pomocą punktu końcowego Pobierz wpisy śledzenia czasu dla zadania.

Wymagania wstępne

Skrypt eksportu

Python
import Asana
import pandas jako pd

# Inicjalizacja klienta
client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')
workspace_gid = 'TWÓJ_GID_OBSZARU_ROBOCZEGO'

def export_domain_time():
    all_time_data = []

    # 1. Przejdź przez wszystkie projekty w obszarze roboczym
    projects = client.projects.get_projects({'obszar roboczy': workspace_gid})
   
    dla projektu w projektach:
        # 2. Pobierz wszystkie zadania dla projektu
        zadania = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            'name', 'gid', 'ukończone', 'completed_at', 'priority'
        ])

        for zadanie in zadania:
            # 3. Pobierz wpisy czasu dla każdego zadania
            time_entries = client.time_tracking_entries.get_time_tracking_entries_for_task(
                task['gid'],
                opt_fields=['created_by.name', 'duration_minutes', 'entered_on', 'gid']
            )

            dla wpisu w time_entries:
                # Oblicz godziny w formacie dziesiętnym
                hours = round(entry['duration_minutes'] / 60, 2)
               
                # Utwórz wiersz, aby dopasować go do szablonu CSV
                all_time_data.append({
                    "Nazwa zadania": zadanie["nazwa"],
                    "Time (hours)": hours,
                    "Date": entry['entered_on'],
                    "Submitter": entry['created_by']['name'],
                    "GID zadania": task['gid'],
                    "Project GID": project['gid'],
                    "Task Status": "Ukończone" if task['completed'] else "Otwarte",
                    "Data ukończenia zadania": task.get('completed_at', ''),
                    "Task Priority": zadanie.get('priority', ''),
                    "Entry GID": entry['gid']
                })

    # 4. Zapisz w pliku CSV
    df = pd.DataFrame(all_time_data)
    df.to_csv('asana_time_export_accounting.csv', index=False)
    print("Eksportowanie ukończone: asana_time_export_accounting.csv")

export_domain_time()

Ważne uwagi dotyczące dużych domen

Podczas eksportowania danych dla całej organizacji należy pamiętać o następujących najlepszych praktykach:

  • Limity szybkości API: Asana ma limity liczby żądań, które można wykonać w ciągu minuty. W przypadku dużych domen rozważ dodanie time.sleep() lub użycie wbudowanej logiki ponawiania prób biblioteki Asana.
  • Filtrowanie dat: w przypadku rozliczeń miesięcznych użyj pola entered_on w skrypcie, aby filtrować tylko dla odpowiedniego okresu (np. poprzedniego miesiąca).
  • Uprawnienia: upewnij się, że osobisty token dostępu należy do konta usług lub administratora, który ma dostęp do wszystkich odpowiednich projektów, aby żadne wpisy nie zostały pominięte.

Ask the Community

Note iconUwaga

Ten artykuł został przetłumaczony przez AI.

Prześlij opinię na temat tłumaczenia.
Ładowanie
Eksportuj dane dotyczące czasu z Asany do pliku CSV za pośrednictwem interfejsu API | Centrum pomocy Asana