This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

The system (Database (****)) does not have a data store! error in Target System Browser

Hi,

I am getting this error when resolving two key resolutions by reference (KRBR for short) on a target table which is used for account-in-group mapping:

Property (vrtKRBR_UserStatus@table) could not read the value from system object (id)!
The system (Database (Oracle: database)) does not have a data store!

But the object matching rules test OK, a simulation of the sync works OK, and the object browser correctly displays the result after throwing this error.

So, the userID one is configured like this.

Name: vrtKRBR_USERID_AsString

Display name: USERID_AsString

Description: Get USERID_AsString (conversion from autonumber to string) from USER table

Base property: USERID (pick from list)

Search property: vrtConv_USERID_AsString (picked from list)

The group one is set up the same way but uses group ID from the GROUP table.

On the Identity Manager side the UNSAccountB and UNSGroupB objects have KRBR pointing to their respective ObjectGUIDs, and the mappings for both tables populate the ObjectGUID by converting the autonumber.

In Object Browser, after I dismiss the errors, the two vrtKRBR attributes are shown correctly and a property join has USERID|GROUPID for all rows, exactly as I'd expect.

So what does the error mean?

Thanks in advance

  • I've just checked and the only difference between this logic in this connector and the logic in many other connectors I've built is, this one is an Oracle database. With SQL databases of similar structure, I have never once had this issue.

    Now getting this error even when I simulate the sync:

    Error executing projection step (Unit Test - USER to UNSAccountBinUNSGroupB) of projection configuration
    (Unit testing (a9bd0bcb-3259-49fe-9f5a-8581f44240c3)).

    Error executing synchronization step (Unit Test - USER to UNSAccountBinUNSGroupB)!

    The mapping rule (UNSAccountB_ObjectGUID <-> USERID_AsString) was unable to execute synchronization between system objects (10603) and (10603) successfully!
    Error evaluating mapping condition! Property (vrtKRBR_UserStatus@USER) could not read the value from system object (10603)!
    The system (Database (Oracle:***)) does not have a data store!

  • I am having some problems to understand what you are doing exactly. When I am looking at your definition of UserID it seems that are trying to reference the UserID as base property (unconverted) and search for a string converted value.

    But how the tables are related is not clear to me.

    If you are using KRBR your property needs to detected as reference property. You could check the schema on the target system connection if that is the case. If not, you can try to add a manual reference during the connector definition.
  • Hi,

    Not to worry - I found a way round it by using object reference instead.

    The customer's application has different key columns (none configured to be unique) on the USER and GROUP tables, but both tables have an autonumber column which is unique. The mapping table for user in group doesn't use these IDs, it uses a shortname column instead.

    I wanted to use the autonumber IDs as the objectGUIDs, to guarantee 1:1 match. This works fine on importing users and groups but throws the error on the user-in-group mapping table.

    The customer has just confirmed that the shortname columns in each table are generated by code, and so each value is always unique. So I don't need the key reference to get the autonumber.