如何在Form中使用描述性弹性域.docx

上传人:b****6 文档编号:6207788 上传时间:2023-01-04 格式:DOCX 页数:9 大小:271.09KB
下载 相关 举报
如何在Form中使用描述性弹性域.docx_第1页
第1页 / 共9页
如何在Form中使用描述性弹性域.docx_第2页
第2页 / 共9页
如何在Form中使用描述性弹性域.docx_第3页
第3页 / 共9页
如何在Form中使用描述性弹性域.docx_第4页
第4页 / 共9页
如何在Form中使用描述性弹性域.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

如何在Form中使用描述性弹性域.docx

《如何在Form中使用描述性弹性域.docx》由会员分享,可在线阅读,更多相关《如何在Form中使用描述性弹性域.docx(9页珍藏版)》请在冰豆网上搜索。

如何在Form中使用描述性弹性域.docx

如何在Form中使用描述性弹性域

描述性弹性域的开发步骤主要包括:

   1、创建表,表中包括弹性域结构列和弹性域列

   2、创建视图,视图中包括弹性域相关列(非必需)

   3、使用AD_DD工具包注册表和表列

   4、在OracleEBS系统中注册描述性弹性域

   5、启用描述性弹性域

   6、按照一般Form开发的步骤,创建相关对象

       1)、在块中创建一个DF非数据库项,并设置属性

       2)、给DF项和数据块添加必要的触发器和标准代码

       3)、在PRE-FORM触发器中初始化第四步中注册的弹性域

   7、登录OracleEBS系统验证弹性域

 

   一、创建表

   创建的表中必须包括描述性弹性域列:

   ATTRIBUTE_CATEGORY  结构列

   ATTRIBUTE1…N         弹性域列的数据库段

   脚本如下

DROPTABLECUX.CUX_FORM_DFF_TEST;

CREATETABLECUX.CUX_FORM_DFF_TEST

 ITEM_IDNUMBERNOTNULL,

 ITEM_NUMBERVARCHAR2(30)NOTNULL,

 ITEM_NAMEVARCHAR2(100)NOTNULL,

 ITEM_DESCRIPTIONVARCHAR2(255),

 START_DATE_ACTIVEDATE,

 END_DATE_ACTIVEDATE,

 ATTRIBUTE_CATEGORYVARCHAR2(30),

 ATTRIBUTE1VARCHAR2(150),

 ATTRIBUTE2VARCHAR2(150),

 ATTRIBUTE3VARCHAR2(150),

 ATTRIBUTE4VARCHAR2(150),

 ATTRIBUTE5VARCHAR2(150),

 ATTRIBUTE6VARCHAR2(150),

 ATTRIBUTE7VARCHAR2(150),

 ATTRIBUTE8VARCHAR2(150),

 ATTRIBUTE9VARCHAR2(150),

 ATTRIBUTE10VARCHAR2(150),

 ATTRIBUTE11VARCHAR2(150),

 ATTRIBUTE12VARCHAR2(150),

 ATTRIBUTE13VARCHAR2(150),

 ATTRIBUTE14VARCHAR2(150),

 ATTRIBUTE15VARCHAR2(150),

 CREATED_BYNUMBERNOTNULL,

 CREATION_DATEDATENOTNULL,

 LAST_UPDATED_BYNUMBERNOTNULL,

 LAST_UPDATE_DATEDATENOTNULL,

 LAST_UPDATE_LOGINNUMBER

TABLESPACECUX;

--CreateIndex

CREATEUNIQUEINDEXCUX_FORM_DFF_TEST_U1ONCUX.CUX_FORM_DFF_TEST(ITEM_ID);

--CreateSequence

CREATESEQUENCECUX.CUX_FORM_DFF_TEST_SSTARTWITH1;

--CreateSynonym

CREATESYNONYMCUX_FORM_DFF_TESTFORCUX.CUX_FORM_DFF_TEST;

CREATESYNONYMCUX_FORM_DFF_TEST_SFORCUX.CUX_FORM_DFF_TEST_S;

 

   二、创建视图

   略

 

   三、注册表和列

   使用AD_DD包来注册表和列

   注册表

   AD_DD.REGISTER_TABLE(p_appl_short_nameinvarchar2,--应用名简称/所有者

                            p_tab_name       invarchar2,--表名

                            p_tab_type       invarchar2,--T自动扩展/S非自动扩展/F

                            p_next_extent    innumber,--下一区

                            p_pct_free       innumber,

                            p_pct_used       innumber)

 

   注册列

   AD_DD.REGISTER_COLUMN(p_appl_short_nameinvarchar2,

                               p_tab_name       invarchar2,--应用名简称/所有者

                               p_col_name       invarchar2,--列名

                               p_col_seq        innumber,  --序号,唯一

                               p_col_type       invarchar2,--类型

                               p_col_width      innumber,  --字段宽度

                               p_nullable       invarchar2,--是否为空

                               p_translate      invarchar2,--是否可以转换

                               p_precision      innumberdefaultnull,

                               p_scale          innumberdefaultnull)

 

   可以自己编写工具包来自动生成注册脚本,或者可以使用Excel来生成,脚本如下

--注册表

EXECUTEAD_DD.REGISTER_TABLE('CUX','CUX_FORM_DFF_TEST','T',8,10,90);

