f45gen form1 batch=y ....
f45gen form2 ............
.
f45gen form500 .......
Now how do I detect after the fact that a few forms failed to compile?
(without checking for .fmx). I would like to output the failed forms to
a file. (running WIN95, 16bit version of Forms4.5). I don't know of any
utilities provided by Oracle Corp.
Selwyn Wies
We had the same problem as you have. Because of our migration from
Designer/2000 1.1 to 1.3, we also migrate from Forms 4.5.6.3.3 (16 bit) to
4.5.7.0.10 (32 bit). This migration forced us to generate over 400 Forms,
Menus and Libraries.
How did you manage to make a batch to generate 100 Forms. I tried to make
a batch file (a DOS .bat file) and run it under Windows95. But, because
of the multi threading (or whatever the word is) Windows95 tries to run
al the generate statements in the batch file at one time, resulting only
the first to generate.
Because of the problem I build a Form to do the job. The Forms retrieves
the directory information of the active directory and gives me the posibility
to select the FMB, MMB and PLL files I want to generate. Then, just push the
button and the Form issues all the needed generate statements with the Forms
buitl-in HOST.
After each generation the Form checks the error file (same name as the Form,
but with the extension ERR). In case it is a FMB it checks the last row for
'Compilation errors have occurred.' and in case it is a PLL it checks 2
rows before the last for 'FRM-30312:Failed to compile the library.'
The Forms marks all the Forms that did not generate.
I alse made a button to check if all FMB files have a FMX, all MMB files
have a MMX and all PLL files have a PLX.
Henk Rook
ENNIA Caribe NV, Curaçao
ENC...@IBM.NET
>I need to regenerate 100's of forms. Create a script:
>
>f45gen form1 batch=y ....
>f45gen form2 ............
>.
>f45gen form500 .......
>Now how do I detect after the fact that a few forms failed to compile?
>(without checking for .fmx). I would like to output the failed forms to
>a file. (running WIN95, 16bit version of Forms4.5). I don't know of any
>utilities provided by Oracle Corp.
The following batch file worked fine for me
Parameters:
1 .. Filename
2 .. Type ( FMB or MMB)
3 .. Úser-ID
4 .. Log-File
directories error, ok and pcfmx must exist.
Markus
----------------------------------------------------------------------------------
@echo off
echo --------------------------- >>%4
echo Generating %1 %2 >>%4
echo Generating %1 %2
if %2#==FMB# goto :fmb
if %2#==MMB# goto :mmb
if %2#==fmb# goto :fmb
if %2#==mmb# goto :mmb
echo invalid type: %1 . %2 >>%4
goto :ende
:mmb
f45gen32.exe Module=%1.%2 userid=%3 module_type=menu logon=yes
batch=yes generate=yes compile_all=yes
if exist %1.mmx goto :mmb_ok
goto :mmb_ko
:mmb_ok
if exist %1.mmx pkzip -m mmb_zip\%1.zip %1.%2
if exist %1.mmx move %1.mmx pcfmx32
if exist %1.err del %1.err
echo Generation Successful >>%4
goto :ende
:mmb_ko
echo Error >>%4
goto :ende
:fmb
f45gen32.exe Module=%1.%2 userid=%3 module_type=Form logon=yes
batch=yes generate=yes compile_all=yes
if exist %1.fmx goto :fmb_ok
goto :fmb_ko
:fmb_ok
if exist %1.fmx pkzip -m fmb_zip\%1.zip %1.%2
if exist %1.fmx move %1.fmx pcfmx32
if exist %1.err del %1.err
echo Generation Successful >>%4
goto :ende
:fmb_ko
echo Error >>%4
:ende
echo ---------------------------- >>%4
------------------------------------------
for %a in (*.fmb) do start/w f45gen %a batch=y compile_all=y
userid=blah/blah
This may not be the exact syntax for the "for" command, but it is
close. This allows me to do it with one command in one shot.
Loyal Barber
MCI Systemhouse