Compilação condicional em RPG (LE)
-
18-09-2019 - |
Pergunta
Posso incluir uma seção de código com base em se uma variável é definida no meu programa, ou é o pré-processador completamente incapaz de aceder a esta informação, apenas as condições de compilação? Ou seja, Estou atrás de algo como:
/IF DEFINED(myVariable)
D myOtherVariable S like(myVariable)
/ELSE
D myOtherVariable S 20A
/ENDIF
Este link parecem sugerir que é não é possivel. Se assim for, alguém sabe de uma outra maneira de conseguir isso?
Solução
Seria um bom recurso para ter, mas, infelizmente, não é assim que funciona hoje. O valor entre parênteses após DEFINIDO deve ser um nome da condição , não um nome de variável definida. A maneira de fazê-lo funcionar é ter um / DEFINIR directiva sempre que você definir essa variável específica em qualquer um dos programas ou cadernos. Tudo depende do uso para estas situações, tanto quanto se ou não esta é uma prática recomendada.
O link fornecido na sua pergunta é spot-on e concordo com as conclusões.
Outras dicas
Como uma dica adicional, o uso C livros de programação para este assunto, não os livros IBM RPGLE. Os livros IBM descrever o que pode ser feito com as directivas. Os livros C descrever como ele é usado em programas do mundo real (programas de código aberto, por exemplo, Linux). Após esse estilo faz suas fontes de RPG muito mais legível para outros programadores.