弹性栏位--弹性域

来源:互联网 发布:苹果数据清除软件 编辑:程序博客网 时间:2024/05/02 21:51

弹性域

1.弹性域的分成:关键性弹性域,说明性弹性域。

关键性弹性域:在使用key弹性域的基表中,只保存ID,但是可以通过ID查询到相应的segment1.table结构中表现为**_IDSegment1等。

说明性弹性域:针对特定用户 扩展输入特定信息的字段。在tablestructure中表现为attribute_category,attribute1,attribute2字段等。

注册关键性弹性域 à略。

注册说明性弹性域:

(1).创建table

注:使用说明性弹性域的数据table必须含有attribute_category及若干attribute字段。 Attribute_category字段:指弹性域的context字段。Attribute字段:指实际使用的字段。

Create table (    ….....,

           Attribute_category varchar2(20),

           Attribute1        varchar2(40),

           ………  )

(2).注册弹性域:

Begin

  Ad_dd.register_table(‘BND’,’CHALLENGE_FLEX’,’T’,10,10,40);

End;

Remark:BNDà application short name, CHALLENGE_FLEX àTable Name

Column type

Column name

序号

(3).注册弹性域tablecolumns

Begin

Columns length

Ad_dd.register_column(‘BND’,’CHALLENGE_FLEX’, ’attribute_category’ ,1, ’VARCHAR2’,30,’N’,’N’);

Ad_dd.register_column(‘BND’,’CHALLENGE_FLEX’,’Attribute1’,2,‘Varchar2’,40,’N’,’N’ );

End;

(4).查看是否注册成功

select ft.table_id

  from fnd_tables ft

 where ft.table_name = 'Challenge_flex';

select *

  from fnd_columns fc

 where fc.table_id in

       (select ft.table_id

          from fnd_tables ft

         where ft.table_name = 'CHALLENGE_FLEX')

(5).注册弹性域列

PATH:Application Developer àFlexfieldàdescriptiveàregister

(6).注册弹性域字段

Path: Application DeveloperàFlexfieldàDescriptiveàsegments

(7).启用说明性弹性域

7.1先按将相应的form开发好,然后在form级的以下trrigger中加入

 PRE-QUERY:                FND_FLEX.EVENT(‘PRE-QUERY’);

 POST-QUERY:               FND_FLEX.EVENT(‘PRE-QUERY’);

 PRE-INSERT:               FND_FLEX.EVENT(‘PRE-INSERT’);

 PRE-UPDATE:              FND_FLEX.EVENT(‘PRE-UPDATE’);

 WHEN-VALIDATE-ITEM        FND_FLEX.EVENT(‘WHEN-VALIDATE-ITEM’);

 WHEN-VALIDATE-RECORD      FND_FLEX.EVENT(‘WHEN-VALIDATE-RECORD’);

   7.2pre-formtrigger中加入如下:

       Begin

     Fnd_descr_flex.define(block à’CHALLENGE_FLEX’,

                                   Field à’block_item’,---value: Desc_Flex

                        Appl_short_name à ‘BND’,

                                          Desc-flex_name à ‘TEST_FLEX’);

    End;

说明一下相应的参数:

Block:启用弹性域的数据块名。

Field:指后面新增的item.

Appl_short_name:指相应的模块的简称(System AdminàApplicationàRegister)

Desc_flex_name:指注册弹性域时的名称

(8).在要启用弹性域的数据块中增加一个item作为flex_item.名称为desc_flex

  8.1 flex_item desc_flex属性设置如下:

       Subclass information :               text_item_desc_flex

    Database item :                             NO 

    Canvas:                                           对应的canvas name

  8.2 desc_flex项的以下trigger中加入如下代码。

 When-validate-item :        fnd_flex.event(‘when-validate-item’);

 When-new-item-instance:       fnd_flex.event(‘when-new-item-instance’);

 

 

 

原创粉丝点击