Paradigma de acesso programático para mercado comercial
Este diagrama mostra o padrão de chamada de API usado para criar um novo modelo de relatório, agendar o relatório personalizado e recuperar dados de falha.
Figura 1: Fluxo de alto nível do padrão de chamada de API
Esta lista fornece mais detalhes sobre a Figura 1.
- O Aplicativo Cliente pode definir o esquema/modelo de relatório personalizado chamando o Create Report Query API. Como alternativa, você pode usar um modelo de relatório (
QueryId
) da lista de consultas do sistema. - Se for bem-sucedida, a API Criar Modelo de Relatório retornará o
QueryId
. - Em seguida, a aplicação cliente chama a Create Report API usando o
QueryID
juntamente com a data de início do relatório, intervalo de repetição, recorrência e um URI de retorno de chamada opcional. - Se for bem-sucedido, o Create Report API retornará o
ReportID
. - A aplicação cliente é notificada na URI de callback logo que os dados do relatório estejam prontos para transferência.
- Em seguida, o aplicativo cliente usa a API Obter Execuções de Relatório para consultar o status do relatório com o
Report ID
e o intervalo de datas. - Se for bem-sucedido, o link de download do relatório é retornado e o aplicativo pode iniciar o download dos dados.
Especificação da linguagem de consulta de relatório
Embora forneçamos consultas de sistema que pode usar para criar relatórios, também pode criar as suas próprias consultas com base nas suas necessidades empresariais. Para saber mais sobre consultas personalizadas, consulte Especificação de consulta personalizada.
Criar API de consulta de relatório
Essa API ajuda a criar consultas personalizadas que definem o conjunto de dados do qual as colunas e métricas precisam ser exportadas. A API oferece a flexibilidade de criar um novo modelo de relatório com base nas suas necessidades de negócios.
Você também pode usar as consultas do sistema que fornecemos. Quando modelos de relatório personalizados não são necessários, você pode chamar o Criar API de Relatório diretamente usando o QueryIds das consultas do sistema que fornecemos.
O exemplo a seguir mostra como criar uma consulta personalizada para obter Uso Normalizado e Encargos Financeiros Estimados para SKUs PAGOS do conjunto de dados ISVUsage do último mês.
Sintaxe de solicitação
Método | Solicitar URI |
---|---|
PUBLICAR | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries |
Cabeçalho da solicitação
Cabeçalho | Tipo | Descrição |
---|---|---|
Autorização | string | Necessário. O token de acesso do Microsoft Entra. O formato é Bearer <token> . |
Tipo de conteúdo | string |
application/JSON |
Parâmetro Caminho
Nenhum
Parâmetro de consulta
Nenhum
Exemplo de carga útil de solicitação
{
"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"
}
Glossário
Esta tabela fornece as principais definições de elementos na carga útil da solicitação.
Parâmetro | Necessário | Descrição | Valores permitidos |
---|---|---|---|
Name |
Sim | Nome amigável da consulta | cadeia de caracteres |
Description |
Não | Descrição da consulta criada | string |
Query |
Sim | Sequência de caracteres de consulta com base na necessidade do negócio | string |
Observação
Para obter exemplos de consulta personalizada, consulte consultas de exemplo.
Exemplo de resposta
A carga útil de resposta está estruturada da seguinte forma:
Códigos de resposta: 200, 400, 401, 403, 500
Exemplo de carga útil de resposta:
{
"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
}
Glossário
Esta tabela fornece as principais definições de elementos na resposta.
Parâmetro | Descrição |
---|---|
QueryId |
UUID (identificador universalmente exclusivo) da consulta criada |
Name |
Nome fornecido na carga útil da solicitação durante a criação da consulta |
Description |
Descrição fornecida na carga útil da solicitação durante a criação da consulta |
Query |
Consulta de relatório personalizada fornecida no corpo do pedido durante a criação da consulta |
Type |
Definir como userDefined para consultas criadas manualmente |
User |
ID de usuário usado para criar a consulta |
CreatedTime |
Hora UTC quando a consulta foi criada. Formato: aaaa-MM-ddTHH:mm:ssZ |
TotalCount |
Número de registros na matriz Valor |
StatusCode |
Código de Resultado Os valores possíveis são 200, 400, 401, 403, 500 |
message |
Mensagem de status da execução da API |
Criar API de relatório
Ao criar com êxito um modelo de relatório personalizado e receber o QueryID
como parte da resposta Criar Consulta de Relatório, esta API pode ser chamada para agendar a execução de uma consulta em intervalos regulares. Você pode definir uma frequência e um cronograma para que o relatório seja entregue. Para consultas de sistema que fornecemos, a API Create Report também pode ser chamada com QueryId.
Sintaxe de solicitação
Método | Solicitar URI |
---|---|
PUBLICAR | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport |
Cabeçalho da solicitação
Cabeçalho | Tipo | Descrição |
---|---|---|
Autorização | string | Necessário. O token de acesso do Microsoft Entra. O formato é Bearer <token> . |
Tipo de conteúdo | string | application/JSON |
Parâmetro de Caminho
Nenhum
Parâmetro de consulta
Nenhum
Exemplo de carga útil de solicitação
{
"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",
}
Glossário
Esta tabela fornece as principais definições de elementos na carga útil da solicitação.
Parâmetro | Necessário | Descrição | Valores permitidos |
---|---|---|---|
ReportName |
Sim | Nome amigável atribuído ao relatório | String |
Description |
Não | Descrição do relatório criado | String |
QueryId |
Sim | ID de consulta que precisa ser usada para geração de relatório | String |
StartTime |
Sim | Carimbo de data/hora UTC no qual a geração do relatório começará. O formato deve ser aaaa-MM-ddTHH:mm:ssZ | Cadeia |
ExecuteNow |
Não | Esse parâmetro deve ser usado para criar um relatório que é executado apenas uma vez.
StartTime , RecurrenceInterval , RecurrenceCount e EndTime serão ignorados se isso estiver definido como true |
Booleano |
QueryStartTime |
Não | Opcionalmente, especifica a hora de início da consulta que extrai os dados. Este parâmetro é aplicável apenas para um relatório de execução único que tenha ExecuteNow definido como true . O formato deve ser aaaa-MM-ddTHH:mm:ssZ |
Timestamp como string |
QueryEndTime |
Não | Opcionalmente, especifica a hora de término da consulta que extrai os dados. Este parâmetro é aplicável apenas para um relatório de execução único que tenha ExecuteNow definido como true . O formato deve ser aaaa-MM-ddTHH:mm:ssZ |
Marca temporal como texto |
RecurrenceInterval |
Sim | Frequência em horas em que o relatório deve ser gerado. O valor mínimo é 1 e o valor máximo é 17520 | Inteiro |
RecurrenceCount |
Sim | Número de relatórios a gerar. O limite depende do intervalo de recorrência | Inteiro |
Format |
Não | Formato de arquivo do arquivo exportado. O formato padrão é CSV | CSV/TSV |
CallbackUrl |
Não | URL acessível publicamente que pode ser configurada opcionalmente como o destino de retorno de chamada | cadeia de caracteres |
CallbackMethod |
Não | Método Get/Post que pode ser configurado com URL de callback | GET/POST |
EndTime |
Sim | A data/hora UTC em que a geração do relatório terminará. O formato deve ser aaaa-MM-ddTHH:mm:ssZ | Cadeia |
Observação
Ao criar o relatório, torna-se obrigatório EndTime
ou a combinação de RecurrenceInterval
e RecurrenceCount
.
Exemplo de resposta
A carga útil de resposta está estruturada da seguinte forma:
Código de resposta: 200, 400, 401, 403, 404, 500
Carga útil de resposta:
{
"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
}
Glossário
Esta tabela fornece as principais definições de elementos na resposta.
Parâmetro | Descrição |
---|---|
ReportId |
UUID (identificador universalmente exclusivo) do relatório criado |
ReportName |
Nome fornecido na carga da solicitação durante a criação do relatório |
Description |
Descrição fornecida no corpo do pedido ao criar o relatório |
QueryId |
ID de consulta fornecida no conteúdo da solicitação durante a criação do relatório |
Query |
Texto de consulta que será executado para este relatório |
User |
ID de usuário usado para criar o relatório |
CreatedTime |
UTC Hora em que o relatório foi criado neste formato: aaaa-MM-ddTHH:mm:ssZ |
ModifiedTime |
Hora UTC O relatório foi modificado pela última vez neste formato: aaaa-MM-ddTHH:mm:ssZ |
ExecuteNow |
Parâmetro ExecuteNow fornecido na carga útil da solicitação durante a criação do relatório |
queryStartTime |
Hora de início da consulta fornecida na carga útil da solicitação durante a criação do relatório. Isso só é aplicável se ExecuteNow estiver definido como "Verdadeiro" |
queryEndTime |
Hora de fim da consulta fornecida no corpo da solicitação durante a criação do relatório. Isso só é aplicável se ExecuteNow estiver definido como "Verdadeiro" |
StartTime |
Hora de início fornecida na carga útil da solicitação durante a criação do relatório |
ReportStatus |
Status da execução do relatório. Os valores possíveis são Pausado, Ativoe Inativo. |
RecurrenceInterval |
Intervalo de recorrência fornecido na carga útil da solicitação durante a criação do relatório |
RecurrenceCount |
Número de recorrências restantes para o relatório |
CallbackUrl |
URL de callback fornecida no corpo do pedido durante a criação do relatório |
CallbackMethod |
Método de retorno de chamada fornecido na carga útil da solicitação durante a criação do relatório |
Format |
Formato dos arquivos de relatório fornecidos na carga útil da solicitação durante a criação do relatório |
EndTime |
Hora de término fornecida no payload do pedido durante a criação do relatório. Isso só é aplicável se ExecuteNow estiver definido como "Verdadeiro" |
TotalRecurrenceCount |
RecurrenceCount fornecido na carga útil da solicitação aquando da criação do relatório |
nextExecutionStartTime |
Carimbo de data/hora UTC em que será iniciada a próxima execução do relatório. |
TotalCount |
Número de registros na matriz Valor |
StatusCode |
Código do resultado. Os valores possíveis são 200, 400, 401, 403, 500 |
message |
Mensagem de status da execução da API |
Obter API de execuções de relatório
Você pode usar esse método para consultar o status de uma execução de relatório usando o ReportId
recebido do Create Report API. O método retorna o link de download do relatório se o relatório estiver pronto para download. Caso contrário, o método retorna o status. Você também pode usar essa API para obter todas as execuções que aconteceram para um determinado relatório.
Importante
Esta API tem parâmetros de consulta padrão definidos para executionStatus=Completed
e getLatestExecution=true
. Assim, chamar a API antes da primeira execução bem-sucedida do relatório retornará 404. As execuções pendentes podem ser obtidas definindo executionStatus=Pending
.
Sintaxe de solicitação
Método | Solicitar URI |
---|---|
Obter | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/{reportId}?executionId={executionId}&executionStatus={executionStatus}&getLatestExecution={getLatestExecution} |
Cabeçalho da solicitação
Cabeçalho | Tipo | Descrição |
---|---|---|
Autorização | string | Necessário. O token de acesso do Microsoft Entra. O formato é Bearer <token> . |
Tipo de conteúdo | string | application/json |
Parâmetro de Caminho
Nenhum
Parâmetro de consulta
Nome do parâmetro | Necessário | Tipo | Descrição |
---|---|---|---|
reportId |
Sim | string | Filtre para obter detalhes de execução apenas de relatórios com reportId fornecidos neste argumento. |
executionId |
Não | string | Filtre para obter detalhes apenas de relatórios com executionId fornecidos neste argumento. Vários executionIds podem ser especificados separando-os com um ponto-e-vírgula ";". |
executionStatus |
Não | string/enum | Filtre para obter detalhes apenas de relatórios com executionStatus fornecidos neste argumento.Os valores válidos são: Pending , Running , Paused e Completed O valor padrão é Completed . |
getLatestExecution |
Não | Booleano | A API retornará detalhes da execução do relatório mais recente. Por padrão, esse parâmetro é definido como true . Se você optar por passar o valor desse parâmetro como false , a API retornará as instâncias de execução dos últimos 90 dias. |
Solicitar de carga útil
Nenhum
Exemplo de resposta
A carga útil de resposta está estruturada da seguinte forma:
Códigos de resposta: 200, 400, 401, 403, 404, 500
Exemplo de carga útil de resposta:
{
"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
}
Quando a execução do relatório estiver concluída, o estado de execução Completed
será exibido. Você pode baixar o relatório selecionando o URL no reportAccessSecureLink
.
Glossário
Principais definições dos elementos da resposta.
Parâmetro | Descrição |
---|---|
ExecutionId |
UUID (identificador universalmente exclusivo) da instância de execução |
ReportId |
ID do relatório associado à instância de execução |
RecurrenceInterval |
Intervalo de recorrência fornecido durante a criação do relatório |
RecurrenceCount |
Contagem de recorrência fornecida durante a criação do relatório |
CallbackUrl |
URL de callback associada à instância de execução |
CallbackMethod |
Método de retorno de chamada fornecido na carga útil da solicitação durante a criação do relatório |
Format |
Formato do ficheiro gerado no final da execução |
ExecutionStatus |
Status da instância de execução do relatório. Os valores válidos são: Pending , Running , Paused e Completed |
ReportLocation |
Local onde o relatório é baixado. |
ReportAccessSecureLink |
Link através do qual o relatório pode ser acessado com segurança |
ReportExpiryTime |
Hora UTC após a qual o link do relatório expirará neste formato: aaaa-MM-ddTHH:mm:ssZ |
ReportGeneratedTime |
Hora UTC em que o relatório foi gerado neste formato: aaaa-MM-ddTHH:mm:ssZ |
EndTime |
Hora de término fornecida na carga útil da solicitação durante a criação do relatório. Isso só é aplicável se ExecuteNow estiver definido como "Verdadeiro" |
TotalRecurrenceCount |
RecurrenceCount fornecido no corpo de dados da solicitação durante a criação do relatório |
nextExecutionStartTime |
Carimbo de data/hora UTC quando a próxima execução do relatório será iniciada |
TotalCount |
Número de conjuntos de dados na matriz Valor |
StatusCode |
Código de Resultado Os valores possíveis são 200, 400, 401, 403, 404 e 500 |
message |
Mensagem de status da execução da API |
Você pode experimentar as APIs através da URL da API Swagger .