Partnerközpont-tevékenység rekordjának lekérése

A következőre vonatkozik: Partnerközpont | Partnerközpont a Microsoft Cloud for US Government számára

Ez a cikk bemutatja, hogyan kérhető le egy partnerfelhasználó vagy alkalmazás által egy adott időszakban végrehajtott műveletek rekordja.

Ezzel az API-val lekérheti az előző 30 nap naplórekordjait az aktuális dátumtól, vagy a kezdő dátum és/vagy a záró dátummal megadott dátumtartományhoz. Vegye figyelembe azonban, hogy teljesítménybeli okokból a tevékenységnapló adatainak rendelkezésre állása az előző 90 napra korlátozódik. Az aktuális dátum előtt 90 napnál régebbi kezdő dátummal rendelkező kérelmek hibás kéréskivételt (hibakód: 400) kapnak, és egy megfelelő üzenetet kapnak.

Előfeltételek

  • Hitelesítő adatok a Partnerközpont hitelesítésében leírtak szerint. Ez a forgatókönyv támogatja az önálló alkalmazással és az App+Felhasználói hitelesítő adatokkal való hitelesítést is.

C#

A Partnerközpont műveleteinek rekordjának lekéréséhez először hozza létre a lekérni kívánt rekordok dátumtartományát. Az alábbi példakód csak kezdő dátumot használ, de záró dátumot is megadhat. További információkért lásd a Lekérdezés metódust. Ezután hozza létre az alkalmazni kívánt szűrőtípushoz szükséges változókat, és rendelje hozzá a megfelelő értékeket. Ha például a vállalatnév-részstring alapján szeretne szűrni, hozzon létre egy változót az alstring tárolásához. Az ügyfélazonosító alapján történő szűréshez hozzon létre egy változót az azonosító tárolásához.

Az alábbi példában mintakódot ad meg a rendszer a vállalatnév-részszűrés, az ügyfélazonosító vagy az erőforrástípus alapján történő szűréshez. Válasszon egyet, és tegye megjegyzésbe a többit. Minden esetben először példányosít egy SimpleFieldFilter objektumot az alapértelmezett konstruktor használatával a szűrő létrehozásához. Az ábrán látható módon át kell adnia egy sztringet, amely tartalmazza a keresendő mezőt és a megfelelő operátort. Meg kell adnia a szűréshez szükséges sztringet is.

Ezután az AuditRecords tulajdonság használatával lekérhet egy felületet a rekordműveletek naplózásához, és meghívhatja a Lekérdezés vagy a QueryAsync metódust a szűrő végrehajtásához, és lekérheti az Eredmény első oldalát képviselő AuditRecord-gyűjteményt. Adja meg a metódusnak az itt látható példában nem használt kezdő dátumot, opcionális befejezési dátumot, valamint egy olyan IQuery-objektumot , amely egy entitás lekérdezését jelöli. Az IQuery objektum úgy jön létre, hogy átadja a fent létrehozott szűrőt a QueryFactory BuildSimpleQuery metódusának.

Ha már rendelkezik az elemek kezdeti oldalával, használja az Enumerators.AuditRecords.Create metódust egy enumerátor létrehozásához, amellyel iterálhat a többi oldalon.

// IAggregatePartner partnerOperations;

var startDate = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 01);

// First perform the query, then get the enumerator. Choose one of the following and comment out the other two.

// To retrieve audit records by company name substring (for example "bri" matches "Fabrikam, Inc.").
var searchSubstring="bri";
var filter = new SimpleFieldFilter(AuditRecordSearchField.CompanyName.ToString(), FieldFilterOperation.Substring, searchSubstring);
var auditRecordsPage = partnerOperations.AuditRecords.Query(startDate.Date, query: QueryFactory.Instance.BuildSimpleQuery(filter));

// To retrieve audit records by customer ID.
var customerId="0c39d6d5-c70d-4c55-bc02-f620844f3fd1";
var filter = new SimpleFieldFilter(AuditRecordSearchField.CustomerId.ToString(), FieldFilterOperation.Equals, customerId);
var auditRecordsPage = partnerOperations.AuditRecords.Query(startDate.Date, query: QueryFactory.Instance.BuildSimpleQuery(filter));

// To retrieve audit records by resource type.
int resourceTypeInt = 3; // Subscription Resource.
string searchField = Enum.GetName(typeof(ResourceType), resourceTypeInt);
var filter = new SimpleFieldFilter(AuditRecordSearchField.ResourceType.ToString(), FieldFilterOperation.Equals, searchField);
var auditRecordsPage = partnerOperations.AuditRecords.Query(startDate.Date, query: QueryFactory.Instance.BuildSimpleQuery(filter));

var auditRecordEnumerator = partnerOperations.Enumerators.AuditRecords.Create(auditRecordsPage);

