Você está na página 1de 74

DDK GUI

Parte 8

Tecnologia

1
Agenda

1 Parte

9 Nomenclatura

9 Estilos

Cadastro Simples

Cadastro Simples – Alteração

Cadastro Simples – Inclusão

Cadastro Complexo

Cadastro Complexo – Alteração

Pai x Filho – Atualiza Filho

Manutenção de Filhos

2
Agenda

Pai x Filho – Atualiza Ambos

Manutenção de Pais

Consulta Simples

Consulta Complexa

Consulta Relacionamento

Relatórios / Cálculos / Fechamentos

Parâmetros Únicos

Parâmetros Múltiplos

Formação

Formação sem Navegação

3
Agenda

Importação

Exportação

Pesquisa

Vá Para

Digitação Rápida

Painéis

Funções – Relatórios Relacionados

Funções – Consultas Relacionadas

Menu de Barra

4
Agenda

Parte 2

9 Construção

SmartQuery

SmartViewer – Padrão

SmartViewer – Sem Campos de Tabela

SmartViewer – Só com Campos Chave

Parte 3

CustomBrowser Inclui/Modifica

CustomBrowser Zoom Wizard

Vá Para

Pesquisa

5
Agenda

Cadastro Simples

Parte 4

Cadastro Simples Alteração

Cadastro Simples Inclusão

Cadastro Complexo

Cadastro Inclui/Modifica Filho

Cadastro Pai x Filho – Atualiza Filho

Cadastro Inclui/Modifica Pai

Cadastro Pai x Filho – Atualiza Ambos

Parte 5

Consulta Simples

6
Agenda

Consulta Complexa

Consulta Relacionamentos

Parâmetros Únicos

Formação

Parte 6

Relatórios

Importação

Exportação

CustomBrowser Digitação

Digitação Rápida

7
Agenda

Parte 7

9 Includes e Utilitários Padrão

UT_FIELD.I

UT-RTLBL.I

UT-RUN.I

UT-MSGS.P

IND01-10.I, IND11-50.I E IND51500.I

UT-TABLE.I

UT-LITER.I

UT-LIMIT.P

8
Agenda

UT-GLOB.I

I-FREEAC.I

UT-DIR.P

BTB917ZX.P

BTB917ZY.P

BTB917ZZ.P

UT-VRBIN.P

UT-FINFO.P

UT-CMDLN.P

9
Agenda

UT-OSVER.I

I-COUNTDS.I

UT-WIN.I

UT-TRACE.P

Parte 8

9 Validações

Validações de Tela

Validações Triggers de Dicionário

9 Mensagens

Regras para Criação de Mensagens

10
Agenda

Mensagens em Outros Idiomas

9 Procedures Reutilizáveis

9 Portabilidade de RCODES

9 Customizações

API - Application Program Interface

UPC - User Program Call

11
Validações

Validações

12
Validações de Tela

9 Validações na Navegação de Registros

Em certos casos, é necessário validar um registro assim


que é acessado através da navegação na tabela.

Deve-se ter cuidado com esse tipo de validação, pois cada


vez que o usuário navegar na tabela, a validação será feita,
podendo prejudicar a performance do programa.

13
Validações de Tela

9 Validações Antes da Alteração

Para evitar que a validação acabe afetando a performance


do programa, deve-se fazer a validação apenas quando
houver a tentativa de alteração, incluindo o código a seguir
antes do dispatch padrão da procedure Local-Enable-Fields

14
Validações de Tela

define variable c-p-cadsim as character no-undo.


if not adm-new-record and available <tabela>
then do:
if <condição> then do:
RUN get-link-handle IN adm-broker-hdl
(INPUT THIS-PROCEDURE,
INPUT "TableIO-Source",
OUTPUT c-p-cadsim).
if valid-handle(widget-handle(c-p-cadsim))
then do:
RUN pi-cancelar IN widget-handle(c-p-
cadsim).
<mensagem>.
return "ADM-ERROR":U.
end.
end.
end.

15
Validações de Tela

9 Onde:

<tabela>: a tabela que está sendo utilizada na


manutenção;

<condição>: uma condição qualquer que indica que o


registro não pode ser alterado;

<mensagem>: uma mensagem a ser apresentada ao


usuário informando impossibilidade da alteração para o
registro.

16
Validações de Tela

Essa técnica deve ser evitada, pois o usuário verá o botão de


alteração habilitado e ao tentar alterar o registro a mensagem irá
interrompê-lo, contradizendo a função do botão.

17
Validações de Tela

9 Validações em Entrada de Dados

As validações feitas para valores de entradas de dados devem


