经常需要修改的触发器:
ACCEPT
APP_STANDARD.EVENT(‘ACCEPT’);
这个触发器处理菜单或工具条上调用Save and Proceed (保存并继续)动作。它执行保存,并移动到指定当作第一个导航块的块上。
替换这个触发器中的代码,或创建块级触发器并把执行类型指定为‘Override’.
FOLDER_RETURN_ACTION
Null;
这个触发器允许指定客户华的文件夹事件
用需要的处理文件夹动作的代码替换。
KEY_DUPREC
APP_STANDARD.EVENT(‘KEY-DUPREC’);
这个触发器禁用了Oracle 表单默认的重复记录的功能。
KEY-CLRFRM
APP_STANDARD.EVENT(‘KEY-CLRFRM’);
这个触发器在试图清空form前验证记录
在原来的代码后添加附加的代码,通常你你应添加GO_BLOCK如果form中存在多个的区域,使用GO_BLOCK在调用清空from操作后重新填充控制菜单
KEY_MENU
APP_STANDARD.EVENT(‘KEY-MENU’);
这个触发器禁用了Oracle froms的Block Menu 命令
为了启用从特定的块对替代的块通过键盘操作,那么编写块级KEY_MENU并且设定执行类型为’Override ’这个触发器会打开一个与弹出式菜单相同的LOV
KEY_LISTVAL
APP_STANDARD.EVENT(‘KEY-LISTVAL’);
这个触发器执行弹性域操作或引用LOV
创建块或项级触发器并设置执行类型为‘Override’,可以使用日历或动态执行弹性域
ON-ERROR
APP_STANDARD.EVENT(‘ON-ERROR’);
这个触发器处理服务器或客户端的所有的错误,使用消息字典调用。
为了捕获处理指定的错误,在调用APP_STANDARD前检查指定的错误
declare
original_mess varchar2(80);
begin
IF MESSAGE_CODE = <your message number> THEN
original_mess := MESSAGE_TYPE||’–’||
to_char(MESSAGE_CODE)||’: ’||MESSAGE_TEXT;
––– your code handling the error goes here
message(original_mess);
ELSE
APP_STANDARD.EVENT(’ON_ERROR’);
END IF
end;
POST-FORM
APP_STANDARD.EVENT(‘POST-FORM’);
这个触发器是预留为以后使用
添加附加的代码在原有代码之后。
PRE-FORM
FND_STANDARD.FORM_INFO(’$Revision: <Number>$’,
’<Form Name>’,
’<Application Shortname>’,
’$Date: <YY/MM/DD HH24:MI:SS> $’,
’$Author: <developer name> $’);
APP_STANDARD.EVENT(’PRE–FORM’);
APP_WINDOW.SET_WINDOW_POSITION(’BLOCKNAME’,
’FIRST_WINDOW’);
这个触发器初始化Oracle 应用的内部值和菜单。在这里输入的值将在Oracle应用程序菜单‘Help About Oracle Applications’中看到。
你必须编辑应用程序的简称,应用的简称控制当用户选择‘help’按钮后哪个应用的在线帮助文档将被调用。如果你将应用的简称设置为FND,你的用户将会看不到任何帮助因为Oracle应用程序将不能建立可用的帮助目标。
Form的名称是用户form名称(form标题)。
Oracle公司使用源控制系统,它可以自动更新以“$”开头的值,如果你不使用这个源控制系统你可以按你的开发信息编辑这些值。
你必须编辑APP_WINDOW中的BLOCKNAME为你自己的block.不要编辑FIRST_WINDOW
QUERY_FIND
APP_STANDARD.EVENT(‘QUERY_FIND’);
这个触发器将设置显示字符串’Query Find is not available ’
在这个触发器中替代代码,当你创建窗口或Row_LOV在你的form中时创建块级触发器并设置执行类型为‘Override’
WHEN-NEW-FORM-INSTANCE
FDRCSID(’$Header: ... $’);
APP_STANDARD.EVENT(’WHEN–NEW–FORM–INSTANCE’);
–– app_folder.define_folder_block(’template test’,
’folder_block’, ’prompt_block’, ’stacked_canvas’,
’window’, ’disabled functions’);
--app_folder.event(’VERIFY’);
调用 APP_STANDARD.EVENT 是为了在query-only模式下调用FND_FUNCTION.EXECUTE,调用FNDRCSID是为了Oracle 应用程序的源控制系统(source control system).APP_FOLDER 只为了Oracle应用程序内部调用。客户化form不需要FDRCSID或APP_FOLDER调用,但是如果将它们留在触发器中也没有影响。
在现有的代码前添加附加代码。
WHEN-NEW-RECORD-INSTANCE
APP_STANDARD.EVENT(‘WHEN-NEW-RECORD-INSTANCE’);
这个触发器管理Oracle应用程序菜单和工具栏
创建块级触发器并设置执行类型为‘Before’.
WHEN-NEW-ITEM-INSTANCE
APP_STANDARD.EVENT(‘WHEN-NEW-ITEM-INSTANCE’);
这个触发器管理Oracle应用程序的菜单和工具栏
如果你添加弹性域方法调用,你应该添加它在APP_STANDARD.EVENT 调用前调用,通常,你不应该添加任何代码在这个触发器中,这样的代码将会影响你表单的速度并且影响每一个项
Oracle应用程序不支持修改form级的触发器
CLOSE_THIS_WINDOW
从菜单Action->Close 调用触发器APP_CUSTOM.CLOSE_WINDOW 。
CLOSE_WINDOW
APP_CUSTOM.CLOSE_WINDOW(:SYSTEM.EVENT_WINDOW);
这个出发其处理所有关闭窗口的事件。编写处理关闭窗口的事件必须写在APP_CUSTOM.CLOSE_WINDOW包中
EXPORT
App_standard.event(‘EXPORT’);
这个触发器是“Action,Export”菜单中的选择。
FOLDER_ACTION
App_folder.event(:global.folder_action);
KEY-COMMIT
App_standard.event(‘KEY-COMMIT’);
这个触发器处理正常的提交或form调用
KEY-EDIT
App_standard.event(‘KEY-EDIT’);
这个触发器处理弹性域或日历,编辑器操作。
KEY-EXIT
App_standard.event(‘KEY-EXIT’);
这个触发器处理关闭事件和退出enter-query状态
KEY-HELP
App_standard.event(‘KEY-HELP’);
这个触发器调用窗口的帮助系统。
LASTRECORD
APP_STANDARD.EVENT(‘LASTRECORD’);
这个触发器处理菜单(Go ->LAST RECORD)事件
MENU_TO_APPCORE
App_standard.event(:global.menu_to_appcore);
这个触发器支持Special菜单
STANDARD_ATTACHMENTS
Atchmt_api.invoke;
这个触发器处理附件菜单或工具按钮的调用
WHEN-WINDOW-CLOSE
Execute_trigger(‘CLOSE_WINDOW’);
这个触发器集中了form的关闭事件
WHEN-FORM-NAVIGATE
你不能修改这个触发器,它包含了标准的行为,当最小化的表单被导航到的时候正常化这个表单。
ZOOM
Appcore_custom.event(‘ZOOM’);
这个触发器处理菜单或工具条按钮’Action,Zoom ’事件。
这里有必要定义一些特别的术语,这些属于将在下边用到。
文件:
文件是任何一个可以给另一个对象或动作提供信息的对象。例如包括了图像,文字处理文件,广义表,或文本。
实体:
一个实体是一个包含Oracle应用程序数据的对象,例如一个项,一个order 或一个order line . 在用户关联附件到一个实体前,必须先启用这个实体。
在附件中,一个实体可以被当作一个基本实体,或一个相关的尸体,基本实体是一个块的主实体,相关的实体通常通过外键关系关联到一个块。
附件:
一个关联到实体的文件被称作一个附件
附件方法:
在你的应用中的一个form 或 form 方法无法使用附件。你必须安装附件到你的form 或方法中,这就是说,你必须在附件方法窗口中定义一个‘附件方法’。
文件分类:
一个文件分类是一个被应用到单独的附件或文件的标签。文件类型通过特殊的form或form方法约束文件可浏览或可添加提供安全性。
当你安装附件时,你分配文件类型到特殊的forms或form functions.当一个用户定义一个文件,用户分配一个类型到文件。附件form是仅查询这些分配到一个类型的文件
在幕后:
关联实体和文件的信息是存储在Oracle 应用对象库的表中:FND_ATTACHED_DOCUMENTS。
安装附件功能到你的form
你可以安装附件到任何form 中,你可以附加文件,图像,文本,文件URL,文件或其它信息
为了安装附件功能到你的form
前提:
为你的应用程序的附件做计划。
使用Document Entities窗口 定义你的文件实体
使用Document Categroies窗口 定义你的文件类型
使用Attachment Functions窗口定义附件功能
使用这个窗口注册附件实体,一个表可以包含多个实体,尽管附件可能在多个地方被使用到但是这个实体只需要被注册一次,
文件实体块
表:输入包含实体的主要的表的名字。
实体ID:输入唯一标志内部实体的名字。通常这个名称和表的名字是相同的。如果在表中有一个以上的实体,就在表名后添加唯一的信息,如在表DEM_PRODUCTS后添加COMPUTER唯一标识,DEM_PRODUCTS_COMPUTER。
实体名称:当form显示附件列表给一个实体时实体名称用户可以看到。输入一个有意义的实体名称
提示: 用户实体提示。
应用:拥有实体的应用(或拥有实体表的应用)
需要注意的是,如果你在Oracle硬哟娜个程序的表或form上定义客户化的附件功能。你应该定义你的客户化实体命名为客户化的应用名称来代替Oracle应用程序产品名称。这帮助你维护你升级后的客户化实体。
文件类型通过约束文件提供安全性。它可在指定的form或form方法中可视或添加。
当用户定义一个文件,用户分贝一个类型给这个文件,附件窗口仅能查询那些与form或form方法相关的类别所分配的附件。
Oracle应用程序提供“杂项”的类别,你可以分配到你的附件功能,如果你使用这个类别,你可以不需要定义任何新的类型.
文件类型块
类型: 输入一个用户友好的名称,用户将在附件窗口中看到这个名字。
默认类型:默认类型是当用户创建一个新的文件时的默认数据类型。用户可以覆盖这个默认数据类型。包含 段文本(VARCHAR2(2000)),长文本(LONG),网