Error fixOracle E-Business SuitePurchasing / Requisition Import

Fix Oracle EBS Requisition Import Errors in PO_INTERFACE_ERRORS

Error
EBS Requisition Import rejected records PO_INTERFACE_ERRORS

Also searched as

  • Oracle Purchasing Requisition Import errors how to fix
  • PO_REQUISITIONS_INTERFACE_ALL process_flag error
  • Requisition Import Exceptions Report EBS
  • REQIMPORT concurrent program failed requisitions not created

Short answer

When Requisition Import (REQIMPORT) rejects rows, it leaves them in PO_REQUISITIONS_INTERFACE_ALL with PROCESS_FLAG = 'ERROR' and writes a reason per row to PO_INTERFACE_ERRORS. Read the Requisition Import Exceptions Report or query the error table, correct the source data, reset the rows and run the import again with the right Import Source and Batch ID.

Applies to: Oracle E-Business Suite R12.1 and R12.2 Purchasing and iProcurement; also 11i with minor column differences. Applies to requisitions created from MRP, Inventory min-max, WIP, and custom feeds

How to find the rejection reasons and rerun the import

  1. 1Find the failed request in Concurrent > Requests. Open the Requisition Import output and the Requisition Import Exceptions Report for the same request ID.
  2. 2Query the interface table: SELECT transaction_id, interface_source_code, batch_id, process_flag, item_id, destination_organization_id FROM po_requisitions_interface_all WHERE process_flag = 'ERROR'.
  3. 3Join to PO_INTERFACE_ERRORS on INTERFACE_TRANSACTION_ID to read ERROR_MESSAGE, COLUMN_NAME and TABLE_NAME for each rejected row.
  4. 4Fix the data on the interface row or in the setup: item assignment to the destination organization, purchasing category, deliver-to location, preparer or requester, charge account, need-by date.
  5. 5Reset the rows: set PROCESS_FLAG to NULL and clear the related PO_INTERFACE_ERRORS rows for those transactions, or reload them from the source.
  6. 6Submit Requisition Import with the correct Import Source, Import Batch ID and Group By parameter. Set Multiple Distributions as needed.
  7. 7Review the new Exceptions Report. Clean rows are deleted from the interface table automatically after a successful import.
  8. 8Open the Requisition Summary form to confirm the created requisitions and their approval status.

Where the error detail lives

Requisition Import reads PO_REQUISITIONS_INTERFACE_ALL, with distribution detail in PO_REQ_DIST_INTERFACE_ALL. Each rejected row remains in those tables, and the reasons are inserted into PO_INTERFACE_ERRORS, which also serves purchase order and receiving interfaces. That shared table is why you filter by INTERFACE_TYPE and TABLE_NAME.

The Exceptions Report prints the same data in friendly form, but SQL is better when you have thousands of rows from an MRP release. Group by ERROR_MESSAGE to see whether you have one systemic problem (all rows fail on category) or many individual ones.

SELECT e.error_message, COUNT(*) cnt
  FROM po_interface_errors e
  JOIN po_requisitions_interface_all r
    ON r.transaction_id = e.interface_transaction_id
 WHERE r.process_flag = 'ERROR'
 GROUP BY e.error_message
 ORDER BY cnt DESC;

The usual causes

Item and organization mismatches lead the list. The item must be assigned to the destination organization and be purchasable, with a valid purchasing category assigned in the Purchasing category set. A cost-centre or account issue is the second: the charge account must be valid for the destination organization's ledger and pass flexfield validation and security rules, and the account generator may fail for project-related requisitions.

People and approvals are the third group. PREPARER_ID and the requester must be active employees with valid assignments, and the approver hierarchy or position hierarchy must resolve so that the requisition can be set to Approved or Incomplete as requested. Setting AUTHORIZATION_STATUS to APPROVED in the interface only works when the preparer has approval authority for the document type and amount.

Other frequent items include inactive deliver-to locations, need-by dates outside calendar rules, unit-of-measure conversions missing for the item, and a destination type of INVENTORY pointing at a subinventory that is not valid for the item.

Rerunning without duplicates

Requisition Import deletes rows it successfully processes, so rerunning against the same batch only picks up what remains. The danger is feeds that re-insert the entire batch after a partial failure, producing duplicate requisitions for the rows that already succeeded. Use a unique batch ID per load and check PO_REQUISITION_HEADERS_ALL by INTERFACE_SOURCE_CODE and BATCH_ID before reloading.

For MRP-driven loads, release implementation goes through the Planner Workbench and Requisition Import; failures there leave MRP recommendations flagged in a state that blocks re-implementation. Resolve the Purchasing error first, then re-implement the recommendation rather than hand creating the requisition, so MRP and Purchasing stay in step.

UPDATE po_requisitions_interface_all
   SET process_flag = NULL
 WHERE process_flag = 'ERROR'
   AND batch_id = :batch_id;

DELETE FROM po_interface_errors
 WHERE interface_transaction_id IN
       (SELECT transaction_id FROM po_requisitions_interface_all
         WHERE batch_id = :batch_id);

Making feeds more reliable

Validate against EBS reference data before inserting. A small staging query that checks item-organization assignment, category, location and employee status removes most rejections up front. Keep that logic in one view or package so every feed (MES, planning tool, spreadsheets) shares it.