ser feitas sempre no momento de sua confirmação;

Na ocorrência de alguma inconformidade em qualquer dos


valores requisitados pelo programa, este deverá apresentar
uma mensagem de erro por intermédio do utilitário ut-
msgs.p.

18
Validações de Tela

9 Validações em Cadastro Simples

As validações em um Cadastro Simples devem ser feitas


antes do dispatch da procedure Local-assign-record da
Viewer.

19
Validações de Tela
9 Validações em Cadastro Complexo

As validações dos dados de entrada em um Cadastro


Complexo são feitas nas procedures pi-validate das
Viewers que compõem o cadastro.

20
Validações de Tela

9 Validações para Window Relatório

Pelo fato da Window Relatório ser um Template não composto


por SmartObjects, a validação de seus valores tem as
seguintes características:

21
Validações de Tela

Páginas de Parâmetros, Seleção e Classificação

Os valores dessas páginas são validados dentro da


procedure pi-executar, após o comentário:

/* Coloque aqui as validações das outras páginas,


lembrando que elas devem apresentar uma mensagem de
erro cadastrada, posicionar na página com problemas e
colocar o foco no campo com problemas */

22
Validações de Tela

Browser Digitação

Os valores do browse de digitação devem ser validados no


momento em que o usuário sai do registro, no evento Row-
Leave do browse.

23
Validações de Tela

Página de Impressão

A página de impressão não precisa sofrer qualquer tipo de


validação. O Template se encarrega de confirmar os
valores para essa página.

24
Validações Triggers de Dicionário

9 As validações de dicionário de dados podem acarretar o mau


funcionamento nos Templates, já que esse tipo de validação
não pode retornar informações do problema ocorrido para que
seja tratado conforme necessário.

25
Validações Triggers de Dicionário

9 As validações de dicionário devem ser replicadas nos


programas, nos locais indicados conforme o Template
utilizado, fazendo com que seja possível o tratamento dos
problemas que possam ocorrer no andamento das validações.

26
Mensagens

Mensagens

27
Mensagens

9 Observação:

A manutenção do cadastro das mensagens, assim como a


inclusão de novas mensagens só podem ser realizadas pela
Datasul. Para clientes e parceiros é autorizada somente a
utilização das mensagens já cadastradas.

28
Regras para a Criação de Mensagens

9 Estas regras devem ser seguidas por todos os programadores


e analistas que estão desenvolvendo os produtos da Datasul
As mesmas visam facilitar o controle das mensagens (para
que não haja o acúmulo de informações que não serão
utilizadas ou então repetitivas) e, também, facilitar o trabalho
de tradução, pois seguindo estas normas o número de
mensagens criadas diminui.

29
Regras para a Criação de Mensagens

9 Não utilizar ponto de exclamação ou ponto final, a não ser que


haja sentença posterior.

9 As reticências podem ser utilizadas somente nos casos de uso do


gerúndio.

9 Quando o programador tiver a necessidade de ressaltar a


mensagem, utilizar a função "alert-box warning".

9 Não utilizar ponto ao abreviar palavra.

9 Utilizar acentuação sempre.

30
Regras para a Criação de Mensagens

9 Revisar possíveis erros gramaticais, de concordância e de grafia.

9 Não utilizar letras maiúsculas no meio da frase sem que seja


nome próprio.

9 Evitar repetir a mesma palavra várias vezes.

9 Não utilizar palavras ou jargões técnicos.

9 Procurar ser formal. Não utilizar gírias.

9 Não utilizar o tratamento VOCÊ.

9 Utilizar somente o idioma português.

31
Regras para a Criação de Mensagens

9 Não utilizar sinais ortográficos ou espaços em branco no início


das mensagens.

9 Não criar mensagens sem sentido.

9 A mensagem deve ser o mais clara e sucinta possível. Qualquer


necessidade de detalhamento, utilizar o help;

9 Utilizar o help da mensagem somente se necessário, se houver


algo a acrescentar. Não utilizá-lo somente para repetir a mesma
mensagem.

32
Regras para a Criação de Mensagens

9 Não criar mensagem somente com letras maiúsculas.

9 Antes de criar uma nova mensagem verificar se não há outra


similar que possa ser utilizada.

9 Para auxiliar esta operação, o Sistema de Mensagens


possui o botão Pesquisa, onde você pode buscar por Código
ou pelo Texto da Mensagem. Além disso, ainda possui a
opção de Filtro onde você informa palavras que deseja
procurar dentro do sistema.

33
Mensagens em Outros Idiomas

9 Utilizar os mesmo cuidados para criação de mensagens novas.

