Entfernen der Partnerschaft zwischen einem Händler und einem Kunden

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

Entfernen Sie eine Händlerbeziehung mit einem Kunden, mit dem Sie keine Transaktionen mehr haben.

Voraussetzungen

  • Anmeldeinformationen, wie unter Partner Center-Authentifizierung beschrieben. In diesem Szenario wird Authentifizierung nur mit App- und Benutzeranmeldeinformationen unterstützt.

  • Eine Kunden-ID (customer-tenant-id). Wenn Sie die ID des Kunden nicht kennen, können Sie sie im Partner Center nachschlagen. Wählen Sie auf der Partner Center-Startseite den Arbeitsbereich "Kunden " aus. Wählen Sie den Kunden aus der Kundenliste aus, und wählen Sie dann "Konto" aus. Suchen Sie auf der Kontoseite des Kunden im Abschnitt "Kundenkontodetails" nach der Microsoft-ID. Die Microsoft-ID entspricht der Kunden-ID (customer-tenant-id).

  • Alle Azure Reserved VM Instance Orders müssen abgebrochen werden, bevor eine Händlerbeziehung entfernt wird. Rufen Sie Azure-Support auf, um alle geöffneten Azure Reserved VM Instance Orders abzubrechen.

C#

Um die Händlerbeziehung für einen Kunden zu entfernen, stellen Sie zunächst sicher, dass alle aktiven azure Reserved VM Instances für diesen Kunden storniert werden. Stellen Sie als Nächstes sicher, dass alle aktiven Abonnements für diesen Kunden ausgesetzt sind. Ermitteln Sie dazu die ID des Kunden, für den Sie die Händlerbeziehung löschen möchten. Im folgenden Codebeispiel wird der Benutzer aufgefordert, den Kundenbezeichner anzugeben.

Um festzustellen, ob azure Reserved VM Instances für den Kunden abgebrochen werden müssen, rufen Sie die Sammlung von Berechtigungen ab, indem Sie die Methode "IAggregatePartner.Customers.ById" mithilfe der Kunden-ID aufrufen, um den Kunden anzugeben, und die Berechtigungseigenschaft zum Abrufen einer Schnittstelle zu Berechtigungssammlungsvorgängen. Rufen Sie die Get- oder GetAsync-Methode auf, um die Berechtigungsauflistung abzurufen. Filtern Sie die Sammlung nach berechtigungen mit einem Berechtigungstypwert von "EntitlementType.VirtualMachineReservedInstance ", und wenn vorhanden, brechen Sie sie ab, indem Sie den Support aufrufen, bevor Sie fortfahren.

Rufen Sie dann eine Sammlung der Abonnements des Kunden ab, indem Sie die IAggregatePartner.Customers.ById-Methode mithilfe der Kunden-ID aufrufen, um den Kunden anzugeben, und die Subscriptions-Eigenschaft zum Abrufen einer Schnittstelle zu Abonnementsammlungsvorgängen. Rufen Sie schließlich die Get - oder GetAsync-Methode auf, um die Abonnementssammlung des Kunden abzurufen. Durchlaufen Sie die Abonnementauflistung, und stellen Sie sicher, dass keines der Abonnements über einen Subscription.Status-Eigenschaftswert von SubscriptionStatus.Active verfügt. Wenn ein Abonnement noch aktiv ist, finden Sie informationen zum Anhalten eines Abonnements .

Nachdem Sie bestätigt haben, dass alle aktiven Azure Reserved VM Instances für diesen Kunden storniert werden und alle aktiven Abonnements ausgesetzt sind, können Sie die Vertriebspartnerbeziehung für den Kunden entfernen. Erstellen Sie zunächst ein neues Customer-Objekt mit der relationshiptopartner-Eigenschaft, die auf CustomerPartnerRelationship.None festgelegt ist. Rufen Sie dann die IAggregatePartner.Customers.ById-Methode mithilfe der Kunden-ID auf, um den Kunden anzugeben, und rufen Sie die Patch-Methode auf, und übergeben Sie das neue Kundenobjekt.

Wenn Sie die Beziehung erneut einrichten möchten, wiederholen Sie den Prozess der Anforderung einer Händlerbeziehung.

// IAggregatePartner partnerOperations;

