Pré-processador &SCOPED-DEFINE

De grande importância para o desenvolvimento em si, veremos sobre os pré-processadores!
No Progress eles funcionam como constantes para armazenamento de comandos e/ou instruções pré-definidos para serem utilizados em um programa quantas vezes for necessário durante a execução.

Tem como principal objetivo organizar e facilitar o desenvolvimento do programa.

Pré-processador local

Exemplo:
&scoped-define p-exemplo display today.
{&p-exemplo}

No exemplo acima foi definido um pré-processador local, disponível apenas para a procedure atual, definido como p-exemplo que equivale a instrução “display today”.

Utilização
Após definido o pré-processador use entre CHAVES, E COMERCIAL,PRÉ-PROCESSADOR.

&SCOPED-DEFINE
Define um pré-processador visível apenas para a procedure onde está declarado.

SINTAXE
&SCOPED-DEFINE pré-processador Expressão

Pré-processador
O Nome do processador a ser instanciado na procedure.

Expressão
Uma lista de comandos ou instruções.

Pré-processador Global

Exemplo
&scoped-define p-campos customer.cust-num~ customer.name~ customer.address
for each customer no-lock:
display {&p-campos}.
end.

&GLOBAL-DEFINE
Define um pré-processador global para compartilhamento entre procedures.

SINTAXE
&GLOBAL-DEFINE pré-processador Expressão

Preprocessador
O Nome do pré-processador a ser instanciado na procedure.

Expressão
Uma lista de comandos ou instrução

Exemplo
&global-define p-exemplo cust-num,~ name,~ address,~ phoneselect
{&p-exemplo} from customer no-lock.

Remover um Pré-processador

&UNDEFINE
Exclui a definição de um preprocessador.

SINTAXE
&UNDEFINE Nome do Preprocessador

Exemplo
&scoped-define p-exemplo ‘Exemplo de Preprocessador’ &undefinep-exemplo
/*nada será apresentado porque o preprocessador não mais existe */
&undefine p-exemplo
display {&p-exemplo}.