2017-08-30 96 views
0

我在編寫一個腳本來編譯Oracle 6i應用程序中的所有窗體,報告,庫和菜單(是,太舊),我應該開始維護,但是我進入菜單,似乎frmcmp仍然返回0,儘管無法編譯.mmb文件。frmcmp退出狀態不應該爲0

要編譯形式,例如,我有:

for i in發現。 -name'* .fmb'| awk -F。 '{print $ 2}' do frmcmp userid=user/[email protected] batch=yes module=/path$i.fmb module_type=form output_file=/path$i.fmx compile_all=yes window_state=minimize 2> errorcomform.log if [ ${?} != 0 ] then echo -e "${FALLA}FAILED${NORMAL}" fi done

這很好,因爲如果編譯失敗,$ {?}返回1。但如果我嘗試:

for i in找到。 -name'* .mmb'| awk -F。 '{print $ 2}' do frmcmp userid=user/[email protected] batch=yes module=/path$i.mmb module_type=menu output_file=/path$i.mmx compile_all=yes window_state=minimize 2> errorcomform.log if [ ${?} != 0 ] then echo -e "${FALLA}FAILED${NORMAL}" fi done

正如您所看到的,唯一的主要區別在於module type=form的值更改爲menu

此外,沒有任何東西寫在errorcomform.log

要生成錯誤,我只需抓取任何其他文件(例如.mmx或任何文本文件)並將其更改爲.mmb,以便find可以找到它。儘管它不生成.mmx文件,但似乎frmcmp仍然返回0,並且未顯示錯誤消息。

有沒有人有這方面的線索?由於這是一個過時的技術,谷歌沒有給出很多答覆。

在此先感謝。

回答

1

你應該檢查你是否有.fmx或.mmx或.plx文件。 如果不是這種情況,您可以假定編譯失敗。

我們也用這種方式,它工作得很好。

+0

這是如此明顯,我無法看到它。我癡迷於從frmcmp獲得正確的價值。 – varrtto