Abrufen einer Liste von Kunden, die nach einem Suchfeld gefiltert wurden

Gilt für: Partner Center | Partner Center-Betrieb durch 21Vianet | Partner Center für Microsoft Cloud for US Government

Ruft eine Sammlung von Kundenressourcen ab, die einem Filter entsprechen. Sie können optional ein Seitenformat festlegen. Sie können nach Firmennamen filtern, do Standard, indirekten Wiederverkäufer oder indirekten Cloudlösungsanbieter (Cloud Solution Provider, CSP) filtern.

Voraussetzungen

  • Anmeldeinformationen, wie unter Partner Center-Authentifizierung beschrieben. Dieses Szenario unterstützt die Authentifizierung mit eigenständigen App- und App+Benutzeranmeldeinformationen.

  • Ein vom Benutzer konstruierter Filter.

C#

Um eine Sammlung von Kunden abzurufen, die einem Filter entsprechen, instanziieren Sie zunächst ein SimpleFieldFilter-Objekt , um den Filter zu erstellen. Sie müssen eine Zeichenfolge übergeben, die das CustomerSearchField enthält, und den Typ des Filtervorgangs als FieldFilterOperation.StartsWith angeben. Dies ist der einzige Feldfiltervorgang, der vom Endpunkt der Kunden unterstützt wird. Außerdem müssen Sie die zu filternde Zeichenfolge angeben.

Instanziieren Sie als Nächstes ein iQuery-Objekt, das an die Abfrage übergeben werden soll, indem Sie die BuildSimpleQuery-Methode aufrufen und den Filter übergeben. BuildSimplyQuery ist nur einer der Abfragetypen, die von der QueryFactory-Klasse unterstützt werden.

Verwenden Sie zum Ausführen des Filters und zum Abrufen des Ergebnisses zuerst IAggregatePartner.Customers , um eine Schnittstelle zu den Kundenvorgängen des Partners abzurufen. Rufen Sie dann die Query - oder QueryAsync-Methode auf.

IAggregatePartner partnerOperations;

// Specify the partial string to filter by (to match Contoso).
string searchPrefix = "cont"

// Create a simple field filter.
var fieldFilter = new SimpleFieldFilter(
    CustomerSearchField.CompanyName.ToString(),
    FieldFilterOperation.StartsWith,
    searchPrefix);

// Create an iQuery object to pass to the Query method.
var myQuery = QueryFactory.Instance.BuildSimpleQuery(fieldFilter);

// Get the collection of matching customers.
var customers = partnerOperations.Customers.Query(myQuery);

Beispiel: Konsolentest-App. Projekt: Partner Center SDK Samples Class: FilterCustomers.cs

REST-Anforderung

Anforderungssyntax

Methode Anforderungs-URI
GET {baseURL}/v1/customers?size={size}&filter={filter} HTTP/1.1

URI-Parameter

Verwenden Sie die folgenden Abfrageparameter.

Name Type Erforderlich Beschreibung
Größe INT Nein Die Anzahl der jeweils angezeigten Ergebnisse. Dieser Parameter ist optional.
filter filter Ja Der auf Kunden anzuwendende Filter. Dies muss eine codierte Zeichenfolge sein.

Filtersyntax

Sie müssen den Filterparameter als eine Reihe von durch Kommas getrennten Schlüsselwertpaaren verfassen. Jeder Schlüssel und Wert muss einzeln in Anführungszeichen eingeschlossen und durch einen Doppelpunkt getrennt sein. Der gesamte Filter muss codiert sein.

Ein nicht codiertes Beispiel sieht wie folgt aus:

?filter{"Field":"CompanyName","Value":"cont","Operator":"starts_with"}

In der folgenden Tabelle werden die erforderlichen Schlüsselwertpaare beschrieben:

Schlüssel Wert
Feld Das zu filternde Feld. Die gültigen Werte finden Sie in CustomerSearchField.
Wert Der Wert, nach dem gefiltert wird. Der Wert wird ignoriert.
Operator Der anzuwendende Operator. Der einzige unterstützte Wert für dieses Kundenszenario ist "starts_with".