Schedule a daily check for rows left in ERROR status older than a day. Stuck requisitions mean parts that nobody ordered, which in manufacturing shows up as a late work order, not as an error screen.

Common pitfalls

  • !Reloading the full batch after a partial failure and creating duplicate requisitions.
  • !Clearing PO_INTERFACE_ERRORS without fixing the data, losing the only record of why rows failed.
  • !Using one Import Batch ID for unrelated sources, which makes rejections hard to trace.
  • !Setting the interface to APPROVED for a preparer without authority, leaving requisitions Incomplete.
  • !Assuming item exists in master org means it is purchasable in the destination org.

How an ERP-grounded AI assistant handles this

An ERPray style assistant over EBS can summarise PO_INTERFACE_ERRORS by message, item, buyer and import source, show the SQL, and list the setup gap behind each cluster, such as items missing from an organization. It reads only and honours EBS roles. Resetting PROCESS_FLAG or resubmitting REQIMPORT stays with a Purchasing admin. It does not repair source feeds on its own.

Frequently asked questions

Where do I see why Requisition Import rejected a row?

In the Requisition Import Exceptions Report for the request, or in the PO_INTERFACE_ERRORS table joined on INTERFACE_TRANSACTION_ID to PO_REQUISITIONS_INTERFACE_ALL. ERROR_MESSAGE and COLUMN_NAME point to the failing field.

Do I need to delete rows after fixing them?

No. Rows that succeed are removed by the import. For rejected rows, correct the data, set PROCESS_FLAG back to NULL, clear the old error rows, and rerun REQIMPORT with the same Import Source and Batch ID.

Why are requisitions created as Incomplete instead of Approved?

The interface only sets Approved when the preparer has approval authority for the document type and amount, and the approval path resolves. Otherwise the requisition lands as Incomplete or Pre-Approved. Check the approval group, position hierarchy and the document type setup.

Can I run Requisition Import for only one source?

Yes. The Import Source parameter limits the run to rows with that INTERFACE_SOURCE_CODE, and Import Batch ID narrows it further. Using specific values makes rejections easier to isolate and avoids touching other feeds.

Related

How-to

How to Import AP Invoices in Oracle EBS with Payables Open Interface Import

Load invoice header and line data into AP_INVOICES_INTERFACE and AP_INVOICE_LINES_INTERFACE, then run the Payables Open Interface Import concurrent program to create standard invoices in Oracle Payables. Rows that fail validation land in AP_INTERFACE_REJECTIONS with a specific reject reason you can query directly, without opening the Invoice Workbench.

How-to

How to Set Up AME Approval Rules in Oracle EBS

AME routes approvals for iProcurement, iExpense, PO approvals, and other seeded transaction types through Conditions built on Attributes, combined with Approver Groups into Rules. Build and test every rule in Test status using the AME Test Workbench before flipping the transaction type to Production, since production rule changes route real approvals immediately.

How-to

How to Register a Custom Concurrent Program in Oracle EBS

Registering a custom concurrent program in EBS takes three linked steps in the System Administrator responsibility: register the Executable pointing at your actual code object, register the Program that references that executable and defines its parameters, then add the program to a Request Group so it is visible under the target responsibility's Submit Request window.

How-to

SQL to Find Responsibilities Assigned to a User in Oracle EBS

Join FND_USER to FND_USER_RESP_GROUPS on USER_ID, then to FND_RESPONSIBILITY_TL on RESPONSIBILITY_ID and APPLICATION_ID to get the responsibility name, filtering the END_DATE columns to show only currently active assignments. This is the standard query DBAs and support teams use instead of clicking through System Administrator > Security > User > Define for every user.

Error fix

Fix FRM-40735: WHEN-VALIDATE-RECORD Trigger Raised Unhandled Exception ORA-06508

FRM-40735 with ORA-06508 almost always means a PL/SQL package used by the form was recompiled while your session still held the old cached state, or the trigger's own exception handling does not trap a real data error. Exit the form completely and re-enter it; if the error repeats for all users, recompile invalid objects on the database and check for a bad custom trigger.

Error fix

Oracle EBS Concurrent Manager Will Not Start: How to Fix It

A concurrent manager that will not start in Oracle EBS is almost always one of three things: the node registered in FND_NODES no longer matches the actual hostname (common after cloning), stale OS processes are blocking a fresh start, or the database and listener the manager connects to are unreachable. Check the internal manager log, verify the node name, clear stale processes, and restart with adcmctl.sh.

AI for ERP

AI for Oracle E-Business Suite, Without Leaving On-Prem

Add AI to Oracle E-Business Suite 12.2 without moving off-prem. Query concurrent programs, interface tables, and AP/PO data with a private LLM. See how.

AI for ERP

AI for Oracle EBS in Industrial Manufacturing: WIP, MRP, and BOM Questions Answered Directly

AI for Oracle E-Business Suite in industrial manufacturing: WIP jobs, BOMs, MRP, inventory and purchasing answered in plain English, private and read-only.

Stuck on Oracle E-Business Suite?

Talk to engineers who work inside Oracle E-Business Suite every week, and who build private AI that answers these questions from your own ERP data.