Skip to content

MimSyncExportAttributeFlowRule

Craig Martin edited this page Feb 14, 2019 · 2 revisions

This resource is for MIM Sync export attribute flow rules.

The DSC resource configuration below validates the MIM Sync configuration by inspecting the XML below. TODO - include screen shots of the MIM Sync UI

DSC Configuration

This is a sample DSC configuration including just the Export Attribute Flow Rule resource type.

Configuration TestMimSyncExportAttributeFlowRule 
{ 
    Import-DscResource -ModuleName MimSyncDsc

    Node (hostname) 
    { 
        ExportAttributeFlowRule TestMimSyncExportAttributeFlowRule
        {
            ManagementAgentName    = 'TinyHR'
            MVObjectType           = 'SyncObject'
            CDAttribute            = 'JobTitle'
            CDObjectType           = 'person'
            Type                   = 'direct-mapping'
            SrcAttribute           = 'Title'
            SuppressDeletions      = $false
            Ensure                 = 'Present'
        }
    }
} 

MIM Sync XML

This is the XML exported from the Sync Service, which is what the DSC resource validates.

<export-attribute-flow>
    <export-flow-set cd-object-type="person" mv-object-type="SyncObject">
        <export-flow cd-attribute="HireDate" id="{8F126381-AAEE-4BDE-8635-2CBA79A3B2F2}" suppress-deletions="true">
            <scripted-mapping>
                <src-attribute intrinsic="true">object-id</src-attribute>
                <script-context>cd.person:HireDate&lt;-mv.SyncObject:&lt;object-id&gt;</script-context>
            </scripted-mapping>
        </export-flow>
        <export-flow cd-attribute="Status" id="{8345B507-D998-44AE-A458-C02E40C249D9}">
            <constant-mapping>
                <constant-value>AlwaysThisLate</constant-value>
            </constant-mapping>
        </export-flow>
        <export-flow cd-attribute="Initial" id="{9A04846E-F36B-4EBC-A9AB-CBA40D3136DE}" suppress-deletions="false">
            <scripted-mapping>
                <src-attribute>Alias</src-attribute>
                <src-attribute>FirstName</src-attribute>
                <src-attribute>LastName</src-attribute>
                <script-context>cd.person:Initial&lt;-mv.SyncObject:Alias,FirstName,LastName</script-context>
            </scripted-mapping>
        </export-flow>
        <export-flow cd-attribute="JobTitle" id="{6182F688-7ADD-4E88-9BEE-A48F503CA8FE}" suppress-deletions="false">
            <direct-mapping>
                <src-attribute>Title</src-attribute>
            </direct-mapping>
        </export-flow>
    </export-flow-set>
</export-attribute-flow>

DSC Verbose Output

This is sample log output showing what DSC does with the resource to validate the configuration.

VERBOSE: Using CacheLocation: C:\ProgramData\MimSyncDsc\Svrexport
VERBOSE: Using CacheAge:      1440 (in minutes)
VERBOSE: Cache still valid, leave it
VERBOSE: Finding export attribute flow rule [TinyHR].person.[Alias,FirstName,LastName] <-- MV.SyncObject.[Alias FirstName LastName] ...
VERBOSE:   Using XPath: //ma-data[name='TinyHR']/export-attribute-flow/export-flow-set[@mv-object-type='SyncObject'and @cd-object-type='person']/export-flow[@cd-attribute='Initial' and scripted-mapping]
VERBOSE: Attribute flow rule found, diffing the properties...
VERBOSE:   Comparing property 'script-context'
VERBOSE:     From DSC: cd.person:Initial<-mv.SyncObject:Alias,FirstName,LastName
VERBOSE:     From MIM: cd.person:Initial<-mv.SyncObject:Alias,FirstName,LastName
VERBOSE:   Comparing property 'src-attribute'
VERBOSE:     From DSC: Alias,FirstName,LastName
VERBOSE:     From MIM: Alias,FirstName,LastName
VERBOSE:   Comparing property 'suppress-deletions'
VERBOSE:     From DSC: True
VERBOSE:     From MIM: False
WARNING:   'suppress-deletions' property is not the same.
VERBOSE: Returning: False