message
来源:互联网 发布:网络怒怼什么意思 编辑:程序博客网 时间:2024/04/30 00:21
http://www.erp100.com/html/43/2743-2432.html
定义Message
在系统Message Dictionary定义Message的优点在于:
1一次定义,多次引用;
2可定义参数,避免硬编码;
3可很好解决多语言环境下消息文本的转译问题。
应用开发员—应用产品—消息,进入如图9.1所示界面。
下图定义了一个名为DEMVC_SHIP_BEFORE_ORDER的Message。
Oracle建议Message Name采用大写字母加下划线的命名方式不要超过30个字符,Application就是引用Message的应用,Language即语言环境,输入Number值在显示的时候会添加APP-前缀,为空的话无前缀也会省略,Current Message Text就是要显示的文本了,带’&’的则说明该Message带参数,图中的Message就有&ORDERDATE和&SHIPDATE两个参数。可定义Name相同Language不同的消息,用作多语言环境下的文本转译。
定义Message信息时除了语法、语义上的注意事项外,还需遵循一些编码规范。比如说:定义的参数最好有特定的含义并且易于区分,尽量不要将一些仅表达语义的短语作为参数传入(因为Oracle在翻译Message的时候默认不会翻译参数,相当于这些参数都是硬编码的)。
显示消息
显示消息可以调用消息字典中定义的消息,也可以显示服务器上出错信息和消息堆栈中的信息,还可以显示程序代码生成的消息文本。
1调用消息字典消息
步骤如下:
(1)FND_MESSAGE.SET_NAME设置MESSAGE_NAME和Application Short Name;
(2)2 FND_MESSAGE.SET_TOKEN设置MESSAGE参数,注意必要时对参数进行格式转换。
Eg:
IF (EVENT = 'WHEN-VALIDATE-ITEM') THEN
IF :ORDERS.DATE_SHIPPED IS NOT NULL THEN
IF :ORDERS.DATE_SHIPPED < :ORDERS.DATE_ORDERED THEN
FND_MESSAGE.SET_NAME('DEM','DEMVC_SHIP_BEFORE_ORDER');
FND_MESSAGE.SET_TOKEN('ORDERDATE',APP_DATE.DATE_TO_CHARDATE
(:ORDERS.DATE_ORDERED),FALSE);
FND_MESSAGE.SET_TOKEN('SHIPDATE',APP_DATE.DATE_TO_CHARDATE
(:ORDERS.DATE_SHIPPED),FALSE);
FND_MESSAGE.ERROR;
END IF;
END IF;
END IF;
2 显示服务器上出错信息和消息堆栈中的信息
Eg1:
FND_MESSAGE.SET_NAME (’FND’,’FLEX_COMPILE_ERROR’);
FND_MESSAGE.SET_TOKEN (’PROCEDURE’,’My Procedure’);
APP_EXCEPTION.RAISE_EXCEPTION;
/* Retrieve an expected message from the server side,
then show it to the user */
FND_MESSAGE.RETRIEVE;
FND_MESSAGE.ERROR;
/* Then either raise FORM_TRIGGER_FAILURE, or exit
routine*/
Eg2:
/* Get translated string from message file */
declare
msg varchar2(2000);
begin
FND_MESSAGE.SET_NAME (’FND’,’A_2000_BYTE_MSG’);
msg := FND_MESSAGE.GET;
end;
/* We now have a translated value in the msg variable
for forms built–in or other function */
3显示程序代码生成的消息(这也是我们经常用到的)。
Example 1
FND_MESSAGE.SET_STRING (’系统发生了一个严重的错误’);
FND_MESSAGE.ERROR;
Example 2
IF (FND_MESSAGE.WARN) THEN
WARNNING_FLAG :=‘Y’;
ELSE
WARNNING_FLAG :=‘N’;
END IF ;
Example 3
FND_MESSAGE.SET_STRING (’Hello World’);
FND_MESSAGE.SHOW;
Example 4
FND_MESSAGE.SET_STRING (’我要显示在状态栏上’);
FND_MESSAGE.HINT;
FND_MESSAGE.ERASE; --清空Form状态栏信息
Example 5
FND_MESSAGE.SET_STRING('确认后记录将不可修改,是否确认?');
IF FND_MESSAGE.QUESTION('是',null,'否',1,3,'question') = 3 THEN
:HEADER.INV_CONFIRM_FLAG := 'N';
ELSE
DO_KEY('commit_form');
END IF ;
Example 6
FND_MESSAGE.DEBUG ('这是一条调试信息');
全部脚印 不留脚印 留下脚印:
- message
- message
- message
- Message
- Message
- Message
- Message
- Message
- Message
- Message
- Message
- message
- message
- message
- Runtime--Message、Message Forwarding
- message info
- Message Board
- One message
- 1122
- PE教程7: Export Table(引出表)
- zoj 1038 T9 mobile input method
- Arcengine,C#获得FeatureClass的坐标系ISpatialReference--简单技巧
- 保持敏捷-持续集成
- message
- 在不变的预算内支持快速增长的IT服务需求下做事-《管理信息技术的商业价值》读后感
- C#,arcengine,从工作空间中删除指定表
- 敏捷软件开发基础: 持续集成环境的构建
- 中国牛人自制直升机,视频!仅花2万RMB!
- 宜疏不宜堵,谈山寨机的合法化
- 持续集成工具和环境搭建
- 测试人员如何赢得开发人员的尊重
- HTTP