Sorting af:table on a Lookup Column Fails With Nodefexception: JBO-25058: Definition "yourAttribute" Of Type Attribute Is Not Found In "yourViewObject" (Doc ID 1218485.1)

Last updated on AUGUST 04, 2016

Applies to:

Oracle JDeveloper - Version 11.1.1.2.0 and later
Information in this document applies to any platform.

Symptoms

You created an ADF Faces/BC application in JDeveloper 11g including a Data Model with a "lookup" View Object, f.ex.:

    EmployeeView >--- DepartmentView

where "DepartmentView" (and only "DepartmentView") includes the attribute "DepartmentName".
The relation between both View Objects is defined as a  '1 to 1' view link DepEmpFkLink : '1 employee to 0-1 department' (using DepartmentId in both view objects).

You defined an ADF Faces page including a table with these View Objects, by dragging and dropping EmployeeView data control on the new page, as an ADF read-only table, with the sorting feature checked.
When doing this, all attributes from DepartmentView are automatically included.

When running that page, it displays a table showing all Employees and their respective Department.
Clicking the "DepartmentName" column correctly sorts the table based on the DepartmentName, but you also get a popup dialog with the error:

 "Definition DepartmentName of type Attribute is not found in EmployeeView."

Note: DepartmentName is an attribute of ViewObject DepartmentView, not from EmployeeView.

You also see the following in the Log window (with java option -Djbo.debugoutput=console):

<DCBindingContainer><reportException> [4194] DCBindingContainer.reportException :oracle.jbo.NoDefException
<DCBindingContainer><reportException> [4195] oracle.jbo.NoDefException: JBO-25058: Definition DepartmentName of type Attribute is not found in EmployeeView.
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.findAttributeDef(JUCtrlValueBinding.java:600)
        at oracle.jbo.uicli.binding.JUCtrlValueBinding.findAttributeDef(JUCtrlValueBinding.java:570)
        at oracle.adfinternal.view.faces.model.binding.FacesCtrlRangeBinding.__setSortCriteria(FacesCtrlRangeBinding.java:248)
        at oracle.adfinternal.view.faces.model.binding.FacesCtrlHierBinding$FacesModel.setSortCriteria(FacesCtrlHierBinding.java:400)
        at org.apache.myfaces.trinidad.component.UIXCollection.setSortCriteria(UIXCollection.java:466)
        at org.apache.myfaces.trinidad.component.UIXTable.setSortCriteria(UIXTable.java:196)
        at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:260)
        at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:140)
        at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:387)
        at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:148)
        at org.apache.myfaces.trinidad.component.UIXTable.broadcast(UIXTable.java:271)
        at oracle.adf.view.rich.component.UIXTable.broadcast(UIXTable.java:140)
        at oracle.adf.view.rich.component.rich.data.RichTable.broadcast(RichTable.java:387)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:812)
        at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:292)
...

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms