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

Novo recurso para procedimentos generalizados

Novo recurso para procedimentos generalizados

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.