다음을 통해 공유


상업용 마켓플레이스를 위한 프로그램 방식의 접근 방식

이 다이어그램은 새 보고서 템플릿을 만들고, 사용자 지정 보고서를 예약하고, 실패 데이터를 검색하는 데 사용되는 API 호출 패턴을 보여 줍니다.

새 보고서 템플릿을 만들고, 사용자 지정 보고서를 예약하고, 실패 데이터를 검색하는 데 사용되는 API 호출 패턴을 보여 줍니다. 그림 1: API 호출 패턴 개략적인 흐름

이 목록은 그림 1에 대한 자세한 내용을 제공합니다.

  1. 클라이언트 애플리케이션은 보고서 쿼리 만들기 API호출하여 사용자 지정 보고서 스키마/템플릿을 정의할 수 있습니다. 또는 시스템 쿼리 목록에서 보고서 템플릿(QueryId)을 사용할 수 있습니다.
  2. 성공하면 보고서 템플릿 만들기 API는 QueryId반환합니다.
  3. 그런 다음 클라이언트 애플리케이션은 보고서 시작 날짜, 반복 간격, 되풀이 및 선택적 콜백 URI와 함께 QueryID 사용하여 보고서 만들기 API 호출합니다.
  4. 성공하면 보고서 만들기 APIReportID반환합니다.
  5. 클라이언트 애플리케이션은 보고서 데이터를 다운로드할 준비가 되는 즉시 콜백 URI에서 알림을 받습니다.
  6. 그런 다음 클라이언트 애플리케이션은 보고서 실행 가져오기 API 사용하여 Report ID 및 날짜 범위로 보고서의 상태를 쿼리합니다.
  7. 성공하면 보고서 다운로드 링크가 반환되고 애플리케이션에서 데이터 다운로드를 시작할 수 있습니다.

보고서 쿼리 언어 사양

보고서를 만드는 데 사용할 수 있는 시스템 쿼리를 제공하지만 비즈니스 요구 사항에 따라 사용자 고유의 쿼리를 만들 수도 있습니다. 사용자 지정 쿼리에 대한 자세한 내용은 사용자 지정 쿼리 사양참조하세요.

보고서 쿼리 API 만들기

이 API는 열 및 메트릭을 내보내야 하는 데이터 세트를 정의하는 사용자 지정 쿼리를 만드는 데 도움이 됩니다. API는 비즈니스 요구 사항에 따라 새 보고 템플릿을 만들 수 있는 유연성을 제공합니다.

시스템의 제공된 쿼리를 사용할 수도 있습니다. 사용자 지정 보고서 템플릿이 필요하지 않은 경우 제공하는 시스템 쿼리의 QueryIds 사용하여 보고서 만들기 API 직접 호출할 수 있습니다.

다음 예제에서는 사용자 지정 쿼리를 만들어 지난 달의 ISVUsage 데이터 세트에서 유료 SKU 대한 정규화된 사용량 및 예상 재무 요금을 가져오는 방법을 보여 줍니다.

요청 구문

메서드 요청 URI
올리기 https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries

요청 헤더

머리글 유형 묘사
권한 부여 문자열 필수. Microsoft Entra 액세스 토큰입니다. 형식은 Bearer <token>입니다.
Content-Type string application/JSON

Path 매개 변수

없음

Query 매개 변수

없음

요청 페이로드 예제

{
    "Name": "ISVUsageQuery",
    "Description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
    "Query": "SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH"
}

용어집

이 표에서는 요청 페이로드의 요소에 대한 주요 정의를 제공합니다.

매개 변수 필수 묘사 허용되는 값
Name 쿼리의 사용자 친화적인 이름 문자열
Description 아니요 만든 쿼리에 대한 설명 문자열
Query 비즈니스 필요에 따라 문자열 쿼리 문자열

메모

사용자 지정 쿼리 예제는 샘플 쿼리를 참조하세요.

샘플 응답

응답 페이로드는 다음과 같이 구성됩니다.

응답 코드: 200, 400, 401, 403, 500

응답 페이로드 예제:

{
  "value": [
        {
            "queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
            "name": " ISVUsageQuery",
            "description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
            "query": " SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH",
            "type": "userDefined",
            "user": "142344300",
            "createdTime": "2024-01-06T05:38:34Z"
        }
    ],
    "totalCount": 1,
    "message": "Query created successfully",
    "statusCode": 200
}

