Loading

Topik

Cara mengekspor semua data entri waktu dari Asana sebagai CSV melalui API

Siapa yang dapat menggunakan fitur ini?
StarterAdvancedEnterpriseEnterprise+PremiumBusinesslegacy Enterprise

Kunjungi halaman harga kami untuk informasi selengkapnya.

Untuk organisasi yang menggunakan Timesheet dan Anggaran Asana, pelaporan berkala sangat penting untuk akuntansi dan penggajian yang akurat. Meskipun Asana menyediakan tampilan dalam aplikasi yang andal, terkadang Anda mungkin memerlukan ekspor CSV komprehensif dari semua time entry di seluruh domain Anda untuk audit eksternal atau pemrosesan khusus di akhir bulan atau kuartal.

Artikel ini menjelaskan cara menggunakan Asana API untuk menggabungkan entri waktu dari seluruh Ruang Kerja Anda dan memformatnya menjadi CSV yang rapi dan siap untuk akuntansi yang sesuai dengan persyaratan internal Anda.

Catatan iconCatatan

Meskipun panduan ini disesuaikan untuk pengguna pengaya Timesheet dan Anggaran, metode ekspor berbasis API ini juga tersedia untuk pengguna non-pengaya yang mencatat waktu melalui bidang tugas standar Asana.

Mengapa mengekspor melalui API?

Meskipun UI Asana menawarkan dasbor yang andal, dengan mengekspor melalui API, Anda dapat:

  • Mengotomatiskan pelaporan: Menjadwalkan ekspor bulanan atau triwulanan untuk tim keuangan Anda tanpa klik manual.
  • Audit granularitas: Mengakses metadata spesifik, seperti Status Tugas, Prioritas, dan GID Entri, yang penting untuk pencatatan.
  • Integrasi sistem: Mengirimkan data waktu Asana Anda dengan mudah ke ERP atau perangkat lunak penggajian.

Format ekspor target

Untuk memastikan kompatibilitas dengan praktik akuntansi standar, skrip ekspor Anda harus menghasilkan CSV yang berisi bidang berikut seperti yang terlihat dalam ekspor tampilan peninjau Anda:

Kolom

Deskripsi

Nama tugas

Judul tugas tempat waktu dimasukkan di log.

Waktu (jam)

Durasi total yang dikonversikan dari menit ke jam desimal.

Tanggal

Hari spesifik pekerjaan dilakukan.

Pengirim

Nama anggota tim yang membuat log waktu tersebut.

GID Tugas

Pengidentifikasi unik untuk tugas Asana.

GID Proyek

Pengidentifikasi unik untuk proyek induk.

Status Tugas

Apakah tugas saat ini "Terbuka" atau "Selesai".

GID Entri

Pengidentifikasi unik untuk log waktu spesifik.

Implementasi: Mengekspor melalui Python

Untuk mengekspor "semua" waktu, skrip Anda harus mengulangi proyek Anda untuk mencari Tugas, lalu mengambil entri waktu untuk tugas tersebut menggunakan titik akhir Dapatkan entri pelacakan waktu untuk tugas.

Prasyarat

Skrip ekspor

Python
import asana
import pandas as pd

# Inisialisasi Klien
client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')
workspace_gid = 'GID_RUANG_KERJA_ANDA'

def export_domain_time():
    all_time_data = []

    # 1. Iterasi semua proyek di Ruang Kerja
    projects = client.projects.get_projects({'workspace': workspace_gid})
   
    untuk proyek dalam proyek:
        # 2. Dapatkan semua tugas untuk proyek
        tasks = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            'name', 'gid', 'selesai', 'completed_at', 'prioritas'
        ])

        for task in tasks:
            # 3. Ambil entri waktu untuk setiap Tugas
            time_entries = client.time_tracking_entries.get_time_tracking_entries_for_task(
                task['gid'],
                opt_fields=['created_by.name', 'duration_minutes', 'entered_on', 'gid']
            )

            untuk entri dalam time_entries:
                # Hitung jam dalam format desimal
                hours = round(entry['duration_minutes'] / 60, 2)
               
                # Buat baris agar sesuai dengan templat CSV
                all_time_data.append({
                    "Nama tugas": task['name'],
                    "Waktu (jam)": hours,
                    "Tanggal": entry['entered_on'],
                    "Pengirim": entry['created_by']['name'],
                    "GID Tugas": task['gid'],
                    "GID Proyek": project['gid'],
                    "Status Tugas": "Selesai" jika task['completed'] jika tidak "Terbuka",
                    "Tanggal Penyelesaian Tugas": task.get('completed_at', ''),
                    "Prioritas Tugas": task.get('priority', ''),
                    "GID Entri": entry['gid']
                })

    # 4. Simpan ke CSV
    df = pd.DataFrame(all_time_data)
    df.to_csv('asana_time_export_accounting.csv', index=False)
    print("Ekspor selesai: asana_time_export_accounting.csv")

export_domain_time()

Pertimbangan penting untuk domain besar

Saat menjalankan ekspor ini untuk seluruh organisasi, ingatlah praktik terbaik berikut:

  • Batas Kecepatan API: Asana memiliki batas jumlah permintaan yang dapat Anda buat per menit. Untuk domain besar, pertimbangkan untuk menambahkan time.sleep() atau menggunakan logika coba ulang bawaan Pustaka Asana.
  • Pemfilteran Tanggal: Untuk akuntansi bulanan, gunakan bidang entered_on dalam skrip Anda untuk memfilter hanya untuk periode yang relevan (misalnya, bulan sebelumnya).
  • Izin: Pastikan token Akses Pribadi milik Akun Layanan atau Admin yang memiliki akses ke semua proyek terkait, jadi tidak ada entri yang dilewatkan.

Ekspor time entry dari halaman Lembar Waktu

Anda dapat mengekspor entri waktu dari halaman Timesheet untuk kerangka waktu yang Anda pilih. Dari Lembar Waktu, klik panah dropdown di samping judul halaman, lalu pilih opsi ekspor yang sesuai dengan entri waktu yang Anda butuhkan.
 
  • Ekspor CSV entri waktu saya mengekspor entri waktu Anda sendiri untuk rentang waktu yang dipilih.
  • Ekspor CSV entri waktu pengirim mengekspor entri waktu untuk orang yang entri waktunya Anda tinjau.
  • Ekspor CSV entri waktu semua orang mengekspor semua entri waktu di seluruh organisasi untuk rentang waktu yang dipilih. Opsi ini tersedia untuk admin super.
Gunakan ekspor Timesheet saat Anda membutuhkan file CSV tanpa mengonfigurasikan Alur Kerja API. Untuk pelaporan otomatis, pemrosesan kustom, atau akses ke bidang respons API yang dijelaskan nanti dalam artikel ini, gunakan metode API.

Ask the Community

Note iconCatatan

Artikel ini diterjemahkan oleh AI.

Kirim umpan balik terjemahan.
Memuat
Ekspor data waktu Asana ke CSV melalui API | Pusat Bantuan Asana