Integracao Sigafran
O Touch Comp ERP(Mentor) possui integração nativa e direta com o sistema Sigafran(Sistema supervisório) da empresa Só Automação, responsável pela comunicação com máquinas e sensores em fábricas automatizadas. Este documento demonstra este processo de comunicação, os dados sincronizados, origens e exemplo de comunicação.
Basicamente, o Touch Comp ERP sincroniza as informações com base no manual disponibilizado pela própria Só Automação. O Link do layout utilizado está em:
A comunicação se dará via webservices, onde cada endpoint retornará os dados conforme parâmetros informados. Os endpoints deverão ser configurados no lado do Sigafran com alguns dados dinâmicos.
HOST: Ip do servidor, onde está alocado o Touch Comp ERP. Exemplo: 192.168.0.1.
PORTA: Porta da aplicação no servidor, normalmente 8080.
VERSAO: Versão do layout de comunicação, informe 1.
DATA_ULT_SINC: Data da última sincronização, no formato DDMMYYYHHMMSS: DD: Dia, MM: Mês, YYYY: Ano, HH: Hora, MM: Minutos, SS: Segundos. Caso seja a primeira sincronização envie uma data bem antiga, como por exemplo 01/01/2000 00:00:00: 01012000000000, ou simplesmente informe 0.
Caso precise, utilize nosso aplicativo de testes:
https://touchcomp.mywikis.net/wiki/Integracao_Web_Services
Layout
Apesar da integração seguir o layout próprio do Sigafran, os dados foram encodificados em Base64. Isso por dois motivos:
1) Caso haja qualquer erro de processamento no servidor, será retornado com o status de ERRO e os detalhes do erro e não um erro de comunicação;
2) Como os usuários podem informar acentos por exemplo nas descrições, a encodificação evita erros de leitura do arquivo.
O retorno está no formato JSON:
{"versao":1,"mensagem":"Processado com sucesso.","detalhes":"","codStatus":0,"info":[]}
Observe que é retornado a versão, a mensagem, codStatus(quando retornado 1, sucesso. Qualquer outro status deve ser considerado como erro de processamento). Em detalhes, é retornado os detalhes da mensagem em si, codificados em Base64. Para ter acesso ao txt, basta decodificar este campo.
Para testes de decodificação, utilize alguma ferramenta online:
Em Java, você pode utilizar como referência:
https://www.baeldung.com/java-base64-encode-and-decode
Limitações
O Sigafran apenas recebe formulações a granel. Não deve ser enviado formulações que contenham outros insumos/embalagens, como sacaria, etiqueta, etc. Você pode limitar quais formulações são migradas, criando um 1602 Grupo Produtos Relatórios.
Após criado e definido quais formulações de quais produtos serão migrados, você deve realizar a configuração deste serviço em 1809 - Configuração Serviços de Terceiros, criando uma nova configuração para a Integração Sigafran, e informando o ID do grupo criado acima.
Caso não seja definido um grupo de produtos e a configuração, serão migrados todos os dados.
Formulações
Versão 1
Observação: se informado Grupo de Produtos, somente serão migradas formulações de produtos definidas neste grupo de produtos.
O primeiro item a ser integrado são as formulações de produtos. O endpoint será:
http://HOST:PORTA/mentor/rest/integracao/sigafran/getFormulacoes/VERSAO&DATA_ULT_SINC
As formulações são cadastradas no recurso 425 Formulação de Produtos. Nunca edite Formulações que são sincronizadas no Sigafran. Bloqueie no perfil de usuários esta opção. Ao ter esta necessidade, informe a data de vigência final, desative a formulação e crie uma nova.
CAMPO | TIPO | TAM | OBSERVAÇÃO |
---|---|---|---|
Tipo de Registro | INTEGER | 1 | * Primeira linha para cada fórmula (Tipo de Registro=0) |
Código do item a ser gerado | INTEGER | 10 | Identificador da formulacao |
Código da versão da fórmula | INTEGER | 6 | Revisão da Formulação |
Descrição | VARCHAR | 50 | Descrição da Formulação |
Código PA | INTEGER | 10 | Identificador do produto a ser gerado. |
Tamanho da Fórmula | INTEGER | 5 | Será informado 0. |
Vigência Inicial | DATETIME | 19 | Data Vigencia Inicial, data em que a formulação foi cadastrada. |
Vigência Final | DATETIME | 19 | Data Vigencia Final, data em que a formulação foi inativada. |
ITENS | |||
Tipo de Registro | INTEGER | 1 | Demais linhas para cada fórmula contendo os itens (Tipo de Registro=1) |
Código da Fórmula | INTEGER | 10 | Identificador da formulacao |
Ordem | INTEGER | 3 | Indice dos item, tabela de itens |
Código da matéria prima a dosar | INTEGER | 10 | Identificador do Produto da materia prima |
Quantidade em Percentual | INTEGER | 10 | Informado 0 |
Quantidade em kg | INTEGER | 10 | Quantidade do item |
Produtos
Versão 1 Observação: somente são migrados produtos que existam, foram utilizados nas formulações.
O endpoint da integração de Produtos será:
http://HOST:PORTA/mentor/rest/integracao/sigafran/getProdutos/VERSAO&DATA_ULT_SINC
As formulações são cadastradas no recurso 65 Produtos e Serviços.
CAMPO | TIPO | TAM | OBSERVAÇÃO |
---|---|---|---|
Código (MP/PA | INTEGER | 10 | Identificador do Produto |
Descrição (MP/PA) | INTEGER | 50 | Nome do Produto |
Abreviatura | VARCHAR | 6 | Código Auxiliar do Produto, limitado a 6 caracteres. Caso o código seja maior será truncado |
Unidade de Medida | INTEGER | 3 | Sigla da Unidade Medida Vinculada ao Produto. |
Densidade | VARCHAR | 4 | Campo densidade do Produto. |
Clientes
Versão 1
O endpoint da integração de Clientes será:
http://HOST:PORTA/mentor/rest/integracao/sigafran/getClientes/VERSAO&DATA_ULT_SINC
As formulações são cadastradas no recurso 76 Clientes.
CAMPO | TIPO | TAM | OBSERVAÇÃO |
---|---|---|---|
Código | INTEGER | 10 | Identificador do Cliente |
Descrição | VARCHAR | 100 | Nome do Cliente |
CNPJ | VARCHAR | 14 | CNPJ do Cliente, conforme cadastrado em Pessoa/Complemento |
Telefone | VARCHAR | 11 | Telefone do Cliente, conforme cadastrado em Pessoa/Complemento. Será informado o Telefone. Caso o campo esteja vazio, será informado seu celular. |
Fornecedores
Versão 1
O endpoint da integração de Fornecedores será:
http://HOST:PORTA/mentor/rest/integracao/sigafran/getFornecedores/VERSAO&DATA_ULT_SINC
As formulações são cadastradas no recurso 77 Fornecedores.
CAMPO | TIPO | TAM | OBSERVAÇÃO |
---|---|---|---|
Código | INTEGER | 10 | Identificador do Fornecedor |
Descrição | VARCHAR | 100 | Nome do Fornecedor |
CNPJ | VARCHAR | 14 | CNPJ do Fornecedor, conforme cadastrado em Pessoa/Complemento |
Inscrição Estadual | VARCHAR | 20 | IE do Fornecedor, conforme cadastrado em Pessoa/Complemento |
Endereço | VARCHAR | 100 | Endereço do Fornecedor, conforme cadastrado em Pessoa/Endereço. É concatenado Endereço + Número + Complemento |
CEP | VARCHAR | 8 | Cep do Fornecedor, conforme cadastrado em Pessoa/Endereço |
Telefone | VARCHAR | 11 | Telefone do Fornecedor, conforme cadastrado em Pessoa/Complemento |
Ordens de Produção
Versão 1
Observação: se informado Grupo de Produtos, somente serão migradas Ordens de Produção de produtos definidas no grupo de produtos.
O endpoint da integração das Ordens de Produção será:
http://HOST:PORTA/mentor/rest/integracao/sigafran/getOrdensProducao/VERSAO&DATA_ULT_SINC
As Ordens de Produção são cadastradas no recurso 431 Ordens de Produção.
O ERP suporta o cadastro de Ordens de Produção para N Subdivisões das Ordens. No caso das OS enviadas ao Sigafran, todas devem ser geradas com apenas uma SubOS. Caso seja informado mais de uma, poderá ocorrer erros na sincronização de retorno. Como podem haver outras produções que não estejam vinculadas diretamente ao Sigafran, este item não é bloqueado pelo ERP.
É enviado também o número de bateladas e a quantidade por batelada. A quantidade por batelada é informada no cadastro da Formulação e não na Ordem de Produção. Na OS é informado o número de bateladas onde o sistema calcula a quantidade em quilos.
Nunca edite OS que são sincronizadas no Sigafran. Bloqueie no perfil de usuários esta opção.
CAMPO | TIPO | TAM | OBSERVAÇÃO |
---|---|---|---|
Tipo de Registro | INTEGER | 10 | Código Fixo |
Código Ordem de Produção | INTEGER | 10 | Código da Ordem de Produção. |
Código da Fórmula | INTEGER | 10 | Identificador da Formulação |
Código Aditivo | INTEGER | 10 | Informado sempre "0" |
Data Entrada | VARCHAR | 19 | Data de Emissão da OS, no formato dd/MM/aaaa HH:MM:SS |
Data Entrega | VARCHAR | 19 | Data de Previsão de Produção da SUBOS, no formato dd/MM/aaaa HH:MM:SS |
Quantidade Produto | INTEGER | 10 | Quantidade do Produto por batelada, conforme informado no campo Quantidade por Produção no cadastro da Formulação. |
Tipo Ordem Produção | VARCHAR | 1 | Será informado sempre "A" |
Descrição Ordem Produção | VARCHAR | 200 | Descrição da SUBOS. Senão existir, descrição da OS. Senão existir será enviado "IMPORTACAO" |
Prioridade | INTEGER | 10 | Nr Ordem Cronograma Produção. Utilize o recurso 976 para defini-lo. Caso contrário a prioridade será sempre 1. |
Total Quantidade de Bateladas | INTEGER | 10 | Quantidade de Referência da SUBOS(Bateladas). Casas decimais são ignoradas. |
Código da Granja | INTEGER | 10 | Informado 0 |
Quantidade de Bateladas | INTEGER | 10 | Quantidade de Referência da SUBOS(Bateladas). Casas decimais são ignoradas. |
Número Ordem | INTEGER | 10 | Identificador da SUBOS |
Lote Animal | VARCHAR | 30 | Lote de Fabricação informado na SUBOS, senão houver é informado 0 |
Recebimentos
http://HOST:PORTA/mentor/rest/integracao/sigafran/getRecebimentos/{versao}&{dataUltSinc}
Observação: se informado Grupo de Produtos, somente serão migradas recebimento de produtos definidas no grupo de produtos, e ainda de itens que existam em suas formulações produtos/insumos/matérias-primas .
Nesta integração, o SigaFran irá consultar o ERP onde será retornado todas as entradas de produtos, no caso as Notas Fiscais de Terceiros/Fornecedores, onde as condições abaixo estejam satisfeitas:
- Os produtos informados nas notas fiscais, estejam incluídos nas formulações;
- A nota fiscal esteja efetivamente Liberada em todos os aspectos: Fiscal, Financeiro, Estoque/Qualidade, etc;
Como o Sigafran não suporta atualizações, apenas inserções, os usuários deverão ter muita atenção no lançamento das notas fiscais, e somente liberar as mesmas, caso estejam realmente corretas. Por isso, para que as notas fiscais sejam disponibilizadas para serem integradas, é obrigatório a utilização do Módulo de Liberação de Notas Fiscais.
Se mesmo, assim for necessário alterar estas notas fiscais, ou até por motivo maior excluídas, o usuário deverá também dar manutenção no Sigafran, manualmente.
Abaixo, segue layout utilizado nesta integração. Vale salientar que o ideal seria a utilização de Tickets Balança, para fornecer as informações completas ao Sigafran. Caso não utilize Tickets Balança, observe que em alguns campos, as informações enviadas são meramente informativas.
As informações enviadas, são com base em cada Grade/Lote informada no item da nota fiscal.
CAMPO | TIPO | TAM | OBSERVAÇÃO |
---|---|---|---|
Tipo de Registro | INTEGER | 10 | Código Fixo |
Ordem Recebimento | INTEGER | 10 | Identificador da Grade da Nota Fiscal de Terceiros |
Caminhão | INTEGER | 0 | Enviado valor padrão, 0 |
Placa Caminhão | VARCHAR | 10 | Enviado valor padrão, AAA-0000 |
Motorista | VARCHAR | 50 | Enviado valor padrão SEM MOTORISTA INFORMADO |
Data Registro | VARCHAR | 19 | Data de Entrada da NF |
Data Fabricação | VARCHAR | 19 | Data de Fabricação do Lote do Lote de Fabricação |
Data Validade | VARCHAR | 19 | Data de Validade do Lote de Fabricação |
Produto | INTEGER | 10 | Identificador do Produto |
Fornecedor | INTEGER | 10 | Identificador da Fornecedor |
Nota Fiscal | INTEGER | 10 | Número da Nota Fiscal |
Peso Nominal NF | INTEGER | 10 | Quantidade da NF veze Fator Conversão |
Peso Tara | INTEGER | 10 | Enviado valor padrão 0000000000 |
Data Tara | VARCHAR | 19 | Data de Entrada da NF |
Descrição Balanceiro | VARCHAR | 50 | Enviado valor padrão SEM BALANCEIRO |
Lote | VARCHAR | 10 | Lote de Fabricação |
Tipo Produto Recebimento | VARCHAR | 50 | Enviado valor padrão GRANEL |
Número Bags | INTEGER | 10 | Enviado valor padrão 0 |
Produções
http://HOST:PORTA/mentor/rest/integracao/sigafran/putProducoes/{versao}
Nesta integração, o Sigafran irá enviar as produções realizadas e ainda não sincronizadas. Neste ponto, tenha atenção que poderá ocorrer erros de validação no ERP, onde o Sigafran deverá exibir a mensagem ao operador, avisando das falhas e o mesmo deve reportar ao TI da empresa para as devidas correções.
Como exemplo de problema corriqueiro, é a falta de estoque de determinado produto, onde ao receber o apontamento, o sistema irá reportar erro ao Sigafran para que seja analisado o porquê da falta de estoque.
Basicamente, a cada produção recebida, o ERP irá gerar um registro de 428-Evento OS Linha Produção, com o comunicado de produção e a requisição, com os itens requisitados.
CAMPO | TIPO | TAM | OBSERVAÇÃO |
---|---|---|---|
Tipo de Registro | INTEGER | 10 | Código Fixo |
Produção | INTEGER | 10 | Código Sincronização no Evento OS concatenado com a Batelada |
Batelada | INTEGER | 10 | Ver Acima |
Data Inicial Batelada | VARCHAR | 19 | Data Inicial do Evento |
Data Final Batelada | VARCHAR | 19 | Data Final do Evento |
Fórmula | VARCHAR | 19 | Código da formula utilizada. Este campo não é utilizado, o sistema considera a formula enviada na OS |
Produto | VARCHAR | 19 | Código do Produto. Este campo não é utilizado, o sistema considera o produto enviado na OS |
Silo Expedição | VARCHAR | 10 | Código do Silo é utilizado para encontrar o Centro de Estocagem. Este código deve ser informado no recurso 805-Centro de Estocagem, no campo Código de Sincronização. |
Controle | INTEGER | 10 | Este campo, está o código da OS. O mesmo é utilizado pelo ERP para identificar a OS vinculada a produção. Observar que é enviado o Identificador da SUBOS. |
Numero Lote Produto (PA) | VARCHAR | 50 | Lote de fabricação do Produto Gerado. Será gerado um novo lote, senão existir com este código, vinculado ao produto em questão. Observe que os produtos produzidos deverão obrigatoriamente, serem controlados por lote não único. Confirmar este cadastro no recurso 65-Produtos e Serviços |
Valor da Quebra Técnica | INTEGER | 10 | Para realizar o comunicado de produção, o sistema considera como quantidade produzida, pela batelada, o campo "Quantidade de Referência" informado em 425-Formulação de Produtos. Considerando o valor deste campo, é diminuído o valor da quebra técnica informado, e quantidade do comunicado produção será esta: Quantidade Ref - Quebra Técnica = Quantidade Produzida. |
Itens Requisitados | |||
Ordem | INTEGER | 10 | Ordem de dosagem, utilizado apenas para ordenar os itens da requisição. |
Produto | INTEGER | 19 | Identificador do item requisitado |
Peso Solicitado | INTEGER | 50 | Peso nominal da formulação |
Peso Dosado | INTEGER | 10 | Peso efetivo dosado, que será informado na requisição. |
Numero Lote Produto (MP) | VARCHAR | 50 | Número do Lote da Matéria Prima |
Itens extra formula - Não utilizado | |||
Ordem | INTEGER | 10 | Não utilizado |
Produto | INTEGER | 10 | Não utilizado |
Quantidade Solicitada | INTEGER | 10 | Não utilizado |
Quantidade Dosada | INTEGER | 10 | Não utilizado |
Numero Lote Produto (MP Extra Fórmula) | VARCHAR | 50 | Não utilizado |