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

Assinatura digital de XML (atualizado)

02/12/2010 em CENTRO DE INFORMAÇÕES

Nota revisada em 24/06/2010.
Esta nota deve ser considerada técnica para a maioria do público.
Os serviços de Nota Fiscal eletrônica, normalmente feitos por chamadas do tipo webservice (SOAP), podem requerer que os conteúdos em XML sejam assinados digitalmente.
Recentemente, adicionamos o controle de certificados digitais no AICS e publicamos a rotina que assina documentos PDF digitalmente. Esta rotina permite, sem nenhum módulo adicional, gerar documentos e assiná-los digitalmente pelo sistema.
Nesta atualização do sistema, adicionamos o recurso de assinatura de arquivos XML. Por exemplo, arquivos gerados para Nota Fiscal Eletrônica precisam ser assinados. A rotina pode ser chamada por script e ela MODIFICA o arquivo XML adicionando uma assinatura a ele (faça uma cópia antes de chamá-la):
Function XMLSign(FileToSign, CertFile, Password, NodeToSign, URI:String):boolean Onde, FileToSign -> Nome completo do arquivo XML que deve ser assinado CertFile -> Caminho do certificado, pode ser um certificado da máquina instalado no Windows (peça exemplos do que informar a esta chamada)
Password -> Senha do certificado quando em arquivo NodeToSign ->Nome do nó facultativo a assinar, senão será o documento URI -> Identificador da assinatura, pode ser em branco

Atribuindo valores a cursores tipo objeto

02/12/2010 em CENTRO DE INFORMAÇÕES

Esta nota pode ser considerada altamente técnica por alguns usuários.
Na montagem de acessos a dados, os scripts podem utilizar comandos do tipo TableExecSQL e os nomes dos cursores passam a ser simples Strings. As atribuições são também super simples e encapsulam possíveis falhas nas atribuições.
Entretanto, o AICS permite a criação de objetos de acessos a dados tipo TADOQuery. Estes objetos podem representar objetos tipo ADO ou outros tipos de objetos de acessos a dados, depende apenas da versão do AICS utilizada.
Pois bem, no primeiro caso, os comandos de atribuição de valores são do tipo SetString, SetFloat, SetDateTime etc. Mas, estes comandos de atribuição requerem o uso de cursores escondidos a partir dos alias atribuídos em comandos TableExecSql. Se os cursores forem reais, pode-se atribuir valores com a sintaxe Cursor.fieldbyname('nome do campo').as...
Onde, o as... pode ser AsString, AsFloat etc. Este comando NÃO está imune a erros, isto é, se houver um erro no seu código ou outra falha, o script poderá ser interrompido.
Ainda, se o cursor estiver fechado e for do tipo parâmetros dinâmicos, a atribuição é ainda mais complicada. Visando facilitar e encapsular estes comandos, a BF publicou as atribuições internas que o AICS dispõe aos scripts dos usuários, relacionados a seguir:
Procedure SetFloatDS(Cursor:DelphiTDataSet;Coluna:string;Valor:Double)
Procedure SetStringDS(Cursor:DelphiTDataSet;Coluna, Valor:string)
Procedure SetIntegerDS(Cursor:DelphiTDataSet;Coluna:string; Valor:longint)
Procedure SetDateTimeDS(Cursor:DelphiTDataSet;Coluna:string; Valor:Double)
Procedure SetLogicalDS(Cursor:DelphiTDataSet;Coluna:string; Valor:boolean)
A grande vantagem destes comandos está em não gerarem erros e, ainda, os cursores podem ser do tipo aberto (em edição) ou fechados (com parâmetros).

Assinador digital por script

02/12/2010 em CENTRO DE INFORMAÇÕES

