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.
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)
O módulo Editorial do AICS e o Editor de Textos interno já efetuavam a exportação
utilizando estas rotinas. Agora, o usuário poderá criar funções e regras também com
estes objetivos.
As declarações são:
function RtfToXtg(Origem, // texto em RTF original
Permissoes, // variações permitidas
TagGeral, // tag que será aplicado a todo o texto
TagPriPar, // tag específico para o 1o parágrafo
Fonte1alet, // fonte específica para 1a letra do parágrafo
EstPriLet, // estilo da primeira letra (BI)
PercPriLet, // percentual de cinza da 1a letra
CorPriLet // possível cor da primeira letra
:string;
ComHeader, // se insere a cabeça do arquivo xtg ou não
ParaPreview // indica que o txt precisa de estilos visando preview no editorial
:boolean):string
function RtfToInd(Origem, // texto em RTF original
Permissoes, // variações permitidas
TagGeral, // tag que seerá aplicado a todo o texto
TagPriPar, // tag específico para o 1o parágrafo
Fonte1alet, // fonte específica para 1a letra do parágrafo
EstPriLet, // estilo da primeira letra (BI)
PercPriLet, // percentual de cinza da 1a letra
CorPriLet // possível cor da primeira letra
:string;
ComHeader, // se insere a cabeça do arquivo Ind ou não
ParaPreview // indica que o txt precisa de estilos visando preview no editorial
:boolean):string;
É claro que o resultado pode ser gravado em arquivo com, por exemplo, a função
StrToFile.
O AICS opera unicamente em bases SQL. Para isso, todos os acessos a dados
necessitam de configurações, ao menos, ao servidor principal. Este servidor
principal pode ser bem variado, como SQL Server, Oracle, MaxDB, DB2 ou
PostgreSQL.
No início das instalações do AICS, foi criada uma ferramenta que migrava
tabelas não em SQL para o formato SQL visando transferência sem perda de
informações para a nova plataforma. Esta ferramenta, pela não mais existência
de migrações de sistemas antigos da BF para o AICS, ficou desatualizada.
Entretanto, ela ainda é muito flexível e, atualmente, o seu uso visa transferir
dados de outros sistemas que tenham seus módulos migrados ao AICS.
A rotina de migração passa a ser também multi-servidor. Os passos para
migração de qualquer origem para o banco SQL no qual o AICS está
instalado passa a ser:
1. Exportar os dados da origem em DBF ou em DB do Paradox
2. Certifique-se de que o BDE esteja instalado nesta estação de migração
3. Acesso Atualizar/Manipular dados do servidor pelo menu Propriedades
4. Ative a aba Migração de bases
5. Localize as tabelas origens (pode ser mais do que uma ao mesmo tempo)
6. Clique em Transferir os dados para a base atual
Após a migração, as novas bases podem ser registradas no Centro de
Informações, suas colunas nomeadas, chave identificada e outros recursos
inerentes ao módulo e tudo sem perda dos dados originais!
A rotina interna de conversão de moedas do AICS foi alterada. Agora,
se não houver cotação preenchida na tabela, o valor retornado será o
mesmo. Isto é, se a tabela de conversão estiver vazia para a data
especificada, a conversão não será feita, entretanto, o retorno será do
mesmo valor da chamada e não mais zero como estava anteriormente.
Sobre este mesmo assunto, existe um pacote recentemente atualizado
que carrega as cotações das moedas online pelo site do Banco Central.
Com este carregamento, esta rotina não precisaria desta alteração.
A situação de uso desta rotina é quando existe uma consistência
na tela ativa que desabilita o botão de Gravar. Isto pode ocorrer
em telas nativas ou telas criadas pelo usuário.
Ao final do teste de permissões, se a permissão for negada, o
AICS irá chamar a seguinte rotina (declare-a apenas nas tabelas
nas quais esta situação, que é rara, ocorra):
Function AICS_ForceSave(TableName:String):boolean
Sendo que a função é chamada com o nome da tabela sendo
analisada, devido a situações nas quais uma mesma tela comanda
mais do que uma tabela.
A função que formata os textos como nome, existente tanto nas opções
de colunas do Centro de Informações, quanto pela própria chamada
por Script (FormatName) foi alterada para contemplar melhor as
siglas e abreviaturas.
Agora, por exemplo, o texto "I.B.M. BRASIL" será convertido para
"I.B.M. Brasil". Disponível em todas as versões do AICS.
Sintoma encontrado: o conteúdo de colunas marcadas como RTF ficava
limpo sem uma razão específica. Este problema foi reproduzido com
clareza e ocorria quando uma sequência de editar e inserir (sem passar
pelo passo de gravação) ocorria.
Todas as versões do Aics foram atualizadas. Este problema é importante,
por exemplo, no uso da tabela de Conteúdos Multimídia.
Editando pela internet, este problema não ocorria.
Certas operações nas tabelas e telas do AICS podem requerer deixar campos
visíveis e invisíveis ou habilitados e desabilitados. Quando as telas são criadas
dinamicamente, a regra de localização dos objetos pode ser confusa para alguns
usuários.
Adicionamos um identificador no Centro de Informações para cada coluna. Na
aba Definição da Informação, opção ID do obj. Este é um campo texto que poderá
ser ativados, por enquanto, nas rotinas SetVisible e SetEnabled.
Portanto, estas funções foram ampliadas e seguem a seguinte regra: se for chamada
com um nome de objeto existente, opera como anteriormente. Senão, irá varrer
os objetos cujo ID seja o identificado, operando em todos os objetos ao mesmo
tempo.
Logo, este novo recurso melhora bastante a performance desta função quando
aplicada a N elementos ao mesmo tempo. Ainda, tira do código a necessidade de
listar N objetos passando a seguirem um parâmetro tipo texto que pode ser
facilmente editado pelos Supervisores.
Todas as ferramentas do AICS permitem exportação de dados dos bancos em
formato XLS rapidamente. Esta exportação existe nos grids do sistema, relatórios,
cursores pelo Centro de Informações e mesmo dinamicamente pelo servidor Web.
O componente de exportação não estava considerando o tipo de dados MEMO,
isto é, quando os cursores mostravam em seu resultado dados em formato texto,
o resultado final não era o esperado.
Isso não ocorria quando, mesmo com tipo de dados MEMO, os comandos de
seleção utilizassem resultados tipo string convencionais.
Esta correção, que é de um componente interno do AICS, foi feita nas seguintes
versões e módulos (já disponíveis no FTP em formatos ZIP):
Aics.exe - Para bases MS-SQL, Oracle e MaxDB
AicsX.exe - MaxDB e DB2
ServAics.exe - Servidor Web em ADO
ServAicsX.exe - Servidor Web em DbExpress
Existem diversos serviços pagos que permitem, dado um endereço de IP,
obter-se o país ao qual ele se refere. Esta base de dados é dinâmica e, por isso,
normalmente é um serviço remunerado.
A Byte Factory criou a função GeoIP com a sintaxe:
Function GeoIP(IP:String):String;
Que irá retornar a sigla do país da IP informado. Por exemplo, para o Brasil,
a sigla será BRA. Esta função localizará na base de dados local pela tabela
GEOIP ou, caso ela não exista, a função irá contactar o servidor corporativo
da Byte Factory para retornar a sigla correta. Este processo de obtenção do IP
pelo servidor da Byte Factory ou pela base local é transparente, entretanto,
ter a base do GEOIP localmente, é claro, é muito mais veloz.
A Byte Factory também desenvolveu um importador automático da base
GEOIP, de domínio público, para que esteja sempre atualizada. Esta
atualização pode ser feita pelo próprio servidor sem interfarência de nenhum
operador. Caso necessite desta solução, solicite à Byte Factory.