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.
Descritivo para audiência técnica.
Quando houver uma regra do lado do servidor que precise
processar o financeiro de um pedido da mesma forma que
ocorre pelo AICS, agora a sua rotina poderá executar a
seguinte função:.
Function GeraFinanceiroCOM(TabPedidos,TabPedprod,
NomePedidos:String):boolean.
Onde, TabPedidos é o cursor com o pedido, TabPedprod
com os itens, NomePedidos pode ser "pedidos" ou "pedos",
a rotina pode gerar financeiros do Comercial ou Assistência.
Basta atualizar o ServAICS para esse uso, não válida para o
Aics diretamente.
Nota para audiência técnica no Centro de Informações.
Arquivos CSV são arquivos com informações separadas por ";".
O próprio Excel aceita importar esse formato e o apresenta em
planilha facilmente. Entretanto, um arquivo CSV é, basicamente,
um arquivo texto formatado.
Existem algumas opções que podem gerar o arquivo separado por
vírgulas ",". Isto é, o usuário pode gerar o arquivo de diversas
formas. Desse problema é o que trata essa revisão da função.
Na primeira linha, é declarado como os dados são apresentados. Nas
demais linhas, são geradas as informações (os dados, propriamente
ditos).
Para facilitar a leitura de arquivos CSV, criamos uma função que
extrai a informação de acordo com o título. Por exemplo:.
Se o arquivo fosse:
Nome;Cidade;UF << 1 linha.
Joao;Sao Paulo;SP << 2 linha em diante com dados.
Criamos uma função com a sintaxe:.
Function ExtractCSV(Titulo, Linha, Coluna:String):String.
Nesse exemplo, o resultado da chamada abaixo seria "SP":.
Mostra(ExtractCSV('Nome;Cidade;UF','Joao;Sao Paulo;SP','UF'));.
Claro que todos os dados da chamada poderiam estar em
variáveis que viessem da leitura do arquivo CSV.
Nessa atualização, em função dos separadores presentes na
chamada do Titulo, será escolhido, já na prioridade
adequada: ";", em seguida "," e, por final, "|".
Isto é, o arquivo poderia ser:.
Nome,Cidade,UF << 1 linha.
Joao,Sao Paulo,SP << 2 linha em diante com dados.
Ou, ainda:.
Nome|Cidade|UF << 1 linha.
Joao|Sao Paulo|SP << 2 linha em diante com dados.
Basta atualizar o Aics e passar a utilizar a nova função em suas regras!
O AICS possui diversos filtros, opções negativas,
listas múltiplas etc. Nos filtros textuais, pode-se
usar "*" como coringa em qualquer posição do texto.
Nesta atualização, melhoramos o filtro textual em
diversos objetos. Agora, será possível filtrar
diversas opções no mesmo campo. Por exemplo,
se quiser uma lista de nomes que sejam João ou
Maria, bastará filtrar por: joao,maria.
A vírgula será traduzida por um OU inclusive
nas telas criadas nas regras de negócio locais.
Sem o uso da vírgula, nada se altera.
Basta atualizar o Aics.
Nota técnica para usuários avançados.
Sendo o AICS baseado em servidores SQL, a montagem
de comandos nessa sintaxe é muito comum, tanto pelo
Centro de Informações, quanto em comandos pontuais
pelo acesso ao servidor.
Nessa atualização do AICS, adicionamos um editor
sensível à sintaxe SQL. Com isso, o texto ficará mais
claro e será mais simples a criação de estruturas mais
complexas. Ainda, o editor conta com balanceamento
de parênteses, isto é, ele mostrará visualmente qual
é o fechamento ou abertura associados bastando
posicionar o cursor em um deles.
Esse recurso de balanceamento foi também adicionado
ao próprio Editor do AICS.
Nota técnica para usuários do AICS em desenvolvimento.
Nessa atualização, criamos uma nova função que irá
facilitar bastante a análise de dados formatados em JSON.
Por exemplo, ao efetuar uma requisição de um determinado
serviço web, a resposta pode estar formatada em JSON.
Para facilitar o trabalho de extração dos dados, a seguinte
função foi criada:.
function ObtemtagJSon(Tag,Texto:string):string.
"Tag" é o nome do campo desejado. Se esse campo for
um tipo complexo, como array ou um objeto, o retorno
será um novo "Json" que poderá ser trabalhado usando
a mesma função. Se for um array, cada linha do retorno
terá um respectivo conteúdo. Se desejar um respectivo
dado, o campo Tag aceita a indicação de índice do array.
Alguns exemplos de chamada:.
ObtemtagJSon('nome',TextoJSon): retorna campo nome;.
ObtemtagJSon('endereco[1]',TextoJSon): retorna primeiro
endereço, caso seja um campo tipo array;.
Como dica, se o texto estiver codificado em UTF8, antes
de aplicar essa função, é indicado decodificá-lo usando
a função UTF8Decode.
Basta atualizar o Aics para usar o novo recurso.
Nota para audiência técnica no Centro de Informações.
Arquivos CSV são arquivos com informações separadas por ";".
O próprio Excel aceita importar esse formato e o apresenta em
planilha facilmente. Entretanto, um arquivo CSV é, basicamente,
um arquivo texto formatado.
Na primeira linha, é declarado como os dados são apresentados. Nas
demais linhas, são geradas as informações (os dados, propriamente
ditos).
Para facilitar a leitura de arquivos CSV, criamos uma função que
extrai a informação de acordo com o título. Por exemplo:.
Se o arquivo fosse:
Nome;Cidade;UF << 1 linha.
Joao;Sao Paulo;SP << 2 linha em diante com dados.
Criamos uma função com a sintaxe:.
Function ExtractCSV(Titulo, Linha, Coluna:String):String.
Nesse exemplo, o resultado da chamada abaixo seria "SP":.
Mostra(ExtractCSV('Nome;Cidade;UF','Joao;Sao Paulo;SP','UF'));.
Claro que todos os dados da chamada poderiam estar em
variáveis que viessem da leitura do arquivo CSV.
Basta atualizar o Aics e passar a utilizar a nova função em suas regras!
Quando o módulo Web do Aics é executado a partir
de uma rotina feita em sua regra de negócios, a conexão
se mantém ativa até que o processamento termine.
Se o processamento envolver processos mais lentos,
por exemplo, envio de emails, essa espera poderia ser
eliminada liberando o cliente Web e continuando o
processamento lento após isso.
Para alcançar esse objetivo, criamos a função CloseWeb,
basicamente, essa função termina a conexão no mesmo
momento e libera o cliente Web. Após isso, outros
processamentos podem ser feitos sem a necessidade
de espera.
Como aplicação prática, a abertura de chamados pelo
Aics foi alterada liberando o cliente Web (o Aics, nesse
exemplo) e enviando as mensagens após isso. O resultado
é uma abertura de chamados muito mais rápida.
Essa nota destina-se a um público mais técnico.
No processamento de eventos associados aos emails,
pode ser necessário obter o texto da mensagem.
Infelizmente, essa tarefa não é tão simples na maioria
das vezes. Uma mensagem pode estar codificada em
diversos formatos, alguns totalmente ininteligíveis
se lidos diretamente.
Como o Correio do Aics faz essa decodificação interna,
fizemos uma publicação da rotina de decodificação
para esse objetivo.
A sintaxe ficou:.
Function ParserEmailMessage(MessageStr: String):String.
A mensagem de entrada é a íntegra que fica gravada no
banco de dados. Essa função pode ser utilizada para
extrair o texto de outras fontes da mesma forma.
Um exemplo de uso dessa função seria criar novos
processamentos para as mensagens enviadas no
evento após gravar de MAILMESSAGES, tais
como, alertas, troca de responsável, apontamentos
automáticos, emails associados ou alertas automáticos.
Nota para desenvolvedores sobre o AICS.
O evento Entrar das telas agora precisa retornar
sempre verdadeiro (true). Na atualização mais recente,
se esse evento retornar falso, a tela não abrirá.
O serviço SendMailAICS foi atualizado com novos
recursos de encaminhamento de mensagens.
Esse módulo permite programar envio de mensagens
e baixar mensagens para o Correio Eletrônico do AICS.
Nessa atualização, o módulo passa a utilizar os mesmos
certificados SSL do ServAICS, isto é, o módulo
poderá efetuar envio de mensagens utilizando níveis
de segurança elevados.
Para maiores informações, basta entrar em contato com
nosso suporte.