How-toOracle JD Edwards EnterpriseOneSales Order Management / Advanced Pricing

JD Edwards Advanced Pricing: Adjustment Types, Schedules and Definitions Explained

Question
jd edwards advanced pricing

Also searched as

  • jde advanced pricing setup
  • jde price adjustment schedule
  • jde price adjustment types and definitions

Short answer

JD Edwards Advanced Pricing computes a sales price by walking a price adjustment schedule: an ordered list of adjustment names, each tied to an adjustment type that defines how the price is found (basis, level, preference hierarchy) and a definition that supplies the actual discounts or prices. Customers and items are linked to the schedule through price groups.

Applies to: JD Edwards EnterpriseOne 9.x Sales Order Management with Advanced Pricing enabled. Menu names vary slightly by release.

Typical setup order

  1. 1Turn on Advanced Pricing in the Sales Order Management constants and the order type or line type rules where pricing should apply.
  2. 2Define the preference hierarchies and pricing groups you need, for example customer group and item group, so prices can target categories instead of single records.
  3. 3Create price adjustment types, which control how the adjustment is calculated and which preference hierarchy it uses.
  4. 4Create price adjustment definitions that specify the calculation basis, such as a unit price, a percentage off, or a markup, and any quantity or amount breaks.
  5. 5Create price adjustment names and attach the types and definitions, then build the price adjustment schedule that lists those names in sequence.
  6. 6Attach the schedule to customers in the customer billing instructions and to items in the item branch or sales category, as your hierarchy requires.
  7. 7Test on a sales order: review the price adjustments on the order line and the price adjustment ledger to see which adjustments applied and why.

How the pieces fit

Think of it as layers. A schedule says which adjustments to consider and in what order. Each adjustment name points to a type and a definition. The type decides how to search for a match, and the definition holds the numbers. A match requires that the customer and item on the order belong to the groups named in the adjustment detail.

This flexibility is why setup feels heavy compared with simple base pricing. The reward is that one rule can express, for example, ten percent off a product family for a customer group above a quantity break without touching individual records.

Tables you will see in support and reporting

Adjustment data lives in the F407x family: F4070 (price adjustment schedule), F4071 (adjustment name or type information), F4072 (adjustment detail) and F4074 (the price adjustment ledger recording what was applied to each sales order line). Exact roles of the other tables in the family differ by release, so confirm in the data dictionary before building reports against them.

The ledger is the one most useful for troubleshooting. When a customer asks why a line was priced a certain way, F4074 shows the adjustments that fired and their amounts, which is faster than re-deriving the logic by hand.

-- which adjustments were applied to a sales order line (names vary by release)
SELECT * FROM PRODDTA.F4074 WHERE ALDOCO = 100234 ORDER BY ALLNID

Common modelling decisions

Decide early whether prices are stored as base prices in the Base Price file with adjustments layered on top, or whether most pricing lives in adjustments. Mixing both without a rule makes it hard to explain a price later.

Keep a naming convention for adjustment names and schedules and document the hierarchy. Pricing that grew organically over years is the usual reason implementations become hard to change.

Try it here, free

JD Edwards EnterpriseOne Cloud Migration Readiness Assessment

Open full tool

Ten questions that show how ready your JDE estate is to move to Oracle Cloud Infrastructure or a hosted environment.

Common pitfalls

  • !Attaching the schedule to the customer but not setting the customer or item groups the adjustment detail relies on.
  • !Overlapping adjustments in the same schedule without a clear sequence, giving different prices depending on evaluation order.
  • !Not testing with realistic quantity breaks, so the rule works for one unit and fails for a pallet.
  • !Changing definitions in production without effective dates, instantly repricing open orders.
  • !Building reports on pricing tables without checking the data dictionary, leading to wrong joins between tables in the F407x family.

How an ERP-grounded AI assistant handles this

Pricing disputes are mostly a lookup problem: which rule won and why. An assistant grounded in your JDE pricing tables and ledger can answer that for a given sales order line, showing the query and the adjustments it found, read-only and under JDE security. Netray can run this on-prem alongside your existing environment.

Frequently asked questions

What is the difference between basic and advanced pricing in JDE?

Basic pricing reads a price from the base price file by item and customer or group. Advanced Pricing adds a schedule of ordered adjustments, with types, definitions, hierarchies and breaks, so it can express discounts, markups and rebates by many conditions.

Where do I see which price adjustment was applied to an order?

On the sales order detail, review the price adjustment information for the line. The price adjustment ledger (F4074) stores the applied adjustments per line, which is the reliable source for explaining a price after the fact.

How do I attach a price schedule to a customer?

Through the customer billing instructions, where you assign the price adjustment schedule and pricing groups. Items can be grouped through sales category codes or item branch data, depending on how your preference hierarchy is defined.

Can I upload many price adjustments at once?

Yes. Use the supported batch upload interfaces or Orchestrator flows for the adjustment detail rather than inserting rows with SQL, so validation and key assignment are applied.

Related

How-to

How to Release a Sales Order on Hold in JD Edwards

A JD Edwards sales order goes on hold when Sales Order Entry applies a hold code, most often for credit limit, minimum margin, price or manual review. Find the hold code on the order header, then release it from the Release Held Orders program with the proper authority, or fix the underlying cause and let the order re-evaluate.

How-to

How to set data selection and processing options in JD Edwards

Data selection controls which rows a UBE's underlying business view reads (a filter, stored per version in F9210/F9211), while processing options control how the program behaves once it has that data (a settings template stored per version in F983051/F983052). They are configured from the same Version Detail screen but are separate, unrelated mechanisms that new users routinely confuse.

How-to

How to set up JD Edwards Orchestrator (step by step)

An EnterpriseOne orchestration chains one or more requests (form requests that drive an interactive application, or service requests that call a BSFN, business service, or SQL) plus optional rules and notifications, then exposes the whole thing as a callable REST endpoint via the AIS (Application Interface Services) server. The setup work happens in Orchestrator Studio, not the Fat Client.

Error fix

JDE 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 fix

JD 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 fix

JD 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 ERP

AI 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.

AI for ERP

AI for JD Edwards EnterpriseOne Manufacturing, Without Leaving the F-Tables Exposed

Grounded AI over JD Edwards EnterpriseOne Manufacturing: work orders, routings, and Orchestrator data, answered on-prem without sending F-table data to a public model.

Stuck on Oracle JD Edwards EnterpriseOne?

Talk to engineers who work inside Oracle JD Edwards EnterpriseOne every week, and who build private AI that answers these questions from your own ERP data.

Keep exploring

Free tools

ERP fixes and how-tos

Runs with your ERP

Guides

AI on your ERP

Integrations

Software