This is a fairly common Maximo MIF/Object Structure issue, especially when working with multi-level relationships such as TAGOUT → TAGLOCK → LOCKOUT.
Based on your description, the most likely causes are:
1. Relationship Cardinality or Parent/Child Hierarchy Issue
Even if all three objects are included in the Object Structure, Maximo only traverses child objects based on the configured hierarchy.
Verify:
TAGOUT
└─ TAGLOCK
└─ LOCKOUT
If LOCKOUT was added directly under TAGOUT instead of under TAGLOCK, Maximo may not find the expected records during the query.
Check:
- Object Structure application
- Parent object for LOCKOUT
- Relationship name used by LOCKOUT
2. Relationship Returns No Records
Open Database Configuration and test the relationship.
For example:
taglockid=:taglockid
``
or whatever OOB relationship is defined.
Common issue:
- Data exists in LOCKOUT table
- Relationship condition does not match actual data
- Relationship returns zero rows when evaluated from the current TAGLOCK record
A quick validation:
select *
from lockout
where taglockid = ?
using a known TAGLOCK record returned by the query.
3. Object Structure "Exclude/Support Flat Structure" Settings
Check whether LOCKOUT is included as:
Consumed = Yes
Query = Yes
Some customers accidentally configure objects only for inbound processing but not query processing.
Verify in Object Structure:
- Include? = Yes
- Query Support = Yes
4. MBO Security Restrictions
Another common cause.
If the integration user:
MAXADMIN -> works
MXINTADM -> does not work
then the issue is security-related.
Review:
- Object security
- Site restrictions
- Data restrictions
- Conditional expressions
Try querying with MAXADMIN to isolate.
5. Relationship Where Clause Contains Site/Org Criteria
Many Maximo OOB relationships use:
siteid=:siteid
and orgid=:orgid
If your LOCKOUT record exists but:
TAGLOCK.SITEID = BEDFORD
LOCKOUT.SITEID = NULL
(or different values)
the relationship will not resolve.
Check all key fields:
SITEID
ORGID
TAGOUTID
TAGLOCKID
LOCKOUTID
6. Child Object Not Configured for Query in Object Structure
In the Object Structure application:
- Open your Object Structure.
- Select LOCKOUT node.
- Verify:
- Include = checked
- Query = checked
- Exclude = unchecked
I have seen cases where TAGOUT and TAGLOCK appear but the final child object does not because the object was added but not enabled for query operations.
7. Hidden Integration Restriction (Most Likely)
One thing that frequently catches Maximo administrators:
When using an Object Structure query, Maximo only returns child records if the parent relationship resolves correctly.
For example:
TAGOUT Record
↓
TAGLOCK Record Found
↓
TAGLOCK -> LOCKOUT Relationship Returns 0 Records
Result:
<TAGOUT>
...
<TAGLOCK>
...
</TAGLOCK>
</TAGOUT>
No LOCKOUT section appears even though data exists in the LOCKOUT table.
The key question is:
Does the TAGLOCK→LOCKOUT relationship return records when tested directly from the Relationships application or Database Configuration?
Recommended Troubleshooting Steps
Enable MIF logging:
log4j.logger.maximo.integration=DEBUG
log4j.logger.maximo.mif=DEBUG
Then run the query and look for:
Processing child object LOCKOUT
Relationship returned 0 records
This usually points directly to the failing relationship.
SQL Verification
For a record that should be returned:
select *
from tagout
where tagoutid = ?
select *
from taglock
where tagoutid = ?
select *
from lockout
where taglockid = ?
Confirm that the exact relationship keys match what Maximo expects.
My Assessment
If TAGOUT and TAGLOCK are returned but LOCKOUT is not, and the LOCKOUT records definitely exist, the most probable root cause is that the TAGLOCK → LOCKOUT relationship in the Object Structure is not resolving correctly due to key, site/org, or where-clause criteria.
That is the first area I would investigate before looking at security or integration settings.
Additional Maximo-Specific Check
Try opening a TAGLOCK record in the Maximo UI and using:
Related Records → Lockout
or wherever the OOB relationship is exposed. If Maximo itself cannot navigate from TAGLOCK to LOCKOUT, the Object Structure query will not return LOCKOUT either. This is often the fastest way to confirm whether the relationship definition is the problem.