용어집

이 표에서는 응답에 있는 요소의 주요 정의를 제공합니다.

매개 변수 묘사
QueryId 만든 쿼리의 UUID(범용 고유 식별자)
Name 쿼리를 만드는 동안 요청 페이로드에 제공된 이름
Description 쿼리를 만드는 동안 요청 페이로드에 제공된 설명
Query 쿼리를 만드는 동안 요청 페이로드에 제공된 사용자 지정 보고서 쿼리
Type 수동으로 만든 쿼리에 대해 userDefined으로 설정
User 쿼리를 만드는 데 사용되는 사용자 ID
CreatedTime 쿼리를 만든 UTC 시간입니다. 형식: yyyy-MM-ddTHH:mm:ssZ
TotalCount 값 배열의 레코드 수
StatusCode 결과 코드
가능한 값은 200, 400, 401, 403, 500입니다.
message API 실행의 상태 메시지

보고서 API 만들기

사용자 지정 보고서 템플릿을 성공적으로 만들고 보고서 쿼리 만들기 응답의 일부로QueryID 수신할 때 이 API를 호출하여 정기적으로 쿼리를 실행하도록 예약할 수 있습니다. 보고서를 배달할 빈도 및 일정을 설정할 수 있습니다. 제공하는 시스템 쿼리의 경우 QueryId사용하여 보고서 만들기 API를 호출할 수도 있습니다.

요청 구문

메서드 요청 URI
올리기 https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport

요청 헤더

머리글 유형 묘사
권한 부여 문자열 필수. Microsoft Entra 액세스 토큰입니다. 형식은 Bearer <token>입니다.
콘텐츠 형식 문자열 application/JSON

Path 매개 변수

없음

Query 매개 변수

없음

요청 페이로드 예제

{
  "ReportName": "ISVUsageReport",
  "Description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
  "QueryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c ",
  "StartTime": "2021-01-06T19:00:00Z ",
  "executeNow": false,
  "RecurrenceInterval": 48,
  "RecurrenceCount": 20,
  "Format": "csv",
  "CallbackUrl": "https://<SampleCallbackUrl>"
  "callbackMethod": "GET",
}

용어집

이 표에서는 요청 페이로드의 요소에 대한 주요 정의를 제공합니다.

매개 변수 필수 묘사 허용되는 값
ReportName 보고서에 할당된 사용자 친화적인 이름 문자열
Description 아니요 만든 보고서에 대한 설명 문자열
QueryId 보고서 생성에 사용해야 하는 쿼리 ID 문자열
StartTime 보고서 생성이 시작되는 UTC 타임스탬프입니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. 문자열
ExecuteNow 아니요 이 매개 변수는 한 번만 실행되는 보고서를 만드는 데 사용해야 합니다. StartTime, RecurrenceInterval, RecurrenceCountEndTime는 이것이 true로 설정되면 무시됩니다. 부울
QueryStartTime 아니요 필요에 따라 데이터를 추출하는 쿼리의 시작 시간을 지정합니다. 이 매개 변수는 ExecuteNowtrue설정된 일회성 실행 보고서에만 적용됩니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. 문자열로 타임스탬프
QueryEndTime 아니요 필요에 따라 데이터를 추출하는 쿼리의 종료 시간을 지정합니다. 이 매개 변수는 ExecuteNowtrue설정된 일회성 실행 보고서에만 적용됩니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. 문자열로 타임스탬프
RecurrenceInterval 보고서를 생성해야 하는 시간 단위의 빈도입니다. 최소값은 1이고 최대값은 17520입니다. 정수
RecurrenceCount 생성할 보고서 수입니다. 제한은 되풀이 간격에 따라 달라집니다. 정수
Format 아니요 내보낸 파일의 파일 형식입니다. 기본 형식은 CSV입니다. CSV/TSV
CallbackUrl 아니요 선택적으로 콜백 대상으로 구성할 수 있는 공개적으로 액세스할 수 있는 URL 문자열
CallbackMethod 아니요 콜백 URL로 구성할 수 있는 Get/Post 메서드 GET/POST
EndTime 보고서 생성이 종료되는 UTC 타임스탬프입니다. 형식은 yyyy-MM-ddTHH:mm:ssZ여야 합니다. 문자열

메모

보고서를 만드는 동안 EndTime 또는 RecurrenceIntervalRecurrenceCount 조합이 필수입니다.