9 No caso de dúvidas, deve-se consultar o glossário ou a equipe


de Tradução.

34
Procedures Reutilizáveis

Procedures Reutilizáveis

35
Procedures Reutilizáveis

9 Procedures Internas reutilizáveis são definidas em includes


que devem ser incorporados aos programas.

9 Se forem incorporadas a programas .w, não devem fazer


acesso muito grande a dados pois se isto acontecer devem ser
transformadas em API(s).

36
Procedures Reutilizáveis

9 Nomenclatura

A nomenclatura dos includes que contém este tipo de


procedure interna deve ser a seguinte:

XXINC999.i

37
Procedures Reutilizáveis

9 Onde:

XX - Sigla do Módulo

INC – Fixo

999 - Seqüencial.

9 Exemplo:

cdp\cdinc001.i

38
Portabilidade de RCODES

Portabilidade de RCODES

39
Portabilidade de RCODES

9 Objetivo

Validar o funcionamento dos programas compilados em


ambiente Windows e executados em ambientes Unix.

Isto se faz necessário porque programas que respeitam as


regras para portabilidade de RCODE, podem ser executados
via RPW/RPC em ambiente Unix.

40
Portabilidade de RCODES

Ao executar programas no Unix, compilados em ambiente


Windows e que não tenha respeitado as regras de
portabilidade, é apresentado o erro 4438.

Program <program-name> was compiled under another


incompatible display environment. Cannot run without
recompile. (4438)

41
Portabilidade de RCODES

9 Regras

Para que seja possível a portabilidade de RCODES, três


regras básicas devem ser obedecidas, caso contrário,
existe a necessidade de recompilação do programa.

42
Portabilidade de RCODES

9 1º Regra

Códigos que não possuem comandos de User-Interface


(especificamente, códigos que não criam frames, tanto
explícitas como implícitas). Como exemplo, estão os
programas em batch (RPW);

43
Portabilidade de RCODES

9 2º Regra

Mesmo tipo de banco de dados;

9 3º Regra

Mesma classe de plataforma de servidor, deve ter o mesmo


tamanho de palavra e alinhamento de bytes.

44
Portabilidade de RCODES

9 Exemplo:

Para que o erro 4438 ocorra, é necessário compilar um


programa que possui frame em ambiente Windows e tentar
executar o mesmo (RCODE) em ambiente UNIX:

output to value(c-arquivo)
find emitente where emitente.cod-emitente = 10
no-lock.
display emitente.cod-emitente.

45
Portabilidade de RCODES

O comando DISPLAY cria uma FRAME, impossibilitando o


uso do programa compilado em ambiente Windows, em um
ambiente Unix ou vice-versa.

Para solucionar este problema de incompatibilidade, é


necessário utilizar a função STREAM-IO para reformatar a
saída para texto puro, sem formatação de fonte:

46
Portabilidade de RCODES

output to value(c-arquivo)
find emitente where emitente.cod-emitente = 10 no-
lock.
display emitente.cod-emitente with stream-io.

ou utilizar o comando PUT:

output to value(c-arquivo)
find emitente where emitente.cod-emitente = 10 no-
lock.
put emitente.cod-emitente.

47
Portabilidade de RCODES

9 Caso Especial

A partir da regra de não utilizar comandos que criam FRAMES


explícitas ou implícitas, alguns problemas foram detectados
com a descoberta de comandos que criam FRAMES implícitas.

48
Portabilidade de RCODES

Até o momento, foi constatado o problema nos comandos


CREATE SERVER e EXPORT.

Para solucionar o problema, é necessário identificar se


existe outra maneira para realizar a tarefa desejada. Caso
contrário, será necessário manter RCODES para cada
ambiente existente.

49
Portabilidade de RCODES

O comando EXPORT pode ser substituído por PUT ou


DISPLAY (utilizando a opção STREAM-IO).

Para o comando CREATE SERVER, será necessário manter


um RCODE por ambiente existente, isto é, um RCODE para
ambiente Windows e outro para ambiente Unix.

50
Customizações

Customizações

51
Customizações

9 Objetivo

Existem duas tecnologias criadas para facilitar as


customizações, visando padronizá-las e principalmente
facilitá-las, sem necessitar de conhecimento da Base de
Dados e seus relacionamentos.

52
Customizações

9 API - Application Program Interface.


9 UPC - User Program Call.

53
API - Application Program Interface

9 É um programa que recebe parâmetros e executa uma


determinada tarefa no Datasul EMS Framework.

9 Interface aberta para as funções de negócio do produto;

Aplicação
Específica
API

