How to Add a Private AI Layer to JD Edwards World on IBM i
how to add AI to JD Edwards World on IBM i
Also searched as
- JD Edwards World AI integration
- AS/400 JDE World LLM chatbot on-prem
- query JD Edwards World data from Python JDBC DB2 for i
Short answer
World runs on DB2 for i with RPG programs and no REST layer, so the AI layer reads DB2 over JDBC or ODBC using a read-only IBM i profile, replicates changes from journals to an off-box copy for heavy questions, rebuilds World's menu and file-level security in the tool server, and writes back only through the documented batch input files and programs after human approval.
Applies to: JD Edwards World A7.3 and A8.1 style releases on IBM i (AS/400, iSeries) V7R3 and later, with data libraries in DB2 for i
Build order for a World private AI layer
- 1Inventory the libraries: the data libraries that hold F-files (for example a production data library and a control library), the program library, and any custom libraries. Record which files are journaled.
- 2Create a dedicated read-only IBM i user profile with *USE authority on a short list of files and logical files, and no command line access.
- 3Connect from the tool server using the IBM Toolbox JDBC driver (JT400) or IBM i Access ODBC, with SSL enabled, and set the naming and CCSID options so character data converts correctly.
- 4Turn on journaling for the files you want to follow, and use journal-based change capture or a replication product to maintain an off-box reporting copy (PostgreSQL, SQL Server or a second Db2) for large questions.
- 5Rebuild World's security in the tool server: map each World user to allowed menus, files and company or business unit scope, and filter every tool query accordingly.
- 6Index spooled reports, PDFs and shared documents in a local vector store, and serve a local open-weight model with vLLM or Ollama.
- 7Add drafts, then approved write-back through batch input (Z) files and the standard edit programs, never by updating production F-files.
How World stores data and what is safe to read
World keeps data in DB2 for i physical and logical files. Core files share names with EnterpriseOne ancestors: F0101 (Address Book), F4101 and F4102 (Item Master and Branch), F4211 (Sales Order Detail), F4311 (Purchase Order Detail), F0911 (Account Ledger), F4111 (Item Ledger). Field names are short, uppercase and prefixed with the file, for example ABAN8 and ABALPH in F0101. Data is often stored in fixed-width packed or zoned fields, dates in a century-year-day Julian format (2026-10-21 is 126294), and file members and library lists decide which environment you are really reading.
Because the files are real DB2 tables, SQL over JDBC works well for reads. The risk is not technical but semantic: Data Dictionary rules, UDC (user defined code) tables and implied decimals determine what a column means, so the tool layer should map codes to descriptions from the UDC files and apply decimal rules per field. Read logical files (keyed views) where they exist to avoid full table scans.
-- JDBC (jdbc:as400://ibmi-host/;naming=sql;libraries=PRODDTA) SELECT ABAN8, ABALPH, ABAT1 FROM PRODDTA.F0101 WHERE ABAT1 = 'V' AND UPPER(ABALPH) LIKE UPPER(?) || '%' FETCH FIRST 25 ROWS ONLY
-- Julian date helper in the tool layer (CYYDDD) -- 126294 -> century=1 (2000s), year=26, day-of-year=294 -> 2026-10-21
Reference architecture for an IBM i estate
Keep the AI stack off the IBM i partition. The tool server and GPU nodes run on Linux servers; the only link to the IBM i is the JDBC or ODBC connection from the tool server, plus a journal-based feed. Journaling (with remote journals or a replication tool) delivers changes to a reporting copy; for small shops a nightly extract is enough. The model never receives raw connection details and never runs on the IBM i.
Documents are the other half. Spooled files, PDFs on the IFS, and shared-drive contracts are extracted, chunked and embedded locally. Each chunk carries a company or business unit label from its path or file naming, which you use as the access filter. For an air-gapped site the Linux nodes sit in the same restricted network as the IBM i, with no internet route.
Security: World is mostly menu and file level
World security is typically driven by user profiles, menu and action code security, and file or program security, with limited built-in row-level control. That means an AI layer must not assume a database account equals a business user. Use one narrow read-only profile for the connection, then enforce the end user's scope in the tool server using a mapping table you maintain and review with the World security administrator.
Start with data that is low-risk and well understood, such as item availability, open order status and vendor lookup by company. Defer sensitive areas (payroll, costing, margin) until the mapping is proven. Every query runs through a tool that adds the scope filter as a bind parameter, and acceptance testing compares answers for two users with different scope.
Write-back, sizing and honest limits
World has no REST write API. Supported write paths are the batch input (Z) files such as F0911Z1 for journal entries and the standard edit and update programs, plus any interfaces your team has already built in RPG or CL. The AI layer should draft the payload as a document for a person to review, and only then insert into the batch file for the normal edit program to validate. Never UPDATE production F-files from the tool server.
Sizing is modest: tens to a few hundred daily active users on one or two GPUs for a 30B-class model, with index size driven by documents. Honest limits: World is a mature platform and your people may already rely on queries and green-screen inquiries that are fast enough; some data is encoded in ways that need careful mapping; and if the real goal is a modern UI, migrating to EnterpriseOne may be the better investment than layering AI on World.
Try it here, free
IBM i (DB2 for i) SQL Data Extraction Script Generator
Generate DB2 for i SQL to inspect a file, count rows, and extract records with Julian date filters for JD Edwards World or other IBM i data.
Common pitfalls
- !Using a powerful IBM i profile for the connection. Use a read-only profile with explicit file authority.
- !Mixing environments by library list. Test which library holds production data before every deployment.
- !Ignoring Julian dates, implied decimals and UDC code descriptions, which produces plausible but wrong answers.
- !Assuming World has row-level security. Rebuild scope in the tool layer and test it.
- !Updating F-files directly for write-back instead of using the batch input and edit programs.
How an ERP-grounded AI assistant handles this
ERPray connects to DB2 for i with a read-only profile, decodes Julian dates, implied decimals and UDC codes, and applies a mapped scope per user. It shows the SQL behind each answer and drafts, but does not post transactions; it hands them over for approval through your normal World batch process.
Frequently asked questions
Can an LLM query JD Edwards World directly?
Not safely as free-form SQL. A model should call named tools that run parameterised reads over JDBC with a read-only profile, because World's codes, decimals and dates need translation and its security is not row-level.
Do we need to move off the IBM i first?
No. The AI stack runs on separate Linux servers and reads from the IBM i or a journal-fed copy. The ERP stays where it is, which is the point of keeping the data on site.
Is JDBC or ODBC better?
Either works. The IBM Toolbox JDBC driver is common for Java and Python bridges; IBM i Access ODBC suits other stacks. Choose based on your tool server language and make sure SSL and CCSID settings are correct.
What if our World customisations are in RPG?
Treat them as business logic you must not bypass. Read the data they produce, and for writes call or feed through the same programs and batch files rather than updating files directly.
Related
How to Add a Private AI Layer to JD Edwards EnterpriseOne On-Prem
Use the AIS Server as the front door: its data service reads tables under the calling user's JDE security, and Orchestrator wraps approved write actions. Add a read replica for heavy analytical questions, a local retrieval index over media objects, and an open-weight model on your own GPUs. Keep Security Workbench as the single source of truth for who can see what.
How-toJD Edwards table conversion: how it works and how to run one
Table conversion (TC) is the EnterpriseOne mechanism that updates a table's physical structure and converts its existing data whenever a table's definition changes in Object Librarian, most commonly running automatically as part of a package build. Simple field additions or size changes convert automatically; more complex changes such as splitting a field or transforming values need a custom conversion routine attached to the table object.
CIO briefingOn-Prem vs Cloud ERP AI for Regulated Manufacturers
For ITAR, CMMC, and export-controlled manufacturers, the deciding question is not on-prem versus cloud in general but whether controlled unclassified information (CUI) or export-controlled technical data ever leaves your boundary to reach an AI model. An on-prem or private-VPC-deployed AI layer keeps that data inside your control boundary; a vendor's shared cloud AI service usually does not, regardless of how the core ERP itself is hosted.
Error fixJDE UBE failed (status E): how to read jde.log and jdedebug.log
A UBE (batch report/program) that ends with status E in Work With Submitted Jobs tells you almost nothing on its own. The real error is in jde.log on the enterprise server, in the job's own PDF/log subdirectory (jdedebug.log if you turned on debug), and in the work directory for that job number under PrintQueue or the OS temp path.
Error fixJD Edwards: record is being used by another user (record reservation)
EnterpriseOne places a soft record reservation lock when a user opens a record for edit, tracked in the F00165 table, and releases it when the user saves, cancels, or the session ends cleanly. A stuck lock almost always means a session died abnormally (browser crash, network drop, kiosk timeout) without triggering the release, and it must be cleared by an admin, not by the original user retrying.
Error fixJD Edwards business function (BSFN) errors: how to diagnose them
A BSFN error in EnterpriseOne means either the compiled function was not found for the current package build, or the function ran and threw an internal exception (often a null business view row, an unhandled C runtime error, or a failed table I/O). The fix path is different for each, so the first step is always determining which one you are facing from jde.log.
AI for ERPAI for JD Edwards World on IBM i, without a EnterpriseOne migration
Add AI to JD Edwards World on IBM i without replatforming: read the physical files safely, ground an LLM on your data, and keep control on the box you already run.
AI for ERPAI for JD Edwards EnterpriseOne, Built on Orchestrator and AIS
Add AI to JD Edwards E1 9.2 using Orchestrator, AIS, and BSSV rather than screen-scraping. Ground a private LLM on F4211, F4111, and F0411 data.
Stuck on JD Edwards World on IBM i?
Talk to engineers who work inside JD Edwards World on IBM i every week, and who build private AI that answers these questions from your own ERP data.
Keep exploring
Free tools
- IBM i (DB2 for i) SQL Data Extraction Script GeneratorGenerate DB2 for i SQL to inspect a file, count rows, and extract records with Julian date filters for JD Edwards World or other IBM i data.
- JD Edwards World Private AI Layer Blueprint GeneratorFill in your JD Edwards World version, database, hosting and users to get a shareable architecture plan for a private, on-prem AI assistant.
- JD Edwards World AI Assistant Sizing and Value CalculatorEstimate peak load, GPUs, index size, hours saved and payback for an on-prem AI assistant on JD Edwards World.
ERP fixes and how-tos
- How to Add a Private AI Layer to JD Edwards EnterpriseOne On-PremAdd a private AI layer to JD Edwards EnterpriseOne: AIS data service, Orchestrator, Security Workbench mapping, a local model and human approval.
- How to add a private AI layer to Infor XA on-premReference architecture to add AI to Infor XA on-prem: read-only data path, retrieval, permissions, local GPUs, write-back control and rollout.
- How to Add AI to MAPICS and Infor XA on IBM i Without Leaving Your NetworkHow to give MAPICS and Infor XA on IBM i a private AI assistant: DB2 for i access, journal-based change capture, local GPU model, authority mapping and rollout.
Runs with your ERP
- RF-SMART Manufacturing Data Collection for JD Edwards WorldShop floor barcode data collection for JD Edwards World with RF-SMART: what it reports, how it connects, setup steps, pitfalls and a private AI layer on top.
- Vertex Tax Connectors with JD Edwards EnterpriseOneHow Vertex calculates sales, use and VAT tax for JD Edwards EnterpriseOne and World, plus Oracle EBS and Cloud ERP: integration model, flows, setup, pitfalls.
- RF-SMART and JD Edwards EnterpriseOne: Barcode Scanning and Mobile WMSHow RF-SMART connects barcode scanning to JD Edwards EnterpriseOne and World: integration method, data flows, setup steps, pitfalls and where private AI helps.
AI on your ERP
- AI for JD Edwards World on IBM i, without a EnterpriseOne migrationAdd AI to JD Edwards World on IBM i without replatforming: read the physical files safely, ground an LLM on your data, and keep control on the box you already run.
- AI for JD Edwards Inventory Management and Shop Floor ManufacturingAI on JD Edwards EnterpriseOne inventory and manufacturing: item ledger, work orders, MRP messages and cost variances, answered in plain English on your own servers.
Integrations
- How to add AI agents to JD Edwards World on IBM iHow to add AI agents to JD Edwards World on IBM i: a read-first tool layer over DB2 for i, human approval before any write, and a fully on-prem model option.
- How to add an AI chatbot to JD Edwards WorldAdd an AI chatbot to JD Edwards World on IBM i: grounded in DB2 for i data, role-aware, web or Teams front end, and fully on-prem with open models.