int pageNumber = 1;
while (auditRecordEnumerator.HasValue)
{
    // Work with the current page.
    foreach (var c in auditRecordEnumerator.Current.Items)
    {
        // Display some info, such as operation type, operation date, and operation status.
        Console.WriteLine(string.Format("{0} {1} {2}.", c.OperationType, c.OperationDate, c.OperationStatus));
    }

    // Get the next page of audit records.
    auditRecordEnumerator.Next();
}

Példa: Konzoltesztelő alkalmazás. Projekt: Partnerközpont SDK-minták mappa: Naplózás

REST-kérés

Kérés szintaxisa

Metódus Kérés URI-ja
GET {baseURL}/v1/auditrecords?startDate={startDate} HTTP/1.1
GET {baseURL}/v1/auditrecords?startDate={startDate}&endDate={endDate} HTTP/1.1
GET {baseURL}/v1/auditrecords?startDate={startDate}&endDate={endDate}&filter={"Field":"CompanyName","Value":"{searchSubstring}","Operator":"substring"} HTTP/1.1
GET {baseURL}/v1/auditrecords?startDate={startDate}&endDate={endDate}&filter={"Field":"CustomerId","Value":"{customerId}","Operator":"equals"} HTTP/1.1
GET {baseURL}/v1/auditrecords?startDate={startDate}&endDate={endDate}&filter={"Field":"ResourceType","Value":"{resourceType}","Operator":"equals"} HTTP/1.1

URI-paraméter

A kérés létrehozásakor használja az alábbi lekérdezési paramétereket.

Name Type Kötelező Leírás
startDate dátum: Nem A kezdő dátum yyyy-mm-dd formátumban. Ha nincs megadva, az eredményhalmaz alapértelmezés szerint 30 nappal a kérelem dátuma előtt lesz. Ez a paraméter nem kötelező, ha szűrőt ad meg.
endDate dátum: Nem A befejezési dátum yyyy-mm-dd formátumban. Ez a paraméter nem kötelező, ha szűrőt ad meg. Ha a záró dátum ki van hagyva vagy null értékűre van állítva, a kérelem a maximális ablakot adja vissza, vagy a mai napot használja záró dátumként, attól függően, hogy melyik a kisebb.
szűrő karakterlánc Nem Az alkalmazni kívánt szűrő. Ennek a paraméternek kódolt sztringnek kell lennie. Ez a paraméter nem kötelező, ha a kezdő vagy a záró dátum meg van adva.

Szűrőszintaxis

A szűrőparamétert vesszővel elválasztott, kulcs-érték párok sorozataként kell összeállítania. Minden kulcsot és értéket külön-külön kell idézni, és kettősponttal kell elválasztani. A teljes szűrőt kódolni kell.

Egy kódolatlan példa a következőképpen néz ki:

?filter{"Field":"CompanyName","Value":"bri","Operator":"substring"}

Az alábbi táblázat a szükséges kulcs-érték párokat ismerteti:

Kulcs Érték
Mező A szűrni kívánt mező. A támogatott értékek a Kérés szintaxisában találhatók.
Érték A szűrendő érték. Az érték esetét a rendszer figyelmen kívül hagyja. A következő értékparaméterek támogatottak a Kérés szintaxisában látható módon:

searchSubstring – Cserélje le a vállalat nevére. Beírhat egy részszúrást, amely megfelel a vállalat nevének egy részének (például bri egyezni Fabrikam, Incfog).
Példa"Value":"bri"

customerId – Cserélje le egy GUID formátumú sztringre, amely az ügyfélazonosítót jelöli.
Példa"Value":"0c39d6d5-c70d-4c55-bc02-f620844f3fd1"

resourceType – Cserélje le azt az erőforrástípust, amelyhez naplórekordokat szeretne lekérni (például Előfizetés). Az elérhető erőforrástípusok a ResourceType-ban vannak definiálva.
Példa"Value":"Subscription"
Operator Az alkalmazandó operátor. A támogatott operátorok a Kérés szintaxisában találhatók.

Kérésfejlécek

Kérés törzse

Nincs.

Példa kérése

GET https://api.partnercenter.microsoft.com/v1/auditrecords?startDate=6/1/2017%2012:00:00%20AM&filter=%7B%22Field%22:%22CustomerId%22,%22Value%22:%220c39d6d5-c70d-4c55-bc02-f620844f3fd1%22,%22Operator%22:%22equals%22%7D HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 127facaa-e389-41f8-8bb7-1d1af99db893
MS-CorrelationId: de9c2ccc-40dd-4186-9660-65b9b64c3d14
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Connection: Keep-Alive

REST-válasz

Ha ez a módszer sikeres, a szűrőknek megfelelő tevékenységeket ad vissza.

Válasz sikeresség és hibakódok

Minden válaszhoz tartozik egy HTTP-állapotkód, amely jelzi a sikert vagy a hibát, valamint további hibakeresési információkat. A kód, a hibatípus és a további paraméterek olvasásához használjon hálózati nyomkövetési eszközt. A teljes listát a Partnerközpont REST-hibakódjaiban találja.

Példa válaszra