Recentemente, a Byte Factory adicionou recursos de gerenciamento de certificados digitais ao AICS. Esta gestão aplica-se, por enquanto, à assinatura de documentos PDF. Documentos PDF que podem ser gerados automaticamente pelo sistema, por exemplo.
Entretanto, este recurso de assinaturas pode ser altamente útil no quotidiano de nossos clientes. Por exemplo, pode-se criar serviços de rede de assinatura automática a partir de "hot-folders". O AICS pode ser o ERP mais completo que existe, mas pode complementar outros serviços de forma inimaginável! Depende da sua imaginação.
A sintaxe da função de assinatura digital por script é:
Function PDFSign(FileToSign, CertFile, Password:String):boolean Onde, FileToSign -> Arquivo PDF que será assinado (o arquivo será modificado, logo, faça uma cópia se deseja preservar um original sem assinatura)
CertFile -> Caminho para o arquivo do certificado digital (facultativo, se ausente, o AICS usará o certificado associado ao login atual)
Password -> Se o arquivo de certificado for informado, aqui deverá ser passada a senha correspondente (senha do certificado e não a senha do login ou do AICS, cuidado com isso)

Evento Antes de Imprimir agora fecha a janela

01/07/2010 em CENTRO DE INFORMAÇÕES

É uma característica que facilita a gestão das regras de negócios em relatórios em geral. O evento Antes de Imprimir, caso retorne falso (false, por script), passa a fechar a janela do relatório.
É claro que nada impede que seu evento apresente mensagens ao usuário explicando o porquê do mesmo não poder ser impresso.

Novo recurso para procedimentos generalizados

09/12/2009 em CENTRO DE INFORMAÇÕES

Por favor, considere esta nota como altamente técnica.
O modelo de scripts do AICS isola rotinas para cada objeto instanciado, isso permite que um ambiente seja montado para cada tela aberta do sistema, o que gera segurança entre as regras para cada estrutura.
Entretanto, alguns problemas podem surgir desta característica, tais como:
- Alguns trechos de códigos são replicados em estruturas diferentes, mesmo desempenhando a mesma função - Grandes estruturas de objetos precisam ser montados na estrutura principal para estarem disponíveis para execução a qualquer momento, mesmo que nunca sejam executados O primeiro item pode gerar uma complicação na gestão das regras e o segundo pode gerar lentidão na entrada de algumas telas (máximo de 1 ou 2 segundos), porém, pode gerar maior ocupação de memória do que o efetivamente necessário à sessão. Ainda, o item 2 pode gerar cópias de objetos que poderiam ser únicos entre sessões abertas ao mesmo tempo.
Para resolver estes 2 problemas, criamos uma estrutura virtual denominada STORED que poderá receber procedimentos completos na forma de "programa", por exemplo, cada procedimento deverá ser completo e independente. Um exemplo de um procedimento simples seria:
begin Mostra('Este é um procedimento simples, '+webfields('nome'));
end.
Note que a rotina é completa e não tem visibilidade de qualquer outra entidade que a executou, é um procedimento autônomo. Portanto, os procedimentos criados sob a estrutura STORED devem ser chamados com a nova rotina:
Function ExecStored(Event,Parameter:string):boolean Por exemplo, poderíamos criar o procedimento acima num evento com nome "Aviso", neste caso, a chamada em qualquer local do AICS do procedimento acima e já com o parâmetro, seria simplesmente:
ExecStored('Aviso','nome=Manoel');
O interessante deste modelo é que não haverá cópias do mesmo procedimento em execução simultânea, isso minimiza o gasto de recursos do sistema e deixa os procedimentos mais rápidos.

Ativar opção filhos das colunas expandidas

06/12/2009 em CENTRO DE INFORMAÇÕES

O AICS possui a característica de montar as pesquisas automaticamente, mas este processo pode ser complexo em alguns casos de tabelas mestre-detalhe e com ligação cruzada.
Para facilitar este tipo de filtro mais complexo, no centro de informações, para cada tabela, existe a opção Ativar opção filhos das colunas na aba Avançado.
Esta opção estava, basicamente, sendo válida para relatórios e não para pesquisas. As pesquisas estavam mais "abertas". Nesta atualização do AICS, esta opção deverá estar LIGADA e, nas colunas das tabelas filhas, a opção Exibir em filhos na aba Opções de apresentação deverá também estar ligada.

