
Em mais de duas décadas resgatando bases de código JDESistema de gestão empresarial (ERP) da Oracle usado para gerenciar processos de negócios. customizadas, a falha arquitetural mais persistente que vejo é tratar versões de Aplicações Interativas (APPL)Programas do JD Edwards com os quais os usuários interagem através de telas e formulários. como versões de Aplicações em Lote (UBE)Motor do JD Edwards responsável por executar processos em lote, como relatórios e processamentos massivos de dados.. Enquanto uma versão de UBE contém especificações independentes de seleção de dados e sequenciamento, uma versão de APPL é simplesmente um ponteiro para valores de Processing OptionParâmetros de configuração que permitem alterar o comportamento de um programa sem modificar o código-fonte. armazenados na tabela F983051Tabela do banco de dados que armazena a lista de versões e configurações de programas.. O mal-entendido sobre essa distinção leva os desenvolvedores a fixarem nomes de versões (hardcodingPrática de escrever valores fixos diretamente no código, o que dificulta mudanças e atualizações futuras.) dentro das Event RulesLinguagem de programação proprietária do JD Edwards usada para criar lógica de negócios., o que gera forks no código e infla o impacto nos seus upgrades.

Ao executar um ER CompareFerramenta do JD Edwards usada para comparar e mesclar regras de evento entre diferentes versões de um objeto durante upgrades. em um P4210 ou P4310 altamente modificado durante um upgrade da versão 9.1 para a 9.2, o custo de maus hábitos de desenvolvimento torna-se imediatamente claro. Variáveis crípticas como evt_szName_WD01 ou Event Rules (ER)Linguagem de programação visual proprietária do JD Edwards usada para criar lógica de negócios em aplicações e relatórios. não documentadas transformam um retrofitProcesso de reaplicar customizações manuais em uma nova versão do software após uma atualização do sistema. padrão de poucas horas em um ciclo de depuração de vários dias. A ferramenta de merge visual falha em alinhar a lógica quando as variáveis customizadas carecem de contexto estrutural, levando a corrupções silenciosas de memória em tempo de execução ou interconexões de formulários quebradas.

Quando um grid customizado em uma aplicação como a P554210 leva mais de dez segundos para carregar 500 registros, as equipes de basis imediatamente culpam os índices do banco de dados ou o tamanho do heap da JVM do WebLogic. Na grande maioria das auditorias de performance realizadas no EnterpriseOne 9.2, a infraestrutura está perfeitamente bem; o gargalo são as Event Rules (ER) síncronas executadas no servidor JAS para cada linha. Alcançar tempos de resposta abaixo de um segundo exige parar de apontar o dedo para a infraestrutura e focar na otimização de performance de grid em APPL JD Edwards para grandes conjuntos de dados dentro do próprio motor de runtime do JDE.

Em uma customização padrão de pedidos de vendas P4210Aplicação padrão do JD Edwards para entrada e processamento de pedidos de vendas. com dezenas de linhas de grid, um loop ingênuo "Get Max Grid Rows" durante a validação pode facilmente adicionar quase um segundo de latência de UIUser Interface, ou Interface de Usuário, refere-se aos elementos visuais com os quais o operador interage. por transação. Os desenvolvedores costumam assumir que o runtime do EnterpriseOneA versão atual e baseada em web do software ERP JD Edwards da Oracle. otimiza esses loops internamente, mas ele realmente avalia cada célula sequencialmente, prejudicando o desempenho interativo nos servidores HTML. Este guia de exemplo de desenvolvimento APPLTermo técnico para uma aplicação interativa dentro do ambiente de desenvolvimento do JD Edwards. JD Edwards sobre validação de linha de grid mostra como focar apenas em linhas modificadas, reduzindo a sobrecarga de validação em mais de 80%.
A criação de uma aplicação JD Edwards (JDE) requer um profundo entendimento deste sistema de Planejamento de Recursos Empresariais (ERP) e de suas funcionalidades. O JDE é conhecido por ser altamente personalizável e extensível por meio da linguagem de programação JDE C BSFN (Business Function) ou por meio do uso de ferramentas como o Orchestrator. Abaixo está um exemplo de como você pode começar a escrever uma aplicação personalizada no JD Edwards usando o JDE C BSFN:

Em um ambiente JDEJD Edwards EnterpriseOne, um sistema de gestão empresarial (ERP) da Oracle. corporativo típico, uma única tabela customizada como a F55101 frequentemente tem sua lógica de Select, Fetch, Insert e Update duplicada em 15 a 20 APPLsAplicações interativas do JD Edwards com as quais os usuários finais interagem através de telas. e UBEsUniversal Batch Engine; processos executados em lote no servidor, como relatórios ou processamentos massivos de dados. diferentes. Essa abordagem de copiar e colar Event Rules (ER)Linguagem de programação visual proprietária do JD Edwards usada para criar lógica de negócios nos objetos. cria um fardo de manutenção massivo; uma simples modificação no esquema do banco de dados — como adicionar um campo de código de categoria de 10 caracteres — força os desenvolvedores a refatorar e testar manualmente dezenas de objetos individuais. Adotar um padrão unificado de Table IOOperações de entrada e saída de dados, como leitura, inserção ou atualização em tabelas do banco de dados. em NERNamed Event Rule; um tipo de função de negócio que permite reutilizar lógica de programação em vários objetos. no JDE para evitar blocos de ER repetidos consolida essas operações de banco de dados em uma única Named Event Rule orientada por ação.

Em ambientes JD Edwards 9.2Sistema de gestão empresarial (ERP) da Oracle para grandes empresas. maduros, rotineiramente encontro a exata mesma lógica de validação duplicada em uma dúzia ou mais de pontos de entrada diferentes, desde power formsTelas complexas que permitem gerenciar dados de várias tabelas simultaneamente. customizados da P42101 até UBEsUniversal Batch Engine: processos automáticos que rodam em segundo plano para tratar grandes volumes de dados. de entrada de EDIElectronic Data Interchange: padrão para troca eletrônica de documentos comerciais entre empresas. automatizados. Essa fragmentação ocorre porque os desenvolvedores costumam colocar a validação diretamente nos event rulesConjunto de instruções lógicas que definem o comportamento e as regras de negócio no sistema JDE. de Control Exited/Changed de uma aplicação interativa (APPLAbreviação para Aplicação Interativa, as telas do sistema usadas pelos usuários finais.), tornando-a inacessível para processos batchProcessamento em lote executado em segundo plano, sem intervenção direta do usuário.. Para eliminar esse débito técnico, você deve desacoplar a execução da validação tanto da interface do usuário quanto dos runtimes de batch, implementando um padrão de validação JDE NERNamed Event Rule: uma função de lógica reutilizável criada sem necessidade de programação em C. reutilizável para chamadores APPL e UBE.
Página 5 de 13