Symptoms

A Parallels Operations Automation (POA) task to provision Exchange services through MPS fails with an 'Invalid Customer' error message during Organization or User creation, as in the example below:

Task name   Create user 'username' in the 'LDAP://OU=S0001111112,OU=R0000222221,OU=host,DC=domain,DC=com'

Exception during execution of MPF request: 'IDispatch error #3092
[<response> <errorContext description="Invalid Customer." code="0x80040e14"
executeSeqNo="70"> <errorSource namespace="Error Provider" procedure="SetError"/>
</errorContext> </response>]

Cause

During the first attempt to execute the 'Create Organization' task, a fatal error occurred on the MPS engine (such as lost connectivity, dllhost.exe killing, MPS server rebooting, database corruption etc). As a result, some of the MPF <execute> actions were performed (like OU creation, system groups creation etc), but the MPS Database was not updated properly (or the update has been rolled back).

During the next attempt to execute the task, the MPS engine detects that the OU has already been created and some steps like MPS database modifications should be skipped. As result, you have an almost fully created organization without a record in the heCustomerDb.Customers table.

Another cause is HMC-related HeCustomerDB database failure.

Resolution

Manually add the customer's Organization record in the HeCustomerDb.Customers table and restart the failed task:

  1. From SQL Query Analyzer or Enterprise manager, run following command (the values are described in the Additional information section below):

    insert into Customers (CustomerID, ParentID, StatusTypeCode, CustomerTypeCode, CommonName) values ('\{1B85E6DC-8BF1-3E44-9C63-7C05D35D1196\}', '\{7DA7AC29-685F-584C-9065-8D808F95D466\}', 'EN', 'BZ', '');
    
  2. Go to the POA Task Manager queue and re-run the task.

Additional information

How to determine the CustomerID:

Run adsiedit.msc and navigate to the problem object (according to the error message it is S0001111112). Open its Properties window and look for the "objectGUID" attribute. This shows an hexadecimal value which should be reformated before it can be used as a value of the CustomerID column:

  1. Remove all spaces in the original string
  2. Insert dashes ("-") after the 20th, 16th, 12th and 8th symbols
  3. Insert "{" before the first symbol and insert "}" after the last one.

For example: if the objectGUID is "1B 85 E6 DC 8B F1 3E 44 9C 63 7C 05 D3 5D 11 96", it should be reformatted to "{1B85E6DC-8BF1-3E44-9C63-7C05D35D1196}".

ParentID is determined the same way for a higher level object, in this case R0000222221.

The value for the "Customers.CommonName" column could be taken from another Active Directory attribute 'name'. It does not have to be changed any way.

Internal content