FCFGBAL - Definições para a Leitura da Balança
O sistema Gestão Empresarial | ERP faz integração com balanças de pesagem, onde é gerado a leitura dos pesos para uso em diversas rotinas do sistema. Estas integrações são efetuadas através de bibliotecas disponibilizadas pelos fabricantes, bibliotecas genéricas configuráveis fornecidas por parceiros ou, até mesmo, podem ser construídas de forma proprietária. As integrações disponíveis atualmente são:
Esta integração é genérica e não precisa ser feita pelo Gestão Empresarial | ERP. É necessário apenas informar no processo de configuração de balança que o tipo da DLL é EXECSOFT, as demais configurações devem ser feitas em aplicativo próprio para a configuração desta DLL de integração (SCALECF.EXE).
Após serem feitas todas as configurações através deste aplicativo, é necessário executar o aplicativo SCALELD.EXE antes do Gestão Empresarial | ERP. Esta nova DLL é um arquivo de terceiros e é preciso que seja adquirido um HARDKEY para liberar sua utilização. As configurações feitas pelo aplicativo são configurações específicas de comunicação com a balança.
- # de leituras: número de leituras (válidas), que devem ser consideradas para o peso estabilizado.
- Intercaladas: número de leituras que devem ser ignoradas entre as leituras válidas.
- Decimal: tipo de caractere que identifica o separador decimal.
- Escala de pesagem: casas decimais para o peso lido.
- Serial...: abre janela de configuração para tipo de
comunicação serial. Todos os dados definidos nesta janela devem refletir o que foi definido
na balança:
- Porta: identifica a porta que será utilizada para a comunicação seria;
- Bytes: número de bits que irão compor a transmissão;
- Velocidade: velocidade da transmissão que está sendo efetuada;
- Stop Bit: número de stop bits da transmissão;
- Paridade: paridade definida na transmissão;
- Definir como padrão: ao selecionar, a comunicação serial será o tipo de comunicação usada para ler os dados da balança. E a comunicação socket desativada.
- Socket...: abre janela de configuração para tipo de comunicação
TCP/IP:
- Endereço IP: informe endereço IP em notação de ponto decimal;
- Socket: número do socket a ser usado, normalmente acima de 10000;
- Definir como padrão: ao selecionar, a leitura da balança será feita através do protocolo de rede TCP/IP. E a comunicação serial será desativada.
- Leitura...: abre janela de configuração da balança:
- Cabeçalho: caractere que o leitor envia antes de iniciar os dados. Caso não haja caractere de início, configure 32 - 0x20 (espaço).
- Deslocar: número de caracteres a serem deslocados antes de iniciar os dados;
- Ler: número de caracteres a serem lidos;
- Intervalo: tempo (em milisegundos), entre as leituras (não definir menos que 250).
- Simulador...: abre janela de configuração dos valores que serão simulados quando a opção de simular for selecionada. Caso tenha sido feita a configuração utilizando a opção de simular o sistema, a cada leitura efetuada irá informar que esta opção está sendo utilizada, desta forma o usuário não corre o risco de achar que estão sendo feito leituras sendo que os dados não são os lidos da balança.
Para balanças de fabricação Toledo devem ser instaladas as bibliotecas (ou DLL) disponibilizadas pelo fabricante da balança no mesmo equipamento (estação) em que está instalada a balança. O sistemaGestão Empresarial | ERP se comunica somente com a versão 5 (PCLink32.dll) das bibliotecas desse fabricante para integrar com a balança. Acima desta versão, o sistema ERP não mantêm mais compatibilidade.
Como opção para qualquer outra versão ou marca de balança, deve ser adquirida a biblioteca genérica com o distribuidor da mesma (ExecSoft ). O distribuidor irá analisar a balança a ser utilizada e ofertará uma integração utilizando uma biblioteca compatível e já padronizada com o sistema. Também é possível efetuar uma integração proprietária desenvolvendo uma biblioteca proprietária para comunicação com a balança, utilizando uma interface padrão com o sistema.
Observação
Caso a versão 5 das bibliotecas da fabricante Toledo seja atualizada para versões superiores, a versão não será mais compatível com a anterior, e a integração do sistema com a balança deixará de funcionar.
Este processo permite definir uma convenção de interface entre o Gestão Empresarial | ERP e as bibliotecas externas que se comunicam com balanças ou outros periféricos de pesagem. Com isso é possível construir bibliotecas específicas para determinados equipamentos e transmitir as informações para o sistema, que irá efetuar a carga da biblioteca e chamar as funções convencionadas, repassando os valores de pesos para as funções do sistema que controlam entradas e saídas e para as funções LerBalancaTipoPeso e LerBalanca. Desta maneira, desenvolvedores externos, ou mesmo fabricantes de equipamentos de pesagem, podem construir suas bibliotecas com estas convenções e efetuar a comunicação do equipamento com o Gestão Empresarial | ERP.
Existem dois passos para utilizar:
A biblioteca deve seguir um padrão técnico para comunicação com o Gestão Empresarial | ERP. Os
detalhes de comunicação com a balança são de preocupação dos desenvolvedores,
pois a interface do sistema não fará suposições nem irá controlar ou armazenar
informações de configuração com a balança que a biblioteca irá se conectar.
Assim, a responsabilidade de conexão, sincronização e leitura dos dados da
balança, bem como quaisquer configurações necessárias para isso, ficarão a cargo
da biblioteca.
A interface do Gestão Empresarial | ERP irá solicitar para a biblioteca a solicitação da informação da balança pronta para leitura (estabilizada) e a leitura de peso da balança, com possibilidade de ler os três tipos de peso: bruto, líquido ou a tara. Já a interface da biblioteca deverá publicar os seguintes métodos com suas respectivas assinaturas (usando convenção da linguagem C):
- bool BalancaPronta (int balanca): fornece como retorno o indicativo verdadeiro se a balança ou peso estão prontos para serem lidos (balança estabilizada). Caso o retorno seja falso, o sistema irá emitir uma mensagem de erro indicando que o a balança ainda não está pronta. Isto é necessário em balanças que possuem necessidade de estabilizar ao efetuar sua a pesagem. Enquanto isto não ocorrer e o usuário tentar efetuar a pesagem, a mensagem indicará esta situação. Esse método será chamado sempre antes de efetuar a leitura dos pesos;
- int LerPesoBruto(int balanca, double *peso)
- int LerPesoLiquido(int balanca, double *peso)
- int LerPesoTara(int balanca, double *peso)
Fornece o peso bruto, peso líquido e o peso da tara lidos do equipamento, através do parâmetro peso, que é passado como referência. Além disto, as funções devem retornar o valor numérico 1 para identificar o sucesso da chamada do método. Para identificar alguma anomalia no funcionamento, o retorno da função deve retornar o valor numérico 0, o que irá indicar erro na leitura pelas funções do sistema e irá ignorar o peso retornado, retornando uma mensagem.
O parâmetro numérico balanca presente nos quatro métodos é um valor passado pelo sistema para que a biblioteca faça a leitura de uma balança identificada por este valor. O valor padrão é 1, mas pode ser modificado ao utilizar o identificador de regras COM-000BLCPD01 nos processos de controle de entrada ou saída. Caso os desenvolvedores da biblioteca não implementem leitura de múltiplas balanças, este parâmetro pode ser ignorado ou criado uma exceção. Caso contrário, devem mapear o número para a balança da qual deve ser lido o peso ou se está pronta.
O tipo de peso a ser retornado deve ser configurado na tela de configuração de leitura da balança, e pode ser diferenciado para operações de entrada (Suprimentos) e de saída (Mercado). O sistema irá chamar o método correspondente ao tipo de peso que deve ser lido.
O sistema irá esperar esses quatro métodos implementados na biblioteca, independentemente do tipo de peso que o equipamento irá pesar. Fica a critério dos desenvolvedores retornar um valor numérico igual de zero, levantar alguma exceção ou retornar algum valor padrão ou único caso utilizar o método que lê um peso que não seja retornado pelo equipamento à biblioteca. Recomenda-se levantar uma exceção para deixar mais claro para o usuário a situação.
Os métodos exportados pela biblioteca devem ser construídos usando a convenção de chamadas stdcall. Os desenvolvedores da biblioteca devem verificar no ambiente de desenvolvimento em que a biblioteca for implementada, como construir os métodos com esta convenção. Caso ela não seja utilizada, podem ocorrer erros como violações de acesso ou dados errôneos na comunicação entre a biblioteca e o Gestão Empresarial | ERP.
A biblioteca será carregada pelo sistema e permanecerá carregada, quando a execução se for a partir de uma tela de leitura. Quando a tela for fechada, irá descarregar a biblioteca.
No caso das funções de programador LerBalanca e LerBalancaTipoPeso,irá carregar a biblioteca, chamar os métodos necessários e imediatamente descarregar, a cada chamada da função.
Para ser carregada devidamente pelo Gestão Empresarial | ERP, a biblioteca deve residir no mesmo diretório da aplicação (Sapiens.exe e/ou SapiensSrv.exe) ou em diretórios que estejam no caminho do sistema operacional. Recomenda-se a primeira opção pela facilidade de localização.
Para que o sistema saiba utilizar a biblioteca, na tela FCFGBAL, o campo Tipo DLL de estar como "Personalizada". Após selecionar, no campo Nome da biblioteca de Leitura deve ser informado o nome completo do arquivo da biblioteca, inclusive a extensão. O nome não deve conter o caminho ou diretório de onde está localizada a biblioteca, apenas o seu nome e extensão. Também nessa opção pode-se informar qual o tipo desejado de peso para cada tipo de operação efetuada.
A opção Tipo Peso Entrada define o tipo de peso utilizado nas rotinas de entrada, nos processos do Suprimentos, e Tipo Peso Saída define o tipo de peso utilizado nas rotinas de saída, nos processos do Mercado. Estas informações serão armazenadas no registro do sistema operacional e serão únicas por estação/servidor.
As configurações e localização da biblioteca devem ser feitas onde o Gestão Empresarial | ERP está instalado, seja uma versão servidor ou local. Porém, o desenvolvedor da biblioteca, dependendo da aplicação, deve prever situações em que o equipamento de pesagem pode ser remoto ao local em que o sistema será executado, como por exemplo, balanças remotas ou conectadas em estações remotas, bem como a execução do Gestão Empresarial | ERPpode ser remota através do WTS, WindowsAccess ou BrowserAccess e não na estação onde o equipamento de pesagem está conectado.
Nestas situações, as configurações devem ser efetuadas no ambiente servidor e a
biblioteca também deve estar localizada no ambiente servidor. Se a balança ou
equipamento estiver localizada em estações diferentes da estação do usuário ou
do servidor, a comunicação remota com a balança deve ser de preocupação da
biblioteca, observando as possibilidades de comunicação remota ou apenas local. Mesmo com balanças que não tenham possibilidade de algum tipo
de conexão remota, o desenvolvedor da biblioteca pode utilizar algum tipo de
controle para se comunicar indiretamente com a estação/balança
remota (com arquivos ou diretórios compartilhados ou uma biblioteca cliente na
estação que tenha comunicação com a biblioteca localizada no servidor/estação).
Observação
A função de programador LerBalancaTipoPeso utiliza as definições do tipo de peso lido passadas para a função, ignorando as configurações de tipo de peso definidas na tela FCFGBAL.
Importante
- A integração do Gestão Empresarial | ERP com uma balança através da opção Web Service/API Rest está homologada apenas para integração com Aplicativo de Balança do sistema Gestão de Pátio| YMS da Senior.
- A utilização de uma integração do Gestão Empresarial | ERP com qualquer sistema de terceiros utilizando essa opção não está homologada e, mesmo que seja implantada e validada em algum momento, poderá deixar de funcionar sem aviso prévio a medida em que ocorram evoluções na integração homologada (Gestão Empresarial | ERP integrado com Gestão de Pátio| YMS).
- A integração entre o Gestão Empresarial | ERP e o Aplicativo da Balança do Gestão de Pátio| YMS não utiliza recursos da XPlatform como demais rotinas de integração entre esses dois sistemas. O Gestão Empresarial | ERP efetua uma chamada diretamente para a URL do Aplicativo da Balança que deverá estar acessível a partir do ambiente onde o sistema ERP é executado. Isso indica que:
- Se o Aplicativo da Balança está disponibilizado em um ambiente on-premise, a URL deverá sempre ficar acessível através de um IP ou DNS fixo (do contrário, o sistema Gestão Empresarial | ERP terá problemas na chamada da API/URL);
- Se o Gestão Empresarial | ERP estiver disponibilizado em ambiente cloud da Senior, é necessário solicitar para equipe de IT Services da Senior a liberação das URLs do Aplicativo da Balança OnPremise no ambiente, para que a comunicação seja estabelecida normalmente.
- Sendo assim, para garantir a integridade da conexão do Gestão Empresarial | ERP com a balança via Web service/API Rest, siga as orientações:
- Para utilização da integração nativa Web Service/API Rest, verifique a aquisição/implantação da solução de APP de Balança do Gestão de Pátio | YMS da Senior;
- Para utilização da integração com um sistema de terceiros, utilize uma DLL personalizada para esse processo (utilizando a opção "Personalizada" no campo Tipo DLL da tela FCFGBAL). É possível desenvolver a DLL ou contratar a Fábrica de Software da Senior para esse desenvolvimento.
Quando a rotina for chamada para capturar o peso de entrada, será gerada uma requisição para a URL configurada na tela FCFGBAL. Quando pedido o peso de entrada para a o serviço de balança, a requisição será feita para a URL balança de entrada, quando for saída, a requisição será realizada para a URL balança de entrada. Caso as duas rotinas (entrada e saída) usarem a mesma balança, basta informar a mesma URL para os dois campos.
Importante
No retorno da requisição será extraído o peso da balança e o status de estabilização da balança (se está estabilizada ou não). Caso não estabilizada, uma mensagem será disparada na tela. Quando estabilizada, o peso retornado do JSON será utilizado pela aplicação.
{"code": "001 - Balança de entrada", "weight": 19000, "stabilized": true}
URL Balança entrada
Esse campo permite o usuário informar uma URL de captura de peso de entrada.
URL Balança de saída
Esse campo permite o usuário informar uma URL de captura de peso de saída.
Importante
Quando o método de leitura de peso selecionado for "Webservice / API REST", o identificador de regras COM-000BLCPD01 não é utilizado, por isso, deve estar desabilitado. Para esta opção é obrigatório a informação da URL da balança (entrada e/ou saída).
A configuração da balança de pesagem é salva na pasta de dados dos usuários, no sistema operacional, pois a configuração é particular para cada estação.
A salvar o registro através do botão OK, o sistema verificará qual opção está selecionada no campo Leitura de Configuração da Balança, na tela de F070EMP.
- "L - Local": o comportamento deverá ser o mesmo, salvando as configurações em arquivo na estação de trabalho do usuário.
- "B - Base de Dados": o sistema deverá salvar as configurações na tabela Cadastro de Definições de Leitura da Balança (E000BAL). Essa tabela é a nível de empresa e usuário.
Observação
Essa regra também vale para leitura das configurações.