locked
Export extentsion rule is "Not Applied" during Delta Sync RRS feed

  • Question

  • Hi All,

    In my scenario, I flow Account Expiration date from Oracle DB into AD.  I have an Extension rule on the outbound sync to translate Date into AD value.  If Expiration date is blank on Oracle side, rule will set expiration for AD account to "Never".   This works fine except for the following scenario:

    1) Existing Expiration date is removed (value is Null) on Oracle side

    2) During Inbound Delta Sync Metaverse attribute for Expiration date is deleted

    3) During Outbound Delta Sync I get rule "Not Applied" for this attribute.

    During Full Synchronization everything works as expected.  Can anyone explain this behaviour?

    I do not use FIM Portal... Only Synchronization part of FIM.

    Thanks for your support.


    Roman

    Monday, September 17, 2012 4:14 PM

Answers

  • Roman,

    You can try to attach the VS debugger, set a breakpoint on your outbound flow code and see if your code gets executed - which this sounds like it's not.

    Do you have 'Allow Nulls' set on your export flow? Normally a flow rule isn't executed if the source attributes are null.


    Frank C. Drewes III - Architect - Oxford Computer Group


    • Edited by Frank Drewes Monday, September 17, 2012 6:01 PM
    • Marked as answer by rd12 Tuesday, September 18, 2012 5:36 PM
    Monday, September 17, 2012 6:00 PM
  • IMHO the simple solution is to "Allow Null" on the attribute flow and it should trigger during delta sync.
    • Marked as answer by rd12 Tuesday, September 18, 2012 5:31 PM
    Tuesday, September 18, 2012 12:18 PM

All replies

  • Roman,

    You can try to attach the VS debugger, set a breakpoint on your outbound flow code and see if your code gets executed - which this sounds like it's not.

    Do you have 'Allow Nulls' set on your export flow? Normally a flow rule isn't executed if the source attributes are null.


    Frank C. Drewes III - Architect - Oxford Computer Group


    • Edited by Frank Drewes Monday, September 17, 2012 6:01 PM
    • Marked as answer by rd12 Tuesday, September 18, 2012 5:36 PM
    Monday, September 17, 2012 6:00 PM
  • Thanks for your reply Frank!  

    'Allow Nulls' is not set on export flow.  The outbound extension rule states that if ExpirationDate is not present in MV, set CS attribute to a specific value representing "Never expire" in AD.  What confuses me is that it works fine with Full Sync but with Delta I get 'Not Applied' for this rule.  Any ideas?

    Regards,

    Roman


    Roman

    Monday, September 17, 2012 6:21 PM
  • That makes sense actually..

    If your rule has dependencies that are all null, a null is flowed to the CS without your code being run.

    Whenever an mventry is involved in a delta sync, each export rule from that mventry to every connector is run if an attribute defined as a dependency has changed. So - you can include a dependency whose data is not required in the rule, just to get it to fire.

    So if you're trying to act on a null, but not flow a null - you need to include a dependency attribute that is guaranteed to have a value, like <object-id>

    Hope that helps..


    Frank C. Drewes III - Architect - Oxford Computer Group

    Monday, September 17, 2012 6:42 PM
  • This could be an answer to my issue... However I just want to clarify.  Currently this rule has dependancy on 2 MV attributes.  ExpirationDate and AccountType.  They both are checked for presence within the code.  AccountType is present for affected object.  ExpirationDate is deleted.

    Do you mean i still need to have a third dependancy that is completely not required for this rule and not checked within the code?

    Regards,


    Roman

    Monday, September 17, 2012 6:58 PM
  • As long as you have at least one of the attributes present (and changing), a delta sync should execute your advanced flow rule.

    Frank C. Drewes III - Architect - Oxford Computer Group

    Tuesday, September 18, 2012 3:16 AM
  • IMHO the simple solution is to "Allow Null" on the attribute flow and it should trigger during delta sync.
    • Marked as answer by rd12 Tuesday, September 18, 2012 5:31 PM
    Tuesday, September 18, 2012 12:18 PM
  • Thanks to both of you for pointing me into the right direction!

    "Allow Null" fixed the issue.  Still it seems to me a bit of counterintuitive..  "Expirationdate" in AD could never be Null.  And my rule was designed to flow a pre-defined value into AD when "ExpiratiodDate" was deleted on Oracle side.

    Regards,


    Roman

    Tuesday, September 18, 2012 5:35 PM