Saltar para o conteúdo

Usuário(a):LeirbagOdanodlam/Testes

Origem: Wikipédia, a enciclopédia livre.

OpenEdge Advanced Business Language ou ABL, é uma linguagem de desenvolvimento de aplicações de negócios criada e mantida pela Progress Software Corporation (PSC). A linguagem, tipicamente classificada como uma linguagem de programação de quarta geração, usa uma sintaxe "English-like" para simplificar o desenvolvimento de software. O nome foi mudado em 2006 pela PSC de Progress para OpenEdge Advanced Business Language (OpenEdge ABL), também conhecida como Progress 4GL, a fim de modificar uma percepção das indústria de que as linguagens 4GL's são menos capazes do que outras linguagens. A linguagem era chamada de PROGRESS 4GL até o lançamento da versão 10.0. Uma sublinguagem, chamada SpeedScript, é usada no desenvolvimento de aplicações web. OpenEdge ABL ajuda os desenvolvedores a desenvolver aplicações opcionalmente usando seu banco de dados relacional integrado e uma ferramenta de programação. Essas aplicações são portáteis entre sistemas computacionais e permite acesso a várias fontes populares sem ter de aprender os métodos de acessos de dados minuciosamente. Isso significa que o usuário final desses produtos podem não estar cientes da arquitetura. Combinando uma linguagem de quarta geração e o banco de dados relacional, OpenEdge ABL permite o uso do modelo de desenvolvimento Rapid Application Development (RAD). O programador e até mesmo os usuários finais podem fazer uma prototipagem rápida usando a integração e as ferramentas GUI do desenvolvimento do ambiente.


História[editar | editar código-fonte]

1984 - Primeira Versão Comercial

1989 - Versão 5

1990 - Versão 6

1993 - Versão 7

1995 - Versão 8

1998 - Versão 9

10 de Dezembro de 2002 - Progress Dynamics 2.0 anunciado, o ambiente de aplicações para a plataforma comercial OpenEdge

17 de Fevereiro de 2004 - OpenEdge 10

2005 - Progress Versão 9

Componentes do Progress[editar | editar código-fonte]

Linguagem - a linguagem de programação usada para escrever as aplicações

Dicionário de Dados - define a estrutura dos arquivos, registros, campos, e índices no seu banco de dados.

Editor - o editor de texto que permite a criação e edição dos programas

Gerenciador de Banco de Dados - cuida das interações do banco de dados

O que torna o Progress diferente[editar | editar código-fonte]

  Construir uma aplicação com uma linguagem e ambiente de desenvolvimento de alto-nível


  Integridade do banco de dados baseada em Mainframe e processamento de transações


  Curto ciclo entre design, teste e código


  Protótipos de aplicações são fáceis de criar e podem ser envolvidos em aplicações de produção.


Banco de dados[editar | editar código-fonte]

O banco de dados (database) é um lugar para guardar dados centralmente. Uma tabela (file) é um grupo de informações relacionadas. Um registro (record) é um grupo de dados de uma entidade dentro do file. Um campo (field) é uma peça de informação, como um nome, ID, endereço. Um índice (index) é um modo eficiente de encontrar um registro.

Criando um banco de dados[editar | editar código-fonte]

$prodb mydb empty - cria um banco de dados vazio

$prodb mydb demo - cria um banco de dados baseado no modelo de demonstração

$prodb mydb anydb - cria um banco de dados baseado em outro já existente

Trechos de códigos[editar | editar código-fonte]

Mostrando todos os registros da tabela employee:

 FOR EACH emplyee:
    DISPLAY employee.
 END.

Criando um novo registro na tabela employee:

 CREATE employee.

Editando um registro de employee:

 UPDATE employee.

Criando e editando um novo registro de employee:

 INSERT employee WITH 1 COLUMN.

A sentença "WITH 1 COLUMN" exibe o formulário para edição do registro organizado em 1 coluna.

Inserindo vários registros na tabela employee:

 REPEAT:
    CREATE employee.
    UPDATE employee WITH 1 COLUMN
 END.

A sentença "REPEAT:" cria um loop, nesse caso infinito.

Pedindo um ID ao usuário, e buscando um registro de employee baseado no ID informado.

 PROMPT-FOR employee.e-id.
 FIND employee WHERE employee.e-id = INPUT employee.e-id.
 UPDATE employee WITH 1 COLUMN.

PROMPT-FOR pede uma entrada do usuário, nesse caso uma entrada do tipo do campo "employee.e-id". FIND usa um índice para localizar um único registro em uma tabela e move o registro para um buffer de registro. UPDATE mostra os dados, pede a entrada do usuário e guarda a entrada do usuário tanto no buffer da tela quanto no buffer do registro. A função INPUT usa o valor do buffer de tela. A sentença "WHERE employee.e-id = INPUT employee.e-id.", neste caso, pode ser substituída por: "USING employee.e-id." Colocando o bloco de código acima dentro de um bloco "REPEAT:" podemos alterar vários registros da tabela.

Alterando todos os registros de employee:

 FOR EACH employee:
    DISPLAY e-id.
    UPDATE fname lname address city state zip.
 END.

O código acima vai exibir o campo "e-id" de um registro e permitir que alteremos os valores dos outros campos.

Mais um exemplo de código:

 REPEAT:
    PROMPT-FOR employee.e-id.
    FIND employee USING e-id NO-ERROR.
    IF NOT AVAILABLE employee
    THEN DO:	
    /*Cria um novo registro se não existir*/
       MESSAGE "New employee record created.".
       CREATE employee.
       ASSIGN e-id.
    END.	
    /*Em todo caso atualiza todos os campos menos o e-id*/
    DISPLAY employee WITH 1 COLUMN 1 DOWN
    SET lname fname sex salary e-title start telephone
        address address2 city state zip bdate degree.
 END.

"ASSIGN" move os dados do buffer da tela para o buffer de registro. "SET" pede a entrada do usuário e guarda a entrada no buffer de tela e no buffer de registro. "IF NOT AVAILABLE" retorna verdadeiro se o registro não existe. "NO-ERROR" avisa o PROGRESS para não mostrar mensagens de erro. "MESSAGE" mostra uma mensagem na tela.

Comparando o UPDATE com o SET: UPDATE: mostra os dados, pede por mudanças, aplica as mudanças ao registro. SET: não mostra os dados, pede por mudanças, aplica as mudanças ao registro.

Excluindo um registro de employee:

 REPEAT:
    PROMPT-FOR employee.e-id.
    FIND employee USING e-id.
    DELETE employee.
 END.

Processamento Condicional:

 DEFINE VARIABLE del-answer AS LOGICAL.
 REPEAT:
    PROMPT-FOR employee.e-id.
    FIND employee USING e-id.
    DISPLAY fname lname.
            del-answer = no.
    UPDATE del-answer LABEL "Delete?" WITH SIDE-LABELS.
    IF del-answer = TRUE THEN DELETE employee.
 END.

Uma variável do tipo LOGICAL pode ter os valores YES/NO ou TRUE/FALSE.

Tipos de Dados[editar | editar código-fonte]

Tipo Formato Padrão
character x(8)
integer ->,>>>,>>9
decimal ->>,>>9.99
date mm/dd/yy
logical yes/no

Referências[editar | editar código-fonte]