This discussion is archived
2 Replies Latest reply: Jan 8, 2013 5:25 AM by ChaseVoid RSS

self-referential attribute: how to set the value if it is NULL/unknown

ChaseVoid Newbie
Currently Being Moderated
Hi,

I am getting the following error while doing Logical Loop Check:

self-referential attribute: b5@Rules_test_doc
number of rules in this loop: 3
number of attributes in loop chain: 3
number of relationships in loop chain: 0

The rule engine will be seeded with information from a database.

My requirement is to set a value to the attribute (X) = "ABC" if (X) is null and (Y) is 0
( in 10.4 NULL is represented by unknown)
  • 1. Re: self-referential attribute: how to set the value if it is NULL/unknown
    Ben Rogers Journeyer
    Currently Being Moderated
    You would have to have an intermediate field here to achieve this. It definitely is a logical loop in OPA terms, since you are trying to use X to prove X.
    To solve it you would need to do:

    attribute (X) = "ABC" if (X_input) is null and (Y) is 0

    Or for a "real" example:

    the person's processing office:
    ------------------------------------
    "london" | the person's provided procesing office is currently unknown
    the person's provided procesing office | otherwise


    So if no processing office has been provided by the database, (i.e. "null") it effectively defaults to London.
    You could then use "the person's processing office" as normal throughout the rules, confident that it should never be unknown.

    Cheers,
    Ben

    Edited by: Ben Rogers on Jan 8, 2013 1:28 PM
  • 2. Re: self-referential attribute: how to set the value if it is NULL/unknown
    ChaseVoid Newbie
    Currently Being Moderated
    Can I persist the value back to the database (using 10.4 batch processor) if I am using the intermediate attribute? I need to persist the value of attribute (X) or the person's processing office. However the input database column is same.

    I am assuming we can configure for one column to point to multiple OPA attributes.

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points