HTTP/1.1 200 OK
Content-Length: 2859
Content-Type: application/json; charset=utf-8
MS-CorrelationId: de9c2ccc-40dd-4186-9660-65b9b64c3d14
MS-RequestId: 127facaa-e389-41f8-8bb7-1d1af99db893
MS-CV: 4xDKynq/zE2im0wj.0
MS-ServerId: 030011719
Date: Tue, 27 Jun 2017 22:19:46 GMT

{
    "totalCount": 2,
    "items": [{
            "partnerId": "3b33e682-00c3-41ee-9dd2-a548adf56438",
            "customerId": "0c39d6d5-c70d-4c55-bc02-f620844f3fd1",
            "customerName": "Relecloud",
            "userPrincipalName": "admin@domain.onmicrosoft.com",
            "resourceType": "order",
            "resourceNewValue": "{\"Id\":\"d51a052e-043c-4a2a-aa37-2bb938cef6c1\",\"ReferenceCustomerId\":\"0c39d6d5-c70d-4c55-bc02-f620844f3fd1\",\"BillingCycle\":\"none\",\"LineItems\":[{\"LineItemNumber\":0,\"OfferId\":\"C0BD2E08-11AC-4836-BDC7-3712E744922F\",\"SubscriptionId\":\"488745B5-2086-4912-802C-6ABB9F7C3638\",\"ParentSubscriptionId\":null,\"FriendlyName\":\"Office 365 Business Premium Trial\",\"Quantity\":25,\"PartnerIdOnRecord\":null,\"Links\":{\"Subscription\":{\"Uri\":\"/customers/0c39d6d5-c70d-4c55-bc02-f620844f3fd1/subscriptions/488745B5-2086-4912-802C-6ABB9F7C3638\",\"Method\":\"GET\",\"Headers\":[]}}}],\"CreationDate\":\"2017-06-15T15:56:04.077-07:00\",\"Links\":{\"Self\":{\"Uri\":\"/customers/0c39d6d5-c70d-4c55-bc02-f620844f3fd1/orders/d51a052e-043c-4a2a-aa37-2bb938cef6c1\",\"Method\":\"GET\",\"Headers\":[]}},\"Attributes\":{\"Etag\":\"eyJpZCI6ImQ1MWEwNTJlLTA0M2MtNGEyYS1hYTM3LTJiYjkzOGNlZjZjMSIsInZlcnNpb24iOjF9\",\"ObjectType\":\"Order\"}}",
            "operationType": "create_order",
            "operationDate": "2017-06-15T22:56:05.0589308Z",
            "operationStatus": "succeeded",
            "customizedData": [{
                    "key": "OrderId",
                    "value": "d51a052e-043c-4a2a-aa37-2bb938cef6c1"
                }, {
                    "key": "BillingCycle",
                    "value": "None"
                }, {
                    "key": "OfferId-0",
                    "value": "C0BD2E08-11AC-4836-BDC7-3712E744922F"
                }, {
                    "key": "SubscriptionId-0",
                    "value": "488745B5-2086-4912-802C-6ABB9F7C3638"
                }, {
                    "key": "SubscriptionName-0",
                    "value": "Office 365 Business Premium Trial"
                }, {
                    "key": "Quantity-0",
                    "value": "25"
                }, {
                    "key": "PartnerOnRecord-0",
                    "value": null
                }
            ],
            "attributes": {
                "objectType": "AuditRecord"
            }
        }, {
            "partnerId": "3b33e682-00c3-41ee-9dd2-a548adf56438",
            "customerId": "0c39d6d5-c70d-4c55-bc02-f620844f3fd1",
            "customerName": "Relecloud",
            "userPrincipalName": "admin@domain.onmicrosoft.com",
            "applicationId": "Partner Center Native App",
            "resourceType": "license",
            "resourceNewValue": "{\"LicensesToAssign\":[{\"ExcludedPlans\":null,\"SkuId\":\"efccb6f7-5641-4e0e-bd10-b4976e1bf68e\"}],\"LicensesToRemove\":null,\"LicenseWarnings\":[],\"Attributes\":{\"ObjectType\":\"LicenseUpdate\"}}",
            "operationType": "update_customer_user_licenses",
            "operationDate": "2017-06-01T20:09:07.0450483Z",
            "operationStatus": "succeeded",
            "customizedData": [{
                    "key": "CustomerUserId",
                    "value": "482e2152-4b49-48ec-b715-823365ce3d4c"
                }, {
                    "key": "AddedLicenseSkuId",
                    "value": "efccb6f7-5641-4e0e-bd10-b4976e1bf68e"
                }
            ],
            "attributes": {
                "objectType": "AuditRecord"
            }
        }
    ],
    "links": {
        "self": {
            "uri": "/auditrecords?startDate=2017-06-01&size=500&filter=%7B%22Field%22%3A%22CustomerId%22%2C%22Value%22%3A%220c39d6d5-c70d-4c55-bc02-f620844f3fd1%22%2C%22Operator%22%3A%22equals%22%7D",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Collection"
    }
}