ISA-95 / B2MML
Quando o destino da integração é um MES, um ERP ou um data lake que fala ISA-95 (IEC 62264), o trabalho não é técnico — é de formato. O payload que sai da linha já tem tudo: equipamento, ordem, quantidade boa, refugo, início e fim. O que falta é vesti-lo na estrutura que o outro lado espera, com os nomes de elemento certos, aninhados na ordem certa.
O pack ISA-95 / B2MML entrega essa metade pronta: Transformadores cujo lado de saída já está no padrão. Você só aponta de onde vem cada campo do seu payload.
Este pack está marcado como esboço: os modelos seguem a estrutura pública do B2MML / ISA-95, mas ainda não foram conferidos contra um destino B2MML real. Valide o resultado no sistema de destino antes de usar em produção — e confirme com a sua organização os termos de uso aplicáveis a esses formatos.
Um pack sem Interface, Coleta nem Entrega
Todos os outros packs do CMS instalam uma integração inteira. Este não: ele é uma biblioteca de modelos. Instalar cria apenas Transformadores, que você depois escolhe na Definição que já tem.
A razão é o que ISA-95 é. Ele não descreve de onde o dado vem — sua Coleta continua sendo a sua, seja ela SAP, banco, MQTT ou arquivo. Ele descreve como o dado é dito. Criar Interfaces junto seria inventar um fluxo que você não pediu.
O que vem dentro
| Modelo | Sentido | Formato de saída |
|---|---|---|
| Apontamento de produção → ProductionPerformance | Entrega | JSON |
| Apontamento de produção → ProductionPerformance | Entrega | B2MML (XML) |
| Ordem de produção → ProductionSchedule | Entrega | JSON |
| ProductionSchedule B2MML → objeto plano | Coleta | Entrada: XML B2MML |
| Lote produzido → MaterialLot | Entrega | JSON |
O quarto é o caminho de volta: um ProductionSchedule que chega em B2MML e precisa virar um
objeto plano para o resto do CMS trabalhar.
Instalar
O pack é instalado pelo assistente de Packs, na tela de Aplicações — o ícone de caixas roxo na linha da Aplicação. O assistente pede três valores:
| Campo | Para que serve |
|---|---|
| Prefixo dos nomes | Entra no começo do nome de todo Transformador criado. Sugerido: a sigla da Aplicação |
| Empresa (Enterprise) | O nível Enterprise da hierarquia ISA-95 |
| Planta (Site) | O nível Site da hierarquia ISA-95 |
O prefixo não é enfeite. O nome do Transformador é a chave natural de import/export e não tem restrição de unicidade no banco: instalar o pack numa base que já tenha um Transformador de mesmo nome casaria com o registro errado.
O botão de Packs aparece em qualquer Aplicação para a qual exista pack instalável — e como este não depende de conexão nenhuma, ele está disponível em todas, inclusive numa Aplicação HTTP. No primeiro passo do assistente, um pack que exija uma Conexão Externa que a Aplicação não tem aparece apagado, com o motivo.
Depois de instalar
Cada Transformador criado traz um bloco MAPA no topo do script — é a única parte que você edita:
/* ISA-95 / B2MML - ProductionPerformance (apontamento de producao)
* O CMS entrega ao destino um objeto no formato ISA-95. So o bloco MAPA muda por cliente:
* aponte cada campo para o SEU payload de entrada. O resto ja esta no padrao.
*/
var m = JSON.parse(payload);
// ---- MAPA: a unica parte que voce edita ---------------------------------
var MAPA = {
ordem: m.ordem, // ordem de producao -> ProductionRequestID
operacao: m.operacao, // operacao / fase -> SegmentResponse.ID
equipamento: m.recurso, // maquina que executou -> EquipmentActual
inicio: m.inicio, // ISO 8601
fim: m.fim, // ISO 8601
// ...
};À esquerda está o campo ISA-95; à direita, de onde ele sai no seu payload. Nada abaixo do MAPA precisa ser tocado — é o que monta a estrutura.
Feito o mapeamento, escolha o Transformador na sua Definição de Entrega (ou de Coleta, no caso do modelo de volta), como qualquer outro. Ver Transformadores.
O modelo B2MML (XML) usa xmlToJsonRaw no caminho de entrada de propósito: número de ordem, código
de material e lote costumam ter zero à esquerda, e a conversão automática para número os
destruiria em silêncio.