Datasul
EMS Framework

54
API - Application Program Interface

9 A partir da chamada de uma API e entrada dos devidos


parâmetros ou de dados para uma atualização, podem ocorrer
três situações:

1. A API pode fazer um acesso ao produto Datasul EMS


Framework e receber uma resposta que podem ser dados
lidos da base ou o resultado de alguma função. Este é
repassado para o programa chamador.

55
API - Application Program Interface

1. A API pode fazer uma extração de dados, gerando um gráfico,


um relatório ou uma consulta.

2. A API pode realizar uma função, por exemplo de eliminação de


dados e retornar. Se a execução foi correta, “OK” ou incorreta,
“NOK”.

56
API - Application Program Interface

OK / NOK
Entrada Saída
API

Acesso Extração
de dados
Datasul EMS

57
API - Application Program Interface

9 Vantagens

As APIs possuem parâmetros de entrada bem definidos e


processos que são executados de maneira correta sobre o
produto;

As APIs executam tarefas de acordo com o objetivo, os


usuários não precisam saber de que forma o processo é
executado, apenas que, sendo realizadas as entradas
corretas, a API executa o processo esperado de maneira
transparente;

58
API - Application Program Interface

As integrações entre módulos do produto Datasul EMS


Framework são realizadas através das APIs, portanto este,
é o caminho natural para que customizadores integrem
outras soluções com o produto;

A tecnologia empregada e as regras de negócio de uma API


podem evoluir, fazendo com que o cliente usufrua destes
benefícios sem a necessidade de reescrever seus
programas.

59
API - Application Program Interface

9 Exemplo:

run utp/utapi001.p (input table tt-atributos,


input table tt-points,
input table tt-sets,
input table tt-dados,
input table tt-ylabels,
output table tt-erros).

60
UPC - User Program Call

9 São chamadas a programas desenvolvidos pelo usuário, em


pontos pré-definidos do produto, possibilitando a sua
adaptação e integração com outras aplicações.

Aplicação
Específica

UPC API
Datasul
EMS framework

61
UPC - User Program Call

9 Objetivos

Possibilitar a customização e integração do produto Datasul


EMS pelos usuários, respectivamente, de uma forma
padronizada e controlada;

Possibilitar localizações do Datasul EMS que não devem ser


incorporadas ao produto standard pela própria Datasul;

62
UPC - User Program Call

Possibilitar ao usuário a administração de suas


customizações, identificando por intermédio do Datasul
EMS, quais programas e tabelas do produto possuem
customização;

Possibilitar a administração de integrações desenvolvidas


por usuários da Datasul sobre o produto Datasul EMS;

63
UPC - User Program Call

9 Customização: Clientes - Necessidades específicas e


especialistas:

User Program Call – UPC

9 Integração: Parceiros - Integrações com outros softwares:

Application Partner Program Call - APPC

64
UPC - User Program Call

9 Localização: Datasul S.A. - Adaptação do produto para um


país:

Datasul Program Call – DPC

65
UPC - User Program Call

9 Características

Pontos pré-definidos e inalteráveis;

Passagem padrão de parâmetros;

Parâmetros e pontos estão documentados;

UPCs são ligadas a programas e tabelas do datasul EMS


framework nos módulos Menu e Básico.

66
UPC - User Program Call

9 Viewer

67
UPC - User Program Call

9 Browser

68
UPC - User Program Call

9 Container

69
UPC - User Program Call

9 Exemplo:

Garantir a integridade de uma tabela extensão de clientes


de um sistema especialista de assistência técnica;

Manter campos desta tabela extensão no próprio programa


de Manutenção de Clientes do Datasul EMS framework;

70
UPC - User Program Call

71
UPC - User Program Call

9 Importante

Após cadastrada, a UPC será sempre executada;

O cadastro incorreto gera erro Progress;

Não retirar objetos de programas Datasul;

Cuidado com sobreposição de eventos padrão importantes


para o programa.

72
UPC - User Program Call

73
Obrigada

Obrigada!

universidade@datasul.com.br

http://universidade.datasul.com.br

Este material é de propriedade da DATASUL S.A., sendo proibida a sua reprodução em qualquer meio, total ou
parcial, sem aprovação por escrito. Todos os direitos estão reservados. A informação contida aqui é confidencial
e não pode ser utilizada fora da empresa ou das franquias que fazem parte da nossa rede, não podendo ser
divulgada para clientes, parceiros ou outra empresa ou indivíduo sem o prévio consentimento de um diretor da
DATASUL S.A. As opiniões expressas aqui estão sujeitas a modificação sem aviso prévio.

74