Quantcast
Channel: Forum Microsoft Identity Manager
Viewing all articles
Browse latest Browse all 4767

Configure Object Deletion is not working

$
0
0

Hello!

I only use the Synchronization Service Manager and not any portal.
I have two agents agent-HR and agent-AD where both are defined as  Extensible Connectivity.
I have just a simple SQL Server database as the source for the two agents.

I have the following configuration:
* The object type in MV is PersonT and the Configure Object Deletion Rule is set to "Delete metaverse object when connector from any of the following management agents is disconnected" and I have check marked just the one agent-HR
* The deprovision rule for agent-HR is set to "Stage a delete on the object for the next export run"

I project some object from HR to MV and then provision these to AD.
When I change a name in HR db to nilspoppe this code is called and it enters this if clause

if (mventry["forname"].Value.ToLower() == "nilspoppe" && connectorsSourceSystem > 0)
            {
                CSEntry csentry= mventry.ConnectedMAs["Projekt - Personal"].Connectors.ByIndex[0];
                csentry.Deprovision();
            } 

in the MVE void IMVSynchronization.Provision (MVEntry mventry)
When this code is called I can see in CS for agent-HR that the Connector become False for this object and I get a pending export.
If I take a look in Metaverse search the object is still there.

I mean when I have selected "Delete metaverse object when connector from any of the following management agents is disconnected" and checked agent-HR the object that become disconnected should be removed from MV.

The object is still connected in AD but that doesn't matter as long as I have selected "Delete metaverse object when connector from any of the following management agents is disconnected"
As you can see it says  "...any of the following management agents is disconnected and here I selected just agent-HR.

So why is not "Configure Object Deletion Rule" working as expected.

Now I change another thing instead setting the deprovisioning by using this code. (mventry["forname"].Value.ToLower() == "nilspoppe" && connectorsSourceSystem > 0)
            {
                CSEntry csentry= mventry.ConnectedMAs["Projekt - HR"].Connectors.ByIndex[0];
                csentry.Deprovision();
            } 

The code above is the MVE for agent-AD.

Now I tested another thing and that was to set an object to state disconnected by using the Configure Connection Filter filter for agent-HR.
When I do this it works as this.
The object for agent-HR is disconnected and I get a pending export
The object for agent-AD is also is disconnected
The MV object has been deleted and I get a pending export.

So as a conclusion I cant' understand why it all works when using the Configure Connection Filter but not when I use this code (mventry["forname"].Value.ToLower() == "nilspoppe" && connectorsSourceSystem > 0)
            {
                CSEntry csentry= mventry.ConnectedMAs["Projekt - HR"].Connectors.ByIndex[0];
                csentry.Deprovision();
            }

Can someone explain why I get this odd result. 

//Tony





Viewing all articles
Browse latest Browse all 4767

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>