Attribute Flow is silently ignored when using two Equal Precedence flows within one MA

Answered Attribute Flow is silently ignored when using two Equal Precedence flows within one MA

  • Friday, November 23, 2012 4:23 PM
     
      Has Code

    Hi All,

    I have a FIM Service MA configured with a number of inbound attribute flows, among them:

    FIMAttributeA-> MVAttributeA

    FIMAttributeB -> MVAttributeA

    The two flows are configured for equal precedence. All three attributes involved are multivalued reference attributes.

    The result I would like to see is that after running Full Sync or Delta Sync, is that MVAttributeA should contain all entries from FIMAttributeA and FIMAttributeB. 

    What actually happens is that only either the entries from FIMAttributeA or from FIMAttribute B are written to MVAttributeA, depending on whether I configured the FIMAttributeA flow or the FIMAttributeB flow first.

    When previewing sync, the second flow doesn't show up at all; the first flow is listed as "Applied".

    Also, the "Configure Attribute Flow Precedence" dialog only lists one of the attribute flows (which one again depends on the order in which I created the attribute flows).

    In the the Attributes table in Metaverse Designer though, two flows are correctly listed (first row).

    I first assumed that this kind of scenario (equal precedence within one MA) wasn't supported, but then I saw this quote in the context help for the Precedence Dialog: "In Metaverse Designer, you can specify attribute precedence for only those attributes that have two or more attribute flow rules specified in one or more management agents."

    Then I thought this might be a UI bug and checked the database, but what I found looked like the setting I intended:

    <import-flows mv-attribute="MVAttributeA" type="equal">
          <import-flow src-ma="{7E62C3AF-DCF3-4240-AB90-5C6CD97AA023}" cd-object-type="SomeType" id="{CC1B75E3-0668-4C69-A84A-83F34511C8C5}">
            <direct-mapping>
              <src-attribute>FIMAttibuteA</src-attribute>
            </direct-mapping>
          </import-flow>
          <import-flow src-ma="{7E62C3AF-DCF3-4240-AB90-5C6CD97AA023}" cd-object-type="SomeType" id="{B442D270-05B6-4B1D-9F6E-99D13E96CE92}">
            <direct-mapping>
              <src-attribute>FIMAttributeB</src-attribute>
            </direct-mapping>
          </import-flow>
        </import-flows>

    I'm pretty much stuck at this point. Any suggestions are very welcome.

    Thanks and best regards

    Nils



All Replies

  • Saturday, November 24, 2012 11:16 AM
     
     

    I forgot to mention one thing: Once I split up the two attribute flows between two FIM Service MAs, everything works as expected, i.e. when I create a second FIM Service MA containing only FIMAttributeB -> MVAttributeA, two flows show up in the Configure Attribute Precedence dialog and values from both FIMAttributeA and FIMAttribute are combined into MVAttributeA.

    I would like to dispense with this workaround though, since having a second FIM Service MA around just for this one attribute flow feels hacky to me - is it even supported to have two FIM Service MAs?

    Thanks and best regards

    Nils Loeber

  • Tuesday, November 27, 2012 2:08 AM
    Owner
     
     Answered

    Nils,

    in FIM, attribute flow precedence is scoped on providers (MAs).
    This means, to configure flow precedence, you need more than one MA that contributes to a MV attribute.
    You don't have this.

    Having more than one FIM MA is not only "hacky" - it is not supported.

     The simple answer to your question is that what you see is "by design" - or not supported.

    I will update the documentation to cover your scenario.

    Cheers,
    Markus


    Markus Vilcinskas, Knowledge Engineer, Microsoft Corporation


  • Tuesday, November 27, 2012 10:38 AM
     
     

    Hi Markus,

    thanks for clarifying. Then I will probably implement some form of temporary MA (TempMA) and configure the following flows:

    FIMServiceMA:FIMAttributeA -> MVAttributeA
    FIMServiceMA:FIMAttributeB -> MVAttributeB

    TempMA:FIMAttributeB <- MVAttributeB
    TempMA:FIMAttributeB -> MVAttributeA

    In a nutshell, I'd flow one of the attributes to the TempMA in order to be able to flow it back with equal precedence.

    Do you have any comments on this idea?

    Thanks and best regards
    Nils Loeber

  • Tuesday, November 27, 2012 2:17 PM
    Owner
     
     

    Hmmmmm - the question is what it is you are trying to accomplish (on a scenario level - not feature level).

    In FIM, the MV functions as mirror of the data in the FIM service.
    This is why things like conditional flows are not supported.

    Your temp MA has the potential to bring the MV and the FIM service out of sync...

    Cheers,
    Markus


    Markus Vilcinskas, Knowledge Engineer, Microsoft Corporation