Reconcile Between two Database Tables
Hello All,
I have two resource adapters configured. Each for a seperate table in a database. I loaded accounts from one table, and used the the persons full name as the account ID. This makes it easy to see who is represented in the accounts page. I am now trying to bring in some data stored in a second table. I added a correlation rule, in an attempt to associate entries in the table based on a unique id. The id is being stored in IDM as an attribute called uouuid. It is in the second table as a field named uuid. I have created a correlation rule as follows:
<cond>
<ref>account.uouuid</ref>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>UUID</s>
<s>equals</s>
<ref>account.uouuid</ref>
</new>
</list>
</cond>
I configured the reconciliation policy to use the new rule, and when I reconcile on the new table, all of the entries show up as _UNMATCHED_. Is there something I am doing wrong? It seems like this should be matching the data... Does anyone have any advice or can they show me where I am going wrong?
[1260 byte] By [
JimBeard] at [2007-11-26 9:36:06]

# 1
If the attribute saved in IDM (user extended attribute?) is uouuid and the attribute on the table to be reconciled is UUID you may want to try the following:
<cond>
<ref>account.UUID</ref>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>uouuid</s>
<s>equals</s>
<ref>account.UUID</ref>
</new>
</list>
</cond>
# 2
Thanks for the input. I was not sure which attribute name goes where. In the docs they tend to use attributes of the same name, which makes it confusing. Unfortunately, this did not change my problem. I made the switch, and I still get the same result, a lot of UNMATCHED accounts... Any other thoughts?
# 5
When I add the invoke syntax prior to the rule's first cond element, I get an error, "XML Error: 14:14: The content of element type 'expression' is invalid."
I need to look in the docs for block tracing. I was thinking about trying to setup the debugger, I only remember doing it once in the training class..
On another note.. I manually assigned one account to the resource, it works OK that way. On the Changes table during the update resource accounts page it lists the resource attribute that is changing as uouuid, which doesn't make sense to me, but puts in the right uuid value.
When I then view the attributes of that user, it is pulling the other attributes from the secondary table, however it is not appearing to be populating those values into the user extended attributes I defined..
# 6
For archival references, I eventually got a correlation rule that worked. Specifically:
<cond>
<ref>account.uouuid</ref>
<list>
<new class='com.waveset.object.AttributeCondition'>
<s>uouuid</s>
<s>equals</s>
<ref>account.uouuid</ref>
</new>
</list>
</cond>
I think what was non-intuitive for me, was the fact that you do not reference the resources attributes by their name, but instead by the name they are mapped to in IDM. Hence my earlier searches involving uuid failing. That still doesn't make much sense for me, but hey, at least its working now.
The part that isn't working however, is the importing of the resource values. I have the resource attributes mapped to IDM querable user extended attributes, but they aren't being populated. I really want to search in IDM for these values, so it would seem I need them to be stored in a queriable user extended attribute. The attribute values are showing up in the users view however...