none
Join-FIMConfig/Compare-FIMConfig skips some bindings RRS feed

  • Question

  • Hi,

    I have to FIM 2010 databases. I need to migrate the changes from dev to another one.

    The target FIM database is clean. It was just created.

    The first step is to migrate schema changes: attribute types, resource types and bindings.

    Our solution contains custom items all of the three types.

    We have also reconfigured Display Name binding description for newly created resource types.

    And these changes are not collected by Join-FIMConfig.

    I can see the bindings in exported dev schema.

    The bindings are not in the target schema and also not in schema changes. The rest of the schema changes looks fine.

    I have tried joining by ObjectID and also by default map below (with default join by DisplayName):

    • ObjectTypeDescription = "Name";
    • AttributeTypeDescription = "Name";
    • BindingDescription = "BoundObjectType BoundAttributeType";

    Best regards

        Rafal Grzybowski

    Friday, October 26, 2012 9:23 AM

All replies

  • Did you use the steps in:

    http://technet.microsoft.com/en-us/library/ff400277(WS.10).aspx

    All the schema changes should be processed.


    Friday, October 26, 2012 10:36 AM
  • Did you use the steps in:

    http://technet.microsoft.com/en-us/library/ff400277(WS.10).aspx

    All the schema changes should be processed.


    I exported dev configuration, exported target configuration and generated diff.

    Then I looked inside the schema changes and observed this.

    The only missing item is DisplayName binding customized description.

    Friday, October 26, 2012 10:45 AM
  • Now I'm confused. Actually what is missing is all bindings related to built-in attribute types.

    I extracted attribute types, bindings and object type for just one of the custom resource types.

    I did the same from dev configuration and target configuration files.

    And for these extracted files, the diff contains everything as expected.


    Friday, October 26, 2012 10:53 AM
  • The changes are lost during Compare-FIMConfig.

    I can see binding with appropriate identifier on dev configuration, and in indetermediate file produced by adding shtg like this:

    Write-Host "Saving joins to " $join_filename "."
    $matches | ConvertFrom-FIMResource -file $join_filename

    Friday, October 26, 2012 11:33 AM
  • Rafal,

    The output of the comparison between the two exported configurations is the difference between the two systems.  If the built-in bindings haven't beed changed in either system, they will not be part of the changes to be exported into the target system.

    Marc


    Marc Mac Donell, VP Identity and Access Solutions, Avaleris Inc.
    http://www.avaleris.com

    Friday, October 26, 2012 2:03 PM
  • Rafal,

    The output of the comparison between the two exported configurations is the difference between the two systems.  If the built-in bindings haven't beed changed in either system, they will not be part of the changes to be exported into the target system.

    Marc


    Marc Mac Donell, VP Identity and Access Solutions, Avaleris Inc.
    http://www.avaleris.com

    Marc,

    But I'm missing every binding related to built-in attributes.

    Every exported BindingDescription has its own SourceObjectIdentifier.

    I can see instances from dev XML, not existing in target XML and also missing in changes XML.

    Best regards

        Rafal Grzybowski

    Friday, October 26, 2012 2:09 PM
  • Rafal,

    It's not clear to me where you are missing these bindings.  Can you provide some more details?

    Marc


    Marc Mac Donell, VP Identity and Access Solutions, Avaleris Inc.
    http://www.avaleris.com

    Friday, October 26, 2012 2:25 PM
  • I have a binding in the XML schema file exported from development server.

    I don't have this binding in the XML schema file exported from target server (it's a clean installation).

    The binding relates to newly created resource type on development server.

    So we should import this new resource type, its bindings and related attributes.

    Some bindings are for built-in attributes and the others are custom attributes.

    The generated schema changes XML contains only information about:

    • new resource type
    • new attributes
    • bindings to these attributes

    The flow is more or less like this (an extract from actual scripts):

    1. export dev schema to dev.xml (Export-FIMConfig -schemaConfig | ConvertFrom-FIMResource -file dev.xml)
    2. export target schema to target.xml (Export-FIMConfig -schemaConfig | ConvertFrom-FIMResource -file target.xml)
    3. ConvertTo-FIMResource -file dev.xml
    4. ConvertTo-FIMResource -file target.xml
    5. Join-FIMConfig -source $pilot -target $production -join $joinrules -defaultJoin DisplayName
    6. Compare-FIMConfig

    The missing bindings exist after Join-FIMConfig call. But they are filtered out by Compare-FIMConfig.

    Best regards

        Rafal Grzybowski

    Friday, October 26, 2012 2:49 PM
  • I did a little investigation and have found the reason for my problems.

    Compare-FIMConfig skips all attributes that are bound to the base Resource type.

    And Resource type attributes are not hardcoded in PowerShell CmdLet only discovered based on existing BindingDescription in the export file.

    That is why when I extracted sample dev and target schemas containing only items related to my custom resource type (so no BindingDescriptions for Resource type were present) everything looked fine.

    I will dig into this deeper and probably create own CmdLet for Compare-FIMConfig and Import-FIMConfig.

    The first one must process ResourceType changes as any other change.

    And the last one must be able to skip predefined bindings creation when importing - it must only customize binding properties.

    Best regards

        Rafal Grzybowski


    Friday, October 26, 2012 11:08 PM