POR QUE ESCOLHER A BYTE FACTORY?

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.

CONTATO
  • End.: Av. Jose de Souza Campos, Nº 1.815, cj 1.202
    Campinas-SP CEP 13025-320
  • Tel: +55 19 3795-4460 / 4461 / 4462 / 4463
  • Email: atendimento@bf.net.br

Função que facilita tratar arquivos CSV expandida

17/07/2018 em Centro de Informações

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!

Maior facilidade em filtrar dados

23/05/2019 em Centro de Informações

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.

Editor com sintaxe destacada adicionado

10/04/2019 em Centro de Informações

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.

Nova função para trabalhar com JSON

08/01/2019 em Centro de Informações

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.

Nova função facilita tratar arquivos CSV

17/07/2018 em Centro de Informações

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!

Liberando o cliente web rapidamente

21/03/2018 em Centro de Informações

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.

Processando emails (avançado)

01/09/2017 em Centro de Informações

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.

Retorno do Evento Entrar funcional

31/01/2017 em Centro de Informações

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á.

Serviço de envio de emails atualizado

31/08/2016 em Centro de Informações

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.

Função de formatação de telefones publicada

21/10/2015 em Centro de Informações

O novo recurso de formatação automática de telefones, tanto para o banco quanto para pesquisas, pode ser aplicado também em suas regras locais.
Para isso, utilize a função com a seguinte sintaxe:
function FormatPhone(Telefone: String): String Portanto, se precisar processar alguma informação e manter o padrão de formatação em banco, basta utilizar essa nova função.
As versões do AICS e do ServAICS já foram publicados com esse novo recurso.