WebADI增加参数列项目
Posted on December 28, 2007 - Filed Under E-Business Suite | Leave a Comment
警告:个人研究用,切勿模仿。
上次说起过用FNDLOAD移植WebADI。对于FNDLOAD,我们已经不再陌生,它实际上就是将一系列的表操作进行封装,提供一种简便的用户接口。通过对FNDLOAD配置文件的解决,我们可以了解各类数据的基表。
假如我们已经移植了一个WebADI程序,但是业务变更,我们需要对现有的程序稍作扩充,比如要增加一个参数列项目,该怎么做呢?
项目列中的各项目——也就是下载Excel文件后对应的列——存在下面这5张表里:
- bne_layout_cols
- bne_interface_cols_b
- bne_interface_cols_tl
- bne_param_list_items
- bne_attributes
各逻辑关系如下图所示:

粉色:开始
黄色:依序查询或修改的表
白色:关联字段
灰色:特殊换算关系
依序插入数据到上述5个表后,不要忘记修改WebADI对应的过程。
最后,由于WebADI会被缓存,因此,除非重启应用可以由你决定,否则,对于这种小东西如此大动干戈,非常不划算。建议在做WebADI的时候,各预留10个字符型、数值型和日期型的字段以备后用。
EBS Technical Reference Manual
Posted on December 28, 2007 - Filed Under E-Business Suite | Leave a Comment
EBS 11.5.10及之后的TRM均已经转移到Metalink的eTRM上了,这是用pl/sql生成的查询目录。
旧版的TRM则通过Oracle Designer生成,对照看过,明显看到两者有非常大的差别,也就是说旧版的TRM非常详细,详细到解释各字段所存储的代码的含义,而eTRM则只是解释了字段本身的含义,毫无用处。
看来EBS TRM是我最不乐意升级的东西了
自动创建PO选择核价示意图
Posted on December 27, 2007 - Filed Under E-Business Suite | Leave a Comment
如果全部自动化,用Oracle做采购订单应该还是比较轻松的。
1,自动生成请购单。
2,自动创建RFQ至供应商。
3,核价后自动从接口创建核价单。
4,自动创建PO时选择对应的核价。
那么,从请购单到采购订单,究竟经过了哪些步骤呢?看下面的示意图:

除了在做采购订单时需要选择供应商产品目录以外,所有过程都有接口表可用,与供应商交互的环节则通过EDI。
当然,这是我们今后的奋斗目标:)
请购单自动创建采购订单
Posted on December 26, 2007 - Filed Under E-Business Suite | Leave a Comment
EBS 11i采购模块提供两种从请购单创建采购订单的方式:自动创建和手工创建。
自动创建模式根据item, revision, line type, transaction reason, unit of measure , supplier item number将请购单行汇总数量,同时请购行中最低的价格将作为采购订单行的实际价格,系统将根据这些汇总信息自动创建采购订单行。
对于采购订单,每个订单行都产生相应的发运行,在自动创建过程中系统按照need-by date, ship-to location, organization, accrual type, shipment type将之前的汇总信息进行分组。

实际业务中,可能需要一定的余地调整汇总方式,比如要将相隔一个礼拜的需求日期的请购单行合并成一个订单行,该如何做呢?
Form 中动态创建LOV
Posted on December 26, 2007 - Filed Under E-Business Suite | Leave a Comment
这本是以前写的,文章也不打算要了。但是发现有Google搜索的关键词:“Oracle 动态 LOV” 连接过来了,带错了路:) 于心不忍。重新粘贴一下。
在Form中动态创建LOV和Record Group的例子:
-- Created on 2007-8-26 by ZEENO
DECLARE
l_group_id recordgroup;
l_group_errcode NUMBER;
BEGIN
-- 检查是否已经存在该 RECORD_GROUP
l_group_id := find_group(proj_rg_name);
-- 如果不存在
IF id_null(l_group_id) THEN
-- 创建RECORD_GROUP
l_group_id := create_group_from_query('MY_REC_NAME',
'SELECT NULL FROM DUAL');
-- 错误代码
l_group_errcode := populate_group(l_group_id);
END IF;
-- 设置 LOV 的RECORD_GROUP
set_lov_property('MY_LOV_NAME', group_name, 'MY_REC_NAME');
-- 设置 Item 的 LOV
set_item_property('MY_BLOCK.MY_ITEM', lov_name, 'MY_LOV_NAME');
END;
FNDLOAD 移植 WebADI补遗
Posted on December 24, 2007 - Filed Under E-Business Suite | Leave a Comment
FNDLOAD移植常用程序(功能,菜单,并发程序,值集等)已经使用的非常频繁,也非常成熟。具体的可以参考我之前的文章:《FNDLOAD的用法》。
Oracle 也提供了针对WebADI移植的配置文件,不过配置文件路径放在$BNE_TOP/admin/import。对于定义的移植很简单,照下面做就行了:
– Integrators
FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $BNE_TOP/admin/import/bneint.lct GENERAL_170_INTG.ldt BNE_INTEGRATORS INTEGRATOR_ASN="CUX" INTEGRATOR_CODE="GENERAL_170_INTG"
FNDLOAD apps/apps_pwd 0 Y UPLOAD $BNE_TOP/admin/import/bneint.lct GENERAL_170_INTG.ldt
– Layouts
FNDLOAD apps/apps_pwd 0 Y DOWNLOAD $BNE_TOP/admin/import/bnelay.lct CUX_PRE_MTL.ldt BNE_LAYOUTS LAYOUT_ASN="CUX" LAYOUT_CODE="CUX_PRE_MTL"
FNDLOAD apps/apps_pwd 0 Y UPLOAD $BNE_TOP/admin/import/bnelay.lct CUX_PRE_MTL.ldt