--注册列

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ITEM_ID',1,'NUMBER',38,'N','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ITEM_NUMBER',2,'VARCHAR2',30,'N','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ITEM_NAME',3,'VARCHAR2',100,'N','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ITEM_DESCRIPTION',4,'VARCHAR2',255,'Y','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','START_DATE_ACTIVE',5,'DATE',9,'Y','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','END_DATE_ACTIVE',6,'DATE',9,'Y','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ATTRIBUTE_CATEGORY',7,'VARCHAR2',30,'Y','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ATTRIBUTE1',8,'VARCHAR2',150,'Y','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ATTRIBUTE2',9,'VARCHAR2',150,'Y','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ATTRIBUTE3',10,'VARCHAR2',150,'Y','N');

EXECUTEAD_DD.REGISTER_COLUMN('CUX','CUX_FORM_DFF_TEST','ATTRIBUTE4',11,'VARCHAR2',150,'Y','N');

 

   四、在EBS中注册描述性弹性域

   路径ApplicationDeveloper-->Flexfield-->Descriptive-->Register

 

   Application:

弹性域注册的应用名称

   Name:

描述性弹性域的名称,必须唯一。

一般设置成和表名一样

   Title:

弹性域的标题,在今后的应用中,此说描述性弹性域将会在窗口标题上显示在此定义的标题内容

   Description:

说明

   TableApplication:

在(第三步)注册表和列时所指定的应用名称

   TableName:

注册时的表名称

   StructureColumn:

结构列,一般为ATTRIBUTE_CATEGORY,必须是存在于注册过的列。

结构列的意义就是存放说明性弹性域上下文提示的值

   ContextPrompt:

上下文提示,是在描述性弹性域上下文字段的标题描述

   DFVViewName:

   ReferenceFields:

参考字段的主要作用与结构列的作用类似,可以在不选择上下文字段的情况下,系统根据参考字段的含义来对应显示不用的弹性域。

举例说明,例如参考字段为NAME,则在系统中输入NAME信息后,系统会自动根据NAME的信息来确定显示什么样的弹性域,这样就可以避免来选择上下文来显示需要的弹性域。

 

   五、启用描述性弹性域

   路径ApplicationDeveloper-->Flexfield-->Descriptive-->Segments

   弹性域设置结束后,需要将FreezeFlexfieldDefinition冻结才能使设置生效

 

   Application:

弹性域注册的应用名称

   Title:

弹性域标题,打开弹性域窗体时所显示的名称

   FreezeFlexfieldDefinition:

冻结弹性域定义,修改时需要解除冻结,设置完成之后需要冻结才能生效

   SegmentSeparator:

段分隔符

   Prompt:

上下文提示

   ValueSet:

为上下文内容提供一个LOV值集选择

   DefaultValue:

上下文默认值

   ReferenceField:

参考字段,作用是根据参考字段的值来判断显示哪一中弹性域(上下文)

   GlobalDataElements:

每个弹性的段信息中,都有一个默认的段定义GlobalDataElements。

如果我们定义的弹性域只有一种段结构的话,可以直接在 GlobalDataElements段中进行定义,如果有多个的话,需要在另创建记录进行段定义的需要,有一点需要说明的是,一旦有注册了的字段在GlobalDataElements中定义了结构的话,那么用户自己在创建其他的段结构,则不会显示在GlobalDataElements中使用了的字段

   Parts:

自定义段结构

   Vehicle:

自定义段结构

 

  设置完成之后注意要冻结弹性域定义并保存

 

 

   六、开发Form

   Form开发的基本步骤不再冗述,仅对开发描述性弹性域需要的操作做说明:

     1)、创建DF项

     在DataBlock中新增一个Item,命名为”DF”,其SubclassInfoRMAtion设置为TEXT_ITEM_DESC_FLEX,(ListofValues设置为ENABLE_LIST_LAMP,ValidatefromList设置为NO,非必需)DatabaseItem设置为NO,

 

     2)、给DF项和数据块添加必要的触发器和标准代码

     为DF项添加WHEN-NEW-ITEM-INSTANCE触发器,并将其ExecutionHierarchy属性从Override修改为Before,触发器代码如下

     FND_FLEX.EVENT('WHEN-NEW-ITEM-INSTANCE');

 

     为DF项添加WHEN-VALIDATE-ITEM触发器,其代码为

     FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');

 

     在DF项所在DataBlock下添加几个Block级别的触发器,分别为

     PRE-QUERY:

 FND_FLEX.EVENT('PRE-QUERY');

     POST-QUERY:

  FND_FLEX.EVENT('POST-QUERY');

     PRE-INSERT:

  FND_FLEX.EVENT('PRE-INSERT');

     PRE-UPDATE:

  FND_FLEX.EVENT('PRE-UPDATE');

     WHEN-VALIDATE-RECORD:

  FND_FLEX.EVENT('WHEN-VALIDATE-RECORD');

     WHEN-VALIDATE-ITEM:

  FND_FLEX.EVENT('WHEN-VALIDATE-ITEM');

 

     3)、在Form级别的触发器PRE-FORM中注册弹性域

     在Form级别的触发器PRE-FORM中使用FND_DESCR_FLEX.DEFINE来初始化描述性弹性域,如

     FND_DESCR_FLEX.DEFINE(block=>'ITEMS',

                                field=>'DF',

                                appl_short_name=>'CUX',

                                desc_flex_name=>'CUX_FORM_DFF_TEST');

 

     参数说明如下

     block:

弹性域显示项DF所在的DataBlock名称

     field:

描述性弹性域显示字段的名称,一般都命名为DF

     appl_short_name:

描述性弹性域注册时的应用简称

     desc_flex_name:

描述性弹性域注册时的名称,一般都与表名一致

 

   七、验证弹性域

   登录EBS中验证开发的描述性弹性域,最终效果如下

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1