OAF_OAF控件系列10 - Key Flexfield键值弹性域的实现(案例)

简介: 2014-06-17 Created By BaoXinjian 一、摘要 OAF的弹性域的实现基本和Form的弹性域实现的大体思路是一致的,在注册Table和弹性域完全一样,之后通过控件去实现具体的弹性域显示 Form的弹性域初始化基本都在trigger when-new-form-instance中 OAF的弹性域初始化基本都在processRequest中,或者在processRequest调用AM中的初始化方法   1. 网上的一个例子 新建一个EO,其中需要有相关的CCID字段。

2014-06-17 Created By BaoXinjian

一、摘要


OAF的弹性域的实现基本和Form的弹性域实现的大体思路是一致的,在注册Table和弹性域完全一样,之后通过控件去实现具体的弹性域显示

Form的弹性域初始化基本都在trigger when-new-form-instance中

OAF的弹性域初始化基本都在processRequest中,或者在processRequest调用AM中的初始化方法

 

1. 网上的一个例子

新建一个EO,其中需要有相关的CCID字段。这里,如果在EO的Dynamic Attribute Groups里添加键弹性域的内容时,会报错,所以这里不在这里进行设置。

新建一个基于EO的VO,这个这个VO里需要有相关CCID的字段。

把 要录入信息的字段添加到页面上(CCID字段不需要),然后添加一个Item Style类型为flex的项。(注意,在messageComponentLayout里不能添加flex项,所以要先添加一个 messageLayout,然后再在messageLayout里添加flex项)。设置flex项的ID:DF, Appl Short Name:SQLGL, Name:GL#, Type:key, View Instance:自己定义的VO实例。

 

2. 键值弹性域必须存在的四个属性

  • Appl Short Name:SQLGL
  • Name:GL#
  • Type:key
  • View Instance:自己定义的VO实例

负责系统会报无法找到弹性域错误

 

3. 在使用键值弹性域时,必须在processRequest中进行初始化,负责无法使用该键弹性域

因为键弹性域的结构、并联哪个字段(即哪个字段为CCID字段)都没有设置,所以这里需要代码来控制,在processRequest里添加代码,如下:

public void processRequst

{

OAKeyFlexBean keyFlex = (OAKeyFlexBean)webBean.findChildRecursive(“DF”);

keyFlex.setStructureCode(“ACCOUNTING_FLEXFIELD”);

keyFlex.setCCIDAttributeName(“CCID字段”);

keyFlex.mergeSegmentsWithParent(pageContext);

}

 

4. 注意,键值弹性域需关心两个表

验证弹性域分段的输入值,且如果这样的组合已经存在,使用当前组合的CCID来更新视图对象.如果这样的组合不存在,将会插入一个新的CCID行到组合表。

比如总账的会计科目弹性域,在expense invoice po中只存一个CCID,其具体的描述在gl_code_combination中,如组合不存在则插入一条会计科目

使用最多的键值弹性域,我相信应该也就是会计科目弹性域了

 

二、案例实现


案例: 使用总账的会计科目键值弹性域定义Expense Header中的会计科目

1. 确认GL中的会计科目键弹性域定义方式

 

2. 建立一个测试使用的Accouting Structure,会计科目有不同的结构,通过Structure去区分

3. 在OAF中新增一个Key Flex弹性域

4. 在CO中进行初始化,制定弹性域的Structure和Account ID

 

三、案例测试


1. 打开页面,确认Key Flexfield无问题

 

2. 录入新的会计科目

3. 保存后查看数据库

3.1 在基表中只存放了account id栏位

3.2 具体的account组合存在在总账的会计科目弹性域对应的表gl_code_combinations中

 

Thanks and Regards

ERP技术讨论群: 288307890
技术交流,技术讨论,欢迎加入
Technology Blog Created By Oracle ERP - 鲍新建
相关文章
|
监控 安全 API
Outlook邮箱API发送邮件的具体步骤
使用Outlook邮箱API发送邮件涉及五个步骤:1) 注册Azure应用并获取API访问权限;2) 构建包含邮件详情的POST请求;3) 发送请求至API端点,附带验证信息和访问令牌;4) 检查API响应状态码确保邮件发送成功;5) 监控邮件发送状态。AokSend提供高效发信服务,支持触发式和SMTP/API接口。确保遵循最佳实践,保证邮件发送安全可靠。
|
监控 druid Java
监控druid数据库连接池连接泄露的思路
监控druid数据库连接池连接泄露的思路
1684 2
|
存储 缓存 Linux
SMB小传 —— SMB网络文件系统协议介绍
SMB网络文件系统协议, 全名服务器消息块(Server Message Block),曾用名CIFS(通用互联网文件系统 Common Internet File System), 公元1983年诞生于IBM[1],幼年得到英特尔和微软的照料,最终在微软的培养下成长为当今世上网络文件系统协议两极之一的存在。
21328 0
|
存储 SQL 弹性计算
元数据驱动的 SaaS 架构与背后的技术思考
在抽象能力以及沉淀了产品的基础上,把所承载和沉淀的业务能力快速输出,贡献给整个行业。
10045 113
元数据驱动的 SaaS 架构与背后的技术思考
|
10月前
|
Java Linux iOS开发
如何配置 Java 环境变量:设置 JAVA_HOME 和 PATH
本文详细介绍如何在Windows和Linux/macOS系统上配置Java环境变量。
12398 12
|
Python
Python的Virtualenv与Venv环境管理器
介绍Python的两种环境管理工具Virtualenv和venv,包括它们的安装、创建、激活、退出环境以及查看帮助信息的方法,同时对比了两者的特点和使用场景。
508 2
Python的Virtualenv与Venv环境管理器
|
自然语言处理 监控 BI
ERP系统中的多语言与多币种支持
【7月更文挑战第25天】 ERP系统中的多语言与多币种支持
798 3
|
运维 关系型数据库 MySQL
在Linux中,如何使用strace进行故障排查?
在Linux中,如何使用strace进行故障排查?
|
算法 异构计算
推测解码:在不降低准确性的情况下将LLM推理速度提高2 - 3倍
在本篇文章我们将详细讨论推测解码,这是一种可以将LLM推理速度提高约2 - 3倍而不降低任何准确性的方法。我们还将会介绍推测解码代码实现,并看看它与原始transformer 实现相比到底能快多少。
674 10
|
SQL Oracle 关系型数据库
Oracle rman备份保留策略,归档删除策略及delete命令的使用
oracle rman备份保留策略、归档策略的使用及对delete命令的影响
2566 0
下一篇
oss云网关配置