Além de oferecer 100% de ferramentas e serviços personalizados, nossa equipe tem o foco na alavancagem do seu negócio, informando e auxiliando sua expansão.
Uma interessante adição ao ServAICS é o novo formulário
de login (acesso ao sistema pelo mesmo esquema de login
e senha do AICS) sem o trânsito da senha pela Internet ou
Intranet.
Isto é, mesmo em comunicações não SSL, a senha não será
transmitida pelo canal de comunicação. Ao contrário, será
cifrada no navegador e comparada pelo mesmo cálculo de
codificação no servidor. Ambos os modos são ainda válidos,
porém, como padrão, o ServAICS irá gerar telas automáticas
de login e senha com o novo processo de validação.
É muito mais segurança nas suas autenticações e políticas de
segurança de sistema!
Esta alteração visa adequar o cliente do Aics em modo AicsT para
acessar a base de dados PostgreSQL em qualquer codificação do
lado do servidor.
No INI do AICS, após o nome do banco de dados, indique a
codificação separando-a por ":". Por exemplo, num INI fictício:
WZM1ZVABZWZM1ZRDB...
1R18C37TK8Z1V4E2RIQU...
aics
Postgres
192.168.0.1
aics
Para alterar o Client Encoding, ele ficaria:
WZM1ZVABZWZM1ZRDB...
1R18C37TK8Z1V4E2RIQU...
aics
Postgres
192.168.0.1
aics:LATIN1
No exemplo acima, usamos LATIN1, poderia ser WIN1252, por exemplo,
ou outra compatível. Importante citar que o AicsT passa a sugerir, internamente,
LATIN1. Se ocorrer problema com conexão, altere este parâmetro seguindo
a configuração do servidor ou de uma compatível.
A generalização do processador de DFMs adicionou uma restrição
aos nomes dos objetos quando estes forem objetos de formulário,
como previsto anteriormente.
Logo, os nomes devem começar com "TForm" para serem entendidos
como objetos de formulários. Qualquer outra nomenclatura irá seguir
a nova regra que permite criar quaisquer outros objetos em qualquer
posição das telas nativas ou do usuário.
O módulo de Projetos utiliza as informações de diversos
outros módulos para alimentá-lo e permitir consistências.
Por exemplo, o cadastro de funcionários é utilizado,
juntamente com a análise de custos da Análise de
Rentabilidade, como fonte dos Recursos Humanos que
podem ser alocados às fases.
As máquinas cadastradas na Análise de Rentabilidade,
além de serem fontes para cálculos de Depreciação e
Ativo fixo, são alocadas aos projetos pela pesquisa
de Máquinas e Equipamentos.
Entretanto, para deixar o módulo de Projetos mais
autônomo, criamos uma tabela de Padrões para
Projetos que deve ser cadastrada no Centro de
Informações (o AICS irá carregar todas os seus atributos
automaticamente) e preenchida de acordo com o tipo
de recurso cadastrado. No Controle de Projetos, as
pesquisas irão utilizar os recursos cadastrados nesta
tabela apenas para os casos existentes.
Por exemplo, se houver máquinas cadastradas, será
sobre esta tabela e não sobre a tabela de Ativos da
Análise de Rentabilidade que será feita a associação.
Idem para Recursos Humanos. Para a opção Custos
Adicionais e Serviços, ela é utilizada diretamente,
visto que esta entrada de dados era livre totalmente.
Um valor agregado interessante com esta parametrização
é uma ligação destes Recursos para Projetos com o
Cadastro Geral. Isto é, poderemos cadastrar Serviços,
pessoas e máquinas, definindo custos e os fornecedores
destes recursos.
Fácil analisar que será possível criar controles diretos
sobre estas ligações tanto em relatórios quanto em
processamentos ligados a isso.
O módulo de Projetos do AICS permite configurar os
sequenciamentos das fases de um projeto incluindo
suas dpendências. Um modo visual disso ser feito é
pelo diagrama PERT. Tanto o diagrama PERT quanto
o Gráfico de Gantt são também resultados desta
análise.
Estes dois diagramas podem ser longos e não serem
suportados quando impressos em folhas pequenas.
Nesta atualização do módulo de Projetos, a impressão
dos diagramas irá seguir o deslocamento do Scroll na
tela. Isto é, o usuário poderá definir o "zero" da
impressão do diagrama e imprimir exatamente o que
precisa e que seja compatível com a página.
Caso a saída da impressora suporte formatos maiores,
basta editar o relatório e seguir as mesmas instruções.
O local de entrega no módulo de compras permitia
definir apenas um único local. Em contrapartida, as
programações de entrega permitiam especifica quantidades
e datas diferentes. Portanto, foi natural o desdobramento
do local de entrega também para a aba de programações.
Este recurso adicional é facultativo, como é o próprio
uso das Programações de Compras.
Apresentamos um roteiro completo de processos auxiliados visando migração de dados
e facilitando enormemente os trabalhos de personalização do BF AICS. Aplique estas
informações em projetos atuais ou em novos, sem distinção.
Por que migrar?
O BF AICS permite uma transparência muito maior nos projetos empresariais. Tudo
que é desenvolvido sobre ele é automaticamente documentado e aberto. É como se as
regras fossem sempre em Código Aberto.
Como um fator adicional, os desenvolvimentos sobre o sistema poderão usufruir do
ganho de serem praticamente independentes do Banco de dados e da interface de dados.
O BF AICS expõe uma classe de objetos única que é traduzida em objetos de dados
ADO, DBExpress ou a classes de acesso direto aos Bancos de Dados. Por isso mesmo,
os desenvolvimentos tendem a ser com produtos mais rápidos e mais maleáveis.
O núcleo padrão do BF AICS possui diversos módulos com regras padronizadas que
permitem não sair da estaca zero. Isso garante robustez e velocidade de convergência
na solução. O Centro de Informações permite cadastramento de estruturas que geram
as estruturas de dados no servidor de dados, telas de manipulação e edição, pesquisas,
relacionamentos com outras estruturas, controle de direitos, descrições em 3 idiomas,
relatórios padronizadas e personalizados além de análises gráficas.
Elementos da Aplicação
Uma aplicação que será migrada é composta de bases de informação, interfaces com
o usuário (telas, relatórios, consultas etc) e regras de negócios. Cada um destes itens
pode ser migrado de forma independente.
Bases
Será importante que as tabelas estejam já inseridas na base de dados. Para fazer isso,
utilize qualquer opção disponível. Como exemplo, exporte os dados originais em
formato DBF ou DB (do Paradox). Instale na estação que irá efetuar a importação,
o BDE (Borland Database Engine) – que pode ser baixado de:
http://shop.aics.com.Br/ftp/BdeInstall.zip
No AICS, acesse o menu Atualizar/Manipular dados do Servidor e ative a aba
Migração de bases.
Clique no botão Selecionar as bases que serão migradas e selecione até mais do
que uma tabela ao mesmo tempo. Ao clicar em Transferir dados para a Base Atual,
o AICS irá criar tabelas com a mesma estrutura e copiar todos os dados para o
banco SQL ativo.
Após a cópia, poderemos registrar a tabela no Centro de Informações. Clique na
raiz, selecione o botão Novo e digite uma a uma os nomes das tabelas importadas.
Especifique seus dados mínimos, como descrições e colunas chaves. Ao gravar, o
AICS irá reconhecer que a tabela existe e cadastrará todas as colunas, já com seus
tipos corretos, no Centro de Informações.
Se a tabela que foi importada não possuir chave de controle, você pode criar uma
nova coluna, marcá-la como chave de controle e, ao gravar, o AICS irá perguntar
se deseja preenchê-la (iniciá-la com valores seriais).
Se a tabela importada precisar ser específica por local, basta criar uma coluna
NETCOD, gravar confirmando para ser preenchida e marcar que a informação
é dependente de locais para que cada local tenha sua seqüência independente.
Interfaces
A montagem das interfaces pode compreender:
· Expansão de novas colunas em estruturas existentes no AICS
· Criação de novas telas com controles por grid ou por componentes
de entrada dispostos em abas
· Definição de tabelas mestre-detalhe, de configuração e abas de análises
Em muitos casos, o cadastramento das colunas no Centro de Informações já é
suficiente para uma interface pronta para uso. Para que uma tela migrada tenha
a mesma seqüência, nomenclatura e dimensões de telas montadas externamente,
o AICS possui um novo recurso que é a leitura e cadastramento de propriedades
de DFMs. DFMs são arquivos descritores de objetos (normalmente, forms)
compatíveis com ferramentas de programação da Borland. Um DFM pode ser
obtido de:
· Fontes do programa que está sendo migrado
· Extrator de DFMs (muitas vezes exageradamente chamados de
decompiladores) que monta os objetos a partir do EXE que será migrado
· Ferramentas que geram DFMs em geral
Pois bem, tendo um DFM, após já ter a estrutura cadastrada no Centro de
Informações, clique com o botão direito do mouse na estrutura cadastrada e
selecione Auto cadastramento por DFM externo.
Importante destacar que esta rotina não é 100% correta, ela pode não encontrar
os objetos de descrição corretos. Logo, revise-os após a importação para perfeita
importação. Entretanto, as abas, dimensões de tela e ordem são importadas com
alta fidelidade. Outro destaque importante é que o DFM deverá estar EM MODO
TEXTO. Para que um DFM esteja em modo texto, por exemplo no Delphi,
clique com o direito no form desejado e ative Text DFM.
Uma outra opção muito interessante é a importação direta do DFM. Este recurso
foi expandido nas versões 2009 do AICS incluindo um processador mais inteligente
e ferramentas de declaração automáticas.
Vamos exemplificar no caso acima. Após importar uma tabela nova, vamos criar
uma tela que seja o espelho de uma original. Para isso, por exemplo, num evento
de botão do cadastro (poderia ser em qualquer outra tabela ou mesmo no evento
Entrar da própria tabela importada), crie um discriminador de DFM na
forma de TAG:
Begin
Agora, abaixo do end; sem apagar o que estava no clipboard, clique com o botão
direito e selecione Colar variáveis do DFM.
Esta opção irá declarar todos os objetos presentes no trecho de objetos que foram
colados acima. O novo processador de DFMs do AICS irá ignorar muitas declarações
não suportadas ou redundantes (por exemplo, atributos que sejam nativos dos objetos).
Entretanto, o grande ganho deste tipo de migração é a facilidade de manipulação.
Nada impede, por exemplo, que o trecho do DFM seja copiado do AICS e colado
num Delphi (mesmo antigo), manipulado visualmente ou alterado, e retorne ao AICS
seguindo o procedimento acima.
Relatórios
Os objetos de relatório podem agora ser migrados nativamente e usufruir das
ferramentas de edição do AICS. Para isso, ao invés de executar o comando de preview
do objeto de relatório TquickRep, utilize a função específica para isso:
Procedure PreviewReport(Rep:TQuickRep;Destino:integer;Titulo:String)
Onde, Rep é o objeto que foi criado no DFM, Destino segue a regra do AICS (1,
vídeo, 2 – impressora etc) e Titulo é o título do relatório para o nome da janela aberta.
Regras
As regras devem ser migradas baseando-se no controle de eventos do AICS ou dos
próprios objetos importados. A única adaptação da sintaxe é na declaração de eventos.
Quando os eventos forem associados a rotinas, deve-se precedê-los de @, por
exemplo:
OnClick = @BotProcuraClick
E a declaração do evento deve utilizar objetos nativos, assim:
Procedure BotProcuraClick(Sender: DelphiTObject);
A emissão de relatórios pelo AICS tem as seguintes fases:
* Seleção do relatório desejado
* Filtragem dos dados
* Decisão do destino (tela, impressora etc)
* Seleção do Layout
* Processamento
Após a Etapa 3, não havia como o mesmo ser cancelado antes de
iniciar o processamento. Por exemplo, relatórios que fossem enviados
inadvertidamente para a impressora após a decisão do destino, teriam
que ser cancelados no Gerenciador de Impressão.
Para evitar esta situação (rara, porém possível), adicionamos uma
opção de cancelamento na seleção do layout. Importante destacar
que, caso não exista mais do 1 layout, esta fase de cancelamento
não existirá, indo direto ao layout padrão do sistema.
Os cancelamentos anteriores foram todos mantidos.
A versão mais recente do AICS possui um alerta tipo "popup" (semelhante
ao MSN, por exemplo) que avisa a quantidade de novas mensagens já baixadas
pelo servidor. Entretanto, o recurso ficou tão útil que os usuários pediram que
a função fosse publicada.
Agora, em suas rotinas, será possível apresentar alertas MUITO mais amigáveis
e sem interromper o fluxo de trabalho do usuário, o que dá ganhos de produtividade.
A sintaxe é:
Procedure DoPopup(Title,Message:String;Height,Width,TimeInMS:integer)
Onde,
* Title -> Título do Popup
* Message -> Mensagem que deve ser exibida
* Height -> Altura da janela do popup
* Width -> largura da janela
* TimeInMS -> Tempo de visibilidade em ms (1000 = 1 segundo)
Na versão mais recente do Correio Eletrônico do AICS, basta clicar com o botão
direito na lista de pastas e selecionar "Nova pasta" para organizar melhor suas
mensagens.
Também é possível selecionar N mensagens e arrastar sobre as novas pastas ou
sobre as anterioes.