「建置選項」編輯器指出 WebSphere Application Server 5.1 是受支援的 serverType。 但僅支援 WebSphere Application Server 5.1.1 版或更新版。
說明:在主控台表單執行 openUI 陳述式期間,連結變數中的回覆值絕不會包含 ?null? 值。 在 I4GL 中,如果沒有在表單欄位中輸入任何值,就會傳回空值。
暫行解決方法:如果您的應用程式在表單上執行 openUI 陳述式期間或之後,會確切地檢查空值,就必須修改邏輯來檢查空字串值,而不是檢查 ?null? 值。
說明:在 I4GL 中,陳述式 ?for I = 0 to 1 by -1 ? 會導致 for 迴圈程式碼區塊執行零 (0) 次。 在 EGL 中,這個相同的程式碼區塊會導致無限迴圈,最後造成整數超出界限的異常狀況或堆疊溢位的異常狀況。
暫行解決方法:重做陳述式的 EGL,讓 for 迴圈程式碼區塊能執行您所需的次數。 或者,也可以將 for 迴圈變更為 while 陳述式,依所需的次數來執行程式碼區塊。
說明:有時候轉換公用程式會在表格中展開所有直欄的畫面記錄,即使只有使用直欄的子集來定義畫面記錄。
暫行解決方法:將無關的直欄名稱從已轉換的 EGL 陳述式中移除。
說明:"IF ! xxx" 或 "IF xxx" 中的 IF 條件擲出驗證錯誤。Boolean 表示式不受 EGL 支援,並產生驗證錯誤。
暫行解決方法:「轉換公用程式」會自動依據使用這些 IF 函數的環境定義來轉換這些 IF 函數;此限制不會影響 I4GL 應用程式的轉換。 我們在這裡提到這件事,是要讓 I4GL 使用者知道在 EGL 中撰寫新的應用程式時,IF 條件的支援層次為何。
若為 Boolean 表示式,請將條件的 Boolean 結果轉換成數值 0 或 1。
使用「EGL 表單編輯器」或是手動編輯 EGL 程式碼的「表單」部分時,若是使用內容 "validValuesMsgKey" 來搭配初始類型為非數值的表單欄位(例如:char 或 db char),就會發出下列驗證訊息:
IWN.VAL.5381.e 76/0 內容:validValuesMsgKey。 對 ... 表單中的 ... 欄位而言,這個內容的值是無效的。該內容是數值項目內容。
若要將這個內容用於非數值的基本元素,建議使用下列暫行解決方法:
- 用「EGL 編輯器」來開啟含有該表單的檔案。 在「專案瀏覽器」視圖中,用滑鼠右鍵按一下該檔案,選取開啟工具 > EGL 編輯器。
- 請不要在已設定 validValuesMsgKey 之欄位的宣告上指定初始類型,請在欄位宣告上指定 dataItem 部分。 dataItem 部分應指定與欄位相同的初始類型。
比方說,如果原始欄位的定義為:
ACTION char(1) {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //這一行應該會有 IWN.VAL.5381 錯誤請將欄位的定義變更為:
ACTION charOneItem {inputRequiredMsgKey = "0003", validValues = ["I","S","U","D"], ..., validValuesMsgKey = "0004"}; //這一行應該沒有錯誤
在相同檔案中的 formGroup 外部,輸入下列:
DataItem charOneItem char(1) { validValuesMsgKey="1000" } end
XSD 註釋若是套用在資料項目定義、記錄定義及記錄項目宣告,以反映在 Web 服務 WSDL 檔案中找到的 XML 綱目資料類型項目,則唯有將其用在「介面」功能參數,以及從 WSDL 檔案衍生的回覆值時,XSD 註釋才有意義。
範例:
DataItem weekend string {@xsd {enumeration=["Saturday", "Sunday"] }} end // 這會將 WSDL 限制反映在 weekend 的值上
Interface calander
public function weekendPlanner (weekendDay weekend in, . . .); // 只有 Saturday 及 Sunday 這二個引數值可以傳送到這個 Web 服務函數
end
「建立 EGL 介面」精靈僅支援屬於 RPC/Encoded、RPC/Literal 及 Document/Literal(折行)的 WSDL 檔案。 不支援屬於 Document/Literal(不折行)的 WSDL 檔案。
「從 EGL 服務建立服務連結程式庫」精靈沒有將任何 WSDL 檔案複製到不同的專案中。 若是在某個專案中建立「服務連結程式庫」,但是將服務產生在不同的專案中,使用者就必須以手動方式,將「服務連結程式庫」所產生的任何 WSDL 檔案複本,放在 Web 連結所指示的位置中。
您不能使用 EGL 除錯器來處理包含報告的程式。未來的更新項目會提供這項功能。
在服務或介面函數中,若是使用多維陣列來作為參數,或是將其定義在用來作為參數的記錄中,在產生至 J2EE 1.3 層次的 Web 專案時,被產生成「Web 服務」或含有「Web 連結」之「服務連結程式庫」的服務,將會產生帶有編譯錯誤的 Java 程式碼。
Service myService
function f1(param string[][][] in) // 在產生至 J2EE 1.3 的 Web 專案,成為 Web 服務時,會造成編譯錯誤
. . .
end
end
Service myService
function f1(param string[] in) // 產生至 J2EE 1.3 的 Web 專案沒有問題
. . .
end
end
在服務或介面函數中,若是使用含子結構資料項目或出現次數 > 1 之資料項目的固定記錄來作為參數,或是將其定義在用來作為參數的記錄中,在產生至 J2EE 1.3 層次的 Web 專案時,被產生成「Web 服務」或含有「Web 連結」之「服務連結程式庫」的服務,將會產生帶有編譯錯誤的 Java 程式碼。
範例:
Record mySubstructuredRecord 10 item1 char(10); 20 item 2 char(10); end
Service myService public function f1(param mySubstructuredRecord in) // 在產生至 J2EE 1.3 的 Web 專案,成為 Web 服務時,會造成編譯錯誤 . . . end end
Record myFlatRecord 10 item1 char(10); 10 item2 char(10); end
Service myService public function f1(param myFlatRecord in) // 產生至 J2EE 1.3 的 Web 專案沒有問題 . . . end end
在服務或介面函數中,若是使用時間或間隔資料類型來作為參數,或是將其定義在用來作為參數的記錄中,在產生至 J2EE 1.3 層次的 Web 專案時,被產生成「Web 服務」或含有「Web 連結」之「服務連結程式庫」的服務,將會在執行時期擲出 Java 異常狀況。
使用「建立 EGL 介面」精靈時,在相同的 EGL 專案中,若有二個以上的 WSDL 檔案包含相同的 XML 綱目定義類型,將會導致建立重複的 EGL 資料定義,進而產生 EGL 驗證錯誤。
如果您的 EGL 程式存取 Oracle 資料庫,且使用 OPEN 陳述式來開啟結果集,OPEN 陳述式的 SELECT 子句便無法使用主變數名稱。 如果指定了主變數名稱,就不會在 OPEN 陳述式 using 子句的對應元素中設定任何值。
EGL 提供了每次儲存 JasperReport 檔時,都會加以編譯的建置器。 如果您的 EGL 應用程式包括報告處理常式,請確定您的開發機器中有 Java SDK 1.3.1(或更高的層次),且 SDK bin 目錄列在系統 PATH 環境變數中(換言之,就是 C:\jdk1.3.1_14\bin)。 如果您沒有安裝 Java SDK,當建置 .jrxml 檔時,會出現下列錯誤類型:編譯報告 Java 程式碼時,發生錯誤。
這個產品更新套件包含對先前 EGL 語法的好幾項變更。 如果您已利用本產品的 5.1.2 版或 6.0 版來建立 EGL 組件,在安裝這個產品更新套件之後,可能會出現這些組件的驗證錯誤。 您可以使用所提供的簡單移轉工具來更新程式檔中的語法。 請參閱 EGL 說明文件,以取得 EGL 6.0 版移轉工具的詳細資訊。
©Copyright IBM Corporation 2000, 2005. All Rights Reserved.