Loading

주제

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

이 주제에 대한 기사를 찾을 수 없습니다.

API를 통해 Asana에서 모든 시간 입력 데이터를 CSV로 내보내는 방법

이 기능을 사용할 수 있는 사용자
StarterAdvancedEnterpriseEnterprise+그리고 기존 Premium비즈니스Legacy Enterprise 플랜에서 사용하실 수 있습니다

자세한 내용은 요금 페이지 를 참조하세요.

Asana의 타임시트 및 예산 을 사용하는 조직의 경우, 정확한 회계 및 급여를 위해서는 정기적인 보고가 필수적입니다. Asana는 강력한 앱 내 보기를 제공하지만, 때때로 외부 감사 또는 월말 또는 분기말 맞춤형 처리를 위해 전체 도메인에서 모든 시간 항목을 포괄적으로 CSV로 내보내야 할 수 있습니다.

이 가이드의 이 섹션에서는 Asana API를 사용하여 작업 공간 전체의 시간 항목을 집계하고 내부 요구 사항에 맞는 깨끗한 회계용 CSV로 서식을 지정하는 방법을 설명합니다.

메모 icon메모

이 가이드는 타임시트 및 예산 부가 기능 사용자를 위해 작성되었지만, 이 API 기반 내보내기 방법은 표준 Asana 작업 필드를 통해 시간을 기록하는 비부가 기능 사용자도 사용할 수 있습니다.

API를 통해 내보내는 이유는 무엇인가요?

Asana UI는 강력한 대시보드를 제공하지만 API를 통해 내보내면 다음을 수행할 수 있습니다.

  • 보고 자동화: 수동 클릭 없이 재무팀을 위한 월별 또는 분기별 내보내기를 예약합니다.
  • 감사 세분성: 기록 관리에 필수적인 작업 상태, 우선순위, 입력 GID와 같은 특정 메타데이터에 액세스합니다.
  • 시스템 연동: Asana 시간 데이터를 ERP 또는 급여 소프트웨어로 손쉽게 전달할 수 있습니다.

타깃 내보내기 형식

표준 회계 관행과의 호환성을 보장하기 위해 내보내기 스크립트는 검토자 보기 내보내기에 표시된 다음 필드가 포함된 CSV를 생성해야 합니다.

설명

작업 이름

시간이 기록된 작업의 제목입니다.

시간(시간)

총 소요 시간을 분에서 소수점 이하까지의 시간으로 변환했습니다.

날짜

작업이 수행된 특정 날짜입니다.

제출자

시간을 기록한 팀원의 이름입니다.

작업 GID

Asana 작업의 고유 식별자입니다.

프로젝트 GID

상위 프로젝트의 고유 식별자입니다.

작업 상태

작업이 현재 '열려 있음'인지 '완료된 작업'인지 여부입니다.

입력 GID

특정 시간 기록의 고유 식별자입니다.

구현: Python을 통한 내보내기

'모든' 시간을 내보내려면 스크립트가 프로젝트를 반복하여 작업을 찾은 다음 작업 엔드포인트에 대한 시간 추적 항목 가져오기 를 사용하여 해당 작업에 대한 시간 항목을 가져와야 합니다.

전제 조건

내보내기 스크립트

Python
import Asana
import pandas as pd

# 클라이언트 초기화
client = asana.Client.access_token('YOUR_PERSONAL_ACCESS_TOKEN')
workspace_gid = 'YOUR_WORKSPACE_GID'

def export_domain_time():
    all_time_data = []

    # 1. 작업 공간에 있는 모든 프로젝트를 반복합니다
    projects = client.projects.get_projects({'작업 공간': workspace_gid})
   
    프로젝트의 프로젝트:
        # 2. 프로젝트의 모든 작업 가져오기
        tasks = client.tasks.get_tasks_for_project(project['gid'], opt_fields=[
            'name', 'gid', '완료된', 'completed_at', 'priority'
        ])

        작업에서 작업:
            # 3. 각 작업의 시간 항목 가져오기
            time_entries = client.time_tracking_entries.get_time_tracking_entries_for_task(
                task['gid'],
                opt_fields=['created_by.name', 'duration_minutes', 'entered_on', 'gid']
            )

            time_entries의 항목:
                # 소수점 형식으로 시간 계산
                hours = round(entry['duration_minutes'] / 60, 2)
               
                # CSV 템플릿과 일치하도록 행을 작성합니다
                all_time_data.append({
                    "작업 이름": task['name'],
                    "Time (hours)": hours,
                    "Date": entry['entered_on'],
                    "제출자": entry['created_by']['name'],
                    "작업 GID": task['gid'],
                    "Project GID": project['gid'],
                    "Task Status": "Completed" if task['completed'] else "Open",
                    "작업 완료일": task.get('completed_at', ''),
                    "작업 우선순위": task.get('priority', ''),
                    "입력 GID": entry['gid']
                })

    # 4. CSV로 저장
    df = pd.DataFrame(all_time_data)
    df.to_csv('asana_time_export_accounting.csv', index=False)
    print("내보내기 완료된: asana_time_export_accounting.csv")

export_domain_time()

대규모 도메인을 위한 중요한 고려 사항

조직 전체에 대해 이 내보내기를 실행할 때는 다음 모범 사례를 참고하세요.

  • API 속도 제한: Asana에는 분당 요청할 수 있는 요청 수에 제한이 있습니다. 대규모 도메인의 경우 time.sleep() 을 추가하거나 Asana 라이브러리의 내장된 재시도 로직을 사용하는 것이 좋습니다.
  • 날짜 필터링: 월별 회계의 경우, 스크립트 내의 entered_on 필드를 사용하여 관련 기간(예: 이전 월)만 필터링합니다.
  • 권한: 개인 액세스 토큰이 모든 관련 프로젝트에 액세스할 수 있는 서비스 계정 또는 관리자 에 속하는지 확인하여 항목을 건너뛰지 않도록 합니다.

Ask the Community

Note icon메모

이 기사는 AI로 번역되었습니다.

번역 피드백을 보내주세요.
로드 중
API를 통해 Asana 시간 데이터를 CSV로 내보내기 | Asana 도움말 센터