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

Revisão da rotina de obtenção de coordenadas GPS pelo endereço

07/09/2020 em Centro de Informações

As coordenadas GPS estão presentes nos cadastros de empresas, pessoas e locais.
Além disso, pelas rotinas e eventos no Centro de Informações, você pode obter uma coordenada GPS de um endereço pela função:.
AddressToGPS(Logradouro, Endereco, Num, Cidade, Estado, Pais: String): String.
Nessa atualização do Aics, essa rotina foi revisada e atualizada. Diversos ajustes a suas chamadas foram feitos visando melhorar a conversão.
Como ela é usada nas telas e pela rotina em sua regra de negócios, basta atualizar o Aics e o ServAICS para melhorar sua precisão.
Obs.: Essa rotina não usa os serviços do Google e não gera nenhum risco de rastreamento pelos seus serviços.

Obtendo o SQL definido pelo usuário função TableSQL

24/08/2020 em Centro de Informações

Nota para audiência técnica.
A função TableSQL retorna o comando SQL definido no cursor informado. Nessa atualização, se o nome informado não for de um cursor do ambiente, porém, for de uma Vista definida no Centro de Informações, essa função já irá retornar o comando SQL pronto para uso.
Com isso, será possível criar regras nas quais o detalhe de implementação fique no banco de dados, sem a necessidade de alterar sua rotina a cada mudança (que seja possível na expressão SQL, é claro).
Basta atualizar o Aics.

Função para envio ao financeiro em suas regras

30/07/2020 em Centro de Informações

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.

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.