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.: Rua Oriente Nº 55, cj 1310
    Campinas-SP CEP 13090-740
  • Tel: +55 19 3251-8496
  • Email: atendimento@bf.net.br

Função de conversão de data aceitando texto livre

28/10/2023 em CENTRO DE INFORMAÇÕES

Essa nota é direcionada à audiência técnica.
Na conversão de string para data, a função ctod é bem genérica, aceitando diversos formatos de datas e retornando a quantidade de dias.
Nessa atualização, visando facilitar as regras de interpretação textual pelos bots de atendimento, a função passa a converter datas textuais visando processamento de idades ou intervalos de tempo.
O conceito é o mesmo, cada unidade do retorno se refere a 1 dia. Portanto, os seguintes casos passam a serem aceitos: ano, mês e dia. Como ilustração, 1 ano irá retornar 365. 1 ano e meio, 545 (365 dias mais 180). 3 meses, 90 e assim por diante.
Como o retorno é em dias, caso precise da informação para analisar "anos", basta dividir o resultado por 365.
Função disponível no Aics e nos serviços associados.

Nova função callback para regras em movimentações

07/11/2022 em CENTRO DE INFORMAÇÕES

Atenção, nota para audiência técnica.
Quando é necessária uma regra sobre os movimentos, bastava inserir no evento gravar ou após gravar da tabela de movimentos de materiais (estensai). Entretanto, quando existe a necessidade de uma regra que atue sobre todos os desdobramentos de uma movimentação, nenhum desses eventos satisfaz essa necessidade.
A fim de permitir regras que contemplem todos os descobramentos de uma movimentação (podendo incluir lotes, seriais, logs etc), criamos uma rotina callback que ocorre após todos os dados já finalizados (item a item).
A sintaxe ficou:.
Function AICS_AfterMovEstok(Netcode,Cod_Res,Numero,Tipo:String):boolean.
Todos os parâmetros seguem a mesma nomenclatura das colunas da tabela Estensai.
Se houver alguma rotina que caia nessa situação, ela deve ser movida do evento gravar ou após gravar para essa nova função. Sua declaração pode ser feita em Estensai e/ou no Estoque, dependendo da visibilidade do objeto que disparou o evento. Ou, se quiser ser mais genérico, pode ser incluída no Global-Entrar.
Basta atualizar o Aics antes da implementação.

Procedimentos armazenados alterados no lado do servidor

01/04/2022 em CENTRO DE INFORMAÇÕES

Nota para audiência técnica e desenvolvedores.
No Aics, existem os procedimentos armazenados, eles ficam abaixo da tabela virtual STORED. Para executar esses procedimentos, usam-se chamadas à rotina ExecStored.
Os eventos do lado do servidor, que são colocados em System no evento periódico 1 seg, agora podem chamar o mesmo stored do lado do cliente. O objetivo disso é uniformizar os robôs existentes.
Essa alteração é pontual, no caso desses rotinas abaixo da tabela virtual STORED, mesmo no lado do servidor, o código que será executado é o do lado do cliente.
As diretivas para saber em que ambiente você está são válidas normalmente (por exemplo, "webaics").
Com essa uniformização, evita-se replicar códigos praticamente iguais no lado do cliente e servidor.
Basta atualizar o ServAICS. Não há mudanças para o Aics nessa nota técnica.

Novo recurso de envio de novos campos a diversas páginas

23/08/2021 em CENTRO DE INFORMAÇÕES

Quando novas colunas são criadas em tabelas internas do AICS, elas estavam sendo instaladas na aba Outros de cada módulo associado.
Nessa atualização do Aics, essa opção ficou mais flexível.
Agora, mesmo em tabelas e telas nativas, ao criar novas colunas, você poderá informar em qual aba deseja que ela seja instalada.
Se a aba não for informada, ficará instalada como originalmente era, na aba Outros.
Se for informada uma aba já existente, as novas colunas serão instaladas do final dos elementos nativos para baixo.
Se for informada uma aba não existente, novas abas poderão ser criadas para receber os novos objetos.
Basta atualizar o Aics.

Nova função para automatizar ainda mais os relatórios

09/06/2021 em CENTRO DE INFORMAÇÕES