Anforderungsheader

Weitere Informationen finden Sie unter Partner Center-REST-Header.

Anforderungstext

Keine.

Beispiel für eine Anfrage

GET https://api.partnercenter.microsoft.com/v1/customers?size=0&filter=%7B%22Field%22%3A%22CompanyName%22%2C%22Value%22%3A%22Cont%22%2C%22Operator%22%3A%22starts_with%22%7D HTTP/1.1
Authorization: Bearer <token>
Accept: application/json
MS-RequestId: 5ce66de5-eea9-486f-a11c-c852aa3d1502
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
X-Locale: en-US
Host: api.partnercenter.microsoft.com
Connection: Keep-Alive

REST-Antwort

Bei erfolgreicher Ausführung gibt die Methode eine Sammlung übereinstimmener Kundenressourcen im Antworttext zurück.

Erfolgs- und Fehlercodes der Antwort

Jede Antwort enthält einen HTTP-Statuscode, der Aufschluss darüber gibt, ob der Vorgang erfolgreich war, sowie ggf. zusätzliche Debuginformationen. Verwende ein Tool für die Netzwerkablaufverfolgung, um diesen Code, den Fehlertyp und zusätzliche Parameter zu lesen. Die vollständige Liste finden Sie unter Partner Center-REST-Fehlercodes.

Beispielantwort

HTTP/1.1 200 OK
Content-Length: 1839
Content-Type: application/json; charset=utf-8
MS-CorrelationId: aaaa0000-bb11-2222-33cc-444444dddddd
MS-RequestId: dfeda56c-1af5-43fc-a9c0-346b9e85dc96
MS-CV: n0lMNyJtaUC802pO.0
MS-ServerId: 202010223
Date: Fri, 24 Feb 2017 22:08:20 GMT

{
    "totalCount": 3,
    "items": [{
            "id": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
            "companyProfile": {
                "tenantId": "aaaabbbb-0000-cccc-1111-dddd2222eeee",
                "domain": "contoso190.onmicrosoft.com",
                "companyName": "Contoso190",
                "links": {
                    "self": {
                        "uri": "/customers/aaaabbbb-0000-cccc-1111-dddd2222eeee/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/aaaabbbb-0000-cccc-1111-dddd2222eeee",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Customer"
            }
        }, {
            "id": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
            "companyProfile": {
                "tenantId": "bbbbcccc-1111-dddd-2222-eeee3333ffff",
                "domain": "ContosoCorpCo.onmicrosoft.com",
                "companyName": "Contoso",
                "links": {
                    "self": {
                        "uri": "/customers/bbbbcccc-1111-dddd-2222-eeee3333ffff/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/bbbbcccc-1111-dddd-2222-eeee3333ffff",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Customer"
            }
        }, {
            "id": "ccccdddd-2222-eeee-3333-ffff4444aaaa",
            "companyProfile": {
                "tenantId": "ccccdddd-2222-eeee-3333-ffff4444aaaa",
                "domain": "contosocorpdemo.onmicrosoft.com",
                "companyName": "Contoso",
                "links": {
                    "self": {
                        "uri": "/customers/ccccdddd-2222-eeee-3333-ffff4444aaaa/profiles/company",
                        "method": "GET",
                        "headers": []
                    }
                },
                "attributes": {
                    "objectType": "CustomerCompanyProfile"
                }
            },
            "relationshipToPartner": "reseller",
            "links": {
                "self": {
                    "uri": "/customers/ccccdddd-2222-eeee-3333-ffff4444aaaa",
                    "method": "GET",
                    "headers": []
                }
            },
            "attributes": {
                "objectType": "Customer"
            }
        }
    ],
    "links": {
        "self": {
            "uri": "/customers?size=0&filter=%7B%22Field%22%3A%22Domain%22%2C%22Value%22%3A%22cont%22%2C%22Operator%22%3A%22starts_with%22%7D",
            "method": "GET",
            "headers": []
        }
    },
    "attributes": {
        "objectType": "Collection"
    }
}