Symptoms


When a subscription based on a PLM Plan is in terminated status in CB Commerce side, with no provisioning pending task, but in CB Connect side is active and it's also active in Microsoft Partner Center, the only way to recreate the subscription in Commerce is by importing it from MSFT PC.

The procedure is based in two main steps, which are:

  • Activate off line mode and process a Cancelation request for the Asset in Connect Portal
  • Import existing MSFT subscription based on a PLM Plan.


Cause


For different reasons, a subscription can be Active in Connect portal, but still not completed and in Terminated in Commerce side, as for example when the provisioning task for a Sales Order was canceled manually after a LRO period. In this case, the Subscription can be in Terminated status in Commerce side but yet Active in Connect portal.


Resolution


Steps to activate off line mode and process a Cancelation request for the Asset in Connect Portal


Note: If there are existing Connect ID's in the "Processor_Skip_List", validate there are not any other migration requests currently active.

Note: Do Not overwrite any current list of Connect ID's from the list. Instead append new ID's to the end.

Note:  Adding Connect ID's should be done with caution, not to have any typos.


Add subscription and account details from Connect in the "processor_skip_list" configuration:

  1. Add Asset ID or Asset request ID or Customer ID in the processor_skip_list Marketplace parameter in Connect Provider Portal. This will ensure that subsequent cancellation orders will not interrupt the subscription:

    • Open Provider Portal

    • Products

    • NCE Microsoft 365 Commercial

    • Configuration

    • Filter >> Processor Skip List
    • You can also filter for the specific Marketplace that the subscription is located in.
      NOTE: Do Not overwrite any current list of Connect ID's from the list. Instead append new ID's to the end.
  2. If there will be multiple subscriptions, you can multiple entries in the processor_skip_list but if you have reimport scheduled then avoid putting customer id in the list and only use Asset ID
  3. They are added in plain text, separated with commas.

 Cancel subscription from UX1

  1. Place and process the cancellation order for Azure NCE subscription from UX1.

  2. Approve suspend request from Microsoft vendor portal. It is possible that you need to fill in the Entitlement ID before approving it. Please use the MS Office 365 Subscription ID. It is recommended to use the same Template ID that was applied during the purchase PR.

  3. Make sure CMP order gets completed.

  4. Once subscription is terminated, approve the Cancel request from Microsoft vendor portal.


Example

PR-0000-0000-0001-001, PR-0000-0001-0000-002, AS-0000-0000-0001, TA-0000-0000-0001



Steps to Import existing MSFT subscription based on a PLM Plan:

For this step some Prerequisites are needed:
  • Postman to be installed and ready. 
  • Library(Platform.postman_collection.json) attached to this KB to be downloaded and imported to Postman. 
  • Date when procedure is done should match with renewal date of the subscription in Microsoft's Partner Center.
How to obtain each parameter to prepare the request:
  • Authentication. In PostMan, we need to fill the current values for variables under parent container: Platform.
    • The following parameters can be found in Resellers RCP/UX1 portal. You will need to open browser's developer tools and check any of the AJAX call launched to APS Controller API. ***/aps/2/resource/*** (Headers, Request Headers)
      • hub
      • bw_id
      • APS-Token
      • Cookie
  • Estimate or Place Order calls:
    • accountId: APS ID of the customer. It can be found using the call "Get Customer" filtering by CBCommerce Customer ID.
    • planId: APS ID of the Service Plan. It can be found using the call "Get Service Plans" filtering by the Service Plan Name.
    • period: It is the subscription (commitment) period. It is not the billing term. From the call "Get Service Plans", this is shown under the subscriptionPeriods section. 
    • resourceId: The guid for the resource. It is also listed in the response of "Get Service Plans" under the section resourceRates.
    • amount: Desired number of licenses.
    • startDate: Date when the subscription was created in MSPC.
    • expirationDate: Date when the subscription expires.
    • type: It should be always "http://aps-standard.org/inhouse-products/tenant/1.0" for all the NCE PLM plans
    • Microsoft domain: long domain name for the MSFT customer account based on .onmicrosoft.com
    • Microsoft customer id: GUID format
    • Microsoft subscription id: GUID format
    • Microsoft order id - from Order History - 12 characters

Procedure

  1. Gather data required and fill in the library variables in Postman.
  2. Use the GET requests (Get customer (id,<cbc_customer_id>), Get Service Plans, Get Types) to obtain the missing parameters of the POST Estimate Migration Order with ActiveParams PLM.
  3. If result is correct (no exception or empty response), use same body with Place Migration Order with ActiveParams PLM

When a new order is placed, the processor will check if the migration_info_object parameter contains data. If that is the case, the order will be considered as an import and the processor will use the information provided in the such parameter to populate the corresponding fulfillment parameters. Before approving the order, it will be verified that all the information relative to the offer, seat quantity, billing cycle and term is the correct, otherwise will fail the order.

Processor will get Customer subscriptions and based on the csp_order_id and suscription_id provided will verify the offers ordered.  In case no domain is given, to try to obtain the domain the processor will use Get customer by Id API in case onmicrosoft.com associated domain can be obtained. 


Note: The provided customer id, subscription id and order id, as well as other attributes such as the SKU id, quantity, billing frequency and billing terms will be validated to ensure that the data in the order matches the information in the existing Microsoft subscription to be imported. If the validation is not successful the order will be failed.

This action is not done in one time billing orders such as Perpetual software