Atenção, nota técnica para desenvolvedores.
Já tínhamos a função que executava um relatório em suas regras locais com a seguinte sintaxe:
Procedure ExecReport(NomeRelat,VistaTab, Filtro,MensFiltro,Printer:String;Destino:integer).
Pois bem, criamos uma versão avançada dessa rotina com o objetivo de viabilizar a inclusão em rotinas longas, por exemplo, na geração de faturas para inúmeros destinatários.
A sintaxe da nova função é:.
Procedure ExecReportAdv(NomeRelat,VistaTab,Filtro,MensFiltro, PrinterArq:String;Destino,CodLayout:integer).
Note que há alguns parâmetros novos, PrinterArq passa a fornecer o nome da impressora destino OU o nome do arquivo destino, isso em função do valor do parâmetro "Destino" (1 - tela, 2 - Impressora, 3 - Envio por email e 4 - Exportação em arquivo) ser 2 ou 4.
O parâmetro CodLayout é a versão visual que será aplicada, se ele for enviado como 0 (zero), a janela de seleção de layouts poderá aparecer.
Pela extensão do arquivo, no caso da chamada no Destino 4, o Aics saberá em qual formato gerar os dados.
Para facilitar, as extensões previstas são: PDF, XLS, TXT, CSV, HTM e TXT.
Basta atualizar o Aics e incluir esse novo recurso em suas regras locais.

Captura de imagens por scanner

22/03/2021 em CENTRO DE INFORMAÇÕES

Essa nota destina-se à audiência técnica.
Uma das opções de integração do Aics com dispositivos é a captura de imagens usando interface Twain.
A sintaxe do comando anterior ainda existe e é bem simples, basta executar a função Twain, por exemplo:.
MinhaImagem:=Twain; // lê uma imagem.
Essa sintaxe abre a tela de captura, entretanto, na sua automação local, pode ser que a tela não seja necessária.
Para essa situação, foi criada uma variante dessa função, bem parecida, bastará chamar TwainAuto que a imagem já será captutada, sem tela de configuração, como no exemplo acima, ficaria simplesmente:.
MinhaImagem:=TwainAuto; // lê uma imagem sem abertura de tela de configuração.
Em ambas as funções o retorno é o nome do arquivo de imagem (no caminho TMP), o correto é utilizá-lo (enviar para o servidor de imagens, inserir no seu site ou o que desejar) e apagar esse arquivo após o uso.
Basta atualizar o Aics.

Uma nova gama de funções para o ambiente do AICS

23/12/2020 em CENTRO DE INFORMAÇÕES

Novidades no ambiente do usuário devem facilitar o uso e o desenvolvimento de novos recursos.
O recurso de botões com funções livres criadas nas regras locais é amplamente aplicado, facilita e organiza funções especiais.
Nesse nova expansão, estamos permitindo uma sequência de botões no modo de impressão (ficará também logo acima dos controle de relatórios) e nos próprios relatórios.
Portanto, passamos a ter mais 2 locais especializados para instalar as funções dos usuários.
Esse recurso está disponível para as funções anteriores, após atualizar a tabela de scripts, bastará indicar em qual local você deseja que o script seja instalado.
Abaixo, informações para a audiência técnica.
Visando dar maior flexibilidade às funções instaladas no painel de impressão, criamos 2 novas para serem aplicadas em suas rotinas, a declaração é muito simples, são:.
function GetSQLPrintFilter:string, que irá retornar uma expressão SQL contendo o filtro atual da tela e:.
function GetTxtPrintFilter:string, que irá retornar a explicação textual do filtro aplicado.
Que poderão facilitar exportações, filtros e o que mais desejar em suas regras locais.
Basta atualizar o AICS.

Processamento de PDFs com campos a preencher

14/10/2020 em CENTRO DE INFORMAÇÕES

Nota para audiência técnica.
Imagine que você precisa formatar um documento com um visual totalmente diferenciado. Nem sempre os recursos de edição de relatórios ou geração de páginas em HTM resolvem essas situações.
No formato PDF, que é bem genérico e visa apresentação de documentos, os recursos gráficos são bem conhecidos.
Uma das opções que permitem personalizar um arquivo PDF é o preenchimento de formulários, isto é, campos são marcados como preenchíveis.
Supondo que exista um documento criado no layout desejado e com essa opção de campos preenchíveis, quando os campos forem textuais, criamos uma possibilidade de fixar e dinamizá-los automaticamente pelo Aics. Em seguida, poderá tomar outros caminhos, como enviar o PDF por email.
A sintaxe da função é:.
Function FlatenPDF(Origem,Destino:String):boolean.
Sendo Origem o PDF que contém os elementos de formulário e Destino o PDF final desejado com os campos preenchidos e já fixos (sem o recurso de edição). Ambos devem conter o caminho completo.
Durante o processamento, o Aics chamará uma função que deverá suprir os conteúdos dos campos definidos no PDF, cuja sintaxe é:
Function AICS_PDFFieldValue(Campo,Valor:String):String.
Sendo que Campo será o nome definido pelo criador do PDF, Valor irá repetir a mesma informação, a sua função deverá retornar o texto que irá preencher o arquivo PDF.
Após isso, o PDF estará gravado e poderá seguir caminho em sua regra de negócios.
Basta atualizar o Aics para a nova função.

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.

Leia, por favor

Nosso website utiliza cookies para facilitar a navegação. Ao continuar o acesso, você aceita essa política automaticamente.