frmcmp退出状态不应该为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,并且未显示错误消息。

有没有人有这方面的线索?由于这是一个过时的技术,谷歌没有给出很多答复。

在此先感谢。

你应该检查你是否有.fmx或.mmx或.plx文件。 如果不是这种情况,您可以假定编译失败。

我们也用这种方式,它工作得很好。

+0

这是如此明显,我无法看到它。我痴迷于从frmcmp获得正确的价值。 – varrtto