2017-08-30 5 views
0

J'essaye d'écrire un script pour compiler tous les formulaires, rapports, bibliothèques et menus dans une application Oracle 6i (ouais, trop vieille) que je suis supposé commencer à maintenir, mais je arrivé aux menus et il semble que frmcmp renvoie toujours un 0 malgré le fait de ne pas compiler un fichier .mmb.Le statut de sortie frmcmp ne doit pas être 0

Pour compiler des formulaires, par exemple, j'ai:

for i in trouver. -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

Cela fonctionne très bien, car $ {?} renvoie 1 si la compilation échoue. Mais si j'essaie:

for i in trouver. -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

Comme vous pouvez le voir, la seule différence majeure est la valeur de module type=form qui devient menu. En outre, rien n'est écrit en errorcomform.log.

Pour générer l'erreur, je prends simplement n'importe quel autre fichier (par exemple un .mmx ou n'importe quel fichier texte) et le change en .mmb afin que le find le trouve. Bien qu'il ne génère pas de fichier .mmx, il semble que frmcmp renvoie toujours 0 et ne montre pas le message d'erreur.

Est-ce que quelqu'un a une idée à ce sujet? Comme c'est une technologie obsolète, google ne donne pas beaucoup de réponses.

Merci d'avance.

Répondre

1

Vous devriez simplement vérifier si vous avez un fichier .fmx ou .mmx ou .plx. Si ce n'est pas le cas, vous pouvez supposer que la compilation a échoué.

Nous l'utilisons aussi de cette façon et cela fonctionne très bien.

+0

C'était tellement évident que je ne pouvais pas le voir. J'étais obsédé par l'obtention de la bonne valeur de frmcmp. – varrtto