技能 编程开发 Clari本地集成开发流程

Clari本地集成开发流程

v20260423
clari-local-dev-loop
这是一个用于设置Clari API集成本地开发环境的完整流程。它允许用户使用模拟数据(Mock Data)来测试复杂的数据导出和转换管道(如预测和聚合),而无需依赖实时API调用。适用于构建和验证数据仪表板及数据处理工作流。
获取技能
64 次下载
概览

Clari Local Dev Loop

Overview

Local development workflow for Clari integrations: mock forecast data for offline testing, schedule recurring exports, and build data transformation pipelines.

Prerequisites

  • Completed clari-install-auth setup
  • Python 3.10+ or Node.js 18+
  • Local database or data warehouse access for testing

Instructions

Step 1: Project Structure

clari-integration/
├── src/
│   ├── clari_client.py       # API client wrapper
│   ├── export_pipeline.py    # Export and transform pipeline
│   ├── models.py             # Data models for forecast data
│   └── config.py             # Environment config
├── tests/
│   ├── fixtures/
│   │   ├── forecast_export.json    # Sample export response
│   │   └── job_status.json         # Sample job status
│   └── test_pipeline.py
├── .env.local                # Dev credentials (git-ignored)
├── .env.example
└── requirements.txt

Step 2: Mock Forecast Data for Testing

# tests/fixtures/forecast_export.json
MOCK_FORECAST = {
    "entries": [
        {
            "ownerName": "Jane Smith",
            "ownerEmail": "jane@example.com",
            "forecastAmount": 250000,
            "quotaAmount": 300000,
            "crmTotal": 180000,
            "crmClosed": 120000,
            "adjustmentAmount": 15000,
            "timePeriod": "2026_Q1"
        },
        {
            "ownerName": "Bob Johnson",
            "ownerEmail": "bob@example.com",
            "forecastAmount": 180000,
            "quotaAmount": 250000,
            "crmTotal": 140000,
            "crmClosed": 90000,
            "adjustmentAmount": 0,
            "timePeriod": "2026_Q1"
        }
    ]
}

Step 3: Test Pipeline Without API Calls

# tests/test_pipeline.py
import pytest
from src.export_pipeline import transform_forecast_data

def test_forecast_aggregation():
    data = MOCK_FORECAST
    result = transform_forecast_data(data)
    assert result["total_forecast"] == 430000
    assert result["total_quota"] == 550000
    assert result["attainment_percent"] == pytest.approx(78.2, rel=0.1)
    assert len(result["reps"]) == 2

def test_handles_empty_export():
    result = transform_forecast_data({"entries": []})
    assert result["total_forecast"] == 0

Step 4: Development Run Script

#!/bin/bash
# scripts/dev-export.sh
set -euo pipefail

source .env.local

echo "=== Clari Dev Export ==="
python3 src/export_pipeline.py \
  --forecast "company_forecast" \
  --period "2026_Q1" \
  --format json \
  --output ./data/latest-export.json

echo "Export saved to ./data/latest-export.json"
echo "Records: $(jq '.entries | length' ./data/latest-export.json)"

Error Handling

Error Cause Solution
Import error Missing dependency pip install -r requirements.txt
Empty export Wrong time period Use a period with submitted forecasts
Mock data stale Schema changed Re-download a sample from API
.env.local not loading Missing dotenv pip install python-dotenv

Resources

Next Steps

See clari-sdk-patterns for production-ready API wrappers.

信息
Category 编程开发
Name clari-local-dev-loop
版本 v20260423
大小 3.88KB
更新时间 2026-04-27
语言