### 前言
TC 的开发分为CF 端开发和Web 端开发。
CF端和Web 端各自有自己的错误信息提示方式。
两种方式是否可以有一些整合?
整合的好处即统一了显示, 又减少了重复
### CF 端错误信息
CF 端错误一般是给OMF 端来使用的。
OMF是一个富客户端的程序。 错误方式就是弹出一个窗口。
代码开发方式如下:
~~~
CheckDstat(uiShowText("errText001", NULL, UI_ATTENTION_TEXT, *mfail, WHERE));
*mfail = 11001;
goto CLEANUP;
~~~
errText001 是定义在met 中的错误信息
11001 是给这个错误一个编号, 方便错误定位。
### Web 端错误信息
Web 端错误信息提示方式一般是转到一个错误页面, 显示错误的信息:
代码方式:
~~~
ActionComponentUtil.createErrorBean(arguments, errMsg);
return options.getOption("failure");
~~~
这里的errMsg 就是定义的一个错误信息的字符串。
### 两者的整合
其实默认OOTB 的状况下, 这两者已经进行了一定的整合,就是但出现一些错误信息的时候, 跳转到的错误信息的页面就是CF端的错误信息。
对于开发者来说, 就要知道这两者是如何整合的了。
先说一个可能出现的误区:
就是在java 端通过try catch MfailException 是否就可以取到错误信息了呢? 答案是不可以, 这个异常里只有 mfail 1001 这样的代表服务端出错的信息, 具体的错误信息并没有。
它们之间是通过StatusReporter 这个类进行衔接的, 这个类的实例可从session 中取得, 具体的获取代码如下:
~~~
StatusReporter sr = null;
try {
sr = session.getStatusReporter();
} catch (AuthorizationException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
} catch (AuthenticationException e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
Status[] status_msg = null;;
String msg = "";
try {
status_msg = sr.getStatus(1);
if (status_msg != null) {
for (int len = 0; len < status_msg.length; ++len) {
msg = status_msg[len].text;
msg = msg.replace('\n', ' ');
System.out.println("message=" + msg);
}
}
} catch (Exception e1) {
msg = e1.getMessage();
}
~~~
实际web 端使用类似:
~~~
String errMsg = swcomProcessor.getCFErrMsg();
ActionComponentUtil.createErrorBean(action_context, arguments, new EnterpriseException(errMsg));
return options.getOption("failure");
~~~
或
~~~
ActionComponentUtil.createErrorBean(arguments,errMsg);
~~~
至于StausReporter 是如何构建出来的, 还有待继续研究了。
- 前言
- 国内外PLM/PDM厂商情况
- PLM系统与选择
- Teamcenter及其一揽子产品解决方案初步介绍
- Teamcenter 开发利器组合介绍。 Eclipse + Visual Studio
- TeamCenter开发系统设计系列之一
- linux下自动部署Teamcenter Enterprise 的服务端脚本
- Teamcenter 入门开发系列问答(1)
- PLM基本概念收集
- Teamcenter 入门开发系列问答(2)
- Teamcenter 入门开发系列问答(3)
- Teamcenter 入门开发系列问答(4)
- Teamcenter 入门开发系列问答(5)
- Teamcenter开发问题之-- relation 无法创建 and 无法check in
- Teamcenter(Enterprise 2007) Admin 手法之 -- 移除relation
- Teamcenter 2007 之 Part 物件关联
- Teamcenter 2007之错误信息提示
- Teamcenter(Enterprise 2007) 开发之- 快速搭建开发环境(windows)
- Teamcenter 开发中的一些问题
- Teamcenter - Index search 找不到相关物件的解决方法
- Teamcenter2007 安装步骤
- [Teamcenter 2007 开发系列] 整合Extjs 展现页面组件
- Teamcenter2007 开发环境搭建和技巧
- [Teamcenter 2007 开发系列] web 非空验证
- [Teamcenter 2007 开发实战] 获取错误或提示信息
- Teamcenter Web 端自动登录 (SSO)
- [Teamcenter 2007 开发实战] 调用web service
- [码海拾贝 之TC] 呼叫外部应用程序或脚本
- [码海拾贝 之TC] 使用View 定义动态的Class