Oracle Form 消息字典
消息字典
1.消息的定义
路径:应用开发员》应用产品》消息
- 名称:消息名称可以是字母、数字、连字符(-)、下划线(_)和空格的任意组合,最长可达30个字符。消息字典名称不区分大小写(例如,MESSAGENAME与messagename同名)。
- 语言:输入此消息的语言代码,简体中文是ZHS,英文是US。
- 应用产品:输入要为其定义消息文本的应用程序的名称。
- 编号:如果需要,请输入消息编号。如果为消息定义了非零的消息编号,则消息字典会自动在消息文本前面添加前缀APP:<application short name>-(或其等效名称)。消息字典将0和null视为相同(并且不显示应用程序:<application short name>或消息编号)。
- 类型:使用消息类型对消息进行分类。消息类型不影响如何在代码中调用消息。
- 最大长度:消息长度限制(以字节为单位)是菜单项的60,提示的250,标题的80(请注意,这些限制是针对翻译的消息,因此,如果要翻译英语消息,应该缩短30%)。如果指定了最大长度,则它必须介于10和1800之间(包括10和1800),并且必须等于或大于指定的消息文本的实际(字节)长度。
- 说明:在此字段中输入有助于向翻译人员解释此消息上下文的信息。如果消息类型为Token或Other,则此字段是必需的。
- 当前消息文本:定义消息内容时可以使用参数,参数是&加上参数名,前后需要空格隔开,比如参数 &HOLDING_EXPENSE_REPORT ,参数名最好大写。
2.生成消息
定义好消息后并不能使用消息,还需要生成消息(经测试,此在FORM中起限制,在PL/SQL的PACKAGE调用不限制),使用应用开发员职责运行请求:生成信息
参数:
- 语言:选择新消息定义时选择的语言,如ZHS(简体中文)
- 应用产品:选择新消息定义时选择的应用产品,如CUX_客户化应用
- 模式:DB_TO_RUNTIME(数据库至运行时间(.msb文件)),此项为默认带出,一般不需改。
- 文件应用简称(或局部):为空即可
- 文件名:为空即可
请求运行完成后再次打开并登陆EBS后就可以使用该消息了。
注意:一定要退出EBS后重新登录才可以使用。
3.消息的使用
Oracle的标准用法是使用FND_MESSAGE.SET_NAME( APPL_SHORT_NAME,MESSAGE_NAME) ;
- APPL_SHORT_NAME:应用产品简称
- MESSAGE_NAME:消息名称
调试消息
fnd_message.debug('Message');
显示消息
1 fnd_message.set_name('<APP_SHORT_NAME>','<Message_CODE>') ;
2 fnd_message.show;
错误消息
1 fnd_message.set_name('<APP_SHORT_NAME>','<Message_CODE>') ;
2 fnd_message.error;
3 RAISE form_trigger_failure;
提示消息
在FORM左下角显示:
1 fnd_message.set_name('<APP_SHORT_NAME>','<Message_CODE>') ;
2 fnd_message.hint;
警告消息
1 fnd_message.set_name('<APP_SHORT_NAME>','<Message_CODE>') ;
2 fnd_message.warn;
询问消息
1 fnd_message.set_name('<APP_SHORT_NAME>', '<Message_CODE>');
2 IF fnd_message.question(button1 => 'YES', --是
3 button2 => 'NULL',
4 button3 => 'NO', --取消
5 default_btn => 1,
6 cancel_btn => 3,
7 icon => 'question') = 1 THEN
8 --do something
9 ELSE
10 --do something
11 END IF;
fnd_message.question函数定义:
1 FUNCTION question(button1 IN VARCHAR2 DEFAULT 'YES', 2 button2 IN VARCHAR2 DEFAULT 'NO', 3 button3 IN VARCHAR2 DEFAULT 'CANCEL', 4 default_btn IN NUMBER DEFAULT 1, 5 cancel_btn IN NUMBER DEFAULT 3, 6 icon IN VARCHAR2 DEFAULT 'question') RETURN NUMBER
带有参数的消息显示
FORM中弹出错误信息并且使用参数:
1 fnd_message.set_name('<APP_SHORT_NAME>', '<Message_CODE>'); 2 fnd_message.set_token('<PARAMETER>','Message'); 3 fnd_msg_pub.add; 4 fnd_message.error; 5 RAISE form_trigger_failure;
PL/SQL程序包中提示错误信息并且使用参数:
1 cux_api.set_message(p_app_name => '<APP_SHORT_NAME>', 2 p_msg_name => '<Message_CODE>', 3 p_token1 => '<PARAMETER>', 4 p_token1_value => 'Message'); 5 x_return_status := fnd_api.g_ret_sts_error; 6 raise_exception(x_return_status);