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.
Considere esta nota como avançada.
Os serviços Web operam baseados em portas de entrada, sendo a porta 80
a padrão para serviços www. O ServAICS, por exemplo, pode operar na porta
80, assim como outros servidores Web mais simples, como o IIS e o Apache,
também podem.
Entretanto, pode ocorrer a necessidade de um determinado servidor necessitar
rodar mais do que um serviço web ao mesmo tempo. Nestes casos, o uso mais
comum é associar um deles a um port não padrão e chamar, pelos navegadores,
usando o "dois pontos port". Por exemplo, www.meusite.com:8080.
No servidor Web do Aics, podemos configurar as pastas virtuais para cada
domínio de entrada. O Serviço do Aics irá servir os arquivos e ações sobre
esta pasta.
Nesta atualização do sistema, criamos um "roteamento de domínios". Funciona
assim: ao invés de indicar a pasta local dos arquivos do domínio, deve-se
indicar o IP e port do servidor e serviço que irão trabalhar com o determinado
domínio. Por exemplo:
Poderíamos configurar o IIS no port 8080 e o Apache no port 8088. Em seguida,
deixaríamos a entrada pelo port 80 no serviço do AICS. No configurador de
sites, configuríamos:
Site para o Apache: www.siteapache.com.br em 127.0.0.1:8088
Site para o IIS: www.siteiis.com.br em 127.0.0.1:8080
Com isso, de fora do servidor, qualquer usuário faria acesso direto aos sites
www.siteapache.com.br e www.siteiis.com.br sem saber e nem se preocupar
como isso está sendo processado. Além de poder ter sites associados diretamente
ao servidor web do Aics com o máximo poder de manipulação e velocidade
que ele dispõe.
Este roteamento foi feito com o máximo cuidado e não deve gerar nenhum
tipo de perda de performance de acesso ao serviço direto. Nenhuma tradução
foi feita dos comandos, logo, é total e transparente a passagem de dados entre
os clientes web e os serviços nativos.
Nota técnica avançada.
Com esta função, será possível preparar dados para envio por
meio eletrônico, armazenagem com posterior aplicação e o que
mais a realidade necessitar.
Sintaxe:
function CursorToTags(CursorName:string):String
Onde, CursorName é o nome do cursor que deve ser exportado
O resultado será o conteúdo formatado como tags XML ou HTML.
O AICS possui módulos bem poderosos para manipulação de
informações e texto. Estes módulos processam tanto visualmente
quanto graficamente, estas informações. Em janeiro de 2009, entrou
em vigor a nova ortografia e o custo para se adequar a ela pode
ser grande em função dos volumes de textos já existentes.
A internet, por exemplo, é dinâmica e o conceito de textos antigos
e textos novos é relativa.
Para facilitar este trabalho, tanto em textos atuais quanto em novos,
a BF desenvolveu uma rotina que converte palavras para a nova
ortografia. Inicialmente, a rotina está disponível apenas para ser
aplicada por script. Sua sintaxe é:
Function ParaOrtog2009(Entrada:String):String
Esta rotina analisa trema, ditongos, hiato e todos os inúmeros
casos de aplicação ou não do hífen.
Esta nota é voltada a desenvolvedores de ambientes em internet.
O servidor Web do AICS possui a característica de oferecer controles
automáticos aos usuários sem a necessidade de conhecimento e nem
mesmo de manipulação de códigos HTM.
Um dos recursos interessantes que já existia no servidor era o controle
de edições de dados utilizando "javascript injection". Eram algumas
rotinas chaves que foram criadas permitindo estes controles automáticos.
Entretanto, quando um desenvolvimento precisa-se de rotinas mais
avançadas, estas do AICS ou eram ignoradas ou eram utilizadas de
modo redundante.
Por isso, integramos as rotinas do JQuery ao servidor web do AICS
na ação associada aos controles de DIVs. A chamada a:
Irá incluir as rotinas do JQuery versão 1.3 automaticamente! Sem
redundâncias e oferecendo o mesmo poder com a vantagem de ser
um código integrado!
O novo recurso de validação de senhas sem transitar as senhas
pelo canal de comunicação (válido para servidor web do Aics)
gerou uma alteração no modo de validação. As senhas passam
a ser sensíveis a maiúsculas e minúsculas. Isso para qualquer
servidor de dados.
Esta característica ocorria apenas nos servidores que tinham
a característica de serem "case-sensitive".
Esta nota pode ser considerada puramente técnica por alguns
usuários do sistema. Além disso, é importante para usuários
que utilizem scripts em rotinas "web".
Quando ocorre um post sobre o serviço web, dependendo da
ação, os parâmetros já são transferidos para a tabela indicada.
Por exemplo, uma ação "tabsave" transfere os dados para a
tabela indicada no parâmetro "tab".
Entretanto, se a rotina precisar transferir os parâmetros para
outros comandos SQL (indo desde comandos de seleção a de
atualização), isso teria que ser feito linha a linha.
Visando ganhar tempo e velocidade, publicamos uma função
que irá passar os parâmetros do formulário para um cursor
qualquer, sua declaração é:
Procedure SetContentFromWebFields(NomeCursor:String)
Onde NomeCursor é o nome que foi dado numa declaração
de comando do tipo TablePrepareSql. Após este comando,
você ainda poderá manipular livremente os atributos antes
de enviá-lo ao servidor.
O módulo RCC do AICS possui um sistema de fluxo de trabalho
(workflow) baseado em Pendências e Atividades. Uma Atividade
pode gerar N pendências. Estas pendências podem ser atendidas
por outras N atividades que podem gerar mais pendências etc.
Em muitas aplicações do sistema, estamos iniciando os processos
em "Pendências" e não em Atividades. Nestes casos, o código
inicial da Atividade fica zerado indicando que é uma pendência
sem registro do fato gerador.
Este caso ocorre, atualmente, em pendências automáticas ou
geradas por sistemas de atendimento automático. Para manter
a rastreabilidade do atendimento e sequenciação, nas Atividades,
adicionamos o número da pendência que está sendo atendida.
Este número é associado automaticamente quando, na tela de
pendências, clica-se com o botão direito e pede-se "Apontar...".
A nova coluna criada em APONTAM (PD_ITEMORG) pode
ser associada também pelas suas rotinas desenvolvidas internamente
visando obter a mesma rastreabilidade.
Esta nota pode ser considerada técnica para alguns usuários.
O servidor Web do AICS permite armazenar variáveis do tipo
texto nas sessões do usuário. Estas variáveis desaparecem quando
as telas dos navegadores são fechadas ou se o servidor web for
reiniciado.
Quando houver necessidade de registrar informações no cliente
permanentemente ou que não desapareçam com o fechamento
das janelas, a Byte Factory publicou 2 funções de aplicação simples:
Procedure SetCookie(Nome,Valor:String;Validade:TDateTime)
Function GetCookie(Nome:String):String
São funções praticamente autoexplicativas de acordo com seus
parâmetros. Importante destacar que elas NÃO FUNCIONAM
em modo AICS, apenas em Scripts feitos em funções Web.
Portanto, utilizem diretivas {$ifdef webaics} para garantir que
estas rotinas não gerem problemas em rotinas compartilhadas.
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.