// Prompt the user the enter the customer ID.
var customerIdToDeleteRelationshipOf = this.Context.ConsoleHelper.ReadNonEmptyString("Please enter the ID of the customer you want to delete the relationship with", "The customer ID can't be empty");

// Determine if there are any active Azure Reserved VM Instances for this customer.
ResourceCollection<Entitlement> entitlements = partnerOperations.Customers.ById(customerIdToDeleteRelationshipOf).Entitlements.Get();

If (entitlements.Items.Where(x => x.EntitlementType == EntitlementType.VirtualMachineReservedInstance).Any())
{
    this.Context.ConsoleHelper.Warning("Please cancel Azure Reserved Virtual Machine Instance orders through support and try again. Aborting the delete customer relationship operation");
               return;
}

// Verify that there are no active subscriptions.
ResourceCollection<Subscription> customerSubscriptions = partnerOperations.Customers.ById(customerIdToDeleteRelationshipOf).Subscriptions.Get();
IList<Subscription> subscriptions = new List<Subscription>(customerSubscriptions.Items);

foreach (Subscription customerSubscription in subscriptions)
{
    if (customerSubscription.Status == SubscriptionStatus.Active)
    {
        this.Context.ConsoleHelper.Warning(String.Format("Subscription with ID :{0}  OfferName: {1} cannot be in active state, ", customerSubscription.Id, customerSubscription.OfferName));
        this.Context.ConsoleHelper.Warning("Please Suspend all the Subscriptions and try again. Aborting the delete customer relationship operation");
               return;
    }
}

// Delete the customer's relationship to the partner.
Customer customer = new Customer();
customer.RelationshipToPartner = CustomerPartnerRelationship.None;
customer = partnerOperations.Customers.ById(customerIdToDeleteRelationshipOf).Patch(customer);

if (customer.RelationshipToPartner == CustomerPartnerRelationship.None)
{
    this.Context.ConsoleHelper.Success("Customer Partner Relationship successfully deleted");
}

Beispiel: Konsolentest-App. Projekt: PartnerSDK.FeatureSample-Klasse: DeletePartnerCustomerRelationship.cs

REST-Anforderung

Anforderungssyntax

Methode Anforderungs-URI
PATCH {baseURL}/v1/customers/{customer-tenant-id}/ HTTP/1.1

URI-Parameter

In dieser Tabelle sind die erforderlichen Abfrageparameter aufgeführt, um eine Händlerbeziehung zu entfernen.

Name Type Erforderlich Beschreibung
customer-tenant-id guid J Der Wert ist eine guid formatierte Kundenmandanten-ID , die den Kunden identifiziert.

Anforderungsheader

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

Anforderungstext

Eine Kundenressource ist im Anforderungstext erforderlich. Stellen Sie sicher, dass die RelationshipToPartner-Eigenschaft auf "none" festgelegt wurde.

Anforderungsbeispiel

PATCH https://api.partnercenter.microsoft.com/v1/customers/<customer-tenant-id> HTTP/1.1
Authorization: Bearer <token>
Content-Length: 74
Content-Type: application/json; charset=utf-8
MS-CorrelationId: 9b4bf2ca-f374-4d51-9113-781ca87b8380
MS-RequestId: 9fef8b23-6e3e-45d2-8678-e9fe89c35af5
Date: Fri, 12 Jan 2018 00:31:55 GMT

{
    "relationshipToPartner":"none",
    "attributes":{
        "objectType":"Customer"
    }
}

REST-Antwort

Wenn die Methode erfolgreich verläuft, wird eine Händlerbeziehung für den angegebenen Kunden entfernt.

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
MS-RequestId: 7988dde4-b516-472c-b226-6d53fb18f04e
MS-CorrelationId: 9b4bf2ca-f374-4d51-9113-781ca87b8380
X-Locale: en-US
Content-Type: application/json
Content-Length: 242
Expect: 100-continue

{
    "Id":null,
    "CommerceId":null,
    "CompanyProfile":null,
    "BillingProfile":null,
    "RelationshipToPartner":"none",
    "AllowDelegatedAccess":null,
    "UserCredentials":null,
    "CustomDomains":null,
    "AssociatedPartnerId":null,
    "Attributes":{
        "ObjectType":"Customer"
    }
}