샘플 응답

응답 페이로드는 다음과 같이 구성됩니다.

응답 코드: 200, 400, 401, 403, 404, 500

응답 페이로드:

{
  "Value": [
    {
            "reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
            "reportName": "ISVUsageReport",
            "description": "Normalized Usage and Estimated Financial Charges for PAID SKUs",
            "queryId": "78be43f2-e35f-491a-8cd5-78fe14194f9c",
            "query": "SELECT UsageDate, NormalizedUsage, EstimatedExtendedChargePC FROM ISVUsage WHERE SKUBillingType = 'Paid' ORDER BY UsageDate DESC TIMESPAN LAST_MONTH",
            "user": "142344300",
            "createdTime": "2024-01-06T05:46:00Z",
            "modifiedTime": null,
            "startTime": "2024-01-06T19:00:00Z",
            "reportStatus": "Active",
            "recurrenceInterval": 48,
            "recurrenceCount": 20,
            "callbackUrl": "https://<SampleCallbackUrl>",
            "callbackMethod": "GET",
            "format": "csv"
    }
  ],
  "TotalCount": 1,
  "Message": "Report created successfully",
  "StatusCode": 200
}

용어집

이 표에서는 응답에 있는 요소의 주요 정의를 제공합니다.

매개 변수 설명
ReportId 만든 보고서의 UUID(범용 고유 식별자)
ReportName 보고서를 만드는 동안 요청 페이로드에 제공된 이름
Description 보고서를 만드는 동안 요청 페이로드에 제공된 설명
QueryId 보고서를 만드는 동안 요청 페이로드에 제공된 쿼리 ID
Query 이 보고서에 대해 실행될 쿼리 텍스트
User 보고서를 만드는 데 사용되는 사용자 ID
CreatedTime 보고서가 생성된 UTC 시간의 형식: yyyy-MM-ddTHH:mm:ssZ
ModifiedTime 보고서가 마지막으로 수정된 UTC 시간: yyyy-MM-ddTHH:mm:ssZ
ExecuteNow 보고서를 만드는 동안 요청 페이로드에 제공된 ExecuteNow 매개 변수
queryStartTime 보고서를 만드는 동안 요청 페이로드에 제공된 쿼리 시작 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다.
queryEndTime 보고서를 만드는 동안 요청 페이로드에 제공된 쿼리 종료 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다.
StartTime 보고서를 만드는 동안 요청 페이로드에 제공된 시작 시간
ReportStatus 보고서 실행의 상태입니다. 가능한 값은 일시 중지, 활성, 및 비활성입니다.
RecurrenceInterval 보고서를 만드는 동안 요청 페이로드에 제공된 되풀이 간격
RecurrenceCount 보고서의 나머지 되풀이 횟수
CallbackUrl 보고서를 만드는 동안 요청 페이로드에 제공된 콜백 URL
CallbackMethod 보고서를 만드는 동안 요청 페이로드에 제공된 콜백 메서드
Format 보고서를 만드는 동안 요청 페이로드에 제공된 보고서 파일의 형식
EndTime 보고서를 만드는 동안 요청 페이로드에 제공된 종료 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다.
TotalRecurrenceCount 보고서 생성 시 요청 페이로드에 제공된 RecurrenceCount
nextExecutionStartTime 다음 보고서 실행이 시작되는 UTC 타임스탬프
TotalCount 값 배열의 레코드 수
StatusCode 결과 코드입니다. 가능한 값은 200, 400, 401, 403, 500입니다.
message API 실행의 상태 메시지

보고서 실행 API 가져오기

이 메서드를 사용하여 ReportId을 받은 보고서 만들기 API에서 보고서 실행 상태를 쿼리할 수 있습니다. 보고서를 다운로드할 준비가 되면 이 메서드는 보고서 다운로드 링크를 반환합니다. 그렇지 않으면 메서드가 상태를 반환합니다. 이 API를 사용하여 지정된 보고서에 대해 발생한 모든 실행을 가져올 수도 있습니다.

중요하다

이 API에는 executionStatus=CompletedgetLatestExecution=true대해 설정된 기본 쿼리 매개 변수가 있습니다. 따라서 보고서를 처음 성공적으로 실행하기 전에 API를 호출하면 404가 반환됩니다. 보류 중인 작업은 executionStatus=Pending을 설정하면 가져올 수 있습니다.

