I spent 16 years at Oracle — 10 in Singapore, 6 in Colorado Springs — as a Senior Principal Technical Support Engineer (IC5) specializing in JD Edwards EnterpriseOne. During that time, I created thousands of knowledge documents. The ones listed on this page are a curated selection covering the foundational architecture and practical troubleshooting of JDE across Distribution, Manufacturing, Financials, and HR/Payroll.
Every document here was researched, analyzed, and tested. Many remain reference material across Oracle's global support community today.
apex erp — Live Demo
A fully functional ERP solution built on the JD Edwards data model using Oracle APEX. Covers the core business cycle: Inventory, Sales Orders, Purchase Orders, GL, AR, AP.
Sections marked ORIGINAL WORK are documents I solely authored. Application module documents include both my own work and collaborative contributions with Oracle's global support engineers. All Oracle-related documents are proprietary knowledge from Oracle.
JDE Architecture & Internals Original Work
How JDE works at its core — caching, Master Business Functions, transaction processing, specifications, and the layered architecture.
- Caching in EnterpriseOneExtensive test and research on system-level and application-level caching mechanisms.
- Master Business Function (MBF) in EnterpriseOneBegin Doc, Edit Line, Edit Doc, End Doc — the core MBF architecture with cache and transaction processing.
- Transaction, Transaction Processing, Commit, and RollbackHow TP relates to MBF, cache, and data integrity across tables.
- Deadlock in EnterpriseOneRacing conditions, TP boundaries, JDENETTimeout, and custom code considerations.
- JDEDB_COMMIT_MANUAL and TP BoundariesAuto Commit configuration for tables requiring access outside Transaction Processing.
- Specification in EnterpriseOneHow C functions and specifications determine user interfaces and layered architecture.
- Architectural View of EnterpriseOne
- Server Map — SVM920
- Business Function Naming Convention
- Functions in JAS
- Exception/Error Code in JAS (COSE#9999)
- Memory Violation Part I
- Memory Violation Part II
- Interoperability Quick Reference Guide
- Memory Allocation Failure
- Logging Foundation
Development Reference Original Work
APIs, data types, debugging techniques, and practical building blocks for JDE development.
- Representation of Paths in EnterpriseOne
- Asynchronous Business Function Error
- Stored Procedure and Deadlock in E1
- Interop and R00460 in E1
- Interop Functions for Interface
- Interop Tab for Export in E1
- Language Preference in EnterpriseOne
- Case Study — Error ORA-00001 (Unique Constraint Violated)
- XERCES XML Wrapper Functions for XML Creation
- JDE API Essentials Part I — Math_Numeric
- Dynamic Database Caching in EnterpriseOne
- Record Reservation FunctionsHow record reservation works with TP and batch control.
- Record Reservation in Interactive Application
- Record Reservation in Batch
- RUN0000066/RUN0000067 — ProcOpt Data Size Mismatch
- Runtime Messages in jde.log from Interactive Applications
- RUN0000044 — ProcOpt Data Size Mismatch Clarification
- Troubleshooting RUN0000050 in Interactive
- Troubleshooting RUN0000050 in Batch
- Grid Collapse in HTML
- Convert Business Data for QTYINV Display Decimal Change
- UBE: Troubleshoot Error Messages in Work Center
- Add Leading Zero and Comma for Numeric Values
- Edit Codes FAQ (UDC 98/EC)
- Create Batch Application to End Subsystem Jobs
- Application Level Business Functions Built into JDEKRNL.dll
- Sum/Aggregate Quantity or Amount using JDE API
- Get MAX/Aggregate using JDE API
- SELECT DISTINCT, SELECT ALL, COUNT(*) through JDE APIs
- Write LIKE Key Word SQL through a Business Function
- Write a C Business Function to Return a Special Character
- Business Function B0100067 — Formatted Address With Who's Who
- jdeCallObject API and Error COB0000*
- Infinite Loop Detection in Application ER
- Alpha Name and Search Routine for Asian Language
- Dump Memory in JDEDEBUG.log for Debugging
- jdeFopen() API for Text Files
- Flat File Creation Procedure for R47002C
- Combine Multiple Input Flat Files for EDI
- Case Study — Error CAC0001017 in jde.log
- Resolve CLI0111E / SQL0406 / OS400QL016 Errors
- PriceCalculateSingle (B4500460) Wrapper
- Implementing TP Using System Function in Batch
- Possible Causes of Memory Violation in P4314
- Case Study — UBE Error "Unable to initialize"
- MathDivide API Wrong Values in Linux/Unix
- Troubleshooting JDB9900600 — Maximum Exceeded
Application Customization Original Work
Guides for extending and customizing major JDE applications — add-on routines, custom development patterns, and practical how-to's.
- Sales Order Detail Cache (F42UI11)
- Sales Order Entry (P4210)
- Sales Order Power Form (P42101)
- Purchase Order Entry (P4310)
- PO Receipt (P4312)
- Voucher Match (P4314)
- Work Order Header (P48013)
- Prevent Deadlock in Copied App with TP
- Split Sales Order Line through AdvancedSODetailLineSplit
- Implement Flexible Account in Custom Routine
- Check Existence, Copy, Delete or Rename a Flat File
- Output Record Count in Text File through Table Conversion
- Custom Versions Not Using Processing Options (P4210)
- Common Error in R47002C Flat File Conversion
- Rounding Up to Nearest Hundred Value
- Scheduler Job to Submit UBE Every 5 Minutes
- Inventory Commitment Outside EnterpriseOne
- Convert Numeric to String without Trailing Zeros
- Present Value Computation Like Excel
- Bypass DD Validation using jdeDDValidation
- Interoperability JDEIL and Inventory Transaction
- jdeSetGBRErrorSubText Implementation
- Implement Error with Text Substitution
- Import Text File with UTime Data Type
- Header Files for Processing Option Template typedef
- Runtime Data Selection using B4309570/B4302450
- Table I/O and JDE Database APIs Relationship
- Tips and Tricks in Creating Header/Detail Form
- Build Search Text for Media Object Text
- Upload Multiple UOM Data with CNV1 into F41002
- Populate Columns in F4111 through P4116
- Batch Base Price Creation (F4106)
- Record User Specific Times through P42101
- Fields Available in F4111
- Override Secondary Quantity in P4210 Before Ship Confirm
- Set Selection System Function for OR Condition
- Database Output versus Table Conversion
- Calculate Time Difference Between Two Input Times
- Display Decimal 4 But Only 2 Shows on Report
- Filter Sales Order Using Customer Item Number (CITM)
- Parse Customer/Supplier Item Number Using X4101
- Turn off Flex Accounting in R4105Z1I
- Supplemental Data (P00091/P00092)
- Address Book Parent Child Relationships
- Address Book Data Privacy (P01138)
- Address Book Data Privacy FAQ
- Display Decimals Update for QTYINV and QNTY
- Deploying Data Dictionary Changes
- Data Dictionary FAQ
- Impact of Changing Standard DD Item Size
- Archive and Purging within EnterpriseOne
- Overview of EnterpriseOne Data Dictionary
BI Publisher & Email Delivery
- Custom Fonts with Embedded Publisher
- Dynamic Subject and Body for E-mail with BI Publisher
- Change E-Mail Delivery Text
- Data Driven E-Mail with Embedded BI Publisher
- BI Publisher Delivery Options for Report Definitions
- Workflow Setup / External E-Mail for Notifications
- Sender's E-Mail Address on External E-Mails
- Defining More than One BI Publisher Delivery Option
Inventory Management
How to debug, troubleshoot, and understand inventory transactions, costs, locations, and lots.
- Check On Hand Quantity in EnterpriseOne
- Average Cost Update — Troubleshooting Guide
- Inventory Transaction MBF — XT4111Z1
- Cost and Price Update using XT4111Z1
Show all Inventory documents
- Troubleshoot F41021WF in Inventory Transaction
- Item Location and Lot Creation on the Fly
- Audit Item Cost (F4105)
- Distribution and Manufacturing Constants
- Location Validation and Lot Creation
- Record Zero Balance Adjustment
- Vertical Features UDC 40/VF
- Troubleshoot R41501 and GPF1 Inventory Flag
- R41543 and R41500 Comparison
- UOM Conversion Factor
- Interop Tables F4101Z1/F4101Z1A and Master Tables
- Posted Code (IPCD) and G/L Date in Cardex (F4111)
- Cannot Add Primary Location — Workaround
- R41548 Case Study with Huge Data from F4111
- Location Master Purge (F4100)
- Error 4080 — Branch Plant and Item Inconsistent
- Check Item Price in Inventory Transactions
- How R4101P Validates to Delete Item
- How F0911.GLU (Units) Gets Written
- Debug Batch Header Issue in Distribution
- System Assigned Lot Number Format
- Document Type Master (F40039) in Distribution
- Case Study — Slow Performance in P4116
- Why R41540 Contains BF (Balance Forward)
- P41024 Disallows Deletion for Secondary Location
- P4114 Flex Account Error — Case Study
- Case Study — Error 185D Followed by 124K
- Error 084M & 2067 Adding Item Branch
- Applications Causing Negative On-Hand Quantity
- Duplicate Lot Numbers — Case Study
- P41013 Clarification
- P41500 Unable To Unreconcile Transactions
- Performance Enhancement in Inventory Transaction
- R4102P and Tables Related per PO Value
- Issuing Expired Inventory Errors
- Bug Implication — Changes Foreign Key in F4111.JELN
- UNSPSC, P40241, and RSS
- JDB_SelectKeyedForUpdate in Next Numbering (X0010)
Manufacturing
MRP, work orders, product costing, shop floor, and manufacturing process troubleshooting.
- Supply & Demand (P4021) Technical Document
- MRP Troubleshooting Guide
- Work Order Workflow — Technical Troubleshooting Guide
- Net Change Flag (F4102.MRPC)
Show all Manufacturing documents
- Production Costing (R30812) Troubleshooting Guide
- Configurator Upgrade — Technical Troubleshooting
- MRP Message — Integrity ST/OT/WO
- Forward/Backward Schedule, Leadtime, Shrinkage
- Transaction Processing in E1 Manufacturing
- P3002 As of Date Shows 1 Day Behind
- MRP Falls into Zombie for a Certain Item
- Special Handling Code 'O' — Stocking Type
- MRP Performance and Data Purge
- Outbound Interoperability for Shop Floor
- R00460 Work Order Z File Exports (JDEWO)
- R31804 Error Code 'A224' — Case Study
- Product Costing Best Practice Using Standard Cost
- Troubleshooting JDB9900600 in P3111
- Work Order from W Line Type Sales Order
- P4021 Causes CO Kernel Crash
- Error 34401B — ValidateProductionNumber
Procure to Pay
Purchase orders, receipts, voucher match, blanket orders, and procurement troubleshooting.
Show all Procurement documents
- Cache/Work Files in Procurement
- R43900 Technical Troubleshooting Guide
- R43500 and Language Override — Case Study
- Commit Failed Error in PY
- Understanding Discount Factor (DSPR)
- Fetch From Cache Failed (078N) in P4314
- Error 0252 Invalid Extended Price
- Grid Collapse for Chinese in P4314
- Troubleshooting Duplicate Receipts
- Partial Reversal through P43250
- Blanket Order Release and Cancel Date
- P4310 Authorization Error — Case Study
- Commit Fail Error with RTRECOUT in P4312
- JP430000 processPurchaseOrderV2 Reference
- P43250 Slow After Upgrading to 9.2
- Columns Mapped in PO Generation from SO
- Debug P38200W Agreement Selection Window
- Debug Error in Running R47071
- Close Open Purchase Order (N4301900)
- Shipment Number Disabled in P4310 HTML
- R47071 Error 861S Called by R47031
- Default Child BU in eReq Entry P43E10
- Auto Approval Not Working in 9.1.4.x Tools
Order to Cash
Sales orders, pricing, ship confirm, invoicing, and order management troubleshooting.
Show all Sales documents
- Address Invalid Error Exiting from ALKY
- Data Selection of R42950 Batch Price/Cost Update
- Check Price and Price History FAQ
- Work Files (F42UI01/F42UI02/F42UI11/F42UI12)
- Async BSFN Error During Confirm Shipment
- Updating Amount Columns by Line of Business
- Cancel Order Getting Async BSFN Error
- Open Cursor for Cache F42UI11 Failed (078M)
- Mailing Address in Invoice R42565
- Debug Flex Accounting in Sales Update
- B4504590 Pricing Datamap Function
- Sales Order Edit Line SOEF String Functions
- Maintain Order Integrity SD/OD and ST/OT
- Split Sales Order and Line Number Assignment
- Web Client Exception in P4210 After Tools Upgrade
- P4210 Transaction Error for First Order
- Troubleshoot P45550
- R47131 Memory Violation — Missing Settings
- Parameters in Sales Order MBF B4200310/B4200311
- Pricing Methods in JP420000 and JP410000
- R42520 Puts Order To Back Order — Case Study
- Debug B4205100 Sales Order ALPH String Functions
- Why P4210 Fails To Save Data with No Error FAQ
- Missing Price History (F4074) — Case Study
- Troubleshoot Header To Detail Option
- SHR and CRP Combination in RMA
- 017F Fetch Unsuccessful in R42800
- Sales Order Hold FAQ (P43070)
- Debug P40296 Flex Rule Definition
- JP420000 and Prepayment
- R42520 Sets LTTR = 982 — Case Study
- P42101 and P43070 Cause Deadlock on F4209
- R47011 Memory Violation
- Populate Sales Order Detail Tag File (F49211)
- P400511 Error 018A on UDC 42I/OL
- R47011 Sets F4942.LNID = 0 with Transportation
- Subsystem Print Invoice FAQ
- Basic and Advanced Preference Profile Setup
HR & Payroll
Human Capital Management, payroll processing, employee master, PDBAs, and workflow.
Show all HR & Payroll documents
- Employee History Tracking FAQ
- Job History Tracking (P050421)
- R07500 Update Tax Area Table
- Human Resources Workflow FAQ
- Employee Termination Workflow FAQ
- Mail Merge FAQs
- PDBAs (P059116)
- Setup of Leave Balance Rollover DBAs
- DBA Table Method
- Wage Attachments (P07107)
- US Employee Entry (P0801)
- Adding Payroll Related Employee Information
- Nondiscrimination Testing
- Employee Quick Hire (P060116Q)
- Company Options Setup (P05001C)
- Set Up and Process A/P Vouchers
- HCM Business Unit Constants (P059051A)
- HRM Common Settings (P05004)
- Employee Self-Service Setup Checklist
- Overview of Adding a Job (P08001)
- Job Evaluation & Pay Range Formulas
- Pre-Payroll Process (R07200/P07210)
- Common Payroll Tables
Financial
General Accounting, Accounts Receivable, Accounts Payable — setup, processing, troubleshooting, and integrity reports.
Technical & Debugging
- Batch Control Processing
- XX0901 Analysis
- Tips and Tricks in FRW
- F986113 Subsystem Job Master Table
- JinShui in AR (China Localization)
- Taiwan GUI/VAT Localization
- GUI Entry Generation Error P75T004
- Global Location Number (GLN)
- Case Study — R09705 Performance
- Usage of F0411 Columns RP1-3, AC01-10, URC1
- Base Currency Conversion
- ConvertNumericValueToWord Troubleshooting
- Billed Paid Netting (N1500012)
Show more Financial Technical documents
- B0900114 Retrieve F0901 Info Without Cache
- Text File Processor R007102 Purge
- Drilldown Manipulation in Financial Report
- P0030G Updating Records Incorrectly
- Troubleshooting Address Book Errors (P01012)
- P09210A Performance Issue
- P512000 Job Status Different Row Colors
- NetManager UDC Data Error in P5214
- AR Creation in Contract Billing Error
- Posting Edit Code 'M' in Inventory/Sales/Procurement
- Fixed Asset Report Writer FAQ
- Change Displayed Label on Unit Search P15217
- P1207 Web Client Exception — Invalid Row Number
- Invoice Posting R09801 AAI Missing (023Q)
- X00500C Convert Numeric Value to Words FAQ
- Error 016K in Asset Split P12106
- Row Security in P51F100
Accounting General
Show General Accounting documents
- Tax in JDE Financial
- Fixed Asset AAIs
- AP AAIs
- AR AAIs
- GA AAIs
- AR Foundation
- GA Constants (P0000)
- Ledger Type (P0025)
- Payment Terms
- Deduction
- Draft
- Business Unit FAQ
- Chart of Account (COA)
- Chart of Account FAQ
- Subledgers in GA
- Global Updates for Org and Account Revisions
- Global Update to Change Account
- Change Company Number for BU
- Update Model/Consolidated Field
- Update Category Codes F0101>F0006
- Activating Currency in Non-Currency Environment
- Setting up Address Book
- Address Book FAQ
- Intercompany Settlement Methods (P0000)
- Companies in Balance Integrity Report (R097001)
- Intercompany Accounts in Balance (R097011)
- Foreign Currency Account Balances (R09707)
- Balance Restatement Method (R11414A)
- Computations Balance Setup (P1114)
- Balance Restatement Method FAQ
- Account Balance Purge (R09912)
- Post Balances by Currency
- Detailed Currency Restatement (R11411)
- Annual Close Report FAQ (R098201)
- Repost Account Ledger Integrity (R099102)
- Monetary Account Valuation FAQ (R09415)
- Repost Integrity FAQ (R099102)
- Account Balance to Transaction Integrity (R09705)
- Batch to Detail Integrity (R007031)
- Batches Out of Balance (R007032)
- Unposted Batches Integrity (R007011)
- Overview of GA Integrity Reports
- Transactions to Batch Headers Integrity (R007021)
- Account Ledger Purge (R09911)
- Account Ledger Summarization (R09811)
- Annual Close Report (R098201)
- Account Balance By Currency Valuation (R09415)
- Company by Batch Out of Balance (R09706)
- Batch Approval and Post Security FAQ
- Batch Approval and Post Security Setup
- Company Names and Numbers FAQ
- User Define Codes in AP Setup (P0004A)
- Next Numbers in AP Setup
- Document Company (KCO) in F0911 for AP/AR
- UBEs for Single Threaded Job Queue
Accounts Receivable
Show AR documents
- Create, Delete, Void Receipts (P03B102)
- Enter and Process Standard Invoices in AR
- Invoice Post Process in AR (R09801)
- Troubleshooting AR AAI Errors
- AR Overview and Setup
- Set Up Automatic Cash Receipts
- Process Auto Cash and Troubleshooting
- Process Negative Receipts Using R03B50
- Process and Troubleshoot Delinquency Notices
- Set Up Delinquency Notices and Fees
- Purge Delinquency Fees
- Credit Analysis Refresh (R03B525)
- AR Constants and Line of Business Setup
- Credit Analysis Refresh
- Account Balance Inquiry (P03B218)
- Workflow Messages for Credit (CREDLIMIT)
- Date Sensitive Customer Master Category Codes
- AR Setup (P0002, P0004A, P0012)
- AR Next Numbers by Company
- Void/Unmatch AR Invoice from Reconciled Receipt
- Standard Receipts and Post Process
- AR Cash Receipt Post Process (R09801)
- Cash Receipts Review and Post
Accounts Payable
Show AP documents
- AP Setup Overview
- AP Voucher Entry Methods
- Automatic Payment Processing Overview
- Pay When Paid (P03B470/R03B470)
- Standard Voucher Entry Issues (P0411)
- Standard Voucher Entry (P0411)
- Set Up Supplier Withholding (R04580)
- Logged Vouchers FAQ
- Troubleshooting Logged Vouchers
- Troubleshooting Multi-Voucher/Multi-Supplier
- Store and Forward Voucher Processing
- Voucher Batch Processing Setup and Purge
- Voucher Batch Processing Errors
- Non-PO AP Voucher Post Process
- Non-Currency Voucher Post Failure
- Automatic Payment Control Groups
- Understanding the Post Process
- Troubleshooting Duplicate Payment Batches
- Troubleshooting GL Bank Account Setup
- Payee Control Setup (X0450/P0450)
- Payment Instrument and Print Program Errors
- Payment Terms and Advanced Terms FAQ
- Troubleshooting Next Numbers in AP
- Troubleshooting AAIs in AP
- Payee Control (X0450/P0450)
- Cash Requirement Report (R04431)
- Customer/Supplier Balance Report
- Create Auto Payment Control Groups (R04570)
- Multi Currency Automatic Payments
- Monetary Bank Account Validation
- Troubleshooting Payment Control Groups
- Payment Groups FAQ
- Printing Automatic Payments FAQ
- Troubleshooting Printing Auto Payments
- Debit Statements in Auto Payments FAQ
- EDI Payments (820) Setup
- AP Payment Post Process
- AP Payment Post Failure (K or M Batch)
- Delete, Void, Unreconcile Payments
- Delete/Void/Unreconcile Payments FAQ
- Text File Processor FAQ (P007101)
- Positive Pay Setup (R04586)
- Flat File Encoding Configuration P93081
- Multi-Currency Payment Errors
- Multi Currency Auto and Manual Payments
- EFT FAQ
- E-mail AP Payment PDFs to Suppliers
- P0457D File Missing Carriage Returns
- Create EFT Payments for PPD/CTX/IAT
Academic Research
M.S. Computer Science coursework at Colorado Technical University — enterprise system decomposition, architecture, and project management. These documents are original and fully belong to me. Company names are fictional.
- Software Design — Decomposition of ERP
- Light ERP in the Cloud for SME
- Software Engineering Process Improvement
- Software Architecture Strategy
- Systems Engineering Management Plan
- Digital Forensics
- Operating System Upgrade Strategy
- Computer Security Foundation
- Requirement Engineering
- Computer Network Upgrade Proposal
- Database Systems
- Design and Analysis of Algorithm
Continuous Learning
Certifications, courses, and professional development.
Specializations
Individual Courses (Coursera, Udemy)
- HTML, CSS, and Javascript for Web Developers (Johns Hopkins)
- Networking in GCP: Hybrid Connectivity (Google Cloud)
- Networking in GCP: Defining Networks (Google Cloud)
- GCP Fundamentals: Core Infrastructure
- Version Control with Git (Atlassian)
- Building Web Applications in PHP (Michigan)
- Python Programming Essentials (Rice)
- Python Data Visualization (Rice)
- Python Data Analysis (Rice)
- Getting Started with Python (Michigan)
- Excel Skills for Business (Macquarie)
- Python Data Structures (Michigan)
- Python Data Representations (Rice)
- Capstone: Data with Python (Michigan)
- Using Databases with Python (Michigan)
- Using Python to Access Web Data (Michigan)
LinkedIn Learning — AI & Machine Learning
- Deep Learning: Getting Started
- NLP with Python for Machine Learning
- Generative AI: Working with Large Language Models
- Transformers: Text Classification Using BERT
- Advanced NLP with Python
- Deep Learning Foundations: NLP with TensorFlow
- Applied Machine Learning: Algorithms
- AI Foundations: Machine Learning
- Introduction to Large Language Models
- TensorFlow: Working with NLP
- Natural Language Processing with PyTorch
- Hands-On PyTorch Machine Learning
- Building Computer Vision Applications with Python
- Reinforcement Learning Foundations
- Prompt Engineering: How to Talk to the AIs
- LLM Foundations: Vector Databases for RAG
- Building LLM-Powered Apps
- RAG vs Fine-Tuning: LLM Learning Techniques
- LangChain vs LlamaIndex: Main Differences
- Building AI Agents with AutoGen
- Fundamentals of Agentic AI
- Transforming Business with AI Agents
LinkedIn Learning — Architecture, Design & Leadership
- Software Architecture Foundations
- Enterprise Architecture in Practice
- Introduction to IT Architecture
- Software Architecture: Developer to Architect
- Learning Design Thinking
- UX Deep Dive: Analyzing Data
- Agile Foundations
- Digital Transformation Foundations
- Creating a Culture of Continuous Improvement
- Developing Leadership Presence
- Communication Skills for Modern Management
- Transitioning from Manager to Leader