Nova diretiva de Inclusão (avançado)

06/12/2009 em CENTRO DE INFORMAÇÕES

Esta nota é altamente técnica e destina-se aos usuários avançados que utilizam Scripts dentro do BF AICS.
Em algumas aplicações, a existência de repetição de trechos de rotinas pode ser inevitável. Nem que isso seja devido ao ambiente de cada uma, pode ser improdutivo apenas declarar as rotinas genéricas na tabela GLOBAL. Com o objetivo de otimizar as rotinas e, ao mesmo tempo, evitar repetição, adicionamos uma diretiva de inclusão no pré-processador do AICS com a seguinte sintaxe:
{$include TABELA.EVENTO}
Por exemplo, se incluirmos a linha:
{$include CADASTRO.ENTRAR}
Em qualquer outra tabela (com certeza não a do CADASTRO, pois este trecho já estará lá), as rotinas e declareções estarão presentes na montagem final.

Criação de gráficos com N conjuntos

06/12/2009 em CENTRO DE INFORMAÇÕES

Pelo Centro de Informações do BF AICS, é muito simples definir um gráfico do tipo XY. Crie uma vista e associe as colunas X e Y.
Na tela na qual a vista está associada, escolha o gráfico na mesma lista de relatórios e clique no botão de gráfico na barra de ferramentas do menu de impressão.
Nesta atualização do sistema, permitimos que sejam selecionadas mais do que uma coluna Y. Por exemplo, pode-se montar uma vista que conta o nr de fornecedores e clientes por estado. Nas colunas nr de fornecedores e nr de clientes, marcamos com a opção Y do gráfico. A coluna do estado vai no X. Qdo o gráfico for emitido, ele mostrará, para cada estado, a quantidade de clientes e fornecedores ao mesmo tempo.
A partir deste exemplo, fica fácil expandir e saber que, para qualquer informação do sistema, fica agora fácil definir gráficos de N curvas visando comparação visual sem ter que criar um gráfico externo ao AICS.

Evento Após gravar ao gerar NFs automáticas

06/12/2009 em CENTRO DE INFORMAÇÕES

Esta nota pode ser considerada altamente técnica por alguns usuários do BF AICS.
Tanto pelo módulo Comercial quanto pelo módulo Assistência Ténica, existe o atalho para geração de NFs. A NF gerada já disparava o evento associado à gravação da NOTA. Esta chamada facilita e integra as regras fiscais.
Nesta atualização do sistema, o evento Após Gravar também está sendo disparado. Com isso, a integração das regras pela tela do Fiscal e pela geração automática ficam ainda maiores.

Nova rotina para geração livre de OPs

06/12/2009 em CENTRO DE INFORMAÇÕES

Esta nota pode ser considerada altamente técnica por alguns usuários.
O BF AICS dispõe de uma rotina simples para geração de OPs, cuja sintaxe é: Function GeraOP(Cod_Res,Netcod:String;Quant:Double):Double Entretanto, com o novo recurso de Engenharia integrada ao Comercial, a possibilidade de se gerar uma OP sobre as novas tabelas da Engenharia editada precisou ser criada. Portanto, a nova rotina para criação mais aberta de OPs passou a ser:
Function GeraOPAdv(Cod_Res,Netcod:String;Quant:Double;TabProc,TabMat:String):Double Onde, TabProc e TabMat são os nomes dos cursores que contém a "receita" que deverá ser produzida. TabProc é equivalente à tabela ESTPROCOP e TabMat à tabela ESTELABOP. Quando esta rotina for utilizada para gerar OPs das Engenharias específicas dos pedidos, basta chamá-la já com os dados selecionados relacionados às tabelas PEDESTELABOP e PEDESTPROCOP, que contém, para fins de geração de OPs, as mesmas colunas das tabelas anteriores.

Leia, por favor

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