요청 구문

메서드 요청 URI
가져오기 https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/{reportId}?executionId={executionId}&executionStatus={executionStatus}&getLatestExecution={getLatestExecution}

요청 헤더

머리글 종류 설명
권한 부여 문자열 필수. Microsoft Entra 액세스 토큰입니다. 형식은 Bearer <token>입니다.
콘텐츠 형식 문자열 application/json

Path 매개 변수

없음

Query 매개 변수

매개 변수 이름 필수 유형 묘사
reportId 문자열 이 인수에 지정된 reportId 있는 보고서만 실행 세부 정보를 가져오기 위해 필터링합니다.
executionId 아니요 문자열 필터를 사용하여 이 인수에 지정된 executionId 있는 보고서만 세부 정보를 가져옵니다. 여러 executionIds 세미콜론 ";"으로 구분하여 지정할 수 있습니다.
executionStatus 아니요 string/enum 필터를 사용하여 이 인수에 지정된 executionStatus 있는 보고서만 세부 정보를 가져옵니다.
유효한 값은 Pending, Running, PausedCompleted
기본값은 Completed.
getLatestExecution 아니요 불리언 API는 최신 보고서 실행에 대한 세부 정보를 반환합니다.
기본적으로 이 매개 변수는 true으로 설정되어 있습니다. 이 매개 변수의 값을 false전달하도록 선택하면 API는 지난 90일 실행 인스턴스를 반환합니다.

요청 페이로드

없음

샘플 응답

응답 페이로드는 다음과 같이 구성됩니다.

응답 코드: 200, 400, 401, 403, 404, 500

응답 페이로드 예제:

{
    "value": [
        {
            "executionId": "a0bd78ad-1a05-40fa-8847-8968b718d00f",
            "reportId": "72fa95ab-35f5-4d44-a1ee-503abbc88003",
            "recurrenceInterval": 4,
            "recurrenceCount": 10,
            "callbackUrl": null,
            "format": "csv",
            "executionStatus": "Completed",
            "reportAccessSecureLink": "https://<path to report for download>",
            "reportExpiryTime": null,
            "reportGeneratedTime": "2021-01-13T14:40:46Z"
        }
    ],
    "totalCount": 1,
    "message": null,
    "statusCode": 200
}

보고서 실행이 완료되면 실행 상태 Completed 표시됩니다. reportAccessSecureLinkURL을 선택하여 보고서를 다운로드할 수 있습니다.

용어집

응답의 요소에 대한 주요 정의입니다.

매개 변수 묘사
ExecutionId 실행 인스턴스의 UUID(범용 고유 식별자)
ReportId 실행 인스턴스와 연결된 보고서 ID
RecurrenceInterval 보고서를 만드는 동안 제공되는 되풀이 간격
RecurrenceCount 보고서를 만드는 동안 제공된 되풀이 횟수
CallbackUrl 실행 인스턴스와 연결된 콜백 URL
CallbackMethod 보고서를 만드는 동안 요청 페이로드에 제공된 콜백 메서드
Format 실행이 끝날 때 생성된 파일의 형식
ExecutionStatus 보고서 실행 인스턴스의 상태입니다.
유효한 값은 Pending, Running, PausedCompleted
ReportLocation 보고서가 다운로드되는 위치입니다.
ReportAccessSecureLink 보고서를 안전하게 액세스할 수 있는 링크
ReportExpiryTime 보고서 링크가 만료되는 UTC 시간은 다음 형식으로 제공되어야 합니다: yyyy-MM-ddTHH:mm:ssZ
ReportGeneratedTime 보고서가 생성된 UTC 시간: yyyy-MM-ddTHH:mm:ssZ
EndTime 보고서를 만드는 동안 요청 페이로드에 제공된 종료 시간입니다. 이는 ExecuteNow "True"로 설정된 경우에만 적용됩니다.
TotalRecurrenceCount 보고서 작성 시 요청 페이로드에 제공된 RecurrenceCount
nextExecutionStartTime 다음 보고서 실행이 시작되는 UTC 타임스탬프
TotalCount 값 배열의 데이터 세트 수
StatusCode 결과 코드
가능한 값은 200, 400, 401, 403, 404 및 500입니다.
message API 실행의 상태 메시지

Swagger API URL통해 API를 사용해 볼 수 있습니다.