Ticari market için programlı erişim paradigması
Bu diyagramda yeni bir rapor şablonu oluşturmak, özel raporu zamanlamak ve hata verilerini almak için kullanılan API çağrı düzeni gösterilir.
Şekil 1: API çağrı deseninin üst düzey akışı
Bu liste Şekil 1 hakkında daha fazla ayrıntı sağlar.
- İstemci Uygulaması, Rapor Sorgusu Oluşturma API'siniçağırarak özel rapor şemasını/şablonunu tanımlayabilir. Alternatif olarak, sistem sorgularınınlistesinden bir rapor şablonu (
QueryId
) kullanabilirsiniz. - Başarılı olduğunda Rapor Şablonu Oluştur API'si
QueryId
döndürür. - İstemci uygulaması daha sonra rapor başlangıç tarihi, Yineleme Aralığı, Yineleme ve isteğe bağlı geri çağırma URI'siyle birlikte
QueryID
kullanarak Rapor Oluşturma API'sini çağırır. - Başarıyla tamamlanırsa, Rapor Oluşturma API,
ReportID
döndürür. - rapor verileri indirilmeye hazır olur olmaz istemci uygulamasına geri çağırma URI'sinde bildirim gönderilir.
- İstemci uygulaması daha sonra raporun durumunu
Report ID
ve tarih aralığıyla sorgulamak için Rapor Yürütmelerini Alma API'sini kullanır. - Başarılı olduğunda rapor indirme bağlantısı döndürülür ve uygulama verilerin indirilmesini başlatabilir.
Rapor sorgu dili belirtimi
Rapor oluşturmak için kullanabileceğiniz sistem sorguları sağlarken, iş gereksinimlerinize göre kendi sorgularınızı da oluşturabilirsiniz. Özel sorgular hakkında daha fazla bilgi edinmek için bkz. Özel sorgu belirtimi.
Rapor sorgusu API'si oluşturma
Bu API, sütunların ve ölçümlerin dışarı aktarılması gereken veri kümesini tanımlayan özel sorgular oluşturmaya yardımcı olur. API, iş gereksinimlerinize göre yeni bir raporlama şablonu oluşturma esnekliği sağlar.
Sağladığımız sistem sorgularını da kullanabilirsiniz. Özel rapor şablonlarına ihtiyaç duyulmadığında, sağladığımız sistem sorgularının QueryIds kullanarak Rapor Oluşturma API'sini doğrudan çağırabilirsiniz.
Aşağıdaki örnekte, geçen aya ait ISVUsage veri kümesinden Normalleştirilmiş Kullanım ve ÜCRETLİ SKU'lar için Tahmini Finansal Ücretler almak için nasıl özel sorgu oluşturulacağı gösterilmektedir.
İstek sözdizimi
Yöntem | İstek URI'si |
---|---|
YAYINLA | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledQueries |
İstek başlığı
Üstbilgi | Tür | Açıklama |
---|---|---|
İzin | dizgi | Gerekli. Microsoft Entra erişim belirteci. Format şu şekildedir: Bearer <token> . |
İçerik Türü | string |
application/JSON |
yol parametresi
Hiç kimse
sorgu parametresi
Hiç kimse
İstek yükü örneği
{
"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"
}
Sözlük
Bu tablo, istek yükündeki öğelerin anahtar tanımlarını sağlar.
Parametre | Gerekli | Açıklama | İzin verilen değerler |
---|---|---|---|
Name |
Evet | Sorgunun kullanıcı dostu adı | dizgi |
Description |
Hayır | Oluşturulan sorgunun açıklaması | dizgi |
Query |
Evet | İş gereksinimine göre sorgu dizesi | dizgi |
Not
Özel sorgu örnekleri için bkz. örnek sorguları.
Örnek yanıt
Yanıt yükü aşağıdaki gibi yapılandırılmıştır:
Yanıt kodları: 200, 400, 401, 403, 500
Yanıt yükü örneği:
{
"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
}
Sözlük
Bu tablo yanıttaki öğelerin anahtar tanımlarını sağlar.
Parametre | Açıklama |
---|---|
QueryId |
Oluşturulan sorgunun evrensel olarak benzersiz tanımlayıcısı (UUID) |
Name |
Sorgu oluşturma sırasında istek yükünde sağlanan ad |
Description |
Sorgu oluşturma sırasında istek yükünde sağlanan açıklama |
Query |
Sorgu oluşturma sırasında istek yükünde sağlanan özel rapor sorgusu |
Type |
El ile oluşturulan sorgular için userDefined olarak ayarlayın |
User |
Sorguyu oluşturmak için kullanılan kullanıcı kimliği |
CreatedTime |
UTC Sorgunun oluşturulduğu saat. Biçim: yyyy-MM-ddTHH:mm:ssZ |
TotalCount |
Değer dizisindeki kayıt sayısı |
StatusCode |
Sonuç Kodu Olası değerler 200, 400, 401, 403, 500'dür |
message |
API'nin yürütülmesinden gelen durum iletisi |
Rapor API'si oluşturma
Özel bir rapor şablonunu başarıyla oluşturduktan ve Rapor Sorgusu Oluşturma yanıtının bir parçası olarak QueryID
aldıktan sonra, düzenli aralıklarla yürütülecek bir sorguyu zamanlamak için bu API çağrılabilir. Raporun teslim edilmesi için bir sıklık ve zamanlama ayarlayabilirsiniz. Sağladığımız sistem sorguları için Rapor Oluştur API'sini QueryIdile de çağırabilirsiniz.
İstek sözdizimi
Yöntem | İstek URI'si |
---|---|
YAYINLA | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport |
İstek üst bilgisi
Üstbilgi | Tür | Açıklama |
---|---|---|
İzin | dizgi | Gerekli. Microsoft Entra erişim belirteci. Biçim Bearer <token> 'dir. |
İçerik Türü | dizgi | application/JSON |
yol parametresi
Hiç kimse
sorgu parametresi
Hiç kimse
İstek yükü örneği
{
"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",
}
Sözlük
Bu tablo, istek yükündeki öğelerin anahtar tanımlarını sağlar.
Parametre | Gerekli | Açıklama | İzin verilen değerler |
---|---|---|---|
ReportName |
Evet | Rapora atanan kullanıcı dostu ad | Dize |
Description |
Hayır | Oluşturulan raporun açıklaması | Dizgi |
QueryId |
Evet | Rapor oluşturma için kullanılması gereken sorgu kimliği | Dizgi |
StartTime |
Evet | Rapor oluşturma işleminin başlayacağı UTC zaman damgası. Biçim yyyy-MM-ddTHH:mm:ssZ olmalıdır | Dizgi |
ExecuteNow |
Hayır | Bu parametre, yalnızca bir kez yürütülen bir rapor oluşturmak için kullanılmalıdır.
StartTime , RecurrenceInterval , RecurrenceCount ve EndTime true olarak ayarlanırsa yoksayılır |
Boolean |
QueryStartTime |
Hayır | İsteğe bağlı olarak, verileri ayıklayan sorgunun başlangıç zamanını belirtir. Bu parametre, ExecuteNow true olarak ayarlanmış tek seferlik yürütme raporu için geçerlidir. Biçim yyyy-MM-ddTHH:mm:ssZ olmalıdır |
Dize olarak zaman damgası |
QueryEndTime |
Hayır | İsteğe bağlı olarak, verileri ayıklayan sorgunun bitiş saatini belirtir. Bu parametre, ExecuteNow true olarak ayarlanmış tek seferlik yürütme raporu için geçerlidir. Biçim yyyy-MM-ddTHH:mm:ssZ olmalıdır |
Dize olarak zaman damgası |
RecurrenceInterval |
Evet | Raporun oluşturulması gereken saat sıklığı. En düşük değer 1, maksimum değer ise 17520'dir | Tam sayı |
RecurrenceCount |
Evet | Oluşturulacak rapor sayısı. Sınır Yinelenme aralığına bağlıdır | Tam sayı |
Format |
Hayır | Dışarı aktarılan dosyanın dosya biçimi. Varsayılan biçim CSV'dir | CSV/TSV |
CallbackUrl |
Hayır | İsteğe bağlı olarak geri çağırma hedefi olarak yapılandırılabilen genel olarak erişilebilir URL | Dizgi |
CallbackMethod |
Hayır | Geri çağırma URL'si ile yapılandırılabilir Get/Post yöntemi | GET/POST |
EndTime |
Evet | Rapor oluşturma işleminin sona ereceği UTC zaman damgası. Biçim yyyy-MM-ddTHH:mm:ssZ olmalıdır | Dize |
Not
Raporu oluştururken ya EndTime
veya RecurrenceInterval
ve RecurrenceCount
kombinasyonu zorunludur.
Örnek yanıt
Yanıt yükü aşağıdaki gibi yapılandırılmıştır:
Yanıt kodu: 200, 400, 401, 403, 404, 500
Yanıt yükü:
{
"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
}
Sözlük
Bu tablo yanıttaki öğelerin anahtar tanımlarını sağlar.
Parametre | Açıklama |
---|---|
ReportId |
Oluşturduğunuz raporun evrensel olarak benzersiz tanımlayıcısı (UUID) |
ReportName |
Rapor oluşturma sırasında istek yükünde sağlanan ad |
Description |
Rapor oluşturma sırasında istek yükünde sağlanan açıklama |
QueryId |
Rapor oluşturma sırasında istek yükünde sağlanan sorgu kimliği |
Query |
Bu rapor için yürütülecek sorgu metni |
User |
Raporu oluşturmak için kullanılan kullanıcı kimliği |
CreatedTime |
UTC Raporun bu biçimde oluşturulduğu saat: yyyy-MM-ddTHH:mm:ssZ |
ModifiedTime |
UTC Raporun son değiştirildiği saat: yyyy-MM-ddTHH:mm:ssZ |
ExecuteNow |
Rapor oluşturma sırasında istek yükünde sağlanan ExecuteNow parametresi |
queryStartTime |
Rapor oluşturma sırasında istek yükünde sağlanan sorgu başlangıç zamanı. Bu yalnızca ExecuteNow "True" olarak ayarlandığında geçerlidir |
queryEndTime |
Rapor oluşturma sırasında istek yükünde sağlanan sorgu bitiş zamanı. Bu yalnızca ExecuteNow "True" olarak ayarlandığında geçerlidir |
StartTime |
Rapor oluşturma sırasında istek yükünde sağlanan başlangıç zamanı |
ReportStatus |
Rapor yürütmesinin durumu. Olası değerler Duraklatıldı, Etkinve Etkin Olmayan. |
RecurrenceInterval |
Rapor oluşturma sırasında istek yükünde sağlanan yineleme aralığı |
RecurrenceCount |
Rapor için kalan yinelenme sayısı |
CallbackUrl |
Rapor oluşturulurken istek yükünde sağlanan geri dönüş URL'si |
CallbackMethod |
Rapor oluşturma sırasında istek yükünde sağlanan geri çağırma yöntemi |
Format |
Rapor oluşturma sırasında istek yükünde sağlanan rapor dosyalarının biçimi |
EndTime |
Rapor oluşturma sırasında istek yükünde sağlanan bitiş zamanı. Bu yalnızca ExecuteNow "True" olarak ayarlandığında geçerlidir |
TotalRecurrenceCount |
rapor oluşturma sırasında istek yükünde sağlanan RecurrenceCount |
nextExecutionStartTime |
Bir sonraki rapor yürütmenin ne zaman başlayacağına ilişkin UTC zaman damgası |
TotalCount |
Değer dizisindeki kayıt sayısı |
StatusCode |
Sonuç Kodu. Olası değerler 200, 400, 401, 403, 500'dür |
message |
API'nin yürütülmesinden gelen durum iletisi |
Rapor yürütmeleri API'lerini alma
ReportId
alarak Rapor Oluşturma API'si üzerinden rapor yürütme durumunu sorgulamak için bu yöntemi kullanabilirsiniz. Yöntem, rapor indirme için hazırsa rapor indirme bağlantısını döndürür. Aksi takdirde yöntem durumu döndürür. Bu API'yi belirli bir rapor için gerçekleşen tüm yürütmeleri almak için de kullanabilirsiniz.
Önemli
Bu API'de executionStatus=Completed
ve getLatestExecution=true
için varsayılan sorgu parametreleri ayarlanmıştır. Bu nedenle, raporun ilk başarılı yürütülmesinden önce API'yi çağırmak 404 döndürür. Bekleyen yürütmeler executionStatus=Pending
ayarlanarak elde edilebilir.
İstek sözdizimi
Yöntem | İstek URI'si |
---|---|
Edin | https://api.partnercenter.microsoft.com/insights/v1.1/cmp/ScheduledReport/execution/{reportId}?executionId={executionId}&executionStatus={executionStatus}&getLatestExecution={getLatestExecution} |
İstek üst bilgisi
Üstbilgi | Tür | Açıklama |
---|---|---|
İzin | karakter dizisi | Gerekli. Microsoft Entra erişim belirteci. Format bu şekildedir: Bearer <token> . |
İçerik türü | karakter dizisi | application/json |
yol parametresi
Hiç kimse
sorgu parametresi
Parametre adı | Gerekli | Tür | Açıklama |
---|---|---|---|
reportId |
Evet | dizgi |
reportId içeren raporların çalıştırma ayrıntılarını almak için bu parametreyle filtreleyin. |
executionId |
Hayır | dizgi | Bu argümanda belirtilen executionId 'ı içeren yalnızca raporların ayrıntılarını almak için filtreleyin. Birden çok executionIds noktalı virgülle ";" ayırarak belirtilebilir. |
executionStatus |
Hayır | dize/sabit listesi | Yalnızca bu argümanda executionStatus olarak belirtilen raporların ayrıntılarını almak için filtreleyin.Geçerli değerler şunlardır: Pending , Running , Paused ve Completed Varsayılan değer Completed . |
getLatestExecution |
Hayır | Boolean | API, en son rapor yürütme ayrıntılarını döndürür. Varsayılan olarak, bu parametre true olarak ayarlanır. Bu parametrenin değerini false olarak geçirmeyi seçerseniz, API son 90 günlük yürütme örneklerini döndürür. |
İstek yükü
Hiç kimse
Örnek yanıt
Yanıt yükü aşağıdaki gibi yapılandırılmıştır:
Yanıt kodları: 200, 400, 401, 403, 404, 500
Yanıt yükü örneği:
{
"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
}
Rapor yürütme tamamlandıktan sonra yürütme durumu Completed
gösterilir.
reportAccessSecureLink
URL'yi seçerek raporu indirebilirsiniz.
Sözlük
Yanıttaki öğelerin anahtar tanımları.
Parametre | Açıklama |
---|---|
ExecutionId |
Yürütme örneğinin evrensel olarak benzersiz tanımlayıcısı (UUID) |
ReportId |
Yürütme örneğiyle ilişkili rapor kimliği |
RecurrenceInterval |
Rapor oluşturma sırasında sağlanan yinelenme aralığı |
RecurrenceCount |
Rapor oluşturulurken girilen yinelenme sayısı |
CallbackUrl |
Yürütme örneğiyle ilişkili geri çağırma URL'si |
CallbackMethod |
Rapor oluşturma sırasında istek yükünde sağlanan geri çağırma yöntemi |
Format |
Yürütmenin sonunda oluşturulan dosyanın biçimi |
ExecutionStatus |
Rapor yürütme örneğinin durumu. Geçerli değerler şunlardır: Pending , Running , Paused ve Completed |
ReportLocation |
Raporun indirildiği konum. |
ReportAccessSecureLink |
Rapora güvenli bir şekilde erişilebilen bağlantı |
ReportExpiryTime |
Rapor bağlantısının süresinin dolacağı UTC zamanı bu formatta verilmiştir: yyyy-MM-ddTHH:mm:ssZ |
ReportGeneratedTime |
UTC Raporun bu biçimde oluşturulduğu saat: yyyy-MM-ddTHH:mm:ssZ |
EndTime |
Rapor oluşturma sırasında istek yükünde sağlanan bitiş zamanı. Bu yalnızca ExecuteNow "True" olarak ayarlandığında geçerlidir |
TotalRecurrenceCount |
rapor oluşturma sırasında istek yükünde sağlanan RecurrenceCount |
nextExecutionStartTime |
Bir sonraki rapor yürütmenin ne zaman başlayacağına ilişkin UTC zaman damgası |
TotalCount |
Değer dizisindeki veri kümesi sayısı |
StatusCode |
Sonuç Kodu Olası değerler 200, 400, 401, 403, 404 ve 500'dür |
message |
API'nin yürütülmesinden gelen durum iletisi |
API'leri Swagger API URL'siaracılığıyla deneyebilirsiniz.