2

我有一个带有指向 ViewObject (VO2) 的 ListOfValue 的 ViewObject (VO1),并从 VO2 获取记录。VO2 上没有添加 ViewCriteria。在 BC 测试仪中进行测试时,LOV 工作正常。无论是在 VO1 中编辑一行,还是在 VO1 中创建一行时。

在 jspx 页面中使用 LOV,在 VO1 中编辑行时 LOV 工作正常。但是当我在 jspx 页面中创建新行时,LOV 不会获取任何记录。只是一个空列表。我不知道出了什么问题,或者为什么它不起作用。我创造了几个 LOV,它们都像一个魅力一样工作,但这个让我把头发扯下来。

其他任何人都经历过类似的情况,即 LOV 仅在编辑行时起作用?有什么想法可能是错的吗?

jspx页面上的SOC:

<af:selectOneChoice value="#{row.bindings.IdSosBasGrantType.inputValue}"
label="#{row.bindings.IdSosBasGrantType.label}"
required="#{bindings.SosBasCaseGrantPerCaseType.hints.IdSosBasGrantType.mandatory}"
shortDesc="#{bindings.SosBasCaseGrantPerCaseType.hints.IdSosBasGrantType.tooltip}"
id="soc12" autoSubmit="true">
<f:selectItems value="#{row.bindings.IdSosBasGrantType.items}" id="si11"/>
</af:selectOneChoice>

迭代器绑定:

<tree IterBinding="SosBasCaseGrantPerCaseTypeIterator" id="SosBasCaseGrantPerCaseType">
<nodeDefinition DefName="fo.att.alm.sos.model.bas.views.SosBasCaseGrantVO" Name="SosBasCaseGrantPerCaseType0">
<AttrNames>
<Item Value="Seq"/>
<Item Value="IdSosBasGrantType"/>
<Item Value="IdSosBasGrantVariant"/>
<Item Value="RuleType"/>
<Item Value="Status"/>
<Item Value="IdAplCfgPartyType"/>
</AttrNames>
</nodeDefinition>
</tree>

视图属性:

<ViewAttribute
Name="IdSosBasGrantType"
LOVName="LOV_IdSosBasGrantType"
IsUnique="true"
IsNotNull="true"
PrecisionRule="true"
EntityAttrName="IdSosBasGrantType"
EntityUsage="SosBasCaseGrantEO"
AliasName="ID_SOS_BAS_GRANT_TYPE">
<Properties>
<SchemaBasedProperties>
<CONTROLTYPE
Value="choice"/>
</SchemaBasedProperties>
</Properties>
</ViewAttribute>

列表绑定:

<ListBinding
Name="LOV_IdSosBasGrantType"
ListVOName="SosBasGrantTypeUsgLOV"
ListRangeSize="-1"
NullValueFlag="none"
NullValueId="LOV_IdSosBasGrantType_LOVUIHints_NullValueId"
MRUCount="0">
<AttrArray Name="AttrNames">
<Item Value="IdSosBasGrantType"/>
</AttrArray>
<AttrArray Name="ListAttrNames">
<Item Value="GrantTypeId"/>
</AttrArray>
<AttrArray Name="ListDisplayAttrNames">
<Item Value="ObjectTypeDisplayName"/>
</AttrArray>
<DisplayCriteria/>
</ListBinding>

视图访问器

<ViewAccessor
Name="SosBasGrantTypeUsgLOV"
ViewObjectName="fo.att.alm.sos.model.bas.views.SosBasGrantTypeUsgRO"
RowLevelBinds="true"/>
4

3 回答 3

0

我猜想 1-Lov 视图对象 VO2 在两个视图对象之间定义了视图链接 2-Lov 视图对象 VO2 在其 sql 语句中有参数来过滤从当前视图对象 VO1 获取其值的数据,并且参数为 null 所以它不会返回数据

于 2012-05-05T03:09:36.123 回答
0

在不了解代码的情况下很难猜测。但是,如果您遇到在创建新记录时 LOV 显示为空的情况,那么您可能在两个 VO 之间定义了一个视图链接。您需要确保 LOV 数据来自独立的 VO2,而不是 VO1 的细节。

于 2012-05-04T20:12:49.610 回答
0

尝试打开 ADF BC 调试,看看当您从页面调用 LOV 时,它向 DB 发送的查询是什么。编辑您的项目属性,然后在“运行/调试”页面中,选择运行配置并单击“编辑”。然后将字符串 -Djbo.debugoutput=console 添加到 Java 选项字段。

http://docs.oracle.com/cd/E16162_01/web.1112/e16182/web_testdebug.htm#BABDBCGF

于 2012-05-08T17:58:10.773 回答