### 前言
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