OAF: 怎样创建 DFF

参考资料:

1. http://blog.csdn.net/tavor/article/details/18790729

1. http://www-apps.us.oracle.com/fwk/fwksite/jdev1223/doc/devguide/feat/feat_flexfields.htm#DFFDeclarative

2. https://blogs.oracle.com/manojmadhusoodanan/entry/creating_descriptive_flex_field_dff

3. https://blogs.oracle.com/manojmadhusoodanan/entry/adding_descriptive_flex_field_dff

第一个资料是翻译的文档, 内容全但是没有实例.

第二个资料有详细的步骤和截图, 教你怎样在 OAF 开发的界面设置 DFF

第三个资料教你怎样直接在界面上设置, 而不是在 OAF 开发界面设置. 我自己没试过, 仅供参考.

---------------------------------------------------------------------------------------------------------------------

下面以我自己做的实例截图, 记录做 DFF 的步骤:

1. 首先看下效果

OAF: 怎样创建 DFF_第1张图片

这三个字段分别对应 RCV_TRANSACTIONS 表上的 ATTRIBUTE1, ATTRIBUTE2, ATTRIBUTE3

页面提交的时候, 会执行对应 AM 里面 apply() 方法. 以我们的为例:

在 RcvTransactionsPG 上面加一个 messageComponentLayout 的item, 在它下面加一个 messageLayout 的item, 再在它下面新建一个 flex 的item.

View Instance: 选择 DeliverVO1, 我们的DFF 加到这个 VO 里面, 这个 VO 在上面的 AM 里面.

Appl Short Name: PO, 因为我们的表是 Purchasing 下的.

Name: RCV_TRANSACTIONS, 这是 DFF 的名字

Segment List: 可以不填, 会把定义的所有的 segment 显示出来. 如果要指定显示哪些 segment, 那么按照下面的格式填:

Global Data Elements|Asset Tag Number|yuTest1|yuTest2||...

用单竖线分隔各个 attribute, 用双竖线分隔各个 Context Field.

定义好运行就可以看见上面的例子了.

2. 怎样查看代码运行时的值

代码里面有获取 VO 行的代码:

OAViewObjectImpl viewObject = this.getVO();
RowSetIterator iter = viewObject.getRowSetIterator();
OAViewRowImpl row = (OAViewRowImpl)iter.first();

这段代码获取了 VO 的第一行, 只需要在 Watches 窗口中加入

row.getAttribute("Attribute1")

然后就可以看到运行是 VO 里面这个字段的值了.

3. DFF 的定义和使用在我之前的一篇博客里面写了, 这里简单的截图

这是注册 DFF 的界面, 包括 Application: Purchasing, 因此上面的 Appl Short Name 是 PO

DFF 的 Name 也是上面 OAF 设置使用的 Name

Table Name 是 DFF 使用的表

Title 是 Form 上弹出 DFF 窗口上显示的 Title, 但是 OAF 界面没有 DFF 弹出窗口, 这个也就没什么用.

OAF: 怎样创建 DFF_第2张图片

Context Field  Values 里面有一条记录 Global Data Element, 可以在里面定义 Segment. 也可以建立其他的Value Set, 参考资料2.

这个也就是 OAF 界面上 Segment List 里面, 单竖线前面的字段.


OAF: 怎样创建 DFF_第3张图片

单竖线后面的字段就是下面定义的, 可以通过设置 Segment List 选择性的显示

OAF: 怎样创建 DFF_第4张图片


4. 这里的这个例子只是简单的展示了在 OAF 页面上设置静态的 DFF 字段, 如果想要运行时确定, 那么需要写代码, 参考资料1.

如果想要设置多个 value set, 参考资料2, 可以用于 PPR 事件.


你可能感兴趣的:(oaf,dff)