Usuário(a):LeirbagOdanodlam/Testes
![]() | Esta é uma página de testes de LeirbagOdanodlam, uma subpágina da principal. Serve como um local de testes e espaço de desenvolvimento, desta feita não é um artigo enciclopédico. Para uma página de testes sua, crie uma aqui. Como editar: Tutorial • Guia de edição • Livro de estilo • Referência rápida Como criar uma página: Guia passo a passo • Como criar • Verificabilidade • Critérios de notoriedade |
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]
- http://en.wikipedia.org/wiki/OpenEdge_Advanced_Business_Language
- http://embed.verite.co/timeline/?source=0AuS34pnNbgnmdDhzUF9lYmZQVllwT3VGQUdrbVcyWmc&font=PTSerif-PTSans&maptype=toner&lang=pt-br&height=650
- Programming in Progress - Progress Software Corporation - Copyright 1989
- 10.1A Progress 4GL Handbook, by John Sadd
- http://communities.progress.com/pcom/docs/DOC-16074