Pular para o conteúdo

Desenvolvimento no JD Edwards EnterpriseOne: UBE, BSFN em C e NER, e customização que não quebra a atualização

Este guia é para gestores de TI e desenvolvedores que mantêm ou evoluem o JD Edwards EnterpriseOne e precisam decidir como construir cada objeto. Ao final, o leitor sabe quando usar um UBE, uma business function em C ou em NER, como customizar sem perder a capacidade de aplicar atualizações e o que conferir antes de levar um objeto para produção.

O que é um UBE e quando usar

O UBE (Universal Batch Engine) é o objeto do EnterpriseOne para relatórios e processamento em lote, construído no Report Design Aid (RDA). É a escolha certa quando o trabalho percorre muitos registros sem interação do usuário: atualizações em massa, cargas, conferências e documentos impressos.

Cada UBE roda por meio de versões. A versão guarda a seleção de dados, a sequência de dados e os valores das opções de processamento, o que permite que um mesmo objeto atenda cenários diferentes sem duplicar código.

Para documentos com layout elaborado, como notas, pedidos e boletos, o caminho é o BI Publisher integrado ao EnterpriseOne. O UBE gera a saída em XML, o modelo é registrado no repositório de objetos (P95600) e uma definição de relatório (P95620) associa o UBE ao modelo. A própria Oracle orienta não usar o BI Publisher para relatórios simples de erro nem para UBEs de atualização que não produzem saída.

Business Functions: C ou NER

Business functions (BSFNs) encapsulam regras de negócio reutilizáveis por aplicações, UBEs e outras funções. Existem dois tipos: NER (Named Event Rules), escritas na linguagem de event rules do próprio EnterpriseOne, e BSFN em C, escritas diretamente em linguagem C com as APIs do sistema. Na compilação, a NER também é convertida em código C, e as duas são construídas pelo Business Function Builder.

Critérios técnicos de escolha

Aplicações interativas e eventos

As aplicações interativas são construídas no Form Design Aid (FDA) e se comportam por meio de event rules ligadas a eventos de formulário, de grade e de controle. Antes de alterar uma aplicação, vale conferir se a necessidade cabe em uma versão, em uma opção de processamento ou em uma personalização sem código.

Em ambos os casos, regra de negócio relevante deve ficar em business function, e não espalhada nos eventos da tela. Assim a mesma regra serve à aplicação, ao UBE e a integrações.

Customizar sem quebrar a atualização

A capacidade de aplicar ESUs e novas tools releases sem retrabalho depende de decisões tomadas no primeiro dia de desenvolvimento.

Integrações com outros sistemas

O EnterpriseOne tem um modelo próprio de interoperabilidade baseado em tabelas de interface, chamadas tabelas Z, cujo nome segue a tabela de aplicação com o sufixo Z1 (por exemplo, F4211Z1).

Quando não existe tabela Z para o caso, a integração pode ser construída com tabelas de interface próprias na faixa do cliente e UBEs de carga que chamam as business functions mestras do sistema, em vez de gravar direto nas tabelas. Assim valem as mesmas validações da tela.

Desempenho de relatórios e rotinas

Checklist antes de levar um objeto para produção

Perguntas frequentes

Qual a diferença entre um UBE e uma versão?

O UBE é o programa em lote; a versão é uma configuração de execução dele, com seleção de dados, sequência e opções de processamento próprias. Um único UBE pode ter várias versões.

Quando escrever uma business function em C em vez de NER?

Quando a lógica precisa de cache em memória, de APIs que as event rules não oferecem ou de controle fino sobre estruturas e desempenho. Para validações e cálculos comuns, a NER é a recomendação e simplifica a manutenção.

Por que usar os códigos de sistema 55 a 59?

Porque a Oracle reserva essa faixa para objetos do cliente. Objetos nela não são sobrepostos por objetos novos entregues em ESUs e atualizações, o que reduz o retrabalho.

É melhor alterar a aplicação padrão ou criar uma nova?

Alterações pequenas e pontuais podem ficar na aplicação padrão, aceitando o retrofit nas atualizações. Formulários, fluxos e dados próprios devem ficar em uma aplicação nova na faixa do cliente.

O que são as tabelas Z?

São tabelas de interface do EnterpriseOne, com sufixo Z1, usadas para receber e enviar transações de e para outros sistemas, com validação em lote antes de o dado chegar às tabelas de aplicação.

Como reduzir o tempo de um relatório lento?

Alinhe seleção e sequência de dados a um índice, filtre no banco em vez de linha a linha, evite leituras repetidas do mesmo registro e rode o processamento no servidor.

Desenvolvimento JD Edwards com a Uai Hub

A Uai Hub desenvolve no JD Edwards EnterpriseOne desde 2011: UBEs, business functions em C e NER, aplicações interativas, integrações e ajustes de desempenho, sempre dentro do padrão do sistema e com os objetos controlados no OMW. Veja como funciona em desenvolvimento JD Edwards ou fale com a gente.