ERP Help
The error your ERP just threw, the function you need to run, the customisation you are stuck on. Straight answers for Infor SyteLine, LN, M3, NetSuite, Oracle EBS, JD Edwards, Fusion, SAP, Dynamics, Epicor and more, from engineers who work in these systems.
Infor SyteLine / CSI
Fixing SyteLine's 'Object reference not set to an instance of an object' error
SyteLine error object reference not set to an instance of an objectThis is a generic .NET NullReferenceException surfacing through the SyteLine IDO Runtime, not a SyteLine-specific error code. It almost always means a form, script or IDO method referenced a field, row or object that came back null, usually after a customization, a missing related record, or a view/IDO method call before the form finished loading. Turn on detailed client logging and check the most recent customization or form event first.
Error fixDiagnosing and fixing SyteLine session timeout errors
SyteLine session has timed out please log in again errorSyteLine session timeouts come from one of three independent layers: the IDO Data Service session timeout on the app server, the IIS/application pool idle timeout for the web (Mongoose Web) client, or a load balancer/proxy idle timeout in front of a CloudSuite hosted environment. Fixing the wrong layer is the most common mistake - you need to identify which layer is actually expiring the session before changing anything.
Error fixResolving SyteLine multi-site replication conflict errors
SyteLine replication conflict error row was already changedA replication conflict in SyteLine's multi-site architecture means the same record (commonly an item, customer, or BOM) was changed independently at two sites between replication cycles, and the replication engine could not automatically merge the two versions. Check the replication conflict log first to see which record and which fields collided, then decide which site's version should win before resuming the queue.
Error fixTroubleshooting SyteLine MRP and APS regeneration that fails or hangs
SyteLine MRP regeneration fails to completeA SyteLine MRP or APS run that fails to complete, hangs indefinitely, or errors partway through is most often caused by data integrity problems (a BOM loop, an item with an invalid lead time or missing routing), a scheduling engine (APS) process that is stuck or resource-starved, or a concurrent MRP run conflict. Check the MRP/APS log first for the specific item or job it stopped on before assuming it is a system capacity issue.
Error fixFixing SyteLine's 'transaction out of balance' GL posting error
SyteLine GL posting error transaction out of balanceThis posting error means SyteLine tried to create a general ledger journal entry where total debits do not equal total credits, which the GL will not accept. The most frequent causes are a missing or misconfigured account in the automatic account determination setup (COA mapping), currency rounding on multi-currency transactions, or a source transaction (inventory, job cost, AP/AR) that only partially calculated its cost or tax components before posting.
Error fixSyteLine error: this row has been modified by another user since you began editing it
This row has been modified by another user since you began editing itThis is SyteLine's IDO optimistic concurrency check. It fires when the row's timestamp column (usually ts_prefix or a similar rowversion field) on the database no longer matches the value the client loaded, meaning another session, a background job, or an integration already saved a change. Refresh the record and reapply your edit; if it recurs constantly on one record, look for a duplicate integration process or a stuck lock rather than user contention.
Error fixSyteLine error: invalid site or item not valid at this site
SyteLine invalid site error item not valid at this siteSyteLine is a multi-site system where items, warehouses, and most master data are site-specific by design. This error means either the item has never been extended to the site you are transacting in, your user login does not have access to that site, or the current site context on the form does not match the site of the referenced record. Add the item to the site via Item Sites, or correct the user's site security, and the error clears.
Error fixSyteLine error: no cost record exists for this item at this site
SyteLine no standard cost exists for this item errorSyteLine will not post an inventory, job, or purchasing transaction that has no valid standard (or average) cost record for the item at that site and cost type, because the transaction needs a cost to value the GL entry. Run a cost rollup or manually enter the item's standard cost in Item Costs, make sure the cost is effective-dated to cover the transaction date, then reprocess.
Error fixSyteLine EDI or BOD inbound document fails to create a sales order
SyteLine EDI order import fails to create sales order BOD processing errorAn inbound EDI 850 or ION SyncSalesOrder / ProcessSalesOrder BOD that does not turn into a SyteLine order almost always fails validation before it ever reaches order entry logic - most often a customer, ship-to, or item cross-reference that the mapping expects but SyteLine does not have on file. Check the EDI translator's error log or the ION BOD document inbox first; the rejection reason is usually recorded there, not just a generic SyteLine error.
Error fixSyteLine error: an error has occurred during report processing
An error has occurred during report processing SyteLine SSRS reportThis generic SSRS error in SyteLine usually comes from one of three sources: the client cannot reach the configured report server URL, the report's data source credentials or connection string are wrong, or the report definition itself has a parameter or dataset problem. Check the report server URL setting in SyteLine first, then confirm the report is actually deployed to that server, then look at the SSRS server's own execution log for the real underlying error.
Error fixSyteLine: License Limit Reached and Users Cannot Log In
SyteLine license limit reached cannot log in no licenses availableWhen SyteLine refuses a login because the license or session limit is reached, the usual cause is not too many real users but stale sessions that were never released: killed browsers, dropped VPNs, service accounts and integrations holding connections open. Find the sessions in the application's session management form, release the dead ones, then fix whatever keeps leaking them.
Error fixSyteLine Inventory Adjustment: Insufficient Quantity on Hand
SyteLine miscellaneous issue insufficient quantity on hand errorSyteLine validates an issue or adjustment against quantity at the exact item, warehouse, location and lot, not the item total. The error usually means stock sits in a different location or lot, a prior transaction is unposted, or the warehouse and location quantities have drifted apart. Check the quantities at each level, fix the real cause, then post the adjustment.
Error fixSyteLine: Transaction Deadlocked, Chosen as the Deadlock Victim
SyteLine transaction was deadlocked on lock resources chosen as the deadlock victimSQL Server error 1205 means two sessions each held a lock the other needed, and SQL Server killed one to break the tie. In SyteLine it usually appears during concurrent posting, shipping, MRP or custom code touching the same inventory and ledger rows. Capture the deadlock graph, identify the two statements, and fix the order, the indexes or the isolation level.
Error fixSyteLine Background Tasks Stuck or Not Processing
SyteLine background task stuck running not processing queueBackground tasks stall for four main reasons: the processor service is not running or points at the wrong configuration, a task is flagged Running from a crash and blocks its own next run, the account it runs as cannot log in, or the work is blocked in SQL. Check the processor first, then task status and history, then the run-as user, then SQL.
Error fixSyteLine posting out of current period: causes and a safe fix
syteline posting out of current periodA posting-out-of-period message means the transaction date on the document falls in a fiscal period that is closed, locked for that module, or not defined for that site. Check the transaction date first, then the period status for the module and site, and only then decide whether to change the date or reopen the period. Wording and form names vary by release, so confirm against your version.
Error fixSyteLine error -30006: how to find the real cause
syteline error -30006The number in a SyteLine error such as -30006 is a wrapper code. The useful information is the text after it and the underlying exception from the app server or SQL Server. There is no dependable public catalog of these numbers, so the reliable fix is a repeatable method for reading the message, reproducing it and checking the server side.
Error fixSyteLine APS error 30012: what to check before rerunning
syteline aps error 30012APS errors in SyteLine generally come from three places: the APS planning service itself, the data sync between SyteLine and the APS database, or bad source data such as a missing routing or calendar. I could not confirm an official definition for code 30012, so this page gives the diagnosis order that isolates the layer before you rerun the schedule.
Error fixTimed out waiting for response from Mongoose: fixing the request timeout
timed out waiting for response from mongooseThis message means a request to the Mongoose app server did not return before a timeout expired. The fix depends on which layer timed out: the client call, IIS, the IDO runtime, or the SQL query underneath. Slow SQL is the most common real cause, so tuning the query beats just raising limits.
Error fixError applying security: failed to enumerate objects in the container
error applying security failed to enumerateThis Windows error means you tried to change permissions on a folder and Windows could not read everything inside it. It is almost always caused by missing ownership or permissions on a child item, so take ownership of the folder tree as an administrator and then reapply permissions. It shows up in SyteLine and Mongoose installs when app folders, IIS content or share folders were created by another account.
Error fixSyteLine csi_kit_live_kit and what a CSI warning means
infor syteline csi_kit_live_kitCSI is Infor CloudSuite Industrial, the current name of SyteLine, so a CSI warning is a non-blocking message from the application that tells you something is questionable but lets you continue. We cannot confirm a documented public meaning for an object named csi_kit_live_kit, so the dependable method is to locate it in your own database, read its definition and check how kits are configured.
How-toHow to Run a Cost Rollup in SyteLine
Run Item Cost Rollup from Product Definition > Costing > Cost Rollup, select the site and item range, run it in Simulate mode first to review variances, then run it live to post new standard costs to Item records and the Costed Bill of Material.
How-toHow to Close a Job Order in SyteLine
Close a job order from Production > Job Orders once every routing operation is reported complete and the finished quantity has been received, then run Close Jobs to post the remaining WIP balance to variance and lock the job from further transactions.
How-toHow to Run a Cycle Count in SyteLine
Cycle counting in SyteLine runs through Inventory > Cycle Count: generate a count list by ABC class or location, print or enter tags, key the counted quantities into Cycle Count Entry, then review the variance report before posting the count to update on-hand quantity.
How-toSyteLine Customer Order to Invoice: Step by Step
A SyteLine customer order flows from Order Entry through pick, pack, and Customer Shipment, then to invoicing, either through the Auto Invoice batch utility or manual Invoice Entry, posting revenue and relieving inventory once the shipment is confirmed.
How-toHow to Run MRP in SyteLine
MRP in SyteLine runs from Planning > MRP Processing as either a full Regenerative run or a Net Change run against demand from customer orders, forecasts, and safety stock; results appear as planned orders and Action Messages in the Planner Workbench.
How-toHow to Change an Item's Standard Cost in SyteLine
You can edit an item's standard cost fields directly on the Items form, or let Cost Rollup calculate it from the BOM and routing. Either way, the new cost only affects future transactions until you run Recost Inventory, which revalues on-hand quantity and posts the difference to the standard cost variance account in GL.
How-toHow to Set Up Lot and Serial Number Tracking in SyteLine
Lot and serial tracking is turned on per item on the Items form, with a tracking type of None, Lot, or Serial. Once enabled, every receipt, job move, and shipment transaction for that item prompts for a lot or serial number assignment, and SyteLine keeps a full genealogy you can trace forward to customer shipments or backward to the receiving vendor.
How-toHow to Handle Landed Cost and Voucher a PO Receipt in SyteLine
Landed cost charges such as freight, duty, and brokerage are added against the PO or the receipt, allocated across the received line items by value or quantity, and rolled into the item's received cost before it is vouchered. Vouchering itself is the 3-way match between PO price, receipt quantity, and vendor invoice, and mismatches beyond your tolerance percentage get held for review instead of posting automatically.
How-toHow to Release a Customer Order from Credit Hold in SyteLine
A customer order goes on credit hold when the customer's exposure, whether AR balance, open order value, or days past due, exceeds the limit set on the Customers form. Releasing it is a deliberate override on the order, usually restricted to users with credit management authority, and the real fix is reviewing whether the limit, the hold reason, or the customer's payment behavior needs attention.
How-toHow to Receive a Purchase Order and Return Goods to a Vendor in SyteLine
Receiving happens in PO Receipts against open PO lines, updating on-hand quantity and open PO balance. Returning goods is a separate return-to-vendor transaction that reverses the receipt, references the original PO and receipt, and should tie to an AP debit memo so the vendor invoice and payment reflect the returned quantity.
How-toHow to Promote Form Customizations from a Test Tenant to Production in CloudSuite Industrial
In multi-tenant CloudSuite Industrial, form customizations, UDFs and event configuration live in each tenant's configuration, so moving them from test to production is an export and import of that metadata, not a file copy. Build a change list, export the changed objects from the test configuration, import them into production in dependency order, and verify with a scripted smoke test. Record every change, because a tenant refresh can overwrite test work.
How-toHow to Set Up an ION Workflow Approval for SyteLine Purchase Orders
An approval workflow for a SyteLine purchase order is typically built in ION: a document flow carries the order as a BOD from CloudSuite Industrial into ION, a workflow routes it to approvers by amount or commodity, and the decision is written back through an ION or IDO call that updates the PO status. Design for a single source of truth, idempotent write-back, and a timeout path so orders never wait indefinitely.
How-toHow to Send SyteLine Business Event Alerts to Infor Ming.le
To get a SyteLine event in front of users in Infor Ming.le, choose one of two routes: have the SyteLine Event System send the signal through a supported notification action, or publish a BOD to ION and let an ION alert or workflow create the Infor OS notification. Pick by recipient logic and volume. Either way, define the trigger narrowly, map recipients from roles, and throttle so alerts stay worth reading.
How-toSyteLine Freezing for Everyone: Find the SQL Head Blocker
When several SyteLine users freeze at once, a single session holding locks and blocking a chain of others is a common cause. Query sys.dm_exec_requests for blocking_session_id, walk the chain to the head blocker, read its statement and open transaction, and decide whether to wait, fix the caller, or end the session.
How-toHow to Maintain the BOM and Routing in SyteLine
In SyteLine the manufacturing structure for an item is a standard (type S) job: its material lines are the BOM and its operation lines are the routing. You maintain it from the item's BOM and routing forms, set effectivity dates, then let new job orders pull a copy. Existing jobs do not update automatically, which is where most confusion comes from.
How-toHow to Use the MRP Planner Workbench in SyteLine
After MRP or APS generates planned orders and exception messages, a planner reviews them item by item in the planner workbench, then firms, changes or releases them into job orders, purchase requisitions or transfer orders. The skill is reading the messages in the right order and releasing only what is real demand.
How-toHow to Ship a Customer Order in SyteLine (Partial and Backorder)
Shipping in SyteLine records the quantity leaving each customer order line, relieves inventory and creates the shipment that invoicing later bills. Enter a smaller quantity than ordered for a partial ship, and the rest stays open as a backorder on the line. Shipment, not the order, drives the invoice.
How-toHow to Enter an AP Voucher in SyteLine
A SyteLine AP voucher records a vendor invoice. For purchased goods, build it from received purchase order lines so quantity and price match; for services or expenses, enter the distribution accounts directly. Post it, then pay it through payment processing. Price and quantity differences are the usual source of trouble.
How-toHow to Use Report Options and Print to PDF in SyteLine
Most SyteLine reports are run from a form with selection criteria (the report options) such as ranges, dates and status, then sent to preview, printer, file or the background queue. Save your criteria so they are not retyped, and use a background run for slow reports. Blank output nearly always means the filters exclude every row.
How-toHow to Void a Check or Payment in SyteLine (CSI)
In SyteLine you void a posted AP check from the AP payments area using the void function for that payment, which reverses the payment and reopens the paid vouchers. The exact form name varies by version, so search the forms list for the payment and void forms, and always check the accounting period, bank reconciliation and posting status first.
How-toHow to Apply an Open (Unapplied) Customer Payment in SyteLine
An open payment in SyteLine AR is cash received that has been recorded but not matched to specific invoices. You apply it from the AR payment area by selecting the customer, choosing the invoices to pay and allocating amounts until the unapplied balance is zero or the remainder is left on account. Form names vary by version, so locate them through the forms search.
How-toHow to Print or Reprint a Customer Invoice in SyteLine
In SyteLine, invoices are created by the Invoice/Credit Memo Builder and then printed from the invoice and credit memo printing form. To reprint an invoice that was already printed, use the reprint option on that form and select the invoice number range. Output can go to a printer, a preview or PDF through report options.
How-toHow to Export an Indented (Multi-Level) BOM from SyteLine
You can get an indented BOM out of SyteLine three ways: run the BOM report with the multi-level option and export it, use the grid export on the job material or BOM form for single levels, or run a recursive SQL query against the BOM tables for a full multi-level explosion. The SQL route is the most reliable for many parents at once.
How-toHow to split a SyteLine pick list across locations or lots
When one order line needs stock from more than one location or lot, you split the pick: the pick list carries multiple lines, each with its own location and lot and quantity, and the shipment then relieves each separately. The order line is fulfilled when the total picked and shipped equals the quantity. Form names differ slightly by release, so use the mechanism below as a guide.
How-toSyteLine FormScripts, validators, personalization and bookmarks
FormScripts add custom behavior to a Mongoose form (react to events, set values, call IDO methods), validators check field input, and personalization and bookmarks change how a user sees and reaches forms without code. Choose the lightest tool that works: bookmark or personalize first, validator second, FormScript last.
How-toSyteLine alternate routing and alternate BOM: a worked example
An alternate routing or BOM is a second valid way to make the same item, for example a different machine or a substitute component set. You maintain it as a separate version tied to the item, and the job order picks the version you specify or the default. Planning generally uses the default unless your setup directs otherwise, so verify what MRP actually assumes. Field names vary by release.
How-toBarTender integration with Infor SyteLine: common setups
BarTender does not need a special SyteLine connector. The usual patterns are to have BarTender Integration Builder watch a database table or file that SyteLine populates, call it from a SyteLine event or custom process, or send it data over a web service. Pick the one that matches your volume and your tolerance for custom code.
How-toSyteLine Excel add-in and paste rows: bulk loading data
There are two common ways to move spreadsheet data into SyteLine: the Excel add-in, which reads and writes IDO data from Excel, and the grid's paste rows features, which copy rows from Excel into a form. Both go through the same business rules as manual entry, so errors appear per row. Always trial on a test site and load in small batches.
How-toSyteLine forecasting, planning horizon and planning calendar
SyteLine MRP and APS plan against demand (customer orders plus forecast) over a planning horizon, using a calendar of working days. Forecast quality, how forecast is consumed by orders, and the horizon length drive most planning results. Exact parameter names and forms vary by release, so confirm against your documentation.
How-toSyteLine customer on-time shipments: which dates to compare and how to report OTD
On-time shipment in SyteLine is the actual ship date on the shipment record compared with a target date on the order line, either the customer due date or your promise date. Decide which target you are measured against, then count lines shipped on or before it. A SQL query against the shipment and order line tables gives you OTD percent by customer, product or month.
How-toSyteLine 1099: set up vendors and run year-end reporting
1099 reporting in SyteLine depends on three things being right before year end: the vendor is flagged as reportable with a valid tax ID, the payments or invoice distributions are tagged to the correct 1099 category, and the year's totals reconcile to the payment history. You then run the 1099 report for the tax year and either file from it or export it to your filing service.
How-toWork order (job) item, status and routing tables in SyteLine
In SyteLine a work order is a job, keyed by job and suffix. The header is in the job table (item, quantity, status), operations are in jobroute, materials in jobmatl, and production transactions in jobtran. Item standard routings are stored as template jobs rather than in a separate routing table.
How-toSyteLine item usage report: get item consumption history
SyteLine has no single report named item usage that fits every need. The reliable approach is to total issue and shipment transactions from the inventory transaction history (matltran), by item and month, either through the standard transaction reports or with a SQL pull you pivot in Excel, and then use the result to set reorder points and safety stock.
How-toHow to replace NULL in Infor SyteLine (SQL, IDO and reports)
In SQL use ISNULL(column, default) or the standard COALESCE(a, b, default). In an IDO filter use IS NULL or IS NOT NULL, and in SSRS report expressions test with IsNothing or IIf. NULL is not equal to an empty string or zero, so each layer needs its own check.
How-toHow to change a SyteLine (CSI) password
A user changes the SyteLine password from the sign-in dialog or the account options, and an administrator resets it in the user maintenance of the Mongoose configuration. If your site uses Infor ION / Ming.le single sign-on or Windows authentication, the password is not held in SyteLine at all, and you change it in the identity provider or Windows.
How-toSyteLine Report Viewer: Preview, Export and Schedule Reports (SSRS and Background Tasks)
In SyteLine / CloudSuite Industrial most reports are run from a report form, previewed in a viewer (for SSRS-based reports, rendered by SQL Server Reporting Services), then printed, saved to PDF or Excel, or e-mailed. Scheduling is done by running the same report as a background task, so it depends on the Task Manager service and on a printer or file destination the service account can reach.
How-toSyteLine Service Mobile App: Options for Field Service and Warehouse Staff
There is not one single SyteLine mobile app. Teams usually combine browser access to the SyteLine client on a tablet, Infor-provided mobile or warehouse mobility components where licensed for your release, third-party scanner and field service apps that call SyteLine through IDOs or web services, and occasionally a custom app. The right choice depends on whether the work is online, offline, scan-heavy or form-heavy.
How-toHow to Search for Items, Purchase Orders and Records in SyteLine
SyteLine forms are searched by filtering the form itself: switch to Filter in Place, type criteria into the fields you know (item, vendor, PO number, date), and run the filter. The grid then shows only matching records. Drop-down lookups and the form search box cover the rest.
How-toSyteLine Printers: Where to View Them and How They Map to Reports and Background Tasks
SyteLine does not manage printers itself. It uses printers installed on the machine where the print runs, which is your workstation for interactive printing and the utility or application server's service account for background tasks. So the place to view printers is the Windows print queue of that machine, and the place to map them is the report's output options and the background task parameters.
How-toSyteLine DocTrak: What It Is and How Document Attachments Work
DocTrak is the name associated with document tracking in SyteLine: the capability to link files such as drawings, certificates and purchase documents to ERP records and open them from the form. In current releases attachments are handled through the attachment features of the client and can be backed by Infor Document Management. The key design question is where the files physically live.
AdvancedHow to Add Custom Business Logic to a SyteLine IDO with an Extension Class
SyteLine lets you add validation, defaulting, and side-effect logic to any IDO without touching Infor's generated code, by writing an IDO extension class in C# and hooking into the object's Before/After events. The extension assembly is compiled, deployed next to the IDO Runtime, and picked up once the runtime cache is refreshed.
AdvancedHow the SyteLine Event System Works for Workflow Notifications
SyteLine's Event Manager lets administrators subscribe to IDO-level events, such as a purchase order being released or a customer credit hold being set, and fire an email, a Mongoose script, or a workflow action without writing an IDO extension. Cloud tenants can extend the same triggers into ION Workflow for multi-step, cross-application approval processes.
AdvancedHow to Tune APS Finite Scheduling Performance in SyteLine
A slow APS run in SyteLine is almost always caused by an oversized planning horizon, too many resources marked as constrained, or an unindexed staging table, rather than the scheduling algorithm itself. Trimming the horizon, scoping constrained resource groups, and running incremental instead of full regenerative schedules typically cuts run time dramatically.
AdvancedHow to Set Up Multi-Site Configuration in SyteLine
SyteLine supports multiple manufacturing or distribution sites either as separate Site records within one shared database, or as fully separate databases linked through intersite transactions and, in CloudSuite Industrial, ION. Getting the site model right up front, shared versus separate master data, intersite transfer setup, avoids a painful data migration later.
AdvancedHow to Improve SQL Server Performance for a Slow SyteLine ERP System
Most SyteLine performance complaints trace back to a handful of SQL Server issues: stale statistics, missing indexes on high-churn IDO tables, blocking caused by the default isolation level, and IDO Runtime connection pool exhaustion. Working through those systematically, with DMV evidence, resolves the majority of slow system tickets faster than guessing at application-layer causes.
AdvancedHow to Debug a SyteLine IDO Extension Class in Visual Studio
SyteLine IDO extension classes run inside the server-side IDO runtime, not inside Visual Studio, so breakpoints only hit once you attach the debugger to that process and deploy matching PDB files. Attach to IDORuntime.exe on classic installs or to the w3wp.exe worker process on IIS-hosted CSI, build in Debug configuration, and copy the DLL and PDB together before setting breakpoints.
AdvancedHow to Add a Custom Method to a SyteLine IDO in C#
Custom IDO methods let you expose new server-side business logic - beyond the standard Load, Update, and Delete - as a named, callable operation from the SyteLine client, a script, or an external integration. You declare the method and its parameters on the IDO Collection, then implement it in an extension class that handles invoke calls for that method name.
AdvancedHow to Build SQL Views for Custom SyteLine Reporting
Reports should read from purpose-built SQL views, not directly from SyteLine's core transactional tables, so an Infor patch cannot silently break them and heavy report queries do not lock rows the ERP itself needs. Put custom views in their own schema or under a clear naming convention, build them on stable base tables, and grant reporting tools read access to the views only.
AdvancedHow to Call SyteLine IDOs from an External Application
SyteLine exposes its IDO layer as a SOAP web service, commonly published through an IDORequestHandler endpoint, so an external .NET application, middleware platform, or script can Load, Update, Delete, and Invoke methods on the same IDOs the SyteLine client itself uses. You call it like any SOAP service: reference the WSDL, authenticate, and pass the IDO name, method, and parameters in the request.
AdvancedHow to Schedule a Background Task in SyteLine Task Manager
SyteLine's Task Manager lets an administrator schedule recurring background work - an MRP or APS regeneration, a report run, a custom IDO method, or an external program - without a user triggering it manually from the client. You define a task with what to run and on what recurrence, and the Task Manager background service picks it up and executes it at the scheduled time.
AdvancedWhat Customizations Are Allowed in CloudSuite Industrial Multi-Tenant?
In the multi-tenant cloud edition of CloudSuite Industrial (SyteLine), customers work through configuration and supported extension points: form customization, user-defined fields, the event system, custom reports, and integration through ION and the IDO REST service. Anything that needs deploying your own server-side binaries or touching the database directly is generally restricted because the infrastructure is shared. Confirm exact limits for your tenant with Infor, since they change by release.
AdvancedReporting in CloudSuite Industrial Multi-Tenant Without Direct SQL Access
When a multi-tenant CloudSuite Industrial tenant does not expose its SQL Server, replace direct queries with three supported patterns: IDO-based reports and the IDO REST service for operational reads, Infor reporting tools for standard documents, and data lake extracts for analytics and history. Choose by freshness and volume: REST for small, current reads, the data lake for large, historical or cross-system analysis.
AdvancedPrivate AI Layer for SyteLine On-Prem: Reference Architecture
To add AI to SyteLine without moving data to a cloud, keep SQL Server and the Mongoose application tier where they are, expose a read-only reporting copy and approved IDO calls to a tool server, and serve an open-weight model with vLLM or Ollama on local GPUs. Mirror SyteLine user groups and site access in the tool server, log every prompt and query, and send any write-back through IDO methods with human approval.
Infor LN / Baan
Infor LN bshell Process Stuck at 100% CPU: How to Diagnose and Fix It
infor ln bshell process using 100% cpuA bshell process pinned at 100% CPU on the Infor LN application server almost always means one session is stuck in a 4GL loop, scanning an unindexed table, or waiting on a database lock. End the session from the Sessions Monitor first, then kill the OS process only if that fails, and check for a blocking database transaction before assuming it is a bug.
Error fixInfor LN Not Authorized to Run This Session: How to Fix It
infor ln you are not authorized to run this sessionInfor LN refuses to open a session with a not authorized message when the logged-in user's assigned role does not include that session, or when the session is blocked for the company they are logged into. Grant the session through Common > Authorization Management > Roles, or check the user's role and company context, and the session opens on retry. In most cases this is a permissions configuration issue, not a bug.
Error fixInfor LN DAL Out of Sync After a Custom Field: Cause and Fix
infor ln dal out of sync error after adding custom fieldInfor LN throws a DAL, or table, out of sync error, or simply drops a new custom field silently, when a table's dictionary definition is changed but the generated DAL and dependent forms are not regenerated afterward. Running the standard sequence, table compile, DAL generation, then session/form compile, in Tools > Development after every dictionary change resolves it. Skipping any one of the three steps is what causes the mismatch.
Error fixInfor LN Jobs Stuck in Active or Waiting: Fix the Job Daemon
infor ln jobs stuck in active status job daemonInfor LN background jobs, reports, batch processes and print jobs, get stuck in Active or Waiting status when the job daemon on the enterprise server has stopped or lost its connection, or when a prior job crashed without releasing its status. Restart the job daemon and reset the stuck job's status through the Jobs session, and the queue resumes. A daemon that keeps stopping usually points to a memory, license or database connectivity problem on the server.
Error fixInfor LN Reports Stuck in the Print Queue: Device and Spooler Fix
infor ln report stuck in print queue device offlineInfor LN reports and forms stay queued and never reach the printer when the target device definition points to a printer that is offline, or the print listener on the print server has stopped. Check the device's status in Common > Printing > Devices, confirm the underlying OS printer is reachable, and restart the print listener if jobs remain queued after the printer itself is fixed. Most cases trace back to a genuinely offline printer, not an LN bug.
Error fixInfor LN: "Record is locked by another user" error
Record is locked by another user error in Infor LNThis error means another LN session, interactive or batch, is holding an update lock on the same table row you are trying to change. Find the locking user or session in Active Sessions, confirm it is stale rather than genuinely running, and either wait or terminate it before you retry.
Error fixInfor LN Studio: compile errors when building DAL/4GL code
Compile error in Infor LN Studio when building a DAL or 4GL scriptA compile error in LN Studio usually traces back to a missing or mismatched package reference, a real syntax error in the DAL or 4GL source, or stale generated metadata that only a full rebuild clears. Read the first error in the log, not the last, since later errors are often cascades from one root cause.
Error fixInfor LN: finalize run fails or gets stuck
Finalize run fails or gets stuck in Infor LN (Cost Price Calculation, Sales Invoicing, Statistics)Finalize sessions such as Cost Price Calculation, Sales Invoicing, and Period-End Statistics run as a broadly locked, largely exclusive batch step, so they most often fail because another user has the module open, a prior finalize run did not close cleanly, or a specific record has bad master data. Read the finalize log for the exact record or reason code, not just the failure message.
Error fixInfor LN: BOD mapping errors when publishing to ION
No mapping found error when publishing a BOD from Infor LN to IONThis error means the outbound Business Object Document from LN could not translate a field, code, or reference value into the ION-standard BOD schema, most often a missing code list mapping or an unmapped custom field, not a bug in ION itself. Fix the mapping on the correct side and reprocess from ION Desk rather than resending from LN.
Error fixInfor LN Incoming EDI Message Not Processed or Stuck
Infor LN incoming EDI message not processed stuck in statusAn inbound EDI message that never becomes a sales order or schedule has stopped at one of three stages: receipt into the EDI message tables, conversion from the external format to the LN business document, or the application update that writes the order. Find the stage from the message status and log, fix the mapping, trading partner or master data cause, then reprocess the message rather than re-sending the file.
Error fixInfor LN Sales Invoice Not Transferred to Financials
Infor LN sales invoice not transferred to financials integration transactions stuckWhen a sales invoice exists in LN Invoicing but not in accounts receivable or the general ledger, the posting stopped in integration transactions. The usual causes are a missing integration mapping scheme, a closed or blocked financial period, an invalid ledger account or dimension, or an unprocessed integration transaction that needs to be reprocessed after the data is corrected.
Error fixBaan Error 10054 (and Error 206): What It Means and How to Fix It
baan error 10054Error 10054 is not a Baan-specific code: it is the Windows Sockets error WSAECONNRESET, meaning the other side of the connection (the bshell on the BSE server or something in between) closed or dropped the connection abruptly. Fix it by finding out who closed the socket: the bshell crashed or was killed, a firewall or load balancer cut an idle connection, or the server ran out of resources. Error 206 is a separate database or file level code that you read from the log, not guess.
Error fixInfor LN 'unable to create a session': causes and how to fix it
infor unable to create a sessionThis message means the client reached LN but the server could not start the session process (a bshell) or could not load the session. Work from the server side: check the bshell log, licence and user limits, the user's authorizations, and whether the session or its dependent objects exist and are compiled.
Error fixInfor LN error 512, error 513 and error 201: meaning and fix
error 512 infor lnThese are numeric runtime errors raised by the LN database layer or the underlying RDBMS driver. The number alone is not the diagnosis. The message text, the table and the database log together tell you whether it is a lock, a key or constraint violation, a connection issue or a missing object.
Error fixInfor LN error 205: how to diagnose and fix it
infor ln error 205Error 205 is a numeric database-layer error. In Baan and LN lineage it is commonly seen on write operations that conflict with an existing record, such as a duplicate key, but you should confirm for your version from the message text and logs. Identify the table and operation, check the key and any custom script or conversion that wrote the record, then correct the data or the logic.
Error fixDB Error 100 in Infor LN and Baan: Record or End of Set Not Found
db error 100 infor lnDB error 100 in Infor LN and Baan is a not-found condition from the database layer: a read, find or next-record operation found no record matching the key, or reached the end of the result set. It is often harmless control flow in well-written 3GL code, but it becomes a visible error when a script does not test for it.
Error fixCannot Find Session Info in Baan and Infor LN: Causes and Fix
cannot find session infoThis message means the bshell could not find the definition of the session you tried to start in the runtime data dictionary for your package combination. Check that the session exists in a VRC in your package combination, then convert the data dictionary to runtime again for that VRC and restart the user session.
How-toHow to publish a BOD from Infor LN to Infor ION
Publishing a Business Object Document from Infor LN means flagging the relevant table or session for BOD publish, confirming LN's connection point to Infor ION is active, and building the document flow in ION Desk so changes like a new sales order are broadcast as a standard OAGIS-style XML message that other applications can subscribe to.
How-toBaan IV to Infor LN migration checklist
Moving from Baan IV to Infor LN is a re-implementation, not an in-place upgrade, because the two products differ in data model, session technology and, for LN Enterprise Edition, the underlying runtime. The checklist centers on inventorying customizations, converting master data, rebuilding logic rather than porting it, and running a real parallel test before cutover.
How-toHow to process a sales order to invoice in Infor LN
In Infor LN a sales order moves from order entry to cash through four linked steps: create and approve the Sales Orders session, release the order lines to Warehousing so a warehouse order is generated, confirm the outbound shipment, and then run the invoicing session that composes and posts the sales invoice to Financials. Each step hands off through an integration document, so a stuck invoice almost always traces back to a missing or unconfirmed step earlier in the chain.
How-toHow to set up and run a project in Infor LN PCS
Infor LN's Project Control System (PCS) manages engineer-to-order and project-based work as a structured hierarchy: a project header, a work breakdown structure (WBS) of activities, a budget or estimate against that structure, and actual cost and progress booked back against the same elements. Getting the WBS and budget structure right before any transaction posts is what makes project cost reporting usable later.
How-toHow to process inbound and outbound warehousing orders in Infor LN
Infor LN Warehousing splits every physical movement into inbound (goods arriving, mainly from purchase orders) and outbound (goods leaving, mainly for sales orders), each driven by its own warehouse order type. Inbound runs through intake, inspection if required, and put-away; outbound runs through order release, picking, packing and shipment confirmation, with each stage updating the order status other modules watch.
How-toHow to calculate item cost prices in Infor LN
Infor LN calculates an item's cost price by rolling up material, labor, machine, subcontract and overhead costs defined against cost components, using the item's bill of material and routing as the calculation base for manufactured items and purchase price for bought items. The calculation can run in simulation mode to preview the result or in update mode to actually change the item's standard cost, which then drives inventory valuation and variance reporting going forward.
How-toHow to close a financial period in Infor LN
Closing a period in Infor LN is not a single click; it requires clearing every module's outstanding integration transactions into Financials first, reconciling each subledger (AR, AP, inventory, WIP) to the general ledger, and only then closing the period through Periods and Fiscal Years, which blocks further posting to it. Skipping the reconciliation step and closing early is what causes stuck or orphaned transactions that have to be reopened and reworked later.
How-toHow Sales Schedules Work in Infor LN: Releases and Cumulative Quantities
A sales schedule in Infor LN holds a customer's rolling demand as a series of releases, each replacing the last, with lines split into firm and planned quantities. LN tracks cumulative quantities shipped against the customer's cumulative received so that a new release can be reconciled without double counting or dropping demand.
How-toInfor LN Enterprise Planning Not Generating Planned Orders
When an item has demand but Enterprise Planning creates no planned orders, the cause is almost always planning master data: the item is not set to be planned, the planning horizon or time fences exclude the demand, the order policy or supply source is missing, or the planning run did not include the item. Check them in that order before suspecting the engine.
How-toHow to Create an Infor LN User from a User Template and Copy Authorizations
In Infor LN you create a user in User Data, link it to a user template that carries defaults such as language, printer, company and package combination, and assign roles that grant session and table authorizations. Copying authorizations from an existing user is possible but is the least safe approach compared with role-based assignment.
How-toHow to Add Users in the Baan / Infor LN GUI (Including Admin Access)
In Baan and Infor LN you create a user in the User Data session (ttaad2100m000), set the user type, language, company and login details, base it on a user template, and then give the user roles through the authorization management system. You need a user with administrator rights in the Tools (tt) package to do it, and in LN 10 the identity may also have to exist in Infor OS.
How-toHow to Change or Reset a Baan / Infor LN Password
Users change their own password from the change password option in the session menu after login, and an administrator resets another user's password in the User Data session (ttaad2100m000). On Infor LN 10 sites that sign in through Infor OS, the password lives in the identity provider, so you reset it there instead of in LN.
How-toInfor LN Report Designer: How to Build and Personalize Reports
Infor LN reports are designed in LN Studio's report designer, where a report is defined by its input fields, data selection through the session's tables and a layout of sections. To personalize a standard report, copy it into your customer VRC and edit the copy, never the standard object, so upgrades do not overwrite your work.
How-toInfor LN Inbound BOD Mapping and Descriptions
BOD stands for Business Object Document, an XML message format from the Open Applications Group (OAGIS) that Infor uses to exchange business data between LN and other applications through ION. An inbound BOD is received by ION, optionally mapped, delivered to LN and processed by the integration document type configured for that noun and verb. 'BOD report' usually means a view of BOD message status in ION, not a printed report.
How-toInfor LN 10.7 Picking Mission and Picking Profile Setup
In Infor LN Warehousing, picking is driven by outbound orders that generate outbound advice, then warehouse orders and the pick work that follows. Picking profiles and related warehouse settings control how pick work is grouped and released, so most 'nothing to pick' problems come from item, warehouse or location setup rather than from the pick screen.
How-toInfor LN 10.4 Lot Tracking: Setup and Traceability
Lot tracking in Infor LN 10.4 starts at the item: mark the item as lot controlled (and serialized if needed) in item data, then every receipt, issue and transfer must carry a lot. Traceability reports then follow a lot forward to customers and backward to suppliers. Switch tracking on before stock exists, because changing it on an item with inventory needs a controlled conversion.
How-toCustomer Furnished Material in Infor LN: Ownership, Cost and Receiving
Customer furnished material (CFM, also called free issue or customer supplied) is stock your customer owns but you hold and consume on their job. In Infor LN you must keep it out of your own inventory value, receive and issue it with full traceability, and be able to prove quantities on hand. The exact mechanism depends on the LN functionality you adopt, so decide the pattern first and test it end to end.
How-toWhat Is a Planning Cluster in Infor LN?
In Infor LN Enterprise Planning, a cluster groups planning entities, such as plants or warehouses, so that planning can be run, viewed and controlled as one unit. It is a structural setting that determines what is planned together, which is why a wrong cluster setup produces missing or surprising planned orders.
How-toConversion Factor Session in Infor LN: Setup and Common Errors
Infor LN converts between units using conversion factors, either general factors between units of the same physical dimension or item-specific factors that override them. When an item is bought in one unit and stocked in another, LN needs a factor for that pair. A missing factor is the usual cause of a conversion error on purchase orders, receipts or sales lines.
How-toPrice Book Session in Infor LN: Setup and Order Pricing
In Infor LN, a price book holds the selling prices for items, and LN selects the price for a sales order line by looking up the applicable price book through its pricing setup. If a sales line shows no price or the wrong one, check price book validity dates, the item and unit, the customer's assigned price structure and currency. Session names vary by version, so search the session list for price book.
How-toInfor LN item sales session, item purchase session and site data: where each lives
In Infor LN the item master is split by business function. General data sits in the Items - General table (tcibd001), sales data in Item - Sales (tdisa001) and purchase data in Item - Purchase (tdipu001). Site-dependent data such as ordering and planning parameters is held per item and site, so one item can behave differently in each site.
How-toAdditional cost setup in Infor LN, including machine cost
In Infor LN, costs beyond material are built from cost components, operation rates (labor and machine) and surcharges. You define the components, set rates on work centers and machines, attach additional costs through surcharges or cost components on items and orders, and then run the cost price calculation so the values flow into item cost and order cost.
How-toInfor LN planning BOM: how it works, setup and use (and what people mean by SIC planning)
A planning BOM is a structure used by Enterprise Planning to plan at family or option level, rather than the production BOM used on shop orders. You maintain planning items and a planning structure with proportions, and the planning engine uses it to explode forecasts into component and capacity requirements. 'SIC planning' is not a term I can pin to a single standard LN feature, so check how your site uses it.
How-toCalendars in Infor LN: create, assign and how they drive planning
Infor LN calendars define working and non-working days and available hours. You create a calendar with its day types and exceptions, assign it to enterprise units (such as sites, work centers or warehouses), and planning, scheduling and delivery date calculations use the calendar of the relevant unit.
How-toInfor LN integration document types and integration rules with ION
In LN, an integration document type ties an LN business object to a BOD noun and direction so ION can send or receive it. Rules and mappings then decide which LN data populates the BOD, which events trigger publication and how incoming BODs are converted into LN transactions. Set up the document type first, then the mapping, then test in ION Desk.
How-toInfor LN REST API: documentation, administration and a first call
LN REST access goes through the Infor ION API gateway. You register an authorized app in ION API, download its .ionapi credentials file, obtain an OAuth 2.0 token and call the LN API endpoints with the bearer token. Official reference material is on the Infor documentation site and the ION API documentation inside your Infor OS portal.
How-toInfor LN Application Studio and Studio: overview and getting started
LN customization is done with the LN Studio development tool and the application customization features of the LN UI. Studio is used to create or change sessions, forms, reports, scripts and DAL logic, kept in a customer VRC so standard code is untouched. Start with a development environment, a customer VRC and a small change.
How-toHow to Check the Infor LN Version and Current Package VRC
An Infor LN installation has four separate version facts: the application release and feature pack, the porting set that carries the bshell and database drivers, the package VRC that each user or company runs, and the installed solutions. The release is shown in the Help > About dialog of the client, the package VRC in the Tools package administration sessions, and the porting set on the server through the installation tooling.
How-toInfor LN Cost Peg Transfer: How It Works and How to Reconcile It
In Infor LN, pegging links supply and demand so cost incurred on a supply order (production, purchase, warehouse) can be charged to the project, element or activity it was created for. A cost peg transfer moves that pegged cost into project actuals, and it only works when the pegging, the project structure and the cost-component setup are correct before the run.
How-toInfor LN Master Planning: How It Works and a Setup and Run Checklist
Master planning in Infor LN looks at demand (sales orders, forecasts, dependent demand), nets it against inventory and open supply within the planning horizon, and generates planned orders with pegging that links each supply to the demand it serves. The result is only as good as the item planning data, the plan unit, the calendars and the horizon settings, so the checklist below starts with data, not the run.
How-toInfor LN 10.7 Pick Note Configuration in Warehouse Outbound
In Infor LN 10.7 Warehousing, the pick note (picking list) is produced by the outbound flow from the warehouse order lines: the warehouse parameters and outbound procedure decide when it is generated, the warehouse and location setup decide what appears on it, and the report layout decides how it looks. Configure those three layers in that order.
How-toBaan Open Order Report: Sales and Purchase Sessions, Filters and Tables
Baan and Infor LN have no single open order report. You get open sales orders from the Sales Control order and order-line sessions (or the Print Sales Orders session) and open purchase orders from the Purchase Control equivalents, then filter on order and line status and on outstanding quantity. For anything custom, query the order-line tables (tdsls401 and tdpur401) and compare ordered with delivered quantity.
How-toInfor LN Item by Business Partner Session: Where It Is and How It Links Data
In Infor LN, item data per business partner lives in purchase and sales item sessions that tie an item to a supplier or customer with partner-specific data such as the partner's item code, prices and lead times. Find the exact session with the session search for your package.
How-toInfor LN Text Editor and Text Fields: How They Work
Infor LN stores long text such as order notes and item descriptions as text records linked to a data record, edited with the text editor from a text indicator or the text menu on the session. Text can be tied to groups and languages, and printed on documents when the report includes it.
How-toRental Availability Session in Infor LN
The rental availability session in Infor LN lets a rental planner see whether a rentable item or serialized asset is free for a requested period, by comparing the stock or asset base against existing rental reservations and orders. You enter the item, the rental period and the warehouse or site, and read back what is available, reserved or out on rent. Session codes differ by LN version and package, so find it with session search.
How-toInfor LN Use-Up: Handling Old Material in Engineering Changes
Use-up means consuming existing stock of an old component or item before the new version takes over when an engineering change is introduced. In Infor LN you model it through the change's effectivity (a date or an effectivity unit) so the old item stays valid in the BOM until its stock is expected to run out, and planning then switches demand to the new item. Exact session names vary by version.
How-toInfor LN: Bestellarten und Bestellung erfassen
In Infor LN steuert die Bestellart (Einkaufsauftragsart, englisch purchase order type) den Ablauf eines Einkaufsauftrags: Nummernkreis, Freigabe, Belegfluss und Vorgaben fuer Positionen. Eine Bestellung legen Sie im Einkauf-Modul an, indem Sie Lieferant und Bestellart waehlen und Positionen mit Artikel, Menge, Preis und Termin erfassen. Sitzungsnamen koennen je nach Version abweichen.
How-toInfor LN: Bestandsvergangenheitsanalyse (Bestandshistorie)
Die Bestandsvergangenheitsanalyse in Infor LN beantwortet die Frage, wie sich der Bestand eines Artikels ueber die Zeit entwickelt hat und wie hoch er an einem bestimmten Stichtag war. Grundlage sind die Lagerbewegungen (Bestandstransaktionen) im Lagerverwaltungs-Modul. Den genauen Sitzungsnamen finden Sie ueber die Sitzungssuche, er unterscheidet sich je nach Version.
How-toInfor LN Item Group: Setup and Maintenance
An item group in Infor LN classifies items so that defaults, accounting and reporting can be applied by group instead of item by item. You maintain them in the Item Groups session (tcmcs023m000 in common data) and assign each item to one group in the item base data. Plan the group structure before loading items, because changing it later affects accounting defaults and history.
How-toFormat Codes in Infor LN: Data Formats and Masks
In Infor LN the way a number, date or code is displayed comes from the format attached to its domain, not from the table column. A format code or display mask (for example separators, decimals, leading zeros) is defined on the domain in the Tools data dictionary, and every field that uses the domain inherits it. Change formats on the domain, in development, and test affected sessions and reports.
How-toSegment Reporting in Infor LN: Financials Setup
Infor LN has no single switch for segment reporting. You build it from the financial structure: choose the segment definition (business unit, product line or region), carry it as a dimension or on the chart of accounts, map it to ledger postings, and report with the financial report writer or standard financial statements. Define the segments with your accountants first, since the design drives everything else.
How-toMPN in Infor LN: Manufacturer Part Numbers, Items and Suppliers
Infor LN does not treat the manufacturer part number as a single magic field. You normally hold the MPN through the item code system (alternative codes tied to your own item code) and through supplier-specific item data on the buy-from business partner, so purchase orders can print the supplier or manufacturer number while stock stays under your own item.
How-toInfor LN Document Central: Attachments and Document Management
In the Infor LN world, Document Central refers to the document and attachment layer that sits in the Infor OS portal and Infor Document Management (IDM), not to a single LN session. Users attach files to LN business objects such as orders, items and projects, and the files are stored and secured in the document service while LN keeps the link.
How-toInfor LN Date Format: User, Language, Reports and Integrations
In Infor LN the displayed date format is governed by the user's language and locale settings rather than one global switch. Change it in the user data and the language or regional settings, check the Web UI browser locale, and keep integrations on a fixed format such as ISO 8601 so display settings never affect the data.
How-toInfor LN Session Timeout, Starting Sessions and Personalization
An LN user can lose a session for two different reasons: the portal or identity token expiring (Infor OS or the identity provider) or the LN application server dropping an idle process. Check the identity token lifetime first, then server-side idle settings. Sessions are started by typing the session code in the Web UI search, and personalization is done per user or per role with the built-in personalize options.
How-toConditional Formatting in Infor LN: Grid and Field Colors
Row and field coloring by value is limited in the standard LN Web UI grids. Personalization covers layout, columns, sorting and filtering, while value-driven colors usually need a customization, an extension or a dashboard in a reporting tool. Decide what the color should communicate and pick the lightest tool that delivers it.
How-toInfor LN General Table Maintenance: Finding and Editing Tables Safely
LN code and data tables are named by package and module (for example tc for Common, td for Distribution, ti for Manufacturing), and nearly every table has a maintenance session. Find the session that owns the table, edit through it so validation and audit apply, and avoid direct SQL updates except under a controlled procedure.
How-toLieferantenbeurteilung in Infor LN: Supplier Evaluation and Rating
Die Lieferantenbeurteilung in Infor LN (supplier evaluation) bewertet Lieferanten anhand von Liefertreue, Qualitaet und Preis. In LN you define the criteria and weights, let the system collect delivery and quality data from receipts and inspections, and report the scores per buy-from business partner. Exact sessions depend on the release and installed modules.
AdvancedHow to extend business logic in Infor LN with DAL2
DAL2 lets you add custom validation, defaulting and calculation logic to Infor LN Enterprise Edition tables by writing a Java business logic handler class and registering it against a table event, without editing the standard DAL. Because the logic sits in your own package rather than inside Infor's base code, it survives upgrades that would otherwise overwrite a direct DAL change.
AdvancedHow to create a custom session in Infor LN Studio
Infor LN Studio's session designer generates a new maintenance, overview or detail session from a table definition, then lets you arrange fields, attach DAL2 validation, and wire menu access, all inside a custom package so the session survives upgrades. Building on a custom table gives the lowest upgrade risk; extending a standard table needs more care and re-testing after every release.
AdvancedHow to diagnose and fix a slow Infor LN session
A slow Infor LN session is usually caused by an unindexed or overly broad database query, unarchived data bloating a transaction table, or resource pressure on the Java application tier, and occasionally by a recently added custom DAL2 handler. The fix starts with isolating which tier the delay is actually in rather than guessing at a solution.
AdvancedInfor LN Planned Cost and Pegged Transfer Explained
In Infor LN, a pegged order is a supply order linked to a specific demand such as a project or sales order. Planned cost is the expected cost of that supply, and when the supply completes its actual cost is passed to the demand it is pegged to. If the peg is broken or the cost is stated differently on each side, the demand order shows wrong cost and margin.
AdvancedLogic Deactivation Session in Infor LN
Infor LN enforces business rules through the Data Access Layer (DAL), which runs validation and defaulting logic on every insert, update and delete. Logic deactivation is the controlled way to switch selected logic off for a defined scope, typically for a data conversion or a one-off repair, and then back on. Use it sparingly, with a backup, because rows written without logic can break integrity rules.
AdvancedInfor LN Text Table: How Text Fields Are Stored
In Infor LN, long text on records such as items, orders and customers is not stored in the business table itself. The record holds a text number, and the text lines live in the text table (tttxt010, per company), keyed by text number and language. To read text with SQL join on that number; to copy it, use the standard text copy functions rather than raw inserts.
AdvancedInfor LN Process Variables: Meaning, Setting and Inspecting
Every Infor LN session runs inside a bshell process that carries environment variables (such as BSE, the installation root) and in-memory process variables used by the 4GL code. Developers read and set process variables from code, commonly with the 4GL calls get.var and put.var, and inspect environment values from the shell or bshell startup options. Check how your version exposes them before relying on one.
AdvancedPrivate AI Layer for Infor LN On-Prem: Reference Architecture
For Infor LN on-prem, read through a reporting copy of the LN database and approved ION API or BOD-based calls, run retrieval over documents and attachments locally, and serve an open-weight model on your own GPUs. Map LN authorisations and companies into the tool server, log everything, and write back only through LN's supported interfaces with human approval.
AdvancedPrivate AI Layer for Baan On-Prem: Reference Architecture
For legacy Baan, do not touch the application. Copy data to a read-only reporting database on a schedule, index documents locally, expose approved read actions through a tool server, and serve an open-weight model on your own GPUs. Baan's table naming and authorisations must be mapped by hand, and writes should stay in Baan sessions.
Infor M3
M3 API Error: Record already exist
M3 API error: Record already existRecord already exist means the MI Add transaction you called is trying to insert a key that is already present in the target M3 table, most often because a prior call succeeded and was retried, or because the key fields you built do not match what you think they match. Read the errorField and errorFieldGroup attributes on the response to see exactly which key field M3 flagged, then either switch to the matching Chg (change) transaction or fix the key construction in the caller.
Error fixM3 API Error: Not Authorized to Program
M3 API SOAP call fails with Not authorized to programNot authorized to program (or the equivalent transaction-level authorization error) means the M3 user ID the integration authenticates as can log in fine but has not been granted access to that specific MI program, transaction, or company/division through its authority group. Fixing it means adding the program/transaction to the integration user's authority group in M3, not changing anything in the calling code.
Error fixEVS006 in Infor M3: What It Means and How to Fix It
evs006 infor m3EVS006 is an M3 message ID. We cannot give one authoritative meaning for it that holds across every version and program, and a guessed meaning would send you the wrong way. This page shows how to resolve the exact text and the field behind the message in your own system, which is the reliable way to fix any M3 message.
How-toHow to Build a Grid Mapping in M3 Enterprise Collaborator (MEC)
M3 Enterprise Collaborator (MEC) moves data between an external format (EDI, flat file, XML) and M3's own API by chaining a collection step (getting the document in), a grid mapping step (field-level transformation from source structure to M3 API call structure), and a delivery step (executing the mapped MI transaction). Building a new mapping means defining the source document structure, building the grid that maps each source field to its M3 API field, and testing with representative sample documents before going live.
How-toHow to Add a Personalization Script to an M3 H5 Panel
M3 H5 lets an administrator attach a JavaScript personalization script to a specific panel of a specific program, using the MForms client API to read fields, react to panel and field events, and adjust the UI (hide fields, set defaults, validate input) without modifying the underlying M3 program. Scripts are written and attached through Personalization mode in H5, saved against the panel/program combination, and deployed to the users or roles who should see the behavior.
How-toHow to Create a New Item in M3 (MMS001)
A new item in M3 is created in two stages: item basic data in MMS001 (Item. Open), which defines company-wide attributes such as description, item group and unit of measure, then facility-level data in MMS002 (Item/Facility. Connect), which attaches the item to a specific warehouse or plant with purchasing, planning and costing parameters. An item is not usable for orders, purchasing or MRP until both stages are complete.
How-toHow to Enter a Customer Order in M3 (OIS100)
OIS100 (Customer Order. Open) is the primary M3 program for entering and maintaining customer orders, built as a header-then-line workflow: you first create the order header with customer, order type and delivery terms, then add order lines that each carry their own item, quantity, price and delivery date defaulted from customer and item agreements.
How-toHow to Run Period End Close in M3
M3 period end close is not a single button - it is a sequence: close sub-ledger activity in inventory, purchasing and sales first, reconcile and post any pending vouchers, then close the accounting period in the financials basic data so no further postings can hit it without explicit reopening. Doing the steps out of order is the most common reason a company has to reopen a period after close.
How-toHow to Attach and View Documents in M3 with IDM
Infor Document Management (IDM) attaches to M3 through key-based document classes: each document is filed against a document class that maps to a specific M3 program and key fields (order number, item number, customer number), so the paperclip or document icon on that M3 panel shows only documents whose stored key values match the record you are viewing.
How-toInfor M3 negative on-hand balance: how to find it and fix it
Negative stock in M3 almost always comes from an issue or reporting transaction posted against a balance ID that had not yet been received, or from a receipt that was reversed after the stock was consumed. Find the item and warehouse in the item-warehouse balance (MITBAL), compare it with the balance IDs (MITLOC), read the item transactions (MITTRA), and correct with a stock count or a proper receipt rather than a blind adjustment.
How-toInfor M3 manufacturing order material not allocated or short
When an M3 manufacturing order shows components as short or unallocated, the cause is usually available stock that is not allocatable to this order, an allocation method that did not run, or a demand date and warehouse that do not match the stock. Compare the MO materials (MWOMAT) with the allocations (MITALO) and the item-warehouse balance, then fix the stock, the method or the warehouse rather than forcing the allocation.
How-toInfor M3 MRP not creating planned orders: what to check
If M3 planning does not suggest an order for an item, the item-warehouse is usually not set up to be planned, the demand is not visible to planning in the horizon, existing supply already covers it, or the planning run did not include the item. Check the item-warehouse planning parameters first, then supply and demand, then the run itself.
How-toInfor M3 Business Engine upgrade checklist: customizations and integrations
An M3 upgrade rarely fails on the core transactions. It fails on what surrounds them: customizations, integrations through MI programs and ION, H5 personalizations and scripts, reports and interfaces nobody documented. Inventory those first, test them against a copy of production data, and plan the cutover around your busiest processes.
How-toInfor M3 goods receipt against a purchase order, and how to reverse it
In M3 you receive goods against a purchase order line in the goods receiving function of Purchase Order (PPS), which creates the inventory transaction and, depending on setup, an accrual. A wrong receipt is corrected by reversing it through the same function, but only cleanly if the stock has not already moved and the invoice has not been matched.
How-toInfor M3 API Swagger: Discover MI Programs, Authenticate and Test Calls
M3 exposes its business logic as MI programs (such as MMS200MI or OIS100MI) with transactions that you call over REST through ION API. The ION API portal presents the available APIs with Swagger/OpenAPI documentation, so you can browse programs and transactions, see input and output fields, and try calls after authenticating with an OAuth 2.0 token from an ionapi credentials file.
How-toInfor M3 Planning Time Fence: Settings, the Planning Workbench and Typical Mistakes
In M3 MRP, time fences define how close to today the planning engine is allowed to create or change orders. The demand time fence controls which demand is considered firm, and the planning time fence stops automatic order creation inside it, leaving the planner to decide in the planning workbench. Most missing planned orders come from time fence values that are too long for the item's real lead time.
How-toInfor M3 Ad Hoc Report: Your Options, Step by Step, and Their Limits
There is no single ad hoc report tool in M3. Users pick from five routes depending on volume and skill: export the list they already see, build a report in an Excel or BI tool connected to M3, call M3 APIs for exact data, query a replicated data lake, or use a natural-language layer. The right route depends on how many rows you need and whether the result must be repeatable.
How-toInfor M3 Export to Excel: Lists, Report Output and the API Route
There are three ways to get M3 data into Excel: export the list or panel you are looking at in the client, connect Excel through an M3 connector or add-in for refreshable data, or pull exact data with the MI API into a sheet or Power Query. The client export is quickest, but it only exports what is displayed and is subject to list limits.
How-toHow to Change Division in Infor M3
In M3 a user works in one company (CONO) and one division (DIVI) at a time. You switch for the current session from the company/division selector in the H5 client, and you change the default you land in through the user settings (MNS150). If the division you want is missing or rejected, the user lacks authority for it.
How-toInfor M3 Standard Cost: How to Set, Roll Up and Revalue
In M3 a standard cost is calculated by product costing from the bill of material, routing and overhead rules, then updated onto the item as the cost used for inventory valuation and variance. Changing it triggers a revaluation of stock, so plan the date, the periods and the approval before you update.
How-toInfor M3 Date Format: User Setting, API and Database
M3 stores and exchanges dates as 8-digit numbers in year-month-day order, for example 20261021. What a user sees on a panel follows the date format set on their user record, but the database and MI APIs do not change with it. Convert at the edges of an integration and never rely on the display format.
How-toPick Line vs Wave Line in Infor M3
A pick line is the instruction to pick a quantity of an item from a location for one order line. A wave groups many such lines so the warehouse releases and works them together by time, route, carrier or zone. Terminology and screens depend on your M3 release and warehouse setup, so confirm against your own configuration.
How-toInfor M3 Scheduling Options (APS162 and Job Scheduling)
Scheduling in M3 has two meanings. Planning scheduling sets dates and capacity for manufacturing orders, forward or backward, with infinite or finite capacity. Job scheduling runs batch programs such as MRP at set times. We cannot verify APS162 details from public sources, so confirm what that program does in your release before you change it.
How-toInfor M3 Master Data: The Core Objects and the Programs That Maintain Them
Infor M3 master data is a small set of linked objects: items (MMS001), item-warehouse records (MMS002), customers (CRS610), suppliers (CRS620), product structures (PDS001) and the operations and work centers that make up routings. Everything transactional, from customer orders to manufacturing orders, reads these records, so load them in dependency order and treat them as governed data.
How-toInfor M3 Report Manager: Building, Running and Alternatives
Report Manager is Infor's financial reporting tool used with M3 to produce statements and management reports such as balance sheets, income statements and budget comparisons from general ledger data. You define the report layout, link rows and columns to accounts and dimensions, and run it for a period. Check your M3 edition for the exact reporting tool included.
How-toHow to record an expense in the general ledger in Infor M3
In M3 an expense reaches the general ledger as a voucher: either a supplier invoice entered in Accounts Payable (the APS450 family) that debits an expense account and credits the AP control account, or a manual journal voucher entered in General Ledger (GLS040 in most installations). Either way the voucher needs a valid accounting string, a balanced total, and must be updated to the ledger.
How-toInfor M3 chart of accounts: structure and setup
In Infor M3 the chart of accounts is the list of values for the first accounting dimension (the account, AIT1), and it sits alongside up to six more accounting dimensions such as cost centre, project or department. Together they form the accounting string every posting carries. You set it up in the finance constants (CRS-series programs), then link transactions to it through accounting control objects.
How-toInfor M3 order to cash: the flow and the programs
M3 order to cash runs customer order entry (OIS100), allocation, picking and delivery in warehouse management (MWS410 delivery handling), then invoicing, which transfers the invoice to Accounts Receivable and the general ledger, and finally cash application. The customer order line status shows where each line is stuck.
AdvancedPaging M3 API MI List Transactions Past the Default Record Limit
M3 List transactions (the read/browse transaction most MI programs expose, such as CRS610MI.LstByNumber or OIS100MI.LstOrderHead) cap the rows returned per call using the MaxReturnedRecords input field, and by default many clients leave it low or unset, which looks like the API silently truncating results. Set MaxReturnedRecords explicitly, then loop the call using the last key values from the previous page as the starting position until fewer rows than the limit come back.
AdvancedHow to Call M3 API (MI Programs) Through ION API
Calling M3 from an external system today almost always means going through ION API rather than the older direct MvxAPI SOAP endpoint: you create an ION API authorized app or service account in the ION API portal, download its .ionapi credential file, obtain an OAuth 2.0 access token, and call the M3 MI program transaction through the m3api-rest execute endpoint with that token.
AdvancedInfor M3 Allocation Table: MITALO Reference and Queries
M3 records material and stock allocations in the allocation table, MITALO, one row per allocation of an item to a demand such as a customer order line or a manufacturing order material line. The allocated total is also summarised on the item-warehouse balance, which is why the two can disagree when something goes wrong.
AdvancedInfor M3 SDK, MI APIs and REST API Documentation Guide
There is no single M3 SDK. Developers use a set of tools: MI programs (the API layer over Business Engine), the REST endpoint that exposes them, the H5 client SDK for scripts and extensions, and the Grid and ION tooling around them. Start with MI programs and REST, and use the official Infor documentation for the transaction list.
AdvancedInfor Factory Track for M3: Shop Floor Data Collection Explained
Infor Factory Track is a shop floor data collection and execution product used with M3 so that operators report production, time and materials at the machine instead of on paper or at an ERP terminal. It reads released manufacturing orders from M3 and writes reported quantities and times back, so M3 costing and planning see actuals.
AdvancedInfor M3 Security Settings: Roles, Authorization and Setup
M3 security combines who the user is, the roles they hold, which programs and options a role may use (function authority), and which companies, divisions, facilities and warehouses it may work in (data scope). You set it up by connecting users to roles and roles to authorizations, then audit with the security reports.
AdvancedPrivate AI Layer for Infor M3 On-Prem: Reference Architecture
For Infor M3 on-prem, use the M3 API (MI programs) for permission-aware record access, a read-only reporting copy of the M3 database for aggregates, a local retrieval index for documents, and an open-weight model on your own GPUs. Mirror M3 users, companies, divisions and warehouse authorities in the tool server and send writes only through MI programs with human approval.
Infor ION / OS
Fix a 401 Unauthorized error from Infor ION API
infor ion api 401 unauthorizedA 401 from ION API almost always means the credentials in the .ionapi file no longer match what ION API Gateway expects - not that the password is simply wrong. Check whether the Authorized App or service account behind the file was revoked, regenerated, expired, or issued for a different tenant, then re-test with a direct OAuth2 client_credentials call before touching any calling code.
Error fixDiagnose and fix a failed BOD document flow in ION Desk
ion document flow failed error in ion deskA Document Flow showing Failed in ION Desk means a BOD (Business Object Document) stopped either at schema validation, at the mapping step, or at the target application. Open the failed instance's detail to see the exact failing element, fix the source data or mapping, then use Resubmit rather than re-triggering the original transaction to avoid duplicates.
Error fixFix a Ming.le homepage widget that will not load
infor ming.le widget not loading blankA blank or endlessly spinning Ming.le widget is usually a permissions, session, or backend availability problem, not a broken widget itself. Confirm the issue is widget-specific, check the user's Security Group access to the underlying app, and look at the widget's network calls in browser dev tools to see whether it is failing with 401/403 or simply timing out against a down service.
Error fixInfor OS Add-In for Excel Not Showing or Not Signing In: How to Fix It
infor os add-in for excelWhen an Infor add-in for Excel does not appear or cannot connect, the cause is usually one of five things: a bitness or runtime mismatch, Excel having disabled the add-in, blocked trust or macro settings, a sign-in or SSO problem, or a network and proxy block to the Infor endpoint. Work through them in that order.
How-toHow to query Infor Data Lake with Compass SQL
Compass is the SQL query layer in Infor OS for querying Infor Data Lake, where flattened copies of BODs published over ION are stored by Noun and Verb. Open a Compass SQL Workbench tab, browse the schema for the correct table, and run a filtered SELECT rather than pulling the full history, since Data Lake tables can hold years of append-only data.
How-toConnect a Birst Space to Infor Data Lake and build a report
Birst is Infor's embedded BI layer, and the recommended way to report on live Data Lake data is a Live Access source inside a Birst Space rather than a static upload. Build the logical model over a filtered set of tables, apply row-level security, and publish the dashboard to a Ming.le homepage so users reach it without leaving Infor OS.
How-toHow to Create an .ionapi File and Service Account in Infor OS
An .ionapi file is a JSON credentials file you download from ION API after registering an Authorized App of type Backend Service and creating a service account for it. It carries the tenant, client id, client secret, the token and authorization endpoints, and the service account keys that your scripts or integrations use to request an OAuth 2.0 access token.
How-toHow to Search and Upload Documents with the Infor IDM REST API
Infor Document Management (IDM) exposes REST services through ION API under the IDM path of your tenant. You search items with a $query expression written against an entity and its attributes, read the returned resource links to fetch the file, and create new items with a multipart request that carries an XML description of the entity and attributes plus the file stream.
How-toHow to Set Up SAML Single Sign-On for Infor OS
Infor OS can trust your corporate identity provider, such as Microsoft Entra ID or Okta, through SAML 2.0 federation. You exchange metadata between the two sides, map a stable identifier such as the email or user principal name to the Infor user, and then test with a pilot user before switching everyone over.
How-toInfor Birst: Documentation, BQL and Smart Insights Explained
Infor Birst is a cloud analytics and BI platform that connects to ERP data, models it into a semantic layer and lets users build dashboards and reports. BQL (Birst Query Language) is its SQL-like query language over that model, and Smart Insights uses automated analysis to point out drivers and outliers. Official documentation is published by Infor.
How-toInfor FSM: Run the Outstanding Check Listing Report
In Infor Financials and Supply Management, outstanding checks are payments issued from Accounts Payable that the bank has not yet cleared in Cash Ledger. You run the outstanding check listing from the Cash Ledger (bank reconciliation) reporting area, filtered by bank code and as-of date. Report and menu names vary by version and configuration.
How-toInfor ION Scripting and ETL: Transformation Options Explained
ION is an integration and messaging layer, not a general ETL tool. Transformation happens in mappings inside document flows (field mapping, functions, conditions) and in Data Lake ingestion; for heavy or multi-source ETL you normally pair ION with a dedicated tool. Scripting capabilities depend on the ION component and version.
How-toInfor ION Workflow Examples: Approval and Notification Flows
ION Workflow models a business process as triggers, tasks, decisions and notifications, and users act on those tasks through ION Desk. A typical example is a purchase or change approval that starts from an application event, routes to an approver, and writes the decision back. Infor VISUAL's workflow features are separate from ION.
How-toInfor ION API Connection Point and Enterprise Connector Setup
A connection point in ION Connect defines how ION talks to one system. An API connection point lets ION call or receive from a REST-style API, while enterprise connectors link ION to ERPs and other applications through Infor-provided integration. Cloud and on-premise deployments differ mainly in networking, security and how connectors are hosted.
How-toInfor ION Data Flow, Calling an API in a Workflow, and Task Dropdowns
A data flow moves documents or data from a source to a target, with mapping in between. Inside an ION workflow you call an API through a service step that uses ION API credentials, and a task dropdown gets its options either from a fixed list defined on the form or from values your workflow loaded earlier. Details depend on your ION version.
How-toInfor ION Grid: What It Is and How Grid Management Credentials Work
The Infor Grid is the Java-based runtime that hosts ION and many other Infor OS applications on a set of hosts called nodes. Grid Management is its web console, where an administrator starts and stops applications, checks nodes and manages grid-level users. Credentials are set when the grid is installed and are kept separate from your ERP logins, so lost access is fixed through your grid administrator or Infor documentation, not through the ERP.
How-toInfor LN and M3 BOD Documentation: Definitions, Mapping and Tracing in ION
A BOD (Business Object Document) is the XML message ION moves between Infor applications. Definitions come from the Infor documentation and from ION itself (the document and schema information in ION Desk), the outbound mapping is configured in the application that publishes the BOD, and a BOD is traced through ION with the message monitoring tools by its document name and identifier.
How-toInfor OS Usage Limits: What They Are and What to Do When You Hit Them
Infor OS limits how hard clients can call its services, most visibly through the ION API gateway, and answers over-limit calls with HTTP errors such as 429 rather than silently dropping them. Exact numbers depend on your tenant and contract, so confirm them with Infor, then fix the cause: chatty clients, missing caching, or polling that should be an event.
How-toInfor OS Add-In for Microsoft Excel: Install, Sign In and Use
Infor offers Excel add-ins that connect to Infor OS and the ERP behind it so users can pull data into a worksheet and, where the product allows, send data back. The exact add-in depends on your Infor product and release, so get the installer and prerequisites from your Infor support portal, then sign in with your Infor OS identity.
How-toInfor OS App Designer: How to Build Apps and Homepages
In Infor OS, apps and homepages are assembled in the portal: you register an app (a URL, launch parameters and an icon), place it in a role-based set of apps, and compose homepages from widgets and links. The tooling and menu names differ by release, so confirm them in your tenant, but the process and the governance below hold.
How-toInfor Birst Dynamic Groups for Row-Level Data Access
In Birst you control which rows a user sees by tying a data filter to user or group membership. A dynamic group is the pattern where membership comes from data, for example a security table mapping users to plants, rather than from groups you maintain by hand.
How-toInfor Birst API: Web Services for Data Loading and Automation
Birst exposes web services that let a script log in, upload data to a space, publish it and run queries. Use them to automate loads and extracts, with a service account, polling for completion, and logging each step.
How-toInfor ION File Template and Email Template: How to Set Them Up
In ION you move files through a file connection point that reads or writes a location and maps the content to a document in a flow, and you build email text in workflow notifications. Both come down to a connection or activity, a defined layout and a mapping.
AdvancedInfor Data Lake Compass API: Submit a Query, Poll and Fetch Results
The Compass API in Infor Data Fabric runs SQL against Data Lake objects asynchronously. You POST the SQL to start a job, poll the job until it reports finished, and then request the results in pages. Authentication is the same ION API token you use for other Infor OS services.
AdvancedHow to Map and Transform a BOD in Infor ION Connect
In ION Desk you create a mapping between a source document and a target document, add it to a document flow between two connection points, and test it by sending a real or sample BOD. The mapping editor lets you assign fields, apply functions and lookups, and handle repeating structures, while the ION Monitor shows the result of each run.
AdvancedInfor OS Service Limits: Payload, File Size and Rate, and How to Design Around Them
Infor OS services such as ION API and ION messaging have limits on request rate, payload or document size, and processing time. The values change by service and release, so look them up for your tenant rather than trusting a number from a thread, and design integrations to be chunked, resumable and idempotent so a limit becomes a retry instead of an outage.
Oracle NetSuite
Fix NetSuite SSS_USAGE_LIMIT_EXCEEDED Error
SSS_USAGE_LIMIT_EXCEEDED NetSuite errorSSS_USAGE_LIMIT_EXCEEDED fires when a SuiteScript execution consumes all the governance units (usage points) allotted to its script type before it finishes. Fix it by checking runtime.getCurrentScript().getRemainingUsage() before expensive calls, yielding or rescheduling in Scheduled scripts, and moving heavy record-count work into Map/Reduce, which yields automatically across stages.
Error fixFix NetSuite INVALID_FLD_VALUE Error
NetSuite INVALID_FLD_VALUE errorINVALID_FLD_VALUE means NetSuite rejected a value you tried to set on a field because it does not match the field's expected type, list option, or reference record. Fix it by confirming the internal ID or text value actually exists on that field's source list and matches the field's value type (text versus list versus record reference) before setting it.
Error fixFix NetSuite SSS_MISSING_REQD_ARGUMENT Error
SSS_MISSING_REQD_ARGUMENT NetSuite errorSSS_MISSING_REQD_ARGUMENT means a NetSuite API call, most often record.create(), record.load(), or search.create(), was called without a parameter that method requires, such as type or id. Fix it by checking the object literal you passed against the current SuiteScript 2.x API signature and confirming no required key is undefined at runtime.
Error fixFix NetSuite RCRD_HAS_BEEN_CHANGED Error
The record you are trying to edit has been changed by another user NetSuiteRCRD_HAS_BEEN_CHANGED, shown to users as a message that the record was changed by another user or in another window, fires when NetSuite's optimistic concurrency check detects that the record's last-modified stamp changed between when it was loaded and when the save was submitted. Fix it by identifying the concurrent writer, whether a user, a workflow, or a script, and serializing the conflicting updates instead of both racing to save the same record.
Error fixFix NetSuite INSUFFICIENT_PERMISSION Error
NetSuite INSUFFICIENT_PERMISSION errorINSUFFICIENT_PERMISSION means the role executing the request, whether a logged-in user or the role behind a script deployment, lacks a specific permission needed for the record type, transaction type, or subsidiary being accessed. Fix it by checking the role's permission list under Setup > Users/Roles > Manage Roles against the exact record and level (View, Create, Edit, or Full) the operation requires.
Error fixFix NetSuite SSS_REQUEST_TIME_EXCEEDED Error
SSS_REQUEST_TIME_EXCEEDED NetSuite errorSSS_REQUEST_TIME_EXCEEDED fires when a synchronous request, most often a Suitelet page render, a RESTlet call, or a Client Script action, runs past the maximum wall-clock time NetSuite allows for that request type, independent of how many governance units the script had left. Fix it by moving long-running work out of the synchronous request path into a Map/Reduce or Scheduled Script and having the UI or integration poll for completion instead of waiting on one call.
Error fixFix NetSuite CANNOT_CONVERT Error
NetSuite CANNOT_CONVERT error SuiteScriptCANNOT_CONVERT is thrown when SuiteScript tries to coerce a value into a data type the target field or API call does not accept, most often a text string passed to a date or numeric field, or a value passed to N/format.parse() with a type parameter that does not match the string's actual format. Fix it by matching the value's JavaScript type and format string exactly to what the field or format.parse() call expects before passing it in.
Error fixFix NetSuite SSS_INVALID_SUBLIST_OPERATION Error
SSS_INVALID_SUBLIST_OPERATION NetSuite errorSSS_INVALID_SUBLIST_OPERATION fires when a SuiteScript sublist line API, such as selectLine, commitLine, getCurrentSublistValue, or insertLine, is called in a context that does not support it, most often mixing dynamic-mode line APIs with a record loaded in standard mode, or reading a current sublist value before a line has been selected. Fix it by loading the record with isDynamic set consistently with the API style you use, and always calling selectLine or selectNewLine before any getCurrentSublistValue or setCurrentSublistValue call.
Error fixFix NetSuite INVALID_KEY_OR_REF Error
NetSuite INVALID_KEY_OR_REF errorINVALID_KEY_OR_REF fires when NetSuite cannot resolve a key used to reference another record, most commonly a parent record id on record.create's initial defaultValues, a joined internal id in a saved search filter, or a foreign key style reference in a CSV import mapping, because that id does not exist, is inactive, or is not visible in the current role or subsidiary context. Fix it by confirming the referenced internal id actually exists and is accessible before the reference is used, rather than assuming a previously valid id is still good.
Error fixFix NetSuite SSS_REQUEST_LIMIT_EXCEEDED Error
SSS_REQUEST_LIMIT_EXCEEDED NetSuite errorSSS_REQUEST_LIMIT_EXCEEDED fires when the number of concurrent inbound requests, typically SuiteTalk web services or RESTlet calls, against an account exceeds the concurrency limit allowed for that account's service tier, independent of any single script's governance units or run time. Fix it by serializing or queuing integration calls, adding retry with backoff on the caller side, and consolidating many small calls into fewer bulk operations.
Error fixNetSuite MRP Not Generating Planned Orders: Causes and Fixes
NetSuite MRP not generating planned ordersWhen NetSuite Generate Planned Orders returns nothing, the cause is nearly always item setup or demand: the item is not set for supply planning, demand falls outside the planning time fence, existing supply already covers it, or the lead time and lot size settings prevent a suggested order. Check the item's Planning fields first, then the demand source, then the plan itself.
Error fixFix NetSuite MODULE_DOES_NOT_EXIST in SuiteScript 2.x
NetSuite MODULE_DOES_NOT_EXIST SuiteScript 2.x errorMODULE_DOES_NOT_EXIST is thrown when the SuiteScript 2.x loader cannot resolve a path listed in define() or require(). In practice the cause is almost always a wrong relative path, a missing file in the File Cabinet, a bad N/ module name, or a library that was not deployed with the script.
Error fixNetSuite CSV Import Stuck in Processing or Queued
NetSuite CSV import stuck in Processing or QueuedA CSV import that sits in Queued or Processing is normally waiting for a free processor, blocked by long running scripts on the target record, or retrying because of a lock. Check Setup > Import/Export > View CSV Import Status, then the Script Execution Log and Map/Reduce Status for what is running on the same records.
Error fixFix NetSuite Saved Search Invalid Expression and ORA-00904
NetSuite saved search Invalid Expression ORA-00904 invalid identifier formulaInvalid Expression or ORA-00904 in a saved search means the formula references a column Oracle SQL cannot resolve, usually a wrong field id, a field from a join that is not in the search, or a record type that does not own the field. Other ORA codes such as ORA-00932 point to a data type mismatch.
Error fixNetSuite Workflow Not Triggering: Troubleshooting Checklist
NetSuite workflow not triggering or not runningA NetSuite workflow that does not run is almost always one of five things: it is not Released, the trigger event or execution context does not match how the record was saved, the initiation condition is false, the record is out of scope by subsidiary or role, or an earlier workflow or script changed the record first. Check Workflow History to see which.
Error fixNetSuite OneWorld: Customer or Vendor Not Available for Subsidiary
NetSuite OneWorld customer or vendor not available for subsidiary on transactionIn NetSuite OneWorld a customer, vendor, partner or contact can be used only on transactions in subsidiaries it is assigned to. If it does not appear in the dropdown or the save fails on subsidiary validation, add the subsidiary on the entity's Subsidiaries sublist and make sure a transaction currency is available for that relationship.
How-toHow to use formula fields in a NetSuite saved search
In the saved search Results tab, add a column, set Field to "Formula (Text)", "Formula (Numeric)", "Formula (Date)" or "Formula (Currency)", then type an Oracle SQL expression into the Formula box using curly braces around field IDs, e.g. {trandate} or {item.custitem_weight}. Formula fields can also go on the Criteria tab so you can filter on the calculated value itself.
How-toHow to write and run SuiteQL queries in NetSuite
SuiteQL is NetSuite's read-only SQL dialect over the underlying record tables, run either interactively from Analytics > SuiteQL Query Tool (or the older /app/suiteanalytics query page), through REST at /services/rest/query/v1/suiteql, or programmatically via the N/query module in SuiteScript 2.x. It supports standard SELECT, JOIN, WHERE, GROUP BY and window functions against table names that mostly match record type IDs (transaction, transactionline, item, customer).
How-toHow to build a workflow in NetSuite with SuiteFlow
Go to Customization > Workflow > Workflows > New, pick the record type and select Server, Client, or both as the trigger context, then build states and transitions on the workflow diagram, attaching actions (Set Field Value, Send Email, Create Record, Custom Action Script) to each state or transition. Release the workflow (top right dropdown, Testing to Released) once validated, since a workflow left in Testing only fires for the workflow owner.
How-toHow to create an assembly build or work order in NetSuite
For simple manufacturing with no routing or WIP tracking, use Transactions > Manufacturing > Build Assemblies (or Enter Assembly Build), select the assembly item, quantity, and location, and NetSuite consumes the BOM components and receives the finished item in one transaction. For multi-step production needing routing, WIP accounting or partial completions, create a Work Order (Transactions > Manufacturing > Work Orders) and process it through Work Order Completion, which requires the Advanced Manufacturing feature (SuiteSuccess Manufacturing or WMS add-on) or the Manufacturing bundle.
How-toHow to run intercompany transactions in NetSuite (OneWorld)
Enable the Intercompany Framework and Automated Intercompany Management features (Setup > Company > Enable Features > Company), then create an Intercompany Sales Order or Purchase Order between two subsidiaries in the same NetSuite account; NetSuite auto-generates the matching intercompany transaction on the counterparty subsidiary and posts the elimination journal entries during period close if Advanced Intercompany Journal Entries is also enabled.
How-toHow to Customize NetSuite Advanced PDF/HTML Templates
NetSuite Advanced PDF/HTML templates use FreeMarker markup inside an XML-for-PDF or HTML wrapper, edited under Customization > Forms > Advanced PDF/HTML Templates. You reference transaction body fields with ${record.fieldid}, loop line items with a list directive over record.item, and control layout with standard XSL-FO style tags in the barcode/pdf namespace.
How-toHow to Import CSV Data Into NetSuite Reliably
NetSuite's CSV Import Assistant, under Setup > Import/Export > Import CSV Records, maps spreadsheet columns to record fields, matches existing records by internal ID or a chosen field, and can create, update, or upsert in a single run. The most reliable imports use a saved import map, reference records by internal ID where possible, and stage the file with a header row that exactly matches expected column types.
How-toHow to Set Up Revenue Recognition With NetSuite ARM
NetSuite Advanced Revenue Management (ARM) recognizes revenue on a schedule independent of invoicing by generating a Revenue Element from each transaction line, applying a Revenue Recognition Rule to determine timing, and optionally allocating revenue across performance obligations using Standalone Selling Price (SSP). Setup requires enabling the ARM feature, defining recognition rules, and mapping item revenue categories before transactions start generating revenue plans.
How-toHow to Set Up Approval Routing in NetSuite
NetSuite offers two approval routing paths: native transaction approval (Enable Features > Transaction approvals, then per-employee Approval Limit and Purchase Approval Limit fields) for simple single-approver chains, and SuiteFlow (Customization > Workflow > Workflows) for multi-step, condition-based, or parallel approval routing with escalation and notification logic.
How-toHow to Build NetSuite Dashboards and KPI Scorecards
NetSuite dashboards are assembled from portlets (KPI, KPI Scorecard, List, Trend Graph, Report Snapshot) added via Personalize Dashboard, where KPI portlets show a single metric with a comparison period and KPI Scorecards show a table of multiple KPIs across time periods and can be published to a role for standardized reporting.
How-toHow to Set Up Routings and WIP in NetSuite Manufacturing
In NetSuite Advanced Manufacturing, a routing defines the ordered operations, work centers and labor or machine resources an assembly passes through. When a work order with a routing is released, NetSuite creates manufacturing operation tasks, and costs move into WIP through work order issues and operation completions before the final work order completion relieves WIP into finished inventory.
How-toNetSuite Lot and Serial Traceability: Forward and Backward Trace
NetSuite stores lot and serial numbers as inventory number records linked to transactions through the Inventory Detail subrecord. A recall trace works by starting from the inventory number, finding every transaction line that touched it, and following work order issues and assembly builds to the finished lots they went into. It is fully possible with saved searches or SuiteQL, though it takes setup.
How-toNetSuite Quality Management: Incoming Inspection and Quarantine
Core NetSuite does not ship a full quality management system with inspection plans, sampling rules and certificates. You build incoming inspection from Inventory Status, a quarantine status or location, a workflow and a custom record for inspection results and nonconformances, or you add a quality SuiteApp. Which route is right depends on how formal your audit requirements are.
How-toNetSuite Outsourced Manufacturing: Subcontract Work Order Flow
NetSuite outsourced manufacturing lets you buy a finished or processed assembly from a vendor while supplying the components yourself. A purchase order drives a linked work order, components are sent to the vendor, and the item receipt brings in the assembly with component cost plus the vendor charge. It works well once the item, vendor charge and component location are set correctly.
How-toHow to Create a Custom Record Type in NetSuite
Go to Customization > Lists, Records, & Fields > Record Types > New, name the record, set the script ID and access type, add custom fields on the Fields subtab, and decide who can see it on the Permissions subtab. Use a custom record when you need a new table of data with its own fields, forms and searches, not just a drop-down list.
How-toHow to Create an Item Fulfillment in NetSuite (Pick, Pack, Ship)
Open an approved sales order and click Fulfill, or use Transactions > Sales > Fulfill Orders to batch them, then set quantities and inventory detail and save. With the Pick, Pack and Ship feature on, the fulfillment moves through Picked, Packed and Shipped statuses, and inventory and cost of goods post when it reaches Shipped.
How-toHow to Set Up and Process Drop Ship Orders in NetSuite
Enable Drop Shipments and Special Orders, set Create PO to Drop Ship on the sales order line, and NetSuite generates a purchase order that ships straight to your customer. Receiving that purchase order records the vendor shipment and fulfills the sales order line, without moving inventory in your warehouse.
How-toHow to Set Up Multi-Currency and Revalue Balances in NetSuite
Enable Multiple Currencies under Setup > Company > Enable Features > Accounting, add currencies at Lists > Accounting > Currencies, maintain rates at Lists > Accounting > Currency Exchange Rates, and run Transactions > Financial > Revalue Open Currency Balances each period. Revaluation books unrealized gain or loss on open foreign balances; payments book realized gain or loss.
How-toHow to Set Up Budgets and Budget vs Actual in NetSuite
In NetSuite, budgets are entered per account, year and optional dimensions (subsidiary, department, class, location) at Transactions > Financial > Set Up Budgets, or loaded by CSV import. Reports such as Budget vs. Actual under Reports > Financial then compare the plan to posted actuals by period.
How-toNetSuite Manufacturing Mobile: shop floor work orders and requirements
NetSuite Manufacturing Mobile is a tablet and phone interface that lets operators view assigned work orders and operations, report quantities and issue or complete work against them without sitting at a desktop. It depends on NetSuite's Manufacturing features being enabled and on roles, work centers and routing being set up correctly.
How-toNetSuite manufacturing task scheduler, tablet and mobile
NetSuite schedules manufacturing by creating operation tasks from a routing when a work order is released, placing them on work centers using run times, setup times and the work center calendar. Operators then use the mobile or tablet interface to work those tasks. NetSuite scheduling is capacity-aware but is not a full finite-capacity optimiser, so know its limits.
How-toNetSuite Delete Integration: How to Remove an Integration Record and Its Token Access Safely
In NetSuite an integration record is the application identity (consumer key and secret) behind token-based authentication and OAuth. The safe order is: find what still uses it, set its State to Blocked, revoke the access tokens issued against it, watch for failures, and only then delete it if NetSuite allows deletion. Blocking is reversible, deleting is not.
How-toNetSuite Manufacturing Scheduler: What Is Built In, What Is Not, and When You Need an Add-On
NetSuite schedules work orders from routing operations, setup and run times and work center calendars when Advanced Manufacturing is enabled. That gives you operation dates and capacity visibility, but it is not a full finite-capacity sequencing engine with constraint-based optimisation. Plants with real bottlenecks usually add a SuiteApp or external scheduling tool.
AdvancedAvoiding governance limit errors in NetSuite Map/Reduce scripts
A NetSuite Map/Reduce script gives each map or reduce invocation of a key its own fresh governance allotment instead of sharing one pool across the whole run, so most SSS_USAGE_LIMIT_EXCEEDED failures come from a single key doing too much work, not from the total record count. Fix it by moving heavy logic out of getInputData, keeping map and reduce functions idempotent and cheap per key, and checking runtime.getCurrentScript().getRemainingUsage() before expensive calls.
AdvancedAuthenticating NetSuite RESTlets with OAuth 2.0 and Token-Based Authentication
NetSuite RESTlets can be called with either Token-Based Authentication (TBA, OAuth 1.0a signed requests) or OAuth 2.0, and both require a Setup > Integrations > Manage Integrations record before any token is issued. Machine-to-machine OAuth 2.0 uses a client credentials grant with a JWT bearer assertion signed by a certificate; TBA uses a consumer key/secret plus a per-user access token signed with HMAC-SHA256.
AdvancedWorking with NetSuite's SuiteTalk REST Web Services API
SuiteTalk REST exposes NetSuite records at https://ACCOUNTID.suitetalk.api.netsuite.com/services/rest/record/v1/{recordType}/{id} and ad hoc SQL-like queries at /services/rest/query/v1/suiteql, both authenticated with TBA or OAuth 2.0. It returns JSON, paginates large result sets with limit/offset and a hasMore flag, and needs expandSubResources or a specific fields query to pull sublist and related data efficiently.
AdvancedSetting up NetSuite SuiteAnalytics Connect for ODBC and JDBC access
SuiteAnalytics Connect is a separately licensed feature that exposes a read-only relational view of NetSuite data over ODBC or JDBC for BI tools like Power BI, Tableau and Excel. Setup means enabling the feature, downloading the driver, configuring a DSN against the account's connect host, and using a role with the SuiteAnalytics Connect permission.
AdvancedManaging NetSuite sandbox refresh alongside SDF deployments
A NetSuite sandbox refresh clones production data and customization state into the sandbox account, which means any sandbox-only changes not captured in an SDF (SuiteCloud Development Framework) project are wiped, while changes that were already deployed to production survive because they come along with the refresh. Plan refreshes around your deployment calendar, and redeploy or validate your SDF project immediately after every refresh.
AdvancedN/query versus N/search: choosing the right SuiteScript data access module
N/query runs SuiteQL directly against NetSuite's relational schema and is generally cheaper and faster for joins, aggregation and large filtered pulls, while N/search wraps the same saved-search engine used by the UI and is better when you need formula columns, summary types or a saved search object you can reuse. Both consume governance units per page fetched, but N/query's ability to express a join in one query often beats the multiple round trips a search-based join pattern requires.
AdvancedChoosing between User Event and Client scripts in NetSuite
User Event scripts (beforeLoad, beforeSubmit, afterSubmit) run server-side on every save regardless of how the record was created, including CSV import, web services and workflows, and are the only reliable place to enforce business rules. Client scripts (pageInit, fieldChanged, saveRecord, postSourcing) run only in an interactive browser session and can be bypassed entirely by any non-UI record save, so they should handle UX (field visibility, warnings, defaults) rather than validation that must never be skipped.
AdvancedHow NetSuite scheduled script queueing actually works
A Scheduled Script deployment queued behind other jobs is not failing; NetSuite runs a limited number of scheduled and Map/Reduce script queues concurrently per account, so deployments wait their turn based on account concurrency and deployment priority. The practical fixes are staggering trigger times, setting deployment priority correctly, and designing scripts that reschedule themselves cleanly with N/task instead of running one long unbroken execution.
AdvancedSetting up a NetSuite SuiteCloud CI/CD pipeline
A repeatable NetSuite CI/CD pipeline uses SuiteCloud CLI for Node.js authenticated non-interactively with a Token-Based Authentication saved authentication ID, running suitecloud project:validate then project:deploy against a target account from a pipeline runner rather than a developer's machine. The main setup work is generating CI-specific TBA credentials, storing them as pipeline secrets, and keeping manifest.xml/deploy.xml accurate so deploys are deterministic.
AdvancedExporting large volumes of data out of NetSuite reliably
For large NetSuite exports, the right tool depends on frequency and volume: SuiteAnalytics Connect (ODBC/JDBC) suits ad hoc and scheduled BI pulls with SQL filtering, SuiteQL over SuiteTalk REST or N/query suits programmatic incremental syncs, and a Map/Reduce script suits transformations that must happen inside NetSuite before export. Whichever method is used, filtering by lastmodifieddate for incremental pulls instead of re-exporting the full dataset every run is what actually makes large exports sustainable.
Oracle E-Business Suite
Fix FRM-40735: WHEN-VALIDATE-RECORD Trigger Raised Unhandled Exception ORA-06508
FRM-40735: WHEN-VALIDATE-RECORD trigger raised unhandled exception ORA-06508FRM-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 fixOracle EBS Concurrent Manager Will Not Start: How to Fix It
Oracle EBS concurrent manager not startingA 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.
Error fixFix Oracle EBS Workflow Notification Mailer Not Sending Emails
Oracle EBS Workflow Notification Mailer not sending emailsWhen EBS notifications stop reaching inboxes, check the mailer status in Oracle Applications Manager (OAM) Workflow Manager first - a Suspended or Error status almost always points at an SMTP or IMAP connectivity or credential problem introduced by a mail server change, not at Workflow itself. Fix the mail server configuration, restart the mailer component, and requeue the backlog.
Error fixFix ORA-01555: Snapshot Too Old in Oracle EBS Concurrent Requests
ORA-01555: snapshot too old in EBS concurrent requestORA-01555 in a concurrent request means the program tried to read data from undo that has already been overwritten, usually because the report or custom PL/SQL ran long enough, or committed often enough mid-cursor, that the undo tablespace could not retain the needed read-consistent image. Increase UNDO_RETENTION and undo tablespace size first, then review the program for commits inside open cursor loops.
Error fixFix adop phase=prepare Failures in EBS 12.2 Online Patching
adop phase=prepare fails in EBS 12.2 online patchingAn adop prepare phase failure in EBS 12.2 almost always means the patch edition (patch file system) and the run edition are out of sync, or a previous cutover or cleanup did not complete cleanly. Read adop.log for the specific worker error, resync the file systems with adop phase=fs_clone if needed, and never start a new patch cycle on top of an unfinished one.
Error fixFRM-92101: There was a failure in the Forms Server during startup
FRM-92101 There was a failure in the Forms Server during startupFRM-92101 fires when the browser cannot complete the handshake with the Forms listener servlet, almost always because the Forms server process did not start, formsweb.cfg or jserv.conf has a bad entry, or a client-side Java/JRE version mismatch is blocking the applet. Check the apps tier Forms log first, then the client Java version, then the config files.
Error fixGL period will not close: unposted or unaccounted journal batches
You cannot close this period, there are unposted journal batchesOracle EBS General Ledger blocks a period close whenever unposted journal batches, unaccounted subledger transactions, or pending mass allocations still reference that period. Run the Unposted Journals and Period Close Exceptions reports to find the offending batches, then post or reverse them before retrying the close.
Error fixAutoInvoice import fails with invalid line/header exceptions
AutoInvoice import failed invalid line exceptions in RA_INTERFACE_ERRORS_ALLAutoInvoice rejects lines when the interface data references an invalid or inactive customer, transaction type, GL date outside an open period, currency, or accounting flexfield combination. The AutoInvoice Execution Report and RA_INTERFACE_ERRORS_ALL tell you exactly which interface line and which field failed validation, so start there rather than guessing at the source system feed.
Error fixOracle Workflow error: Attribute does not exist for item type
Wf_Engine_Util Attribute does not exist for item typeThis Oracle Workflow error means a workflow activity, function, or notification message is referencing an item type attribute (via SetItemAttrText/GetItemAttrText or a &ATTRIBUTE token) that was never defined on that item type, was deleted, or is misspelled - almost always introduced by a custom workflow change that was not fully synchronized. Compare the attribute list in Workflow Builder against every reference to it in the process.
Error fixConcurrent request completes with Warning and an FDPSTP message
Concurrent request completed with warning FDPSTPA concurrent request ending in Warning with a message mentioning FDPSTP means the underlying program's own completion status was not a clean Normal, and the post-processing step (FDPSTP) that handles printing/output is simply reporting that upstream condition. Always open the request log first - the real cause is almost always inside the program's own log, not in FDPSTP itself.
Error fixFix Oracle EBS MTL_TRANSACTIONS_INTERFACE Rows Stuck With PROCESS_FLAG = 3
EBS MTL_TRANSACTIONS_INTERFACE PROCESS_FLAG 3 error ERROR_EXPLANATIONA row in MTL_TRANSACTIONS_INTERFACE with PROCESS_FLAG = 3 failed validation or processing in the Inventory Transaction Manager. The reason is written to ERROR_CODE and ERROR_EXPLANATION on that row. Correct the data (item, subinventory, locator, period, lot or serial), set PROCESS_FLAG back to 1 and let the Process transaction interface program or the Transaction Manager pick it up again.
Error fixFix Oracle EBS Order Lines Stuck in Awaiting Shipping
EBS Order Management order line stuck in Awaiting Shipping workflowAn OM order line sits at Awaiting Shipping because its OEOL workflow is waiting for Ship Confirm, or because the workflow is deferred, errored or never started. Check the line's workflow status in the Workflow Status Monitor, confirm Pick Release and Ship Confirm actually ran, make sure the Workflow Background Process for OEOL is running, and retry the errored activity.
Error fixFix Oracle EBS Requisition Import Errors in PO_INTERFACE_ERRORS
EBS Requisition Import rejected records PO_INTERFACE_ERRORSWhen 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.
Error fixFix Oracle EBS Uncosted Material Transactions Blocking Period Close
EBS Cost Manager uncosted transactions COSTED_FLAG E period close blockedUncosted material transactions are rows in MTL_MATERIAL_TRANSACTIONS whose COSTED_FLAG is N (waiting for the Cost Manager) or E (costing error). Use the Resolve Uncosted Transactions form to read the error, fix the cause in costing setup or item cost, then let the Cost Manager reprocess them. The inventory period will not close while these rows exist.
Error fixFix Oracle EBS OPM Batches That Cannot Be Completed or Closed
EBS OPM Process Execution batch cannot complete or close pending transactionsAn OPM Process Execution batch usually refuses to complete or close because of pending product lots, ingredients with missing or insufficient transactions, unresolved reservations, or an inventory period issue. Review the batch in the Batch Details window, resolve the pending lots and ingredient lines, and then use the supported Complete, Close or Revert actions instead of editing GME tables.
How-toHow 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-toHow to Use Forms Personalization in Oracle EBS (No CUSTOM.pll Needed)
Forms Personalization lets you change field properties, set defaults, run built-ins and show messages on any Oracle Forms screen through Help > Diagnostics > Custom Code > Personalize, with no custom library or forms compile required. Rules are stored per form and responsibility in FND_FORM_CUSTOM_RULES and apply at runtime for every user who opens that form.
How-toSQL 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.
How-toOracle EBS Month-End Close Checklist: GL, AP, AR
Close sub-ledgers before General Ledger: finish and account for all Payables and Receivables transactions, close the AP and AR periods, transfer journals to GL through Create Accounting, reconcile sub-ledger to GL, then close the GL period last. Closing GL before a sub-ledger is fully accounted is the single most common cause of a reopen.
How-toHow to Close an Inventory Accounting Period in Oracle EBS
Before closing an Inventory period, run the Pending Transactions report to clear every uncosted or erroring material transaction, then close through Inventory > Accounting Close Cycle > Inventory Accounting Periods. Inventory will refuse to close while pending transactions remain, and any that get force-closed into the next period will misstate both months' costed inventory value.
How-toHow to Create a BI Publisher Report in Oracle EBS
An EBS BI Publisher report has three parts: a data model that produces XML data (usually a SQL-based data template), a Data Definition registered in the XML Publisher Administrator responsibility, and an RTF or Excel template built with the BI Publisher desktop tools and uploaded against that definition. A concurrent program then ties them together and runs the same way any standard EBS report does.
How-toHow 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-toHow 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-toHow to use FNDLOAD to migrate lookups, profiles and menus between Oracle EBS instances
FNDLOAD is the command line utility that downloads AOL setup data into a flat .ldt file using a .lct configuration file, and uploads that file into another instance. The pattern is the same for every object: pick the correct .lct, download with the entity name, review the .ldt, then upload on the target as the APPS user.
How-toHow to purge concurrent requests and manager data in Oracle EBS
Run the standard program Purge Concurrent Request and/or Manager Data (executable FNDCPPUR) on a schedule, with Entity set to ALL and Mode set to Age with a value in days. It removes old rows from FND_CONCURRENT_REQUESTS and related tables and deletes the matching log and output files on disk.
How-toHow to change the APPS password in Oracle EBS with FNDCPASS
Use FNDCPASS with the APPLSYS mode to change the APPLSYS and APPS passwords together, ORACLE mode for a product schema such as GL, and USER mode for a front-end user such as SYSADMIN. In R12.2 the APPS change must also be applied to the WebLogic data sources, or the application tier cannot connect.
How-toSQL query to find profile option values by level in Oracle EBS
Profile definitions live in FND_PROFILE_OPTIONS and FND_PROFILE_OPTIONS_TL. Values live in FND_PROFILE_OPTION_VALUES, keyed by LEVEL_ID (10001 site, 10002 application, 10003 responsibility, 10004 user) and LEVEL_VALUE. Join them to see who has what set and where.
How-toHow to run Create Accounting and transfer subledger entries to GL in Oracle EBS R12
In R12 each subledger runs Create Accounting, which builds journal entries in Subledger Accounting (SLA) from the transactions, then optionally transfers them to General Ledger and imports them. Entries stay out of GL until they are accounted Final and the transfer parameter is set to Yes.
How-toOracle Work Order Tables: WIP_ENTITIES, WIP_DISCRETE_JOBS and the REST Route
In Oracle E-Business Suite, a discrete work order (job) is stored in WIP_ENTITIES (the identity and name) and WIP_DISCRETE_JOBS (the header detail such as item, quantities, status and dates), with operations in WIP_OPERATIONS, resources in WIP_OPERATION_RESOURCES and components in WIP_REQUIREMENT_OPERATIONS. In Fusion Cloud, do not query tables directly; use the work orders REST resource or a BI report.
How-toOracle EBS Outside Processing and Production Scheduling
Outside processing (OSP) in Oracle EBS lets a discrete job send work to a supplier, such as plating or heat treat. You define an outside processing item, an OSP resource with a charge type, a department that owns it, and a routing operation that uses it. When the job is released, WIP drives a requisition to Purchasing; receiving against the PO charges the job.
How-toOracle EBS Query for a Vendor Extract Report
In EBS R12 the supplier header is AP_SUPPLIERS, supplier sites are AP_SUPPLIER_SITES_ALL (org-specific, so filter by ORG_ID), contacts link through AP_SUPPLIER_CONTACTS and HZ_PARTIES, and bank accounts live in the Payments tables (IBY_EXTERNAL_PAYEES_ALL, IBY_PMT_INSTR_USES_ALL, IBY_EXT_BANK_ACCOUNTS). Join them with VENDOR_ID and the party and payee keys.
How-toOracle EBS REST API: Integrated SOA Gateway and PL/SQL APIs
Oracle E-Business Suite exposes APIs through the Integration Repository, which catalogs PL/SQL public APIs, open interfaces, business events and web services. Integrated SOA Gateway (ISG) can deploy selected interface definitions as REST or SOAP services. You find the API, deploy it, grant a user access, and call it over HTTPS with the right application context.
How-toHow to Create an Item in Oracle EBS
In Oracle EBS you create an item in the Master Items form (Inventory > Items > Master Items) while in the item master organization. Enter the item number and description, apply a template, set attributes on the tabs, save, then use Tools > Organization Assignment to enable the item in the child organizations that will stock, buy or build it.
How-toData Conversion in Oracle EBS: Interface Tables, Open Interfaces and Reconciliation
Data conversion in Oracle EBS means moving legacy data into EBS through supported paths only: open interface tables with their import concurrent programs, or public PL/SQL APIs. Never insert into base tables directly. The standard pattern is extract, stage, validate, load into the interface, run the import, fix rejects, and reconcile against the source.
How-toOrganization Structure in Oracle EBS: Ledger, Legal Entity, Operating Unit, Inventory Org
Oracle EBS R12 organizes the enterprise as ledgers (accounting), legal entities (legal and tax), operating units (transactions for AP, AR, PO and OM) and inventory organizations (stock and manufacturing), usually under a business group for HR. Operating units are assigned to a ledger and a legal entity, and access is controlled through the MO security profile. Mask personal and financial data before copying production into test.
How-toOracle EBS Advanced Pricing: Price Lists, Modifiers, Qualifiers and Formulas
Oracle Advanced Pricing sets a base price from a price list (optionally calculated by a formula) and then applies modifiers such as discounts, surcharges and promotional goods in a defined order of phases. Qualifiers decide who and what a list or modifier applies to. When a price or discount does not apply, check the qualifier, the pricing phase, the effective dates, the incompatibility group and the attribute mapping.
How-toOracle EBS Standard Reports by Module and Sample XML for BI Publisher
Oracle EBS standard reports are concurrent programs run from Standard Request Submission (View > Requests > Submit a New Request) and limited by each responsibility's request group. To redesign one in BI Publisher, run the program so it produces XML output, save that XML as sample data, load it into the template builder, and register the template against the program's data definition.
AdvancedHow the adop Patching Cycle Works in Oracle EBS 12.2
adop, AD Online Patching, applies patches to the offline patch edition of the file system while users keep working on the current run edition, then switches editions in a short cutover window. A standard cycle runs prepare, apply, finalize, cutover and cleanup, each invoked as its own adop phase= command.
AdvancedHow to Extend an OAF Page in Oracle EBS Without Touching Seeded Code
Use OAF Personalization, through the Personalize Self-Service Defn responsibility or the Personalize Page link, for layout, prompts and simple rules, and Controller Extension, a custom Java class that extends the seeded controller, for logic changes such as new validation or events. Both approaches survive patching because the seeded XML and Java classes are never edited directly.
AdvancedHow to Add a Private AI Layer to Oracle EBS 12.2 On-Prem
Do not point a model at the production APPS schema. Read from an Active Data Guard or GoldenGate copy through a small tool server that applies Multi-Org and responsibility security, retrieve from FND attachments in a local index, and serve an open-weight model on your own GPUs. Any write goes through Integrated SOA Gateway or the standard open interfaces with a human approval step.
JD Edwards
JDE UBE failed (status E): how to read jde.log and jdedebug.log
JDE UBE failed to navigate to report queue, how to read jde.logA 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)
JD Edwards record is being used by another user, cannot updateEnterpriseOne 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
JD Edwards business function error, BSFN failed to loadA 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.
Error fixJDE package build failed: how to find the real cause
JD Edwards package build failed, how to find the causeA package build (Full or Update) that ends in a failed or errored status on the deployment server does not explain itself in the Package Build Workbench screen. The real diagnostic detail is in the package's own log subdirectory on the deployment server, which holds a build log, a table conversion log, and per-object compile logs that pinpoint the actual failure.
Error fixJD Edwards GL Post: Batch in Error or Out of Balance
JD Edwards GL post batch in error out of balance R09801A JD Edwards journal batch fails to post when the General Ledger Post program (R09801) finds a problem in the batch header (F0011) or its detail (F0911), such as an out-of-balance document, an invalid account, a closed period or an inactive business unit. Read the post report errors, fix the offending journal lines in Journal Entry, then repost the batch from Batch Review.
Error fixJD Edwards Inventory: On-Hand and Commitments Out of Sync
JD Edwards on hand quantity wrong commitments out of syncWhen JD Edwards on-hand or committed quantities look wrong, compare the Item Location balance (F41021) with the sum of the Item Ledger (F4111) for on-hand, and with open sales and work order lines for commitments. Differences are normally fixed by running the inventory integrity reports in proof mode first, then final mode, never by editing balances with SQL.
How-toHow 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.
How-toHow 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-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.
How-toHow to set up BI Publisher output for a JD Edwards report
In JD Edwards, 'JDE BI' usually means BI Publisher, the template-based report layout tool, rather than a separate business intelligence product. BI Publisher for JD Edwards EnterpriseOne lets a UBE render through an RTF or PDF template designed in BI Publisher instead of EnterpriseOne's own print engine, giving far more control over layout for things like invoices, checks, and financial statements. Setting it up means confirming the connection to a BI Publisher server, building or importing a template against the report's XML data structure, and associating that template with the specific report version through Report Design Aid.
How-toJDE One View Report stuck pending: how to publish it to other users
One View Reports are a type of User Defined Object (UDO), and like other UDOs, a report a business user designs is saved as Pending by default and only visible to its creator until an administrator with UDO administration security approves it and assigns it to a role or *PUBLIC. This approval and availability step, not the report design itself, is the most common reason a finished One View Report is not showing up for anyone else.
How-toHow 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-toJD Edwards Three-Way Match: PO Receipt to Voucher
In JD Edwards a three-way match ties the purchase order line (F4311), the receipt (F43121) and the supplier voucher together. Receive the goods in Purchase Order Receipts (P4312), then create the voucher with Voucher Match so the system matches quantity and price to the receipt and books any variance to the accounts set in the AAIs.
How-toHow to Apply an ESU or ASU in JD Edwards EnterpriseOne
Apply a JD Edwards Electronic Software Update (ESU) or Application Specific Update (ASU) by downloading it from Oracle's Update Center, installing it with Change Assistant into a development or pristine path code, resolving merges in Object Management Workbench, building a package and testing before promoting to production.
How-toJDE Work Order Routing: The F3112 Routing File and How It Attaches to a Work Order
In JD Edwards EnterpriseOne, the work order routing lives in table F3112 (Work Order Routing). When a work order is created, the standard routing from the Routing Master (F3003) is copied onto the order as rows in F3112, keyed by order number and operation sequence, so later changes to the master do not silently alter work already released.
How-toJD Edwards Advanced Pricing: Adjustment Types, Schedules and Definitions Explained
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.
How-toJD Edwards Import Tool: Excel Upload, Z-Files and Orchestrator Options
JD Edwards has no single import button. For small loads use the grid or Excel paste and import features in an application, for large transactional loads use the Z-file interface (load a Z table, run the processor UBE, fix errors), and for repeatable automated loads use Orchestrator or a custom UBE. Choose by volume and by how much validation you need.
How-toJD Edwards Supplier Scheduling: Setting Up and Releasing Supplier Schedules
JD Edwards supplier scheduling sends suppliers a time-phased view of what you will need, derived from planning (MRP) messages or forecasts and tied to a blanket or release-type purchase order. You set up the supplier and item relationships, generate the schedule from planned demand, review and adjust it, then release it to the supplier by print, EDI or an integration.
How-toJD Edwards Fixed Assets: Setup, Depreciation and the Account Ledger Flow
In JD Edwards EnterpriseOne, the Fixed Assets system (system code 12) keeps an asset master record per asset, asset account balances per ledger type, and generates depreciation that is posted to the general ledger through journal entries. The flow is: set up constants and ledger types, create assets, run depreciation, review, create journal entries, then post.
AdvancedHow to set up row security in JD Edwards Security Workbench
Security Workbench (fast path SECURITY, application P00950) is where every type of EnterpriseOne security record is defined, including row security, which restricts which rows of data a role or user is allowed to see or act on based on a key field like business unit or company, independent of whether they have access to the application itself. Application security controls whether a role can open a program at all; row security controls what data they see once they are in it.
AdvancedJD Edwards API Documentation: AIS REST, Orchestrator, BSSV and Connector Options
JD Edwards EnterpriseOne exposes integration through the Application Interface Services (AIS) REST server, Orchestrator for no-code flows, older business services (BSSV, SOAP) for published business functions, and batch interfaces such as Z-files and UBEs. Third-party tools like Concur typically connect through these, often via an integration platform rather than directly.
AdvancedHow 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.
AdvancedHow to Add a Private AI Layer to JD Edwards World on IBM i
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.
Oracle Fusion Cloud ERP
Fix FBDI Import Failures From Interface Table Validation Errors
FBDI import failed - interface table validation errorsWhen a Fusion FBDI import job errors out, the cause is almost always bad data in the interface tables (an invalid value set, a wrong date format, or a missing required column), not the ESS job itself. Open the process's Interface Errors Report or the Correct Import Errors spreadsheet to see the exact rejected rows and reason codes, fix the source data, and resubmit from the interface tables instead of re-running the whole FBDI load.
Error fixClear An Oracle Fusion ESS Job Stuck In Blocked Status
Oracle Fusion ESS job stuck in Blocked statusA Blocked status on an Oracle Fusion Enterprise Scheduler (ESS) job almost always means an earlier instance of the exact same job is still running or stuck, and the job definition does not allow simultaneous requests. Find and finish, or cancel, the earlier request first; only then does the Blocked request move to Running.
Error fixFix The Oracle Fusion "You Don't Have Access To This Data" Error
You don't have access to this data. Contact your help deskThis generic Oracle Fusion security message means the function privilege and the data security scope did not both line up for that user on that record - most often the job role is assigned but the matching data role, security profile, or business unit and ledger context in Manage Data Access for Users is missing. Fix it by checking data access setup for the user's role, not by re-granting the same job role again.
Error fixOracle Fusion: Cost Accounting Distributions Not Created
Oracle Fusion cost accounting distributions not created for inventory transactionWhen an inventory or work order transaction has no cost accounting distributions, it is almost always stuck before costing: the item or organization is not set up in a cost organization and cost book, the item has no cost to apply, or the cost processing and accounting scheduled processes have not picked it up. Work through setup first, then the transaction status, then the jobs.
Error fixOracle Fusion Manufacturing: Work Order Cannot Complete or Close
Oracle Fusion work order cannot be completed or closedA Fusion work order will not complete or close when operations are still open, required components are not issued, completion quantity or transactions are pending, or the work order is on hold. Close additionally depends on costing and variance processing. Check operations, material and pending transactions first, then status and cost.
Error fixOracle Fusion Payables: invoice on hold or stuck at Needs Revalidation
Oracle Fusion Payables invoice validation failed on hold needs revalidationAn invoice in Fusion Payables is either Validated, Needs Revalidation, or Never Validated. Holds are placed by validation when a check fails, so the fix is to read the hold name on the Holds tab, correct the underlying data (match, price, tolerance, account, tax), and run Validate again. Manual release is possible but only for hold types your role may release.
Error fixOracle Fusion Receivables: Import AutoInvoice rejects lines
Oracle Fusion Receivables AutoInvoice lines rejected how to find and fix errorsImport AutoInvoice validates each interface line against transaction sources, types, customers, terms, accounting rules and tax, then writes failures to an error table instead of creating the transaction. Open the AutoInvoice exceptions for the batch, fix the data on the interface lines or the setup behind it, and resubmit the import.
Error fixOracle Fusion General Ledger: Import Journals errors and rejected rows
Oracle Fusion General Ledger Import Journals errors GL_INTERFACE how to correctImport Journals loads rows from GL_INTERFACE into journal batches, and rows that fail validation stay in the interface with an error status. Check the journal source, ledger, accounting period, account combination and balancing, correct the rows through the correction tool or by reloading, and rerun Import Journals for the same source and group.
How-toOTBI vs BI Publisher: Which One Should You Use
Use OTBI when a business user needs ad hoc, self-service, real-time analysis with no fixed layout. Use BI Publisher when you need a pixel-perfect, scheduled, high-volume, or externally distributed document such as an invoice, check, or statutory report. Most Fusion implementations end up using both, not one instead of the other.
How-toPaginate And Authenticate Oracle Fusion REST API Calls Correctly
Oracle Fusion Cloud REST APIs authenticate with HTTP Basic Authentication, an integration user's credentials, over HTTPS by default, and paginate with limit and offset query parameters rather than a page number. Loop on the hasMore flag in the response until it returns false to retrieve a full result set.
How-toHCM Data Loader Vs FBDI: Which One Loads Your Fusion Data
HCM Data Loader (HDL) is the dedicated bulk tool for HCM business objects - workers, assignments, compensation, absences - and uses a plain-text .dat file with METADATA and MERGE or DELETE action lines, not a spreadsheet template. FBDI is the general Financials and SCM bulk-load framework built on Excel macro templates that stage data into interface tables. If the object lives in HCM, use HDL; if it lives in Financials, Procurement, or SCM, use FBDI.
How-toConnect Oracle Integration Cloud (OIC) To Fusion ERP
OIC connects to Fusion ERP primarily through the prebuilt ERP Cloud Adapter, which wraps Fusion's REST and SOAP web services with OAuth-based authentication and pick-list discovery of available business objects and operations, instead of you hand-building every REST call. Use the adapter for standard integrations; drop to a generic REST or SOAP adapter only when the ERP Cloud Adapter does not yet expose the specific service you need.
How-toFix Wrong Row Counts When Joining Across OTBI Subject Areas
Most subject areas in Oracle Fusion OTBI are self-contained and only support reliable analysis within their own folders; dragging a folder from a second subject area into the same analysis without a genuine shared join key silently produces duplicated or missing rows because OTBI has no way to correctly relate the two fact grains. Fix it by staying inside one subject area where possible, or by explicitly using a subject area that Oracle designed to cross domains, rather than combining arbitrary folders yourself.
How-toOracle Fusion Period Close: A Practical Checklist
Closing a Fusion GL period cleanly means closing every feeder subledger first (Payables, Receivables, Costing, Fixed Assets), running Create Accounting to post everything to GL, reconciling subledger-to-GL balances, and only then setting the GL period status to Closed - not Close Pending, which still allows adjustments. Close Monitor gives a single dashboard of every subledger's close status instead of checking each module separately.
How-toExtend Oracle Fusion Safely With Sandboxes And Visual Builder Studio
Fusion customizations - a new field, a validation rule, a redesigned page layout, or a standalone custom app - are built inside a sandbox, an isolated workspace that lets you make and test changes without affecting other users until you explicitly publish. Application Composer handles fields, objects, and business rules; Visual Builder Studio builds new standalone pages and full custom applications that can embed inside or sit alongside Fusion.
How-toOracle Fusion SCM: On-Hand vs Available to Transact Quantity
On-hand is the physical quantity recorded in a subinventory, locator and lot. Available to transact is what is left after material status restrictions and pending demand are applied, and available to reserve is stricter again because existing reservations are deducted. To find the gap, open Review On-Hand Quantities in Inventory Management, group by status, and compare against reservations and pending transactions.
How-toOracle Fusion Supply Planning: No Recommendations or Plan Run Fails
An empty or failed Fusion supply plan usually traces to planning data collection that did not bring in demand or supply, plan options that exclude the items or organizations, or item attributes that make the item unplannable. Check collection first, then plan inputs, then item planning attributes and netting.
How-toOracle Fusion Inventory: Cycle Count Setup and Adjustment Approval
In Fusion, a cycle count is defined for an inventory organization with item selection, a count schedule and tolerances. Counts are entered, variances outside tolerance need approval, and approved adjustments become inventory transactions that are costed and accounted like any other. Most problems come from tolerance setup, approval routing or an adjustment account.
How-toOracle Fusion Procurement: approved requisition not creating a purchase order
An approved requisition becomes a purchase order only if its lines are processable: a supplier and site can be sourced, a buyer is assigned or derived, the procurement business unit is configured as a service provider for the requisitioning unit, and the Process Requisitions job picks the lines up. Check line status and the job log in that order.
How-toOracle ERP API Documentation: Where It Is and How to Start
Oracle publishes its ERP APIs per product on docs.oracle.com. For Fusion Cloud ERP and SCM there are REST API guides, SOAP web service guides, FBDI file imports and BI Publisher reports; for NetSuite there are SuiteTalk REST and SOAP, SuiteQL and RESTlets. Pick the product first, then the style of API, then match your authentication and the exact release version.
How-toOracle Fusion REST API: customers, projects and manufacturing work orders
Oracle Fusion Cloud Applications exposes REST resources under a base path per product family, for example /fscmRestApi/resources/<version>/ for supply chain, financials and projects and /crmRestApi/resources/<version>/ for customer data in sales. Authenticate with basic authentication or OAuth, then use q, fields, limit, offset, expand and onlyData to shape results. Resource names differ by product, so confirm them in the REST API documentation for your release.
How-toHow to create suppliers in Oracle Fusion (profile, sites, banking and FBDI)
In Oracle Fusion Procurement, go to Suppliers > Tasks > Create Supplier, enter the supplier name and tax details, then add addresses, contacts, sites, site assignments to business units, and bank accounts on the Edit Supplier page. For many suppliers, use the Supplier Import FBDI template instead of keying them one by one.
How-toCost profile in Oracle Fusion: cost organization, cost book and manufacturing costing
In Oracle Fusion Cost Management, a cost organization groups inventory organizations for costing, a cost book defines the accounting rules and periods, and a cost profile tells the system how to value items there, including the costing method such as standard or perpetual average. Work order costing then uses the same setup to collect material, resource and overhead cost.
How-toOracle Fusion production to test (P2T) refresh and release dates
A production-to-test (P2T) refresh copies your production Fusion data and configuration over a test environment so you can test with realistic data. You request it through Oracle's cloud service request process for a chosen window, then reset users, integrations and schedules in test afterwards. Quarterly updates reach test environments first and production a few weeks later, according to a calendar Oracle publishes.
How-toProject Creation API in Oracle Fusion
Oracle Fusion Cloud creates projects through the Project Management REST API: a POST to the projects resource under /fscmRestApi/resources/ with a JSON body naming the project, number, organization, legal entity, project unit and usually a source template. Tasks, team members and classifications are then added through child resources of the new project.
How-toOne-Time Supplier in Oracle Fusion
A one-time supplier in Oracle Fusion is a generic supplier record used to pay a payee you will not transact with again, so you do not clutter the supplier master. Payee name and bank details are captured on the invoice rather than on a permanent supplier profile, which makes controls on who can use it essential.
How-toSupply Type in Oracle Fusion Manufacturing
Supply type on a work definition component tells Fusion Manufacturing how material reaches the work order and when it is issued: Push (issued by explicit transaction), Assembly Pull (backflushed at the final operation completion), Operation Pull (backflushed when a specific operation completes), Bulk (not tracked, supplied in bulk) and Phantom (exploded through). It is set on each component of the work definition.
How-toHow to Create a Report in Oracle Fusion
In Oracle Fusion you create a report either as an OTBI analysis (ad hoc, drag and drop on a subject area) or as a BI Publisher report (a data model plus a layout template, for pixel-perfect and scheduled output). Both start from Navigator > Tools > Reports and Analytics, then Create, and both need the BI author roles.
How-toOracle Fusion Manufacturing User Guide: Setup Order, Daily Use and Where the Official Docs and Training Are
Oracle Fusion Manufacturing is set up through Setup and Maintenance in a fixed order: plant parameters, work centers and resources, standard operations, then work definitions for each item. Daily use runs through work orders and the Dispatch List. Oracle's own Help Center guides and Oracle University or Customer Connect content are the authoritative references.
How-toOracle Fusion Manufacturing Roles: Job Roles, Privileges and Standard Business Process Models
Fusion Manufacturing access comes from seeded job roles such as production supervisor, production operator and manufacturing engineer, which bundle duty roles and privileges. Copy them in the Security Console rather than editing them, assign them to users in Manage Users, and use Oracle's business process models as the reference for who does what.
How-toOracle Fusion Tax Configuration: Regimes, Taxes, Rates, Rules and How to Test Them
Fusion Tax is configured as a chain: tax regime, tax, tax status, tax rate, and tax rules, owned by a configuration owner for each legal entity or business unit. After setup you test with the Tax Simulator and by running real transactions in a non-production pod before enabling the tax on live payables and receivables.
AdvancedOracle Integration Cloud: ERP Cloud Adapter import bulk data, callback never arrives
In an OIC flow that loads FBDI data, the ERP Cloud Adapter uploads the file to UCM, submits the ESS import job and waits for a callback when the job ends. If the callback never arrives, trace each hop separately: the upload, the ESS job in Scheduled Processes, then the callback registration and the security of the integration user.
SAP
SAP M7 021: Deficit of SL Stock Quantity
SAP error M7 021 Deficit of SL stock quantityM7 021 fires during a goods issue, delivery, or confirmation when SAP checks the unrestricted-use (SL) stock for the exact plant, storage location and batch combination and finds less than what you are trying to post out. Fix the entry (batch, storage location, quantity) first; only enable negative stock or downgrade the message to a warning if the business genuinely needs to post ahead of a receipt.
Error fixSAP IDoc Status 51: Application Document Not Posted
SAP IDoc status 51 errorStatus 51 tells you the IDoc reached the application layer and failed to post, but the status text itself is not the error - the real cause sits in the status record's long text or the linked application log. Fix the underlying data or configuration, then reprocess the IDoc through BD87 rather than editing the status.
Error fixSAP Short Dump TIME_OUT: Maximum Runtime Exceeded
SAP runtime error TIME_OUT short dumpA TIME_OUT runtime error means a dialog (or RFC) work process ran longer than the maximum allowed runtime, controlled by profile parameter rdisp/max_wprun_time (600 seconds by default). The fix is almost always to move the long-running work to background processing or tune the underlying program, not to raise the timeout.
Error fixSAP F5 060: Posting Only Possible in Periods X and Y
SAP F5 message posting period closed for account typeMessage F5 060 fires when a document date falls in a fiscal period that the posting period variant has not opened for that account type. Either change the document/posting date into an open period, or have Finance open the required period and account type in OB52 for the relevant variant.
Error fixSAP KI 235: G/L Account Requires an Assignment to a CO Object
SAP error KI 235 no cost element definedKI 235 means a primary cost or revenue element exists (or should exist) on a P&L account, but the posting you are entering has no valid Controlling object - cost center, order, WBS element or profitability segment - to receive it. Add the account assignment on the posting, or set a default cost center via OKB9 so future postings resolve automatically.
Error fixSAP CO11N Confirmation Errors and How to Fix Them
SAP CO11N confirmation error deviation too largeCO11N (time ticket confirmation for production/process orders) throws several distinct errors: deviation from the standard value is too large, goods movement not possible for a component, or the order/operation status does not allow confirmation. Each has a specific cause in order status, routing tolerance settings, or component availability, not a single generic fix.
Error fixFix SAP Business One Service Layer 'Invalid session' (code 301)
SAP Business One Service Layer Invalid session or session already timed outThe Service Layer returns code 301 'Invalid session or session already timed out' when the B1SESSION cookie you send no longer maps to a live session. The usual causes are the default idle timeout (30 minutes), a missing or altered cookie, a load balancer sending the call to a different node because ROUTEID was dropped, or a restarted Service Layer. Fix it by keeping cookies on every call and re-logging in once on a 301.
Error fixFix SAP Business One 'Quantity falls below zero' (-2028) on Production Issue
SAP Business One Quantity falls below zero ODBC -2028 issue for productionSAP Business One raises 'Quantity falls below zero' (ODBC -2028) when a goods issue, including an Issue for Production, would push an item's on-hand quantity in a warehouse, or a batch or serial, below zero and negative inventory is not allowed. Fix it by receiving the stock first, correcting the warehouse or batch, or deliberately allowing negative stock for the right items.
Error fixSAP Business One: Posting Date Blocked by a Locked Period
SAP Business One Date deviates from permissible range posting period lockedWhen SAP Business One reports that the posting date deviates from the permissible range, the date falls in a posting period that is locked or in a sub-period that does not allow that type of posting. Check Administration > System Initialization > Posting Periods, confirm the period status and sub-period, and have an authorized user change it, or move the document to a date in an open period.
Error fixSAP MIGO error M7 053: posting only possible in periods X and Y
SAP MIGO M7 053 Posting only possible in periodsM7 053 means the posting date of a goods movement is outside the two open material periods held in table MARV. Either use a posting date inside the allowed periods, or have inventory accounting open the right period with MMRV or advance it with MMPV. FI periods in OB52 are a separate check and can cause a different message.
Error fixSAP CO01 Error: No Production Version Found for Material
SAP CO01 no production version found for materialSAP cannot pick a production version for the order quantity and date, so it cannot determine the BOM and routing. Fix it in C223 or on the MRP 4 view of the material: create a version for the plant, make its validity dates and lot size range cover the order, link a valid BOM alternative and routing, and remove the lock indicator.
Error fixSAP QM: Inspection Lot Not Created at Goods Receipt
SAP inspection lot not created at goods receipt MIGOAn inspection lot is created only when QM is active for the plant, the material has an active inspection type for the goods movement, and the material carries a QM control key. Check the Quality Management view in MM02, confirm inspection type 01 (purchase order) or 04 (production order) is active, then check QM activation in the plant and the goods movement used.
Error fixSAP VF04 Billing Due List Is Empty: Why Documents Do Not Appear
SAP VF04 billing due list empty no billing documents foundVF04 only lists documents that are billing relevant, not yet fully billed, not blocked, complete, and inside the selection dates you entered. When a delivery or order is missing, the cause is almost always one of: goods issue not posted, a billing block, an incompletion, wrong billing relevance on the item category, or a billing date outside the selection range.
Error fixSAP Pricing Error: Condition Record Missing for PR00 in a Sales Order
SAP pricing condition record missing PR00 sales order VK11The error means the pricing procedure expected a price condition such as PR00, found no valid record for the key, and the condition was flagged mandatory. Use the pricing analysis in the order item to see which access failed, then create the record with VK11, or fix the pricing procedure determination if the wrong procedure was selected.
Error fixSAP F110 Payment Run: No Payments and the Exception List
SAP F110 payment run no payments proposal exception listWhen F110 selects nothing or lists vendors in the exception list, the cause is one of four things: the parameters or free selection excluded the items, an item or vendor is blocked, no valid payment method or bank was found in FBZP, or the due date check did not consider the item due in this run. Display the proposal log and exception list to find which.
Error fixDefine QM Procurement Key Error in SAP: What It Means and the Fix
define qm procurement key error in sapThe QM procurement key error appears when a material or plant is set up for QM in procurement but the required key has not been defined or assigned. Define the key in customizing (transaction OMJ7, under QM in Procurement), then assign it in the material master QM view (MM02) alongside the QM control key and inspection setup.
Error fixSAP MM Errors and Solutions: The Common Ones, by Process Step
sap mm errors and solutionsMost SAP MM errors fall in five places: purchasing document creation and release (ME21N), goods movements (MIGO), period control, invoice verification (MIRO) and account determination. This page lists the ones that come up most, what causes each, and the first fix, with links to detailed pages for the biggest ones.
Error fixSAP MM Error Messages List: Reading Codes and Changing Message Severity
sap mm error messages listSAP messages are identified by class and number, for example M7 021 or ME 172. No official complete list fits every release, so the reliable method is SE91: enter the class and number to get the exact text, long text and where used. The class prefix tells you the area (M7 inventory management, M8 invoice verification, ME and MEPO purchasing), and many messages can be downgraded from error to warning in customizing.
Error fixRelease Strategy in SAP MM Not Working: A Troubleshooting Checklist
release strategy in sap mm not workingWhen a release strategy does not trigger, the cause is nearly always in one of five places: the characteristic values do not match the document, the strategy is not assigned to the class (CL24N), the release group or class is wrong for the document type, the document was created before the change, or the user lacks the release code authorization. Work through the checklist in order; each step is a quick check.
Error fixSAP Error: Define QM Procurement Key (How to Fix It)
sap error define qm procurement keyThis error means the material master (or a vendor or plant setting) points at a QM procurement key that has not been defined in customizing for that client. Define the key in the IMG under Quality Management in Procurement, activate QM in procurement for the plant, then make sure the QM view of the material uses a valid key and control key.
Error fixMMPV Date Check Error in SAP: Causes and Fix
mmpv_date_check error in sapMMPV, the MM period-closing transaction, moves the current material posting period in table MARV to the next period. A date check error means the period you are trying to close does not follow the current MARV period, a prior period was skipped, or documents and locks prevent the move. Run the check-only mode first, read the log, and compare the MARV values with the company code's intended period.
Error fixSAP Error Message MM899 and the Most Common MM Error Messages
sap error message mm899MM899 is a generic message in message class MM that carries text supplied by the calling program, so the real cause is in the message text itself, not the number. Open the long text (F1 or the Display Long Text button), read the variables, and look in the relevant log (SLG1, SM13 or ST22) for the underlying failure.
Error fixPO Not Released in SAP: Release Strategy, ME28 and ME29N Fixes
po not released in sapA purchase order that stays unreleased almost always has a release strategy that is assigned but cannot advance: the release code is not given to the approver, the prior release step is still open, the approver or workflow agent does not exist, or a change reset the strategy. Check the Release Strategy tab in ME23N, then fix the code assignment, the workflow, or the value that triggered the strategy.
Error fixSAP: error in determining actual costs for order (and valuation with material cost estimate errors)
error in determining actual costs for orderThese errors usually mean the system cannot value an order or a goods movement because the costing setup is incomplete: no released standard cost estimate for the material, a costing variant or valuation variant that does not match, or a missing settlement rule or profile. Fix the cost estimate release first, then check the order's costing variant and settlement setup.
Error fixSAP PO Print Preview Not Working in ME21N and ME9F
sap po print preview not workingA PO print preview fails because no output was determined for the order, the output type has no valid form or processing routine, or the spool or Adobe Document Services layer is broken. Check the Messages tab of the PO first, then NACE for the output type, then the spool.
Error fixPrinter Not Working in SAP: Troubleshooting Spool Requests with SP01 and SPAD
printer not working in sapWhen SAP does not print, the answer is in the spool request. Open SP01 (or SP02 for your own), read the status and error text, then check the output device in SPAD: device type, access method, host printer name and whether the spool server and a spool work process are available. Most cases are a wrong device definition, a stopped spool work process or a missing user default.
Error fixSAP: 'This Function Is Not Possible' - Causes and How to Diagnose
this function is not possible sap'This function is not possible' is not one error. It is a generic text used by many SAP messages when the object you are working on is in a state that does not allow the action, or when a check blocks it. Read the long text (F1 on the message, or double-click it), note the message class and number, and then check status, authorization (SU53) and the configuration for that transaction.
Error fixSAP MMC Webservice Error 21 and 29: How to Diagnose
webservice error 21 sap mmcSAP MMC talks to each instance through the SAPControl web service hosted by the sapstartsrv process. A webservice error in MMC means that call failed, typically because sapstartsrv is not running, the instance number or port is wrong, the call is blocked by a firewall or SSL setting, or the OS user is not authorized. Test with sapcontrol from the host and read the sapstartsrv logs.
How-toHow to Read MD04 Exception Messages in SAP
The exception indicator in MD04 flags procurement elements whose date or quantity no longer matches the current demand situation - it is SAP's built-in change signal, read element by element in the detail screen, not just the header icon. Triage by exception group first, then decide to reschedule, cancel, or accept each one.
How-toHow to Use BAPI_TRANSACTION_COMMIT Correctly
SAP's BAPI programming model separates business logic from the database commit on purpose, so a caller must explicitly call BAPI_TRANSACTION_COMMIT after a successful BAPI - usually with WAIT = 'X' - or the created object never actually persists. Skipping this step, or forgetting WAIT, is the most common reason a BAPI 'runs fine' but nothing gets saved.
How-toSAP VL150: Collective Processing of Documents Due for Delivery
VL150 (and its more commonly used successor VL10) mass-creates outbound deliveries for sales orders that are due by a selected date, based on shipping point, route, and delivery-relevant item category. Orders that do not appear are usually held back by a delivery block, an incomplete order, a failed availability check, or a delivery date outside the selection window.
How-toSAP SE16N vs SQVI: Table Browser vs Ad Hoc Query
SE16N is a single-table browser: fast filtering, formatted display, and export from one table at a time, with an optional edit function for authorized users. SQVI (Quick Viewer) builds ad hoc queries that join multiple tables without writing ABAP, and can be saved as a reusable report. Use SE16N for a quick look at one table; use SQVI when you need data joined across two or more tables.
How-toSAP Business One MRP Wizard Returns No Recommendations: Checklist
When the MRP Wizard in SAP Business One produces an empty recommendation report, the cause is almost always data, not a bug: the item has Planning Method set to None, the scenario excludes the demand documents, the planning horizon is too short, or existing stock and orders already cover demand. Work through item planning data first, then the scenario, then the document selection.
How-toSAP Business One Query: Released Production Orders with Component Shortages
Join OWOR (production order header), WOR1 (components) and OITW (stock per warehouse) to see, for every released production order, how much of each component is still to be issued and whether the warehouse can cover it. Run it in Tools > Queries > Query Manager, using double-quoted identifiers on HANA and the same query with minor syntax changes on SQL Server.
How-toSAP ME21N: why the release strategy is not determined on a purchase order
When a purchase order saves without a release strategy, no strategy in the release group matched the PO's characteristic values. Compare the PO header values (value, document type, purchasing group, plant) against the value ranges in the strategy classification (CL24N), and check that the release group and code are active for the PO document type.
How-toSAP MIRO: invoice blocked for price variance, and how to release it in MRBR
MIRO blocks an invoice for payment when its price or quantity differs from the PO or goods receipt by more than the tolerance limits defined in OMR6. The invoice posts, but it carries a payment block reason (R for price) until someone releases it in MRBR or corrects the underlying data. Release only after confirming which side is wrong.
How-toSAP GR/IR clearing account balance: reconcile with MB5S and clear with MR11
The GR/IR clearing account holds the value of goods received but not yet invoiced, and invoices not yet matched with receipts. It should trend to zero per PO item. Reconcile it with MB5S, find the PO items that are stuck, and clear true differences with MR11 or automatic clearing in F.13, after correcting the cause.
How-toSAP open purchase orders report: ME2N, ME2M, ME2L and the underlying tables
Use ME2N for a flexible open PO list, ME2M by material and ME2L by vendor, with the selection parameter Still to be delivered. The open quantity is the scheduled quantity in EKET minus goods received in EKBE, excluding deleted and delivery-completed items. For custom reports, read EKKO, EKPO, EKET and EKBE.
How-toSAP MD01N (MRP Live) vs MD01: How to Run MRP Correctly
MD01N is MRP Live: the same planning logic as classic MD01, but executed inside the SAP HANA database instead of looping through materials in ABAP. Run it from MD01N by entering the plant, choosing a processing key (net change or regeneration), setting the purchase requisition and scheduling parameters, and executing in the background for large scopes.
How-toSAP Production Order Technically Complete (TECO): Set and Reverse in CO02
TECO (technically complete) stops further goods movements and confirmations on a production order and removes open reservations and capacity requirements. Set it in CO02 under Functions > Restrict Processing > Technically Complete, and reverse it with Reset Technically Complete when the order still needs postings. CLSD, the business close, is a separate step that comes after settlement.
How-toSAP QA11 Usage Decision: Make It and Post Stock Correctly
The usage decision (UD) in QA11 closes an inspection lot, assigns a quality score and a UD code such as accepted or rejected, and posts the lot quantity from quality inspection stock to unrestricted use, blocked stock, scrap or return to vendor. The UD is blocked until required inspection characteristics are closed and results are recorded.
How-toSAP Sales Order Incompletion Log in VA01/VA02: Fix and Configure
An SAP sales order is incomplete when a field marked as required by its incompletion procedure is empty. Open the order in VA02, choose Edit, Incompletion Log, fill the listed fields, and save. If you need to change which fields are required, you maintain incompletion groups and procedures in SD customizing, not in the order itself.
How-toSAP AFAB Depreciation Run: Fix Errors, Restart and Reverse
AFAB posts planned depreciation for a fiscal year and period. If it ends with errors, open the log, fix the listed cause (closed period, locked cost center, missing account determination, or missing master data), then restart the run with AFAR. Use AFBN only when a completed run must be reversed.
How-toWhat Is First Article Inspection in SAP, and How to Run It in QM
First article inspection (FAI) in SAP is not a single button. You model it in SAP QM with an inspection type that creates an inspection lot when the production order is released, an inspection plan with the characteristics to verify on the first piece, and results recorded then closed by a usage decision. Aerospace AS9102-style FAI forms normally need extra reporting on top.
How-toSAP Table for Routing and Work Center, Work Orders and Capacity
Routings live in PLKO (header) and PLPO (operations), linked to materials by MAPL and to operations by PLAS. Work centers are in CRHD, with capacity in KAKO. Production (work) orders are split across AUFK, AFKO and AFPO, with operations in AFVC. For reports, use COOIS for orders, CA03 for routings, CR03 for work centers and CM01 for capacity.
How-toHow to Create a MIC (Master Inspection Characteristic) in SAP QM
A MIC is a reusable inspection characteristic in SAP QM, created in QS21 with a plant, a name and a version, then defined as quantitative (measured values with limits) or qualitative (codes from a catalog). Inspection plans (QP01) pick MICs so tolerances are maintained once. MIC data is in table QPMK, with text in QPMT.
How-toHow to Create a Sampling Procedure in SAP QM
In SAP QM, a sampling procedure decides how many units to inspect and how to accept or reject the lot. Maintain it in QDV3, choose a sample type (fixed, percentage, sampling scheme or 100 percent) and a valuation mode, and where needed build the scheme in QDP1. Then assign the procedure to a master inspection characteristic or inspection plan.
How-toHow to Cancel a Usage Decision in SAP QM
SAP QM does not delete a usage decision, you change or reset it. Open QA12 (Change Usage Decision) for the inspection lot, and use the reset or change function if your release and authorization allow it. Stock already posted by the original decision is adjusted by the system, but only if the stock is still where the posting put it.
How-toPlanning Strategy 40 in SAP PP, with a Worked Example
Planning strategy 40 is 'planning with final assembly'. You enter planned independent requirements (PIRs) for the finished product, MRP plans the finished product and all components from that forecast, and incoming sales orders consume (reduce) the PIR instead of adding to it. Final assembly is triggered by the sales order, not by the plan, so components are ready but the finished good is not built on spec.
How-toCapacity Leveling in SAP PP, with an Example
Capacity leveling moves operations from overloaded periods to periods with free capacity so a work center is not scheduled beyond what it can do. You first evaluate load in the capacity evaluation (CM01 for the work center view), then level with the capacity planning table (CM25, graphical) or the leveling list (CM21), and finish by checking the new dates and releasing the orders.
How-toPricing Procedure in SAP MM, with a Worked PO Example
In SAP MM the pricing procedure is a calculation schema (standard RM0000) that lists condition types such as PB00 (gross price), discounts and freight in order, with a calculation base for each line. The schema is found from the vendor's schema group and the purchasing organization's schema group, and condition records come from the info record or from MEK1. Delivery costs are conditions on the PO item or entered in MIRO as unplanned delivery cost.
How-toSAP MM Approval Process: Release Strategies, Workflow and Fiori
SAP MM approval is built on release strategies: rules that block a purchase requisition (PR) or purchase order (PO) until the right people release it with release codes. Strategies are configured with classification characteristics and can be released in ME28 or ME29N, through workflow, or in Fiori approval apps. In S/4HANA there are also flexible workflows for PRs.
How-toSAP MMPV Period Closing Error: Opening and Closing MM Periods
MM keeps its own posting period, separate from FI. MMPV (Close Period for Materials Management) moves the current MM period forward one month, MMRV allows posting back into the previous period, and OMSY initializes periods once at setup. The control values are stored in table MARV, one row per company code. Most MMPV errors mean the periods are not in the state the program expects or open work blocks closing.
How-toHow to release (and cancel) an inspection lot in SAP QM
Open the lot in QA02, check the system status, and use the Release function so the status moves from CRTD (created) to REL (released); only then can results be recorded in QE01 and a usage decision made in QA11. To cancel a lot, use the cancel function in QA02, which only works while no usage decision exists and no stock posting blocks it.
How-toHow to create an inspection plan in SAP QM (QP01)
Use QP01 to create the plan: enter the material and plant, fill the header (usage, status), add an operation with a work center, assign inspection characteristics, set the sampling procedure and save. The plan is only found at goods receipt when it is assigned to the material and the material has an active inspection type.
How-toHow to create a quality notification in SAP QM (QM01) and set up an 8D report
Run QM01, pick the notification type (Q1 customer complaint, Q2 complaint against a vendor, Q3 internal problem), fill the header and item, then add causes, tasks and activities to track the problem to closure. An 8D report is not a separate object: it is a print form over the notification, configured in customizing.
How-toSAP QM inspection results report: which tcode shows what
Use QA32 for the list of inspection lots, QE51N or QE03 for recorded results, the QM information system (for example QM12) and QGC2 for evaluations of characteristics over time, and QA11 or QAVE for usage decisions. If none fits, read the tables QALS, QAMV, QAMR and QAVE directly.
How-toSAP QM SPC: control charts, Cpk and stability studies
SAP QM supports statistical process control through quality control charts, created in QGC1 and evaluated with QGC2, fed by quantitative results recorded in inspection lots. Cpk and process capability indices are calculated from those results. Stability studies are a separate, time-based sampling function used mainly in regulated industries.
How-toSAP MM price determination: pricing procedure, condition types and fixing wrong PO prices
In SAP MM the purchase price comes from condition records, read in the order set by the calculation schema (standard RM0000), which the system assigns using the purchasing organization, vendor schema group and plant. PB00 is the gross price condition type. A wrong price in ME21N is usually a missing or outdated info record or condition, or the wrong schema.
How-toLanded cost in SAP MM: planned and unplanned delivery costs
SAP MM handles landed cost through delivery cost conditions. Planned delivery costs are conditions on the purchase order (flagged as delivery costs) that are accrued at goods receipt and settled with the freight invoice. Unplanned delivery costs are entered in MIRO when the invoice arrives. How they hit inventory value depends on the price control of the material.
How-toHow to create a material in SAP MM (MM01) and mass-change it with MM17
Run MM01, enter the material number or let it be assigned, pick the industry sector and material type, select the views and organizational levels, then maintain each view and save. MM17 mass-changes selected material master fields. In S/4HANA the material number can be up to 40 characters.
How-toHow to create a routing, work center and production supervisor in SAP PP
Create the work center in CR01 first, then the routing in CA01 using that work center on each operation, and define production supervisors in customizing (OPJ2). Link the BOM and routing in a production version (C223) so production orders and planned orders can be created.
How-toSAP S/4HANA upgrade steps: a runbook for manufacturers
An S/4HANA move runs in phases: assess with the readiness check and simplification items, clean up and adapt custom code, plan the stack in Maintenance Planner, run the technical conversion or upgrade with SUM in a sandbox, test business processes, rehearse the cutover and go live. Most of the effort is in custom code, data and testing, not the tool.
How-toSAP PP End to End Configuration: Steps, IMG Paths and Process Flow
SAP PP configuration runs in a fixed order: enterprise structure (plant, storage location, planning plant), master data (material, BOM, work center, routing, production version), MRP and planning, production order types and scheduling, confirmation, then costing and settlement. Get the order right because each layer depends on the one before it. The IMG node is Production in SPRO, plus Materials Management for plant and MRP basics.
How-toHow to Create a Control Key in SAP PP (OPJ8)
A control key tells SAP what an operation is allowed to do: be scheduled, costed, confirmed, printed, sent for external processing. Create one with transaction OPJ8 (or SPRO > Production > Basic Data > Routing > Operation Data > Define Control Key), copy a standard key such as PP01, change the indicators, and assign it in the routing or work center.
How-toHow to Create a Master Recipe in SAP PP-PI (C201)
A master recipe is the PP-PI equivalent of a routing: it holds the operations and phases, the resources they run on, material assignments and the control recipe destination. Create it with C201, assign the material at header level, build the resource network, and then add a production version (C223) so process orders can use it.
How-toHow to Reverse or Cancel a Usage Decision (UD) in SAP QM
Use QA12 (Change Usage Decision) to change a usage decision you already made in QA11. It works when the lot has not been closed by follow-on processes. If stock has already been posted or follow-up actions ran, you may have to correct the stock with a movement type instead. The authorization to change UDs is separate from the one to make them.
How-toHow to Create a Selected Set in SAP QM (QS51)
A selected set is a subset of codes taken from one or more catalog code groups, so users only see the relevant choices. Create it with QS51 for a catalog type and plant, add the codes, save, and then assign it to a master inspection characteristic (QS21), the usage decision, or defect recording.
How-toHow to Create a Status Profile in SAP QM (BS02)
A user status profile adds your own statuses to QM objects such as quality notifications, tasks and inspection lots. Create it in BS02, choose the object types, define statuses with numbers and an initial status, set which business transactions each status allows or forbids, and then assign the profile in the QM IMG for the object type.
How-toHow to Create an Inspection Method in SAP QM (QS31)
An inspection method describes how a characteristic is to be inspected, for example with a micrometer or a visual check, and holds the instructions. Create it with QS31 for a plant, set the status and version, write the text, and assign it to a master inspection characteristic (QS21) or directly in an inspection plan characteristic.
How-toSAP QM Sample-Drawing Procedure: Setup and Use (QPV1)
A sample-drawing procedure defines how physical samples are taken for an inspection: how many, in which containers, and what they are used for. Create it with QPV1, then reference it from the inspection plan (or material and inspection setup), so that when a lot is created the system generates the physical sample records, which you can also create manually with QPR1.
How-toSAP MM Pricing Procedure Configuration (Calculation Schema, M/08)
In MM the pricing procedure is called a calculation schema. Configure it by defining condition types, an access sequence, the calculation schema (M/08), schema groups for vendor and purchasing organization, and the schema determination; then create condition records with MEK1 and map accounting keys in OBYC. The standard schema is RM0000.
How-toFreight Cost in SAP MM: Planned and Unplanned Delivery Costs
In SAP MM, inbound freight is handled as delivery costs: planned delivery costs are conditions on the purchase order item (typically FRB1, FRC1, FRA1) that accrue at goods receipt, while unplanned delivery costs are entered in the vendor invoice (MIRO) when the freight was not on the PO. Where the cost lands, stock or expense, depends on the price control, valuation and the account keys behind the freight conditions.
How-toSAP MM BAPI for PO Create and Change: BAPI_PO_CREATE1 and BAPI_PO_CHANGE
Use BAPI_PO_CREATE1 to create a purchase order and BAPI_PO_CHANGE to change one. Each takes a data structure and a matching X-structure that flags which fields to apply, returns messages in the RETURN table, and only persists after you call BAPI_TRANSACTION_COMMIT when no error message came back.
How-toHow to Create a Plant in SAP MM and Configure the Organizational Structure
Create a plant in the IMG under Enterprise Structure > Definition > Logistics - General > Define, copy, delete, check plant (OX10), then add storage locations (OX09), a purchasing organization, and assign the plant to a company code (OX18) and to a purchasing organization (OX17). The MM organizational structure is client > company code > plant > storage location, with purchasing organization and group on the procurement side.
How-toSAP MM Return to Vendor Process: Return PO, MIGO 161 and Credit Memo
There are two standard ways to return goods to a vendor in SAP MM: post a return delivery in MIGO (movement 122, referencing the original material document) or create a return purchase order item and post movement 161. Then settle the money with a credit memo in MIRO or by receiving a replacement.
How-toSAP PP Standard Reports: COOIS, CO46, MD04, CM01, CS12 and PPIO_ENTRY
The core standard reports in SAP PP are COOIS (order information system), CO46 (order progress), MD04 (stock and requirements list), CM01 (capacity load by work center), CS12 (multilevel BOM) and COGI (goods movement errors). PPIO_ENTRY is an entry point to the order information system with list-based selection for orders, operations and components.
How-toSAP S/4HANA Intercompany Process Setup Guide: STO, Pricing, Billing and Reconciliation
The intercompany stock transfer flow in S/4HANA runs from a stock transport order (ME21N) in the receiving company, through a delivery (VL10B) and goods issue from the supplying plant, to goods receipt, intercompany billing (VF01 with billing type IV), and an incoming invoice in the receiving company. Setup needs plants, customer and vendor assignments, delivery type, intercompany pricing and account determination.
How-toHow to Create a Material in SAP S/4HANA: MM01, Fiori and Manufacturing Views
In SAP S/4HANA you create a material with MM01 or the Fiori app Manage Product Master. Choose the industry sector and material type, select the views you need, and fill the organizational levels. For a manufactured part, the minimum is Basic Data, MRP 1 to 3, Work Scheduling, Accounting and Costing, plus Purchasing for bought items.
How-toMMPV and MMRV in SAP: Which Table, and What They Control
MMPV (Close Periods for Material Master) and MMRV (Allow Posting to Previous Period) are transactions, not tables. Both work on table MARV, the material master control record per company code, which stores the current, previous and last-year posting periods for goods movements. Read MARV in SE16N to see the open MM period; use MMPV to roll forward and MMRV to allow a posting into the previous period.
How-toSAP PO Report by Creator: Transactions and EKKO-ERNAM
To list SAP purchase orders by who created them, run ME2N or ME80FN and filter on Created By (EKKO-ERNAM), using dynamic selections when the field is not on the selection screen. For a quick raw list, read table EKKO in SE16N with ERNAM set to the user ID. Save the selection as a variant so buyers and managers can rerun it.
How-toMPS in SAP PP: PIRs (MD61), MPS Items and the MD40 Run
Master production scheduling in SAP PP plans critical end items separately from the rest of MRP. Mark the material as an MPS item through its MRP type, enter planned independent requirements (PIRs) in MD61, run the MPS in MD40, review and firm the planned orders, then run MRP for the lower levels. It lets planners control the items that drive capacity and cost.
How-toPhantom Assembly in SAP PP: Setup, Example and MRP Behaviour
A phantom assembly is a sub-assembly that exists in the BOM but is never stocked or produced as its own order. In SAP set special procurement key 50 on the phantom's MRP 2 tab and give it a BOM. MRP passes the requirement straight through to the phantom's components and the parent production order picks up those components directly.
How-toSAP PP, PM and MM API: Production Orders, Maintenance Orders and Material Master
S/4HANA exposes production orders, maintenance orders and material master through OData services published in the SAP Business Accelerator Hub, for example API_PRODUCTION_ORDER_2_SRV, API_MAINTENANCEORDER and API_PRODUCT_SRV. On ECC or older releases, use BAPIs and RFC such as BAPI_PRODORD_CREATE, BAPI_ALM_ORDER_MAINTAIN and BAPI_MATERIAL_SAVEDATA. Direct M-table access is not an API and is best avoided.
How-toSAP S/4HANA API Guide: Business Hub, OData, Public Cloud and Business Partner
S/4HANA APIs are discovered in the SAP Business Accelerator Hub and mostly delivered as A2X OData services such as API_BUSINESS_PARTNER. On-premise you activate them in the Gateway; in the public cloud you create a communication user, system and arrangement for a communication scenario. PI/PO or Integration Suite sit in between for orchestration, and SAP Digital Manufacturing has its own APIs on BTP.
How-toCalling SAP APIs from Python: OData with requests, Authentication and PyRFC
The simplest way to call SAP from Python is OData over HTTPS with the requests library: send a GET to the service with $select, $filter and $top, authenticate with basic or OAuth, and follow the next-page link. For writes fetch a CSRF token first. Use PyRFC only for functions that have no OData service, and accept the extra SAP NW RFC SDK dependency.
How-toHow to Reverse a Usage Decision in SAP QM
Reverse a usage decision from QA12 (Change Usage Decision) by changing or resetting the decision on the inspection lot, which also reverses the automatic stock posting from inspection stock, provided nothing has used that stock or closed the lot. If the system refuses, post the stock back with a manual transfer posting and document the reason. The exact menu wording varies by release.
How-toInspection Results and Inspection Plan Reports in SAP QM
For inspection results in SAP QM, list lots in QA32, display results per lot in QE03, and analyse them over time with the QM evaluation transactions such as QGC1. For inspection plans, QP01 to QP03 maintain and display plans and QP19 gives the where-used list that ties plans to materials. The data sits in QALS, QAMV, QAMR, QAVE, PLKO and MAPL.
How-toProduction version in SAP S/4HANA: how to create it and why it is required
A production version links a material, a plant and a validity period to one BOM and one routing or recipe. In S/4HANA you create it in C223 (or the Manage Production Versions app) and the system then uses it to pick the BOM and task list for planned and production orders. Without a valid one, order creation and MRP conversion fail.
How-toAPI_MATERIAL_STOCK_SRV: reading SAP stock by plant and storage location with OData
API_MATERIAL_STOCK_SRV is the released OData V2 service for reading material stock in S/4HANA. Its main entity set, A_MatlStkInAcctMod, returns stock quantities by material, plant, storage location, batch and stock type. Activate the service, authorize a technical user and filter with $filter on Material and Plant.
How-toWhat is the latest version of SAP Business One, and how to plan an upgrade
SAP Business One is delivered as release 10.0 with regular feature packages (FP) that add features and fixes, available for SQL Server and for SAP HANA. The current feature package changes several times a year, so check the SAP Help Portal and the Support Launchpad rather than a fixed number, then follow a tested upgrade path.
How-toSAP Business One production process flow: from BOM to production order to receipt
In SAP Business One the production flow is: item master and bill of materials, MRP recommendation or manual order, production order (planned, released), issue for production, receipt from production, then close. Each step creates documents you can report on. This is a flow chart in words with the menus and tables.
How-toSAP Business One production planning: MRP, production orders, cost and variances
Planning in SAP Business One starts with demand (sales orders, forecasts), runs through the MRP wizard to produce recommendations, converts them into production and purchase orders, and ends with cost and variance review at close. The standard module is strong on BOM and MRP, light on scheduling and shop floor, where add-ons fill the gap.
How-toSAP Business One tables list: the core tables and how the names work
SAP Business One table names follow a pattern: O plus a short object name for header tables (OITM items, OCRD partners, ORDR sales orders), the same letters with a 1 for row tables (RDR1), and U_ prefixed columns or @ prefixed tables for user-defined objects. Read them for reports, but write only through the DI API or Service Layer.
How-toSAP Business One integration: Integration Framework (B1i), Service Layer, DI API and connectors
Business One offers four main ways to integrate: the Service Layer (REST/OData, the default for new work), the Integration Framework B1i (scenario based middleware), the DI API (COM/.NET, for legacy and add-ons) and third party or SaaS connectors. Pick the Service Layer for new web integrations and B1i when you want packaged scenarios and message flows.
How-toProduction standard cost in SAP Business One: how it works and where it stops
In SAP Business One, standard costing is a valuation method set on the item. Production receipts of a standard-cost item are valued at its standard price, components are issued at their cost, and the difference is posted as a variance when the production order is closed. There is no full multi-level cost rollup in the base product, and process manufacturing is limited.
How-toLookup transformation in BODS: lookup_ext explained with examples
In SAP Data Services (BODS) there is no separate Lookup transformation box. Lookups are done with the lookup_ext function (or lookup and lookup_seq) inside a Query transformation, typically in a mapping expression or the function wizard. You give it a lookup table, the result column, a default and the compare condition.
How-toQM order cost recording and settlement in SAP
A QM order is a cost collector for inspection effort. Costs such as labour confirmed against it and external services are posted to the order, and at period end the order is settled to a receiver, typically a cost center, using a settlement rule and settlement profile. It is a Controlling process as much as a Quality one.
How-toWhat is a quality info record in SAP QM, and how do customer returns trigger inspection?
The quality info record is a QM master record per material, vendor and plant that stores quality control data for procurement, such as whether inspection is required and which release or block controls apply. Customer returns are a separate flow: the returned goods are received and can be put into inspection through the return process.
How-toMaterial Classification Report in SAP PP (CL30N, Tables and Queries)
To report on material classification in SAP PP, use CL30N (Find Objects in Classes) with class type 001, enter the class and characteristic values, and execute. For lists that CL30N cannot produce, join MARA, INOB, KSSK, KLAH and AUSP in SQVI or SQ01 and add the characteristic values you need as columns.
How-toSAP PP-PI and the PI Sheet Explained
SAP PP-PI (Production Planning for Process Industries) is the SAP module for batch and continuous manufacturing such as chemicals, food and pharma. A PI sheet is the electronic work instruction generated from a process order through a control recipe, telling an operator what to do and what values to record.
How-toCost Center in SAP MM: Purchase Orders and Goods Issues
In SAP MM a cost center is charged in two ways: on a purchase order with account assignment category K, and on a goods issue to cost center with movement type 201. Both post to a consumption expense account and a CO line item on the cost center.
How-toContract, MMBE and PPV Reports in SAP MM
Use ME2M or ME2N with a contract document type to list outline agreements, MMBE for the stock overview of a material, and a report on the price difference account for purchase price variance. For anything beyond these, build a custom report with SQ01, SE16N or a CDS view.
How-toSAP S/4HANA Standard Reports: Fiori, Embedded Analytics and CDS Views
In S/4HANA, standard reports are mostly Fiori apps built on CDS views, with classic transactions still available for many lists. Find them in the Fiori Apps Reference Library, and extend them using Custom Analytical Queries or by building on released CDS views.
How-toSAP Procure-to-Pay (PTP) Reporting: Reports, Tcodes and Tables
SAP procure-to-pay reporting spans requisition, PO, goods receipt, invoice and payment. Use ME2N for open POs, MB5S for GR/IR balances, MIR5 and MRBR for invoices, and FBL1N for vendor open items. For cycle time, join EBAN, EKKO, EKBE and RBKP.
How-toHow to Create a Purchase Order in SAP MM (ME21N)
Create a purchase order in SAP with ME21N: enter the vendor and organisational data in the header, add items with material, quantity, plant and price, and save. A PO can also be created from a requisition through ME21N adopt, ME58 or ME59N.
How-toSAP PP Tolerance Keys: Overdelivery, Underdelivery and OMR6
In SAP PP, over- and underdelivery tolerances are set in the Work Scheduling view of the material master and can be overridden on the order, confirmation tolerances are set in the shop floor control IMG, and tolerance keys proper (DQ, PP, ST and others) belong to invoice verification in OMR6.
How-toSAP QM Valuation Mode and Valuation Rule: Where Set and How They Decide
In SAP QM the valuation mode decides how a characteristic is judged accepted or rejected from the recorded results, and it is referenced from the sampling procedure and the inspection characteristic. The valuation rule decides how characteristic valuations roll up into the inspection lot valuation that supports the usage decision.
How-toSAP QM Sample Label Printing: How to Print Physical Sample Labels
SAP QM prints sample labels for a physical sample that is tied to an inspection lot. You run the sample labelling transaction from the QPR range (QPR1 is the usual entry point), pick the lot or physical-sample number, and the system sends a form to the output device you choose. If nothing prints, the cause is almost always the form assignment or the printer, not QM data.
How-toSAP MM Contract T-Codes: ME31K, ME32K, ME33K and Release Orders
In SAP MM a contract is an outline agreement with a vendor. ME31K creates it, ME32K changes it, ME33K displays it. A quantity contract (document type MK) caps total quantity, a value contract (WK) caps total value, and purchase orders created in ME21N reference the contract as release orders against it.
How-toSAP MMBE Stock Overview: How to Run It, Read It and When to Use MB52 or MD04
MMBE is the SAP stock overview transaction. Enter a material (and optionally plant) and it shows stock in a tree by company code, plant, storage location and batch, split into unrestricted, quality inspection, blocked, in transit and special stocks. It is a single-material view. For lists across many materials use MB52, and for stock against demand use MD04. If you searched MMBR, you almost certainly meant MMBE.
How-toSAP Purchase Price Variance (PPV) Report: T-Codes, Accounts and Analysis
SAP has no single PPV transaction. Purchase price variance is the difference between the PO or invoice price and the standard price of a material, posted to the price difference account assigned to transaction key PRD. You report it by analyzing postings on that account (for example FBL3N), the PO history in EKBE, and material price analysis in CKM3.
How-toSAP MM Order Creation: ME21N Step by Step and the Procure-to-Pay Process
To create a purchase order in SAP MM, open ME21N, enter the vendor and organizational data in the header, add items with material, quantity, plant and price, then save. The PO sits inside the procure-to-pay flow: purchase requisition (ME51N), PO (ME21N), goods receipt (MIGO), invoice verification (MIRO) and payment (F110).
How-toBatch Report in SAP PP: Where-Used and Traceability Tcodes
For batch traceability in SAP PP use MB56 (batch where-used list, up and down), BMBC (batch information cockpit) and MSC3N (display batch master). For stock by batch use MMBE, MB52 or MB5B, and for movements MB51 with the batch filter. Batch master data sits in tables MCH1 (client level), MCHA (plant) and MCHB (stock per batch).
How-toSAP S/4HANA Material Groups: Configure, Assign and Report
A material group classifies materials and services for purchasing and reporting. Define it in customizing with OMSF (Define Material Groups), stored in table T023 with texts in T023T, and assign it in the Basic Data 1 view of the material master (MARA-MATKL). Purchase order items copy it to EKPO-MATKL, which makes spend-by-group reporting possible.
How-toSAP App for Mac and PC: Install SAP GUI or Use the Browser
On Windows use SAP GUI for Windows. On a Mac use SAP GUI for Java, which needs a supported Java runtime, or skip installation and use SAP Fiori Launchpad or SAP GUI for HTML in a browser. Download the installers from the SAP Software Download Center with an S-user, and have your Basis team give you the system connection details (application server, instance number, system ID).
How-toSAP PM Reports: Key Plant Maintenance Tcodes and What They Answer
The core SAP PM list reports are IW28 and IW29 for notifications, IW38 and IW39 for maintenance orders, IH08 for equipment, IH06 for functional locations, IP24 for maintenance plans and IW49N for operations. Change versions (IW28, IW38) allow mass changes, display versions (IW29, IW39) are read-only. All use a selection screen plus layout variants.
AdvancedSAP QM Integration With LIMS: How the Hand-Off Works
A LIMS connects to SAP QM by receiving the inspection lot and its characteristics, running the lab work, then returning results (and sometimes the usage decision) to SAP. The main options are the QM-STI subsystem interface, released BAPIs such as BAPI_INSPOPER_RECORDRESULT, IDocs through middleware, or modern APIs. Choose by who owns the usage decision.
AdvancedSAP QM Integration With EWM and WM: Steps and Configuration
With WM, the goods receipt creates an inspection lot in QM and posts stock to quality inspection; the usage decision then triggers stock postings that the warehouse moves with transfer orders. With EWM, inspections are driven by inspection rules and the Quality Inspection Engine (QIE), tied to inbound delivery documents, and the result updates stock types and putaway.
AdvancedSAP S/4HANA API Documentation: Where It Is and How to Use It
S/4HANA API documentation lives on the SAP Business Accelerator Hub (api.sap.com), under the S/4HANA Cloud or S/4HANA on-premise package. Most APIs are OData (v2, and v4 for newer ones) plus SOAP for some integrations. In public cloud you authorize an external caller with communication arrangements; on-premise you activate the service in the Gateway and use basic, OAuth or certificate authentication.
AdvancedIDocs for SAP PP: LOIPRO, LOIROU and PORDCR Configuration and Monitoring
SAP PP exchanges production data with other systems such as an MES or APS through ALE IDocs. Message types commonly met are LOIPRO for production and process orders, LOIROU for routings and PORDCR for creating process orders. The setup is the usual ALE chain: logical system, port, partner profile, distribution model and monitoring in WE02 and BD87.
AdvancedSAP QM QA32: user exits, enhancements and standard lot reports
QA32 is the inspection lot list. Before writing code, use layout variants, selection variants and the selection profile; if you need extra fields or logic, search for BAdIs or enhancement spots through the enhancement framework rather than modifying standard code. The standard QM reports for lots and results cover most needs.
AdvancedSAP PP and MM Enhancement Examples: User Exits, BAdIs and Enhancement Spots
SAP lets you extend PP and MM without modifying standard code through customer exits (SMOD/CMOD), BAdIs (SE18/SE19) and enhancement spots. Typical examples: validating or defaulting fields on a purchase order with the BAdI ME_PROCESS_PO_CUST, adding fields to PO items with the exit MM06E005, and reacting to production order changes with WORKORDER_UPDATE.
AdvancedAPI Creation Process in SAP S/4HANA: From CDS View to OData Service
The modern process to create an API in SAP S/4HANA is to model data in a CDS view entity in ABAP Development Tools (ADT), expose it with a service definition, publish it with a service binding (OData V4 Web API or V2), activate it, and secure it with an access control and role authorizations. Always check the SAP Business Accelerator Hub first, since a released standard API may already exist.
AdvancedSAP PO Upgrade: Updating Process Orchestration 7.5 and Planning the Move to Integration Suite
SAP Process Orchestration 7.5 is the final release of the on-premise PO line, so a PO upgrade means applying support package stacks to 7.5 (typically with the Software Update Manager) and deciding when to migrate interfaces to SAP Integration Suite. Check SAP's current maintenance dates and the Product Availability Matrix before planning, because they have been revised.
AdvancedHow to add AI to SAP ECC 6.0 on-prem without moving data to a cloud
You add AI to SAP ECC 6.0 by leaving ECC where it is and building a read-only layer beside it: RFC-enabled function modules and BAPIs for live lookups, an SLT or database replica for bulk analytics, a retrieval index over documents, and an open-weight model served on your own GPUs. SAP's authorization objects are enforced in the tool layer so users only see what they could see in the GUI. Writes go back only through BAPIs after human approval.
AdvancedPrivate AI layer for SAP S/4HANA on-premise: released APIs, CDS and a local model
For S/4HANA on-premise, build the AI layer on released OData APIs and CDS views rather than raw tables, replicate analytical data to a store you control, index documents separately, and serve an open-weight model on local GPUs. CDS access control and PFCG roles carry the user's permissions into answers. Writes use released APIs after human approval, which keeps the core clean and upgrade-safe.
AdvancedPrivate AI for SAP Business One: Service Layer, a read replica and a local model
Business One is small enough that a private AI layer can be simple: read through the Service Layer for live lookups, use a read replica of the SQL Server or HANA company database for analytics, index attachments and SOPs, and run an open-weight model on one or two local GPUs. Writes go through the Service Layer with a human approving first, never straight into the database.
AdvancedPrivate natural-language analytics on SAP BW and BW/4HANA, on your own servers
The safe way to put an LLM on SAP BW is to let it call existing BW queries and composite providers, not raw tables. Queries carry analysis authorizations and business logic, so the model inherits governance. Build a metadata index of queries and InfoObjects so questions map to the right query, serve an open-weight model locally, and keep the layer read-only.
AdvancedA private AI layer for SAP PI/PO: interface Q and A and failed-message triage
On PI/PO the valuable AI uses are not business-data questions but integration operations: finding which interface does what, explaining mappings, and triaging failed messages. Index the Enterprise Services Repository and Integration Directory exports and message logs, serve an open-weight model on your own GPUs, and keep payloads out unless a use case needs them. Message restarts stay behind human approval.
Microsoft Dynamics
Fixing "Cannot create a record in (table). The record already exists" in D365 F&SCM data entity imports
Cannot create a record in (table). The record already exists - D365 F&SCM data entity importThis is the standard kernel duplicate-key exception, thrown when the Data Management Framework tries to insert a staging row into a target table whose unique or alternate key already matches an existing record. It almost always means the entity's insert-vs-update logic did not recognize the target row as an update, not that you have a true accidental duplicate in your source file.
Error fixFixing "There are currently no batch servers available for processing" in D365 F&SCM
There are currently no batch servers available for processing D365 finance and operationsThis message means the batch framework cannot find any AOS instance flagged as a batch server and available for the batch group the job is assigned to. The fix is almost always in server configuration (System administration > Servers) or batch group assignment, not in the batch job itself.
Error fixFixing "You do not have the following permissions on TableData (table): (permission)" in Business Central AL
You do not have the following permissions on TableData: Insert Business CentralThis runtime error means the current user's assigned permission sets do not grant the required Insert, Modify, Delete, Read, or Execute right on that specific table. It is most common right after installing or updating a custom AL extension, because Business Central checks object-level permissions even for tables an extension owns.
Error fixFixing "The CIL object was not found" in Dynamics AX 2012
The CIL object was not found. This could be caused by that CIL was not generated - AX 2012This error appears when the AOS tries to execute compiled CIL for a class or method that has not actually been regenerated since a code change was imported or edited, so the .NET runtime has nothing matching to run. The fix is a full compile followed by a full CIL generation and an AOS restart, not just a partial or incremental rebuild.
Error fixBusiness Central: "Posting Date is not within your range of allowed posting dates"
Posting Date is not within your range of allowed posting dates Business CentralBusiness Central blocks the posting because the document's Posting Date falls outside the Allow Posting From / Allow Posting To window. The window is read from the user's own row in User Setup first, and from General Ledger Setup only when the user row is empty. Fix the date on the document, or widen the right window, or change your work date if the wrong default was applied.
Error fixBusiness Central: "You have insufficient quantity of Item on inventory"
You have insufficient quantity of Item on inventory Business CentralBusiness Central raises this error when posting would take an item negative and Prevent Negative Inventory is switched on, either globally in Inventory Setup or on the item card. The usual root causes are a different location or variant than you expect, an earlier posting date, receipts not yet posted, or lot or serial numbers that are not available. Check the item ledger for the exact combination before changing the setting.
Error fixBusiness Central: "Select a Dimension Value Code for the Dimension Code"
Select a Dimension Value Code for the Dimension Code for Customer Business CentralBusiness Central stops the post because a Default Dimension for an account, customer, vendor or item has Value Posting set to Code Mandatory, and the document has no value for that dimension. Either supply the dimension value on the line or header, or change the Value Posting rule if the requirement is wrong. Dimension combinations and priorities can produce similar-looking blocks.
Error fixBusiness Central: "Another user has modified the record after you retrieved it"
Another user has modified the record after you retrieved it from the database Business CentralBusiness Central uses optimistic concurrency. Every record carries a row version, and a write is rejected if the stored version no longer matches what you read. For users, refresh the page and redo the edit. For developers, read and modify in the same short transaction, use LockTable or the right read isolation, and send an If-Match ETag from API clients.
Error fixD365 Warehouse Wave Runs but No Work Is Created
D365 warehouse wave processing no work createdWhen a wave finishes without creating work, one of four things is usually wrong: the wave template has no Create work method, no work template matches the work order type, no location directive finds a pick location, or the inventory is not available at the warehouse locations. Open the wave processing history and work creation history first, because they state which step failed.
Error fixD365 Purchase Order Workflow: Submit Button Missing or Workflow Not Starting
D365 purchase order workflow submit button not showing or not availableThe Submit button only appears when change management is on for the vendor or legal entity and an active workflow version applies to the purchase order. Check that the Purchase order review workflow is activated for the right legal entity, that its conditions match the PO, and that the workflow batch jobs are running.
Error fixD365 Master Planning Ran but No Planned Orders Were Generated
D365 master planning no planned orders generatedIf a master planning run produces no planned orders, check in this order: the item is included in the plan, coverage is not set to Manual, the item is not stopped for purchase or production, a default order type exists, and the demand falls inside the plan's and item's time fences. Also confirm whether the plan uses Planning Optimization.
Error fixBusiness Central Error Messages: What They Mean and How Errors Are Handled
business central error messagesMost Business Central errors come from a few AL patterns: TestField and FieldError for missing or invalid field values, Error for rule violations, and permission or locking messages from the platform. Developers can customize them with Error and ErrorInfo, collect many errors at once, or catch them with TryFunction. If the whole service is unreachable, check service health and environment state first.
Error fixBusiness Central Could Not Open the Company: Causes and Fixes
business central could not open the companyWhen Business Central cannot open a company, the cause is almost always one of: the user lacks access or a license, the user record is disabled, the company name in the URL or the user's default company no longer exists, or the environment or server is in a bad state. Check the user, the company list and the URL in that order.
How-toHandling OData 429 Too Many Requests throttling in D365 Finance and Operations
D365 F&SCM protects shared AOS capacity by throttling OData and custom service calls, returning HTTP 429 with a Retry-After header once a client sends too many requests too quickly. The durable fix is to honor Retry-After with backoff and redesign high-volume or frequent-polling integrations to use batching, business events, or Data management instead of tight request loops.
How-toSetting up Electronic Reporting (ER) formats in D365 Finance and Operations
Electronic Reporting (ER, also called GER - Global Electronic Reporting) is the D365 F&SCM framework used to generate country-specific tax reports, e-invoices, and payment files without X++ code. You build it in three layers: a data model, a model mapping to source tables, and a format that renders the mapped data. Work is done under Organization administration > Electronic reporting.
How-toCalling and extending the Business Central API v2.0
The Business Central API v2.0 is a REST/OData endpoint at api.businesscentral.dynamics.com/v2.0/{tenant}/{environment}/api/v2.0, authenticated with Azure AD OAuth 2.0. It exposes standard entities like customers and items, and lets you publish your own with an AL API page.
How-toEmbedding Power BI reports inside D365 Finance and Operations workspaces
D365 F&SCM can show Power BI tiles and full reports directly inside workspaces and forms, backed by either the entity store (aggregate measurements over BYOD) or embedded reports published from Power BI Desktop. Configuration happens under System administration > Setup > Power BI, then reports are attached to workspaces through personalization.
How-toCreating and selecting custom report layouts in Business Central
Business Central reports can render through a Word layout (simple, single-level documents like invoices) or an RDLC layout (complex, multi-level, grouped reports). Custom layouts are uploaded and assigned per report through the Report Layout Selection page, or shipped inside an AL extension with the rendering(...) property.
How-toHow to call an external REST API from AL in Business Central
Use the HttpClient, HttpRequestMessage, HttpResponseMessage and HttpContent types in AL, send the request with Send, check IsSuccessStatusCode, and parse the body with JsonObject.ReadFrom. Make sure the extension has Allow HttpClient Requests turned on, and keep tokens out of source code. Keep calls short, because they run inside the AL session.
How-toHow to Refresh a Dynamics 365 F&SCM Sandbox From Production
In Lifecycle Services, open the target sandbox, choose Maintain > Move database > Refresh database, pick the production environment as the source and confirm. The copy replaces the sandbox AOS database, so you must then redo everything that is environment-specific: batch jobs, integration endpoints, email, print settings, users and Entra ID app registrations.
How-toD365 Recurring Integration: Enqueue, Dequeue and Ack Explained
Create a recurring data job on a data project, register an Entra ID application and authorize it in D365, then POST files to api/connector/enqueue/{activityId} to import, or GET api/connector/dequeue/{activityId} followed by an ack call to export. The job's activity ID in the URL ties your calls to the data project.
How-toUpgrade Business Central 14 to 27: Path, Work and Release Updates
You cannot jump from Business Central 14 straight to 27 in one move; Microsoft's supported upgrade paths go through intermediate versions, and the real work is converting C/AL customizations to AL extensions before the first step. Check the current upgrade documentation for the exact path, run the upgrade in a copy, and treat it as a project, not a patch.
How-toBusiness Central Production WIP Report and Make-or-Buy Setup
In Business Central, the Inventory Valuation - WIP report shows the value of unfinished production orders, and the amount in the general ledger comes from posted consumption, capacity and output through the WIP account in the inventory posting setup. Make-or-buy is set per item with Replenishment System (Prod. Order or Purchase) and Manufacturing Policy.
How-toBusiness Central Integration Events: How to Publish and Subscribe in AL
An integration event is a procedure marked with the IntegrationEvent attribute that has an empty body. Code elsewhere subscribes to it with the EventSubscriber attribute, so extensions can change standard behavior without modifying base objects. You publish with IntegrationEvent, subscribe with EventSubscriber, and pass var parameters when the subscriber needs to alter data.
How-toUpgrade to Business Central 25: How to Update SaaS and On-Premises
Business Central version 25 is the 2024 release wave 2. For SaaS you schedule or accept the update from the Business Central admin center after testing in a sandbox. On-premises you install the new server, convert the database, then synchronize and upgrade each extension. The real work is making every extension compile and upgrade cleanly on the new version first.
How-toCalcFormula in Business Central: FlowFields With Sum, Count, Exist and Lookup
CalcFormula defines how a FlowField is calculated from other tables. A FlowField is not stored. It is computed on demand using Sum, Average, Min, Max, Count, Exist or Lookup over a source table filtered by conditions. Read it with CalcFields or SetAutoCalcFields, and keep it fast with a key that supports the filter and sum.
How-toBusiness Central Upgrade Path: From NAV and Older BC Versions to Current
From Dynamics NAV the usual path goes to Business Central 14, the C/AL bridge version, then onward to later extension-based versions. From an older Business Central version you follow the documented upgrade matrix, sometimes in steps. The right route also depends on whether you move to SaaS, where cloud migration is an alternative to an in-place upgrade.
How-toBusiness Central Manufacturing Setup: Items, BOMs, Routings and Production Orders
To run manufacturing in Business Central you configure Manufacturing Setup, create work and machine centers on a shop calendar, certify a production BOM and routing, set the item to Replenishment System Prod. Order with a manufacturing policy, then plan and run production orders. Manufacturing needs the Premium license, and evaluation demo data helps you learn the flow first.
How-toStandard Costing in Business Central: Setup, Expected Cost and Variances
Business Central supports FIFO, LIFO, Specific, Average and Standard costing, chosen per item. With Standard, inventory is valued at the item's Standard Cost, and differences against actual purchase prices or production costs post as variances. Expected cost is the provisional cost recorded at receipt or shipment before the invoice, then replaced by actual cost.
How-toDynamics 365 Supply Chain Wave Planning and Inventory Journals
In Dynamics 365 Supply Chain Management, a wave is a batch of shipment lines released to the warehouse together. A wave template defines which wave steps run (for example reserve, replenish, create work), and work templates plus location directives then turn the wave into pick work. Inventory journals are a separate tool: they post stock adjustments, movements, transfers and counts directly against on-hand without a sales or purchase order.
How-toDynamics 365 Supply Chain Landed Cost: Voyages, Charges and Allocation
Landed cost in Dynamics 365 Supply Chain Management lets you add freight, duty, insurance and similar costs to the inventory cost of imported goods. You group purchase lines into a voyage, attach shipping containers, add costs from charges codes, and the system allocates those costs back to the received items so item cost reflects the true cost to land them.
How-toDynamics 365 Supply Chain Traceability: Lot and Serial Tracking for Recalls
Traceability in Dynamics 365 Supply Chain Management rests on tracking dimensions: batch number and serial number, switched on through a tracking dimension group on each item. Once active on receipts, production and shipments, the Item tracing function can trace a lot forward to customers or backward to suppliers, which is the core of a recall.
How-toDynamics 365 Supply Chain Warehouse Only Mode: What It Is and Its Limits
Warehouse management only mode is a Dynamics 365 Supply Chain Management configuration that lets you run the warehouse management processes while another system, such as a separate ERP, owns orders, pricing and finance. Source documents arrive as inbound and outbound shipment orders instead of sales and purchase orders, and the warehouse executes and reports back.
How-toUnit Cost in Business Central and How to Set Up Cost Centers
On the Item Card, Unit Cost is a calculated average or standard figure that depends on the Costing Method, and it is recalculated when costs are adjusted. Business Central has no standalone cost center field on transactions: you model cost centers either with global dimensions or with the optional Cost Accounting feature, which maps G/L accounts to cost types, centers and objects.
How-toBusiness Central for Process Manufacturing, Production Forecasts and Production Debugging
Business Central handles process-style manufacturing with production BOMs, versions, routings and flushing, but it has no dedicated formula, batch genealogy or co-product module as standard. Production forecasts feed planning through the Planning Worksheet or Requisition Worksheet, and most production problems are found by checking the order status, refresh direction, flushing method and item ledger entries.
How-toBusiness Central Bank Integration: Bank Feeds and Bank File Formats
Business Central connects to banks in three ways: online bank feeds through a bank feed service (where available for your country), bank statement file import using a Bank Statement Import Format, and payment export files such as SEPA credit transfer. The formats are defined as Data Exchange Definitions that you can extend for local bank layouts.
How-toBusiness Central Item Templates and Customer Templates
Item templates and customer templates (also vendor and employee templates) hold default field values that Business Central applies when you create a new record. Open the Item Templates or Customer Templates page, define a template with posting groups and other defaults, and choose it when you create a new item or customer.
How-toBusiness Central Financial Reports: Setup, Account Schedules and Export
Business Central financial reports are built from a row definition (the lines, historically an account schedule) and a column definition (the periods and amounts), combined in a financial report you can run, filter by dimension and export to Excel or PDF. Standard reports such as balance sheet and income statement are included and can be copied and modified.
How-toDynamics GP POP Tables: Purchase Order Processing Reference and Sample SQL
In Dynamics GP, purchase order headers live in POP10100 (open) and POP30100 (history), lines in POP10110 and POP30110, and receipts in POP10300 and POP10310 with history in POP30300 and POP30310. Join header to line on PONUMBER, and link receipts to PO lines through the receipt line quantity table POP10500. Always read from the right open or history table, because closed documents move.
AdvancedPlanning an AX 2012 to Dynamics 365 Finance and Operations upgrade
Moving from AX 2012 to D365 F&SCM is a platform change, not a version bump: X++ customizations go through a code upgrade to the new extension/overlayering model, and data moves through a structured data migration, both coordinated as an Upgrade project in Lifecycle Services (LCS). Plan it as a project with its own testing cycle, not a routine patch.
AdvancedDynamics 365 Supply Chain Management API: OData, Custom Services and Data Packages
Dynamics 365 Supply Chain Management exposes three main integration routes: OData endpoints over data entities for record-level reads and writes, JSON custom services for X++ logic you expose as operations, and the data management package API for bulk import and export. All use OAuth 2.0 with a Microsoft Entra ID app registration.
AdvancedBusiness Central Item Table (27), Table 6507 and Temporary Tables in AL
The Business Central Item table is table 27. Table 6507 is Item Entry Relation, a link table used with item tracking, not the Tracking Specification, which is table 336 and is normally used as a temporary table. A temporary table in AL is an in-memory copy of a table structure that never writes to the database, declared with the temporary keyword or the TableType property.
AdvancedAdding a Private AI Layer to Dynamics AX 2012 On-Prem
You can put a useful AI assistant on Dynamics AX 2012 without sending anything to a cloud: read from a SQL Server replica, expose a short list of approved read actions through a tool server, serve an open-weight model on local GPUs, and mirror AX security roles so answers respect what each user may see. Write-back stays human-approved and goes through AX services, never direct SQL.
AdvancedAdding a Private AI Layer to Dynamics NAV On-Prem
Dynamics NAV can feed a private AI assistant through two safe doors: a read-only SQL Server copy for analytical questions and published web services (OData and SOAP) for anything that must respect NAV logic and permissions. Put an open-weight model and a retrieval index beside them on your own hardware and keep writes behind human approval and codeunit-based services.
AdvancedAdding a Private AI Layer to Dynamics GP On-Prem
Dynamics GP is an easy system to read from and a delicate one to write to. Read from curated SQL views on a replica of the company database, search documents with a local retrieval index, serve an open-weight model on your own GPU, and send any write through eConnect or another supported integration after a person approves it.
AdvancedAdding a Private AI Layer to Business Central On-Premises
Business Central on-premises has a clean, supported read path: API v2.0, custom API pages written in AL, and OData web services, all enforcing the calling user's permissions. Put a tool server on top of those, add a retrieval index and an open-weight model on your own GPUs, and keep write-back behind human approval and the same APIs.
Epicor
Fixing Epicor BusinessObjectException: BPM Directive Errors
Epicor BusinessObjectException: A Business Process Management (BPM) directive has raised the following errorA BusinessObjectException that says "A Business Process Management (BPM) directive has raised the following error" means a directive on that business object stopped the transaction, either deliberately via a Raise Exception widget or accidentally via an unhandled .NET error in Custom Code. Expand the InnerException on the error dialog to see the real message and the directive name, then open BPM Designer for that object and method to find the widget that fired.
Error fixFixing Epicor REST v2 API 401 Unauthorized Errors
Epicor REST v2 API 401 Unauthorized errorA 401 Unauthorized calling Epicor's REST v2 (api/v2/odata) endpoint almost always comes down to one of three things: a missing or wrong x-api-key header, valid credentials but an API key scoped to a different company than the one in the URL, or REST services simply not enabled for that endpoint. Confirm the API key exists and is active in Application Studio (or the classic REST API help page), matches the company segment in the URL, and that the account used for Basic auth or OAuth has the right security group.
Error fixProphet 21 API returns 401 Unauthorized: how to fix token and OData access
Prophet 21 API 401 unauthorized bearer token ODataA 401 from the Prophet 21 API almost always means the bearer token was never obtained, has expired, or is not being sent on the call. Request a token from the security endpoint with a valid P21 user, send it in the Authorization header on every request, and make sure that user has access to the data and services you are calling.
Error fixProphet 21 shows negative on-hand inventory: why it happens and how to fix it
Prophet 21 negative inventory on hand how to fixNegative on hand in Prophet 21 means more was issued or shipped than was received into that item and location on the books. It is normally a sequencing problem, such as selling before receiving is posted, or a data problem, such as wrong location or unit of measure, rather than missing stock. Trace the transactions for the item and location, correct the root cause, then adjust and review cost.
Error fixEpicor Kinetic: Job Will Not Release in Job Entry
Epicor Job Entry cannot release job not engineeredA job in Epicor Kinetic will not release when it is not Engineered, when a material or operation fails validation, or when the part revision on the job is not approved. Open Job Entry, confirm the Engineered flag first, fix any part, revision or method errors shown in the exception panel, then tick Released.
Error fixEpicor Kinetic: Menu Item Missing or Access Denied for a User
Epicor user cannot see menu item or program access deniedWhen an Epicor Kinetic user cannot see a menu item or gets an access denied message, the cause is nearly always security: the user's security group lacks access to that menu or program, the user is not linked to the company, the license or module is not available, or a menu customization hides the item. Check each in that order.
Error fixEpicor BPM Runtime Error: Where to Look and How to Fix It
epicor bpm runtime errorA BPM runtime error is an exception thrown while a directive runs, so the user's save or action fails. Find the directive name and line in the client trace or server log, then check the usual causes: a null reference in custom code, a directive that no longer compiles after a change, conflicting directive order, or a lock or validation error from a nested update.
Error fixEpicor Kinetic Export to Excel Not Working
epicor kinetic export to excel not workingWhen Export to Excel or Copy to Excel does nothing in Epicor Kinetic, the cause is usually on the client: a blocked download or popup in the browser, a missing or mismatched Office install for Copy to Excel on the desktop client, or a very large result set. Test with a small grid and a different browser first, then check security and the dashboard definition.
Error fixEpicor Kinetic Print Preview Not Working
epicor kinetic print preview not workingEpicor Kinetic reports are generated by the task agent and rendered through the report server, so a preview that never appears usually means the job did not complete, the SSRS connection failed, or the browser blocked the result. Check System Monitor first, then the report server settings, then the client.
Error fixEpicor: No Employee Attached to User, Supplier Not Approved, Serial Mask Tokens
epicor no employee attached to user"No employee attached to user" means the signed-in user account is not linked to an employee record in that company, so shop floor and time entry screens cannot identify who is working. Fix it by linking the user and the employee. Supplier-not-approved errors come from approved supplier settings, and serial mask tokens are configured on the serial mask setup used by the part.
Error fixParts Not Showing Demand in Epicor Kinetic: Forecast, Planning BOM and Time Fence Checks
parts not showing demand in epicor kineticIf a part shows no demand in Epicor Kinetic, MRP either did not see the demand source or filtered it out. The usual reasons are: forecast not entered or not included in the MRP run, a planning BOM that does not explode to the component, a demand outside the planning or time fence window, order releases not firm, or the part not being planned at that plant.
Error fixWhy Is Epicor So Slow? A Kinetic Performance Checklist
why is epicor so slowEpicor slowness usually comes from one of five layers: the client PC or browser, the network and VPN, the application server, SQL Server (blocking, missing maintenance, memory) or a specific heavy BAQ, dashboard or BPM. Find out whether it is everyone or one user, one screen or all screens, then work down the layers. If Epicor is hosted in Epicor Cloud, check the status page and your account contact before tuning anything.
How-toFixing a Slow Epicor BAQ (Business Activity Query)
A slow BAQ in Epicor is usually caused by unindexed join columns, a subquery or calculated field forcing a table scan, or the BAQ pulling far more rows than the dashboard actually displays before filtering client-side. Fix it by reading the SQL Server execution plan Epicor generates, moving filters into the BAQ criteria instead of the dashboard filter panel, and replacing subqueries with joins where possible.
How-toEpicor MRP Runs but Generates No Suggestions
When Epicor's MRP process completes without a job or purchase suggestion for a part you expect one for, the cause is almost always the part's own configuration (Part Class Type, Make Direct, Non-MRP flag, planning Time Fence) or the demand not being linked in a way MRP recognizes, not a defect in the MRP engine. Work through the part's Planning tab, its safety stock and lead time setup, and the demand source (sales order line status, job material requirement) before assuming the run itself failed.
How-toPreserving Customizations When Upgrading to Epicor Kinetic
Epicor Kinetic's web UI does not simply inherit classic smart-client customizations - most need to go through the Update Customization / Application Studio conversion process, and some WinForms-specific customizations cannot convert directly and must be rebuilt in the Kinetic designer. Plan the upgrade as a customization inventory and rework project, not a single technical cutover step.
How-toHow to import data with Epicor DMT (Data Migration Tool)
In DMT, pick the target data type (e.g. Part, Customer, PartWhse), Generate a template from the connected Epicor server so column names match your version's schema exactly, populate the spreadsheet, load it into DMT, run a Pre-Process/validate pass first to surface errors before committing, then Process to write the records.
How-toHow to build a Kinetic homepage dashboard in Epicor
Kinetic homepage dashboards are built from Active Homepage Maintenance: create a BAQ that returns the metric or list you want, add a KPI or List widget referencing that BAQ, arrange widgets on the homepage layout, and assign the homepage to a role or company so the right users see it.
How-toHow to close job costing and the accounting period in Epicor
Before closing an accounting period in Epicor, run Capture Costs (or confirm background costing is current) to post all labor, material, subcontract, and burden to jobs, review the WIP report for jobs that should be closed or investigated, close completed jobs so their costs relieve WIP, and only then close the GL period, since GL close blocks further transaction posting into it.
How-toProphet 21 is slow or freezing: how to find and fix SQL Server blocking
When Prophet 21 hangs for many users at once, the cause is usually one SQL Server session blocking others, or a long-running report holding locks on hot tables such as order and inventory location rows. Find the head blocker with sys.dm_exec_requests, identify the statement and the P21 client or report behind it, and fix that, rather than restarting the application server.
How-toHow to use DynaChange in Prophet 21 to change screens without custom code
DynaChange is Prophet 21's built-in tool for adjusting windows without programming: you can hide or disable fields, change labels, make fields required, and set defaults, scoped to a user, role or the whole company. Build the change against the window you want to alter, test it in a test environment with a real user role, and document each rule so it survives upgrades.
How-toHow to Create a BPM Method Directive in Epicor Kinetic
In Epicor Kinetic, open Business Process Management > Method Directive Maintenance (the BPM Workbench), pick the business object and method, choose Pre-Processing, Base Processing or Post-Processing, then add a condition and actions such as Show Message or Set Field. Enable it and test in a pilot company before production.
How-toHow to Add a Calculated Field in an Epicor BAQ
In Epicor Query Builder, open the Phrase Build or Calculated Fields area of the Analyze tab or Display Fields, add a new calculated field with a name and a data type, and write a SQL expression that references columns as Table_Column. Guard against NULL and zero divisors, and use a subquery when the value needs its own aggregation.
How-toEpicor REST API v2: OData Filter, Select and Expand Examples
Epicor Kinetic REST v2 exposes business objects at /api/v2/odata/{Company}/{Service}/{Entity} and BAQs at /api/v2/odata/{Company}/BaqSvc/{BAQId}/Data. Send an API key in the x-api-key header plus credentials, and use standard OData options: $filter, $select, $top, $skip, $orderby and $expand.
How-toHow to Create a BAQ in Epicor Kinetic
A BAQ (Business Activity Query) is a saved query in Epicor Kinetic that you build in the Query Builder without writing SQL. Choose the tables, define joins, select display fields, add criteria and calculated fields, test the result, then use the BAQ in dashboards, reports, BPMs or the REST API.
How-toEpicor Function: How to Call a BAQ from C# (Functions and BPM)
To run a BAQ from an Epicor Function or a BPM code block, call the Dynamic Query service: get the query's execution parameters by BAQ ID, set any parameter values, run it with the execute-by-ID method, and read rows from the results table. Declare the service in the function so the platform can resolve it.
How-toEpicor BPM Custom Code Examples: Set, Query, Validate, Call and Refresh
A BPM Custom Code block is a C# snippet that runs inside a Method or Data directive and can read the incoming temp tables (ttOrderHed, ttOrderDtl and so on), query the database through Db, and call business objects. Below are tested-pattern examples for setting a field, looking up a record, validating and raising an error, and calling a service, plus how to make the client see data you changed.
How-toEpicor Kinetic SSRS Reports vs Bold Reports: What Changed and How to Migrate
Epicor reports have historically been Crystal and SQL Server Reporting Services (SSRS) RDL files. Newer Kinetic releases moved new report work to Bold Reports, a different reporting engine that uses an RDL-like format. Standard reports are customized by copying a report style and editing the design; custom SSRS reports must be inventoried, tested and re-built or converted.
How-toEpicor Kinetic UD Tables and UD Fields: Setup, Studio Binding, BAQ and Security
UD tables (UD01, UD02 and so on) are Epicor's pre-built user-defined tables with a fixed set of key and data columns that you label and expose through a menu program. UD fields are extra columns on standard tables like OrderHed. Both are set up in system maintenance, shown in screens with Application Studio, and readable in BAQs.
How-toHow to Create a BAQ in Epicor: Build, Run, Search, Export to Excel and Publish
A BAQ (Business Activity Query) is a saved SQL-style query built in Epicor's Query Builder. Open Query Builder, name the query, add tables and join them, choose display fields, add criteria, test it, then run it from the Execute or Analysis tabs, export to Excel, and publish it for use in a dashboard or report.
How-toEpicor BAQ Cookbook: Group By, Union, Distinct, Null Tests, Pivot and Subqueries
Most BAQ patterns map to plain SQL: Group By with aggregates, Combined Queries for union, a Distinct setting, null tests in criteria or expressions, and subqueries for per-row lookups. Pivot and running totals have no single switch, so build them with conditional aggregates and subqueries.
How-toEpicor BAQ Report: Parameters, Running Manually, Scheduling and Triggering From Code
To make a BAQ report prompt for values, mark the BAQ criteria as parameters, then build a BAQ report from that BAQ. Users run it from its menu item and click Submit; to schedule it, use the schedule options in the submit dialog so the System Agent runs it. Code can submit a report through the report service.
How-toEpicor BPM: Update a UD Field, a PO Cost or a Table, and Update vs UpdateExt
From a BPM you can update data three ways: change the incoming temp table row (best for the record being saved), call a business object Update or UpdateExt on another record, or write through Db and call Validate. UpdateExt returns errors in the dataset instead of throwing. A record in process error means the record is already being saved in the same call chain.
How-toEpicor BPM InfoMessage, Message Box, Throw Exception and Hold
In Epicor Kinetic BPM, a message to the user is either a non-blocking InfoMessage (a Show Message widget, or PublishInfoMessage in custom code) or a blocking exception (a Raise Exception widget, or a thrown BLException) that cancels the save. A hold is not a separate message type: you set the relevant hold flag on the record in a Data or Method directive and optionally tell the user why.
How-toEpicor BPM Send Email: Widget, Function and SMTP Setup
To send email from an Epicor Kinetic BPM or Epicor Function, make sure the server SMTP settings work, then add a Send Email widget to the directive or function and fill the To, Subject, Body and optional attachment. Test the SMTP path first with a standard email-producing action, because most failures are server mail settings, not the widget.
How-toHow to Debug Epicor Functions (Logging, Testing, Maintenance)
Debug an Epicor Function by testing it in isolation with known input, writing explicit log entries from a code block, and reading the server trace log for the failing step. Keep libraries maintainable by naming functions clearly, documenting parameters, and managing security and versions in Epicor Functions Maintenance.
How-toConvert Epicor Classic Dashboards to Kinetic
Classic dashboards built on BAQs convert most easily to Kinetic because the query survives and only the presentation changes. Dashboards with custom code, complex layouts or tracker panels often need to be rebuilt in Application Studio. Inventory them, convert in a test environment, then verify data, filters, actions and security one by one.
How-toHow to Modify an SSRS Report in Epicor Kinetic
Never edit a standard Epicor report style in place. Download the RDL for the style, edit the copy in Microsoft Report Builder, upload it as a new custom report style with its own ID, then assign that style where the document prints. Keep the RDL in source control so you can reapply or compare it after an upgrade.
How-toEpicor Kinetic API Documentation: Where It Lives and How the URLs Work
Epicor Kinetic documents its REST API on your own server: a Swagger-style help page under /api/help lists every business object, method and field for your exact version. v1 uses /api/v1/ service URLs, v2 uses /api/v2/odata/{Company}/ and adds function (EFx) and BAQ endpoints. There is no separate SDK you must install; most teams call REST or generate a client from the OpenAPI definition.
How-toEpicor Upgrade Services: Moving From 10.2 to Kinetic Without Surprises
An Epicor 10.2 to Kinetic upgrade is normally done into a new environment: you copy your production database, run the upgrade there, test, and cut over, while 10.2 stays live. Running both in parallel is routine. The work that costs time is customizations, BPMs, reports and integrations, not the database step. Use Epicor or a partner for the upgrade if you have heavy customization; a vanilla system can be done in-house.
How-toEpicor Kinetic Costing Workbench: Part Cost, Rollup and Material Burden
In Epicor Kinetic, part cost is held in cost buckets (material, labor, burden, subcontract, material burden) per costing method. The Costing Workbench is where you view and maintain those costs, and a cost rollup walks the bill of materials and routing to compute a standard cost from lower levels. Material burden is a percentage or amount added on top of material cost, set in costing configuration rather than on the BOM.
How-toHow to Issue Material in Epicor Kinetic
In Epicor Kinetic you issue material to a job either manually with Issue Material (against the job material line, from a bin and lot) or automatically through backflush when labor is reported. Substitutions are handled by changing the job material part or using the alternate part on the material line, and requests can be routed through the material queue so the warehouse pulls and issues them.
How-toEpicor Prophet 21 API Documentation: Which API to Use and Where to Find the Docs
Prophet 21 (P21) exposes several APIs: the Data Service for read access over OData, the Middleware (REST) for transactions such as orders and receipts, and older SOAP style services. Documentation is mostly through Epicor's partner and customer portals plus the help pages on your own P21 server. Pick OData for reporting and lookups and Middleware for creating or changing business documents.
How-toEpicor Kinetic Dashboard Examples (Shop Floor, Sales, Purchasing) and How to Add Filters
A useful Kinetic dashboard is a BAQ with a small number of well-chosen columns, a date or status criterion, and a grid or chart on top. Good starters are late jobs and operations for the shop floor, open order lines for sales, and past-due PO releases for purchasing. Filters come from BAQ criteria set to prompt for a value, plus grid column filters.
How-toEpicor BAQ: Add a Percentage Column and Change the Date Format in Kinetic
Add a percentage to a BAQ with a calculated field that divides one value by another, guards against zero, and multiplies by 100 (or formats the ratio as a percent). Dates are stored as dates, so display is controlled by a column format in the BAQ or dashboard and by the user's culture settings, or by converting the date to text in the expression.
How-toEpicor BPM Data Directives and the Workflow Designer: When to Use Each, With an Example
Searches for an Epicor BPM data form usually mean the Data Directive, which fires when a table row is added, updated or deleted, designed on the BPM Workflow Designer canvas. A Method Directive fires around a business object method such as Update or GetNew. Use a Data Directive for rules about the data itself and a Method Directive for rules about the action.
How-toEpicor Dashboard Refresh All, Timers, Publish and Subscribe, Parameters and Runtime vs Assembly
Epicor dashboards refresh when the user runs the query, through a refresh action that updates every panel, or on a timer setting in the dashboard definition. Panels exchange values through publish and subscribe columns, queries take parameters as criteria, and a dashboard is either a runtime definition built in the system or an assembly dashboard compiled as code.
How-toShortage, Scrap, WIP, BOM, GL and Sales Reports in Epicor Kinetic
Epicor Kinetic ships operational reports under the Reports submenu of each module (Job Management, Inventory, General Ledger, Order Management), but the exact names vary by version, so use the menu search box to find them. When the standard report does not show what you need, build a BAQ over the underlying tables: JobMtl for shortages, LaborDtl for scrap, JobHead and JobOper for WIP, PartMtl for BOMs, GLJrnDtl for the ledger and OrderDtl or InvcDtl for sales.
How-toHow to Receive a PO in Epicor and Run the 3-Way Match
In Epicor you receive purchased material in Receipt Entry (Purchase Management > Receiving): enter the vendor packing slip, pull the PO lines, key the received quantity and save. The three-way match then compares the PO, the receipt and the AP invoice in AP Invoice Entry, so you pay only what was ordered and received. Fulfillment Workbench is the outbound counterpart for sales orders.
How-toHow to Copy a Part in Epicor, Add Revisions and Customer Cross-References
In Epicor, open Part Maintenance and use the copy action to create a new part from an existing one, then set the part number, description and any fields that must differ. Add revisions on the part's revision area (or through Engineering Workbench for managed method of manufacture), and maintain customer part numbers through the part cross-reference. Asset numbers live in Fixed Assets, not Part Maintenance.
How-toHow to Complete an Operation in Epicor Kinetic (Plus Time Entry and Corrective Action)
An operation is completed by reporting quantity and marking it complete on a labor transaction, either through the Kinetic MES shop floor screens or Labor Entry in the back office. The operation's complete flag then lets the next operation or job receipt proceed. Time and expense, customer managed inventory and corrective action are separate modules, each with its own entry screen and approval flow.
How-toHow to Void an Invoice in Epicor 10 and Kinetic
If the AR invoice has not been posted, delete or cancel it in AR Invoice Entry. If it has been posted to the general ledger, do not try to remove it: reverse it with a credit memo (or the void or unpost action where your version and fiscal period allow it) so the audit trail is preserved. Posting rules determine which GL accounts each invoice and reversal hits.
How-toEpicor Prophet 21 License and Domain, Manuals and User Groups
Prophet 21 licensing is issued and managed by Epicor against your customer account and tied to your modules and user counts, so changes and renewals go through Epicor or your reseller. The word 'domain' can mean your Windows or Active Directory domain used for sign-in, or the P21 environment and server your users connect to. Documentation is delivered through Epicor's customer portal and in-product help, and user groups run through Epicor's community and events.
AdvancedHow to create and call an Epicor Function
Open Function Studio from the main menu (Customization > Function Studio) or from inside a BPM designer's Call Context widget, define a Library and Function with typed inputs/outputs, write the logic in the C# widget, then compile and test with the built-in test harness before calling it from a BPM directive, a dashboard, or another function.
AdvancedEpicor Application Studio: understanding customization layers
Kinetic UI is built in layers loaded in order - Base (Epicor-delivered), Customization (Application Studio, company/layer-wide), Personalization (user- or role-specific, applied on top), and optionally Extended (packaged add-on layers) - and a change you make will not appear if a higher layer overrides the same control or if you are testing in the wrong layer context.
AdvancedEpicor Function Custom Code: C# Signature, Parameters and Calling It
An Epicor Function is a reusable server-side routine with typed request and response parameters. Its body is C# you write in the function editor, either as a custom code block or as widgets. Define the inputs and outputs, write the code, test it, then call it from a BPM, from Application Studio, from another function or through the REST API.
AdvancedEpicor BAQ Recursive BOM Join on PartMtl, Previous Operation Complete and Stale Headers
A BAQ cannot run a recursive query, so a multi-level bill of materials is built by joining PartMtl to itself once per level, or by using a function or the BOM explosion tools for unlimited depth. Previous operation complete uses a subquery against JobOper. Stale column headers usually come from the saved dashboard layout, not the BAQ.
AdvancedEpicor BPM TxScope: Standard vs In-Transaction Directives and When Functions Need a Transaction
A transaction scope groups database writes so they commit or roll back together. In Epicor BPM, a Standard directive runs outside the business object's database transaction, while an In-Transaction directive runs inside it, so an exception rolls back the whole save. In custom code you open your own scope with IceContext.CreateDefaultTransactionScope and call Complete.
AdvancedEpicor Function Examples: Update a Table, Call It, Schedule It
An Epicor Function takes typed inputs, runs widgets or code, and returns outputs. You can update data through a business object call or the table widgets, call the function from a BPM, from Application Studio or over REST, and schedule it through an external scheduler or a task agent pattern that fits your release.
AdvancedEpicor Kinetic Custom Code: LINQ Delete and Variables in Application Studio Flows
Two different things are called custom code in Kinetic. Server side C# in BPMs and Epicor Functions can delete rows with LINQ by selecting the rows and removing them from the Db context, then validating. Client side Application Studio logic uses event flows with variables that you set in one widget and read in the next. Keep them separate: the browser never touches the database directly.
AdvancedHow to Add AI to Epicor Kinetic On-Premises Without Moving Your Data
You can run a useful AI assistant on an on-premises Epicor Kinetic estate without sending data to a public cloud. Read through BAQs and the REST v2 OData layer (or a read-only SQL Server replica of the Erp schema), index documents locally, serve an open-weight model with vLLM or Ollama on your own GPUs, and route any write through supported Epicor business objects with a human approval step.
AdvancedEpicor ERP 10 AI Integration Without Cloud: Private Architecture
Epicor ERP 10 can feed a private AI assistant through its REST service layer, executable BAQs and a read-only copy of the SQL Server database, with the model served locally on your GPUs. The limits are version-specific: check which REST generation and security features your 10.x release has before you design the tool layer, and plan for the upgrade path to Kinetic.
AdvancedAI for Epicor 9 and Vantage on Progress OpenEdge: A Private Architecture
Epicor 9 and Vantage store data in a Progress OpenEdge database, which can be read through the OpenEdge SQL-92 engine over ODBC or JDBC. The practical design replicates the data to a SQL Server or similar reporting copy, indexes documents locally, serves an open-weight model on your own GPUs, and keeps the legacy system read-only.
AdvancedHow to Add AI to Prophet 21 On-Premises Without Moving Your Data
Prophet 21 runs on SQL Server and offers Epicor-provided API layers for reads and transactions, so a private assistant can be built on a read-only reporting copy plus the documented APIs, with an open-weight model on your own GPUs. Distribution questions about stock, pricing, open orders, customers and purchasing are the strongest fit.
AdvancedEpicor Eclipse AI Integration: A Private, On-Prem Architecture
Eclipse is a distribution ERP whose integration surface is more constrained than SQL-based systems, so the safest design reads from scheduled extracts, vendor-supported interfaces and exported reports into a local reporting store, then indexes and serves an open-weight model on your own hardware. Confirm with Epicor which interfaces your Eclipse release and hosting arrangement allow.
CIO briefingEpicor Eclipse or Prophet 21: how a distributor should make the decision
Epicor sells both Eclipse and Prophet 21 to distributors, and they come from different histories and serve somewhat different verticals. Do not decide on feature lists alone: get Epicor's written support and roadmap position for your product, price a full migration honestly, and test your own critical workflows before committing. Staying put is often cheaper than moving, until it is not.
CIO briefingEpicor Kinetic Update Schedule: Release Cadence, Versions and Upgrade Planning
Epicor Kinetic ships versioned releases in a year-and-number pattern with point releases in between, and the cloud service applies updates on a vendor-managed schedule while on-premises customers choose when to upgrade. Confirm exact dates and the supported-version policy on the Epicor support site, then plan a regression-tested upgrade at a pace your customizations allow.
Mid-market & small ERPs
Fix Odoo AccessError: You Are Not Allowed to Access Records
AccessError: You are not allowed to access records. This operation is allowed for the following groupsOdoo raises AccessError when a user's security groups do not grant a CRUD right on a model through ir.model.access.csv, or when an ir.rule record rule filters the specific record out for that user or company. Fix it by adding the user to the group named in the error, editing the model's access rights, or reviewing the record rule's domain under Settings > Technical > Security.
Error fixFix Fishbowl Error: MySQL Server Has Gone Away
Fishbowl error: MySQL server has gone awayThis error means the Fishbowl Server lost its connection to the underlying MySQL database, usually because a session sat idle past MySQL's wait_timeout, MySQL itself restarted, or a large import or report exceeded max_allowed_packet. Raise the relevant MySQL timeout and packet settings, confirm the MySQL service is actually running, and restart both MySQL and the Fishbowl Server service.
Error fixQAD Says "Unable to Connect to the Application Server": How to Fix It
QAD unable to connect to the application serverThis error almost always means the Progress OpenEdge AppServer broker behind QAD is stopped, unreachable over the network, or out of licensed connections, not a database problem. Confirm the broker process is running and healthy in OpenEdge Explorer, check the port and firewall path from the client, then restart the broker with clean agent settings.
Error fixOdoo Scheduled Actions (Cron) Not Running: How to Fix
Odoo scheduled actions (cron jobs) not runningOdoo scheduled actions usually stop firing because no cron worker is available (workers or max-cron-threads misconfigured), the action is set inactive, or an earlier job crashed and left an ir.cron row stuck in the running state, which blocks the queue. Check Settings > Technical > Automation > Scheduled Actions first, then the server config and the ir.cron table.
Error fixOdoo Manufacturing Order: Components Not Available or Will Not Reserve
Odoo manufacturing order components not available cannot reserveAn Odoo manufacturing order stays in Confirmed with components marked Not Available when stock.move lines for the raw materials cannot be reserved from the quantity actually sitting in the MO's source location. The usual causes are stock in the wrong location, stock already reserved by another document, lot or tracking mismatches, and a unit of measure difference between the BoM and the product.
Error fixAcumatica Customization Project Publish Failed: How to Fix It
Acumatica customization project publish failedA failed publish in Acumatica means the platform could not validate, compile or apply the customization package to the website and database. Open the Publish Customization Project dialog, read the Compilation log and the Validation log, fix the first error (usually a C# compile error, a missing DAC field or a conflicting project), and publish again, ideally on a test tenant first.
Error fixAcumatica REST API 401 Unauthorized and API Login Limit: How to Fix
Acumatica REST API 401 unauthorized loginA 401 from the Acumatica contract-based REST API usually means the login call failed or the session cookie was not sent back, and an API login limit error means too many API sessions are open for your license. Post to /entity/auth/login with name, password and company, reuse the cookie, and always call /entity/auth/logout when done. For integrations, prefer OAuth 2.0 through a Connected Application.
Error fixAcumatica Error: Inventory Quantity Will Go Negative
Acumatica Inventory quantity for item in warehouse will go negativeAcumatica blocks a release when the transaction would drive on-hand below zero for a stock item that does not allow negative quantity, tracked by warehouse, location and lot or serial. Fix it by receiving or adjusting the missing stock first, correcting the wrong warehouse, location or lot on the document, or, if the business really needs it, enabling Allow Negative Quantity on the item or its warehouse setup.
Error fixFix Sage 100 SOTAMAS90 ODBC Connection Errors
Sage 100 ODBC SOTAMAS90 connection errorMost Sage 100 ODBC failures are one of four things: the DSN was created in the wrong 32-bit or 64-bit ODBC administrator for the tool you use, the DSN path or company code is wrong, the Windows account cannot read the MAS90 folder, or the Sage 100 user lacks external access. Recreate the DSN in the matching administrator and test with the driver's own Test button before blaming Excel or Power BI.
Error fixSage X3 Syracuse Service Won't Start: Troubleshooting Guide
Sage X3 Syracuse service will not startWhen Sage X3 users reach no login page, check the Syracuse Windows service and its dependencies in order: the MongoDB service that holds Syracuse configuration, the port and certificate Syracuse binds to, then the connection from Syracuse to the X3 runtime. Syracuse log files normally state which step failed, so read the log before restarting things repeatedly.
Error fixQAD "Lock Table Overflow, Increase -L on Server (915)": Cause and Fix
QAD Lock table overflow, increase -L on server (915)Progress error 915 means the database server ran out of entries in its shared record lock table, which is sized by the -L startup parameter. Either one session holds an enormous number of record locks inside a single transaction, or -L is simply too small for your workload. Find the session first, then raise -L in the database startup parameters and restart the database.
Error fixQAD Progress BI File Growing Huge: Causes and How to Truncate It
QAD Progress bi file keeps growing huge, how to truncate biThe before-image (.bi) file grows when Progress cannot reuse its clusters, usually because a long-running transaction is still open or the cluster size is too small. Find the oldest open transaction, end it, then if the file is still oversized do a clean shutdown and run proutil truncate bi with a sensible cluster size. Never delete the .bi file by hand.
Error fixPlex REST API Returns 401 or 403: How to Troubleshoot Authentication
Plex REST API returns 401 Unauthorized or 403 ForbiddenA 401 means Plex did not accept your credentials at all, usually a wrong, expired, or wrongly placed API key, or a key from the wrong environment. A 403 means the credentials were valid but the app or user is not permitted to use that API or data. Work through key, environment, app subscription, and access rights in that order.
Error fixFix Katana API 429 Too Many Requests
Katana API 429 too many requestsHTTP 429 from the Katana public API means your integration exceeded the per-key request allowance for the current time window. Fix it by honoring the retry headers, backing off with jitter, paging with the largest allowed page size, caching reference data such as products and variants, and replacing polling loops with scheduled incremental syncs.
Error fixFix Fishbowl REST API Login 401 and Integrated App Errors
Fishbowl API login 401 unauthorizedA failed Fishbowl REST API login is usually one of three things: the integration was never approved inside Fishbowl, the appName and appId in the request do not match the approved entry, or the Fishbowl user lacks permission. Approve the app in the Fishbowl client, fix the login payload, use a dedicated API user and send the returned token on later calls.
Error fixIFS Cloud OData Projection API: Fixing 401 and 403 Errors
IFS Cloud projection OData API 401 unauthorized invalid_tokenIFS Cloud exposes its data through OData v4 projections under /main/ifsapplications/projection/v1/, secured by OAuth2 tokens from IFS IAM. A 401 almost always means the token is missing, expired or issued by the wrong realm; a 403 means the identity is authenticated but its permission sets do not grant that projection or its entity actions.
Error fixIFS Cloud Background Job Stuck in Posted or Executing
IFS Cloud background job stuck in Posted or ExecutingA background job that stays Posted is waiting for a batch queue processor that is not picking it up, while one that stays Executing is either genuinely long-running or orphaned after a crash or restart. Check the Background Jobs page for the job state and error text, confirm the batch queue is active with capacity, then requeue or cancel the job.
Error fixCostpoint Timesheet: Employee Cannot Charge to a Project
Costpoint timesheet cannot charge to project invalid chargeWhen Costpoint rejects a charge line on a timesheet, one of a short list of validations has failed: the project or task is not open for charging, the account or organization on the line is not valid for that project, the employee is not set up to charge it, or the timesheet date falls outside an open period. Work through those checks in order and the cause is almost always found in minutes.
Error fixFix Katana and Shopify Inventory Not Syncing
Katana Shopify inventory not syncingWhen Katana and Shopify disagree on stock, the cause is almost always a SKU mismatch, a location mapping problem, or a misunderstanding of which system owns the number. Katana pushes available stock to Shopify by matching variants on SKU, so fix the SKUs and the location settings first, then force a resync.
Error fixFix Genius ERP WIP Balance Not Matching the GL
Genius ERP WIP balance does not match general ledgerA WIP balance that disagrees with the general ledger is nearly always a timing or posting difference, not lost money. Reconcile by listing open jobs at one cutoff date, then check unposted transactions, jobs closed with leftover cost, and manual journal entries against the WIP account.
Error fixFix ECI M1 MRP Suggestions That Look Wrong
ECI M1 MRP suggestions wrong or missing shortagesWhen MRP in M1 suggests the wrong quantity or misses a shortage, the cause is almost never the calculation. It is the inputs: item planning parameters, lead times, BOM structure, inaccurate on-hand or open order data, or a planning run that was not complete. Check those in that order.
Error fixAcumatica production demand 'Prepared': what it means and how to clear it
acumatica production demand preparedIn Acumatica Manufacturing, a demand record marked Prepared has been staged by a planning step but has not yet been turned into a supply order (production order, purchase order or transfer). It normally clears when the next planning or order-creation step runs against it. If it never clears, the cause is almost always a missing item setting, a replenishment source that is not defined, or a planning run that was never completed.
How-toHow to Create a Generic Inquiry in Acumatica
Generic Inquiries (GI) are Acumatica's no-code query builder for joining tables, adding filters, and exposing the result as an inquiry screen, dashboard data source, or API endpoint. Open System > Customization > Generic Inquiry, add your base table, define joins and conditions, then run and save. No SQL or customization project is required.
How-toHow to Void a Check in Sage 100
Sage 100 voids checks through Accounts Payable > Main > Check and Payment Voiding. Select the bank code, choose the check number, and Sage reverses the Cash Disbursements Journal entry and reopens the invoice it paid. A check that already cleared in Bank Reconciliation or falls in a closed period needs an extra step before it can be voided cleanly.
How-toHow to Run Requirements Planning (MRP) in SYSPRO
SYSPRO's MRP engine lives under Planning and Scheduling > Requirements Planning. Set planning parameters per warehouse, run the Requirements Calculation to net demand against supply, then review and release the resulting suggestions as purchase requisitions or work orders. A full regenerative run typically runs on a schedule, with net change runs in between to pick up new activity.
How-toHow to Close a Job in JobBOSS2
A job in JobBOSS2 will not close cleanly until every routing operation is marked complete, all material has been issued or returned, and all labor and cost transactions are posted. Review the job's Work In Process detail first, clear any open items, then change the job status to Complete and run final job costing before it is locked.
How-toHow to Create a Quote in E2 Shop System
A quote in E2 Shop System starts with a header identifying the customer and part, then adds routing operations with time and rate, material and outside processing costs, and a markup to reach a sell price. Once accepted, the quote converts directly into a job or sales order so the estimate carries forward as the job's cost basis.
How-toHow to Set Up an EDI Trading Partner in Plex Systems
Setting up an EDI trading partner in Plex's EDI Data Manager means defining the partner and their connection details, mapping the specific document types they will exchange (purchase orders, forecasts, shipping schedules, ASNs, invoices) to Plex's Customer and Part records, and running the partner through test mode before flipping them to production.
How-toHow to Run Live Scheduling in Global Shop Solutions
Live Scheduling in Global Shop Solutions builds a finite-capacity schedule from job routing operations against defined work centers, then presents it as a drag-and-drop board that shop supervisors adjust to reflect real shop floor priorities. Its accuracy depends on work centers, standard hours, and shop floor data collection all being kept current, since the schedule is only as good as the routing and capacity data feeding it.
How-toHow to Create an Import Scenario in Acumatica
Import scenarios in Acumatica live under System Integration > Import Scenarios: you pick a source (a file or a Generic Inquiry), map each source field to a target DAC field on the destination screen, then run or schedule the scenario. A small sample file run through the wizard first makes the field mapping step far faster than mapping blind.
How-toHow to Run a Physical Inventory Count in Sage X3
Sage X3 physical counts run through Stock > Counts: create a count session scoped to a site, category, or zone, generate the count sheet to freeze theoretical quantities, enter counted quantities, review the variance report, then validate to post stock and valuation adjustments. Blocking movements against the counted locations during the window keeps the variance meaningful.
How-toHow to Set Up Business Events and Actions in IFS
IFS Business Events fire when a defined condition on a Logical Unit is met, such as a new record, an update, or a specific attribute changing, and Actions subscribe to those events to send email, invoke a workflow, or call an external service. Both are configured in Solution Manager (or the Events and Actions work area in IFS Cloud) without requiring custom PL/SQL for most standard cases.
How-toHow to Set Up Indirect Rate Pools in Deltek Costpoint
Indirect rate pools in Costpoint group related indirect costs, such as fringe, overhead, G&A, or material handling, so they can be allocated to direct cost bases using a defined rate. Pools and their bases are configured under the Indirect Rate Structure area, with pool tiers sequenced so that lower-level pools like fringe allocate into higher-level pools like overhead before G&A is calculated.
How-toOdoo Reordering Rule Not Creating Manufacturing Orders: Causes and Fixes
Odoo creates a manufacturing order from a reordering rule only when the rule's forecast quantity falls below its minimum, the product has the Manufacture route with an active BoM, and the replenishment scheduler actually runs. Check the rule's route and warehouse, the product's forecast, the BoM, and the scheduler cron, in that order.
How-toOdoo Inventory Valuation Report Does Not Match the Balance Sheet
In Odoo with automated inventory valuation, the stock valuation report should equal the balance of the stock valuation account. Differences nearly always come from manual journal entries to that account, products with manual valuation, costing method changes, landed costs, negative stock, or vendor bills posted at a different price than the receipt.
How-toOdoo External API: Authenticate and search_read with XML-RPC and JSON-RPC
Call the Odoo external API by authenticating against /xmlrpc/2/common to get a user id, then calling execute_kw on /xmlrpc/2/object with the database, uid, password or API key, model name, method and arguments. If authenticate returns False, the database name, login, or API key is wrong, or two-factor is enforced for that user.
How-toOdoo Studio Custom Fields: Export, x_studio Names and Upgrade Risk
Odoo Studio saves your changes as data in the database: custom fields named x_studio_*, edited views stored as inherited ir.ui.view records, and automation rules. You can export them as a module via Studio's Export button, but upgrades can break Studio views when the base view changes, and Studio is not a substitute for version-controlled code on complex logic.
How-toHow to Add a Custom Field to the Sales Order Screen in Acumatica
There are two routes. For simple data capture use Attributes (Configuration > Common Settings > Attributes), assigned to a class, which show up without code. For a real database column with logic, create a DAC extension (PXCacheExtension on SOOrder) in a Customization Project, add the field to the screen layout in the Screen Editor, and publish.
How-toAcumatica Automation Schedule Not Running: Causes and Fixes
If an Acumatica automation schedule does not fire, check that it is Active, that Next Execution is in the future and in the right time zone, that the schedule's user is valid, and review Schedule History for the failure. On premises, an idle IIS application pool is the classic hidden cause: the site must be warmed up and set to always run so the scheduler can trigger.
How-toSage 100 Business Object Interface (BOI): Working VBScript Example
The Sage 100 Business Object Interface exposes the same business objects the screens use through a COM object called ProvideX.Script. You initialise it with the MAS90\Home path, create an SY_Session object, log on, set the company, then create a business object such as AR_Customer_bus and read or write through it. Because it runs the real business logic, it is the supported way to write data in code, unlike direct file or ODBC writes.
How-toHow to Add User Defined Fields (UDFs) in Sage 100
In Sage 100 you add a user defined field through Custom Office: open the Customizer Selection for the module, create the field with a name, type and length, then place it on the relevant data entry panel using the Customizer. UDFs are stored in the module's tables with a UDF_ prefix, which is how they appear in ODBC, Crystal and imports once the field is defined.
How-toSage X3 REST API: Reading Sales Orders Through Syracuse
Sage X3 (version 7 and later) exposes data through Syracuse at a URL of the form /api1/x3/erp/ENDPOINT/REPRESENTATION, where the endpoint is the folder and the representation is a published object such as SORDER. A GET with credentials returns JSON, and you filter with a where clause and page with count and a link to the next page. Your integration user needs the right Syracuse and X3 rights for that representation.
How-toHow to Create a SYSPRO Sales Order with the SORTOI Business Object
SORTOI is the SYSPRO e.net business object that enters sales orders from outside the SYSPRO client. You log on to get a session id, call the business object with a Parameter XML and a Document XML describing the order header and lines, then read the XML that comes back for warnings and the new sales order number. Always test in a non-production company first.
How-toHow to Find and Fix Negative Quantity on Hand in SYSPRO
Negative on hand in SYSPRO means more stock was issued, shipped or consumed than was ever received into that warehouse. It is almost always a timing or receiving problem, not corrupt data. Find the movements that drove the balance below zero, fix the receiving or unit-of-measure root cause, and then correct the quantity with a proper inventory adjustment so costs stay consistent.
How-toSYSPRO Job Will Not Close or Leaves a WIP Balance: What to Check
A SYSPRO job leaves a WIP balance or refuses to close when material, labour or overhead is still sitting on the job without a matching receipt of finished goods. Check that the full quantity has been received through job receipts, that all allocated materials are issued or deallocated, and that outstanding labour is posted. Then close the job so SYSPRO transfers the remaining difference to variance.
How-toHow to Back Up and Restore a QAD Progress Database with probkup and prorest
Use probkup online to take a consistent full backup of a running QAD database, add incremental backups between fulls, verify the backup with prorest -vp, and restore with prorest into a prepared structure. A file-level copy of a running database is not a valid backup. Pair backups with after-imaging if you need point-in-time recovery.
How-toKatana Manufacturing Order Ingredients Not Available: How to Resolve
A Katana manufacturing order flags an ingredient as not available when free stock at the order's location is less than the recipe quantity and no incoming purchase or manufacturing order covers the gap. Resolve it by checking the ingredient's stock by location, creating or expediting a purchase order, fixing a wrong location or recipe, or correcting stock with an adjustment or stocktake.
How-toMRPeasy Materials Shortage: Plan Purchases Correctly
MRPeasy compares the demand from customer orders and manufacturing orders with available stock, booked stock and open purchase orders, and flags what is short. To act on it, review the shortages, confirm item lead times and minimum stock levels, then create purchase or manufacturing orders and re-check planned dates.
How-toFishbowl SQL Query for Inventory by Location
Fishbowl stores physical inventory as rows in the tag table, one per part per location per tracking combination. Join tag to part and location, group by part and location, and sum quantity to get on hand by location. Run it read-only through Fishbowl's reporting module or a read-only MySQL user, and verify column names against your version.
How-toHow to Add a Custom Field to an IFS Cloud Page
In IFS Cloud you add a custom field by opening the page in configuration mode, choosing to add a field, defining its name, type and placement, and publishing the configuration. The field is stored by the platform as configuration, not as a code change, which is why it normally survives upgrades.
How-toHow to Create a Custom Lobby Page in IFS Cloud
An IFS Cloud lobby page is a personal or shared dashboard built from elements such as lists, charts, gauges and shortcuts. Each data element reads from an information source, so the usual build path is to define or reuse an information source, add an element in the lobby designer, bind it, and then share the page with the right users.
How-toHow to Prepare an Incurred Cost Submission From Costpoint
An incurred cost submission is built from closed-year, reconciled Costpoint data: final direct cost by contract, pool and base amounts, and final indirect rates. Close the fiscal year, freeze the cost data, reconcile pools and bases to the general ledger, then map the results into the government's Incurred Cost Electronic (ICE) model schedules before the deadline.
How-toCostpoint: Project Cost Exceeds Funding or Ceiling
Costpoint tracks funding, cost ceilings and billing or revenue limits separately, and a project can be over any one of them while being fine on the others. When costs exceed funding, billing and revenue are limited to what the limits allow, so the first step is to identify which limit is binding and whether a contract modification should raise it.
How-toHow to Compare Planned vs Actual Cost in MRPeasy
MRPeasy builds a planned cost from the bill of materials, routing and rates, then records actual cost as materials are consumed and work is reported on the manufacturing order. To find a variance, compare the two on the order itself and then drill into material price, quantity used, and time booked.
How-toDate Code and Lot Traceability in Cetec ERP
Traceability in an electronics shop only works if the date code or lot is captured when the part is received, carried through every build and move, and recorded again at shipment. A trace then runs forward from a supplier lot to every customer, or backward from a shipped unit to its component lots.
How-toHow to Back Up Fishbowl Inventory (and Restore It)
Fishbowl stores everything in a MySQL database on the Fishbowl server, so a backup means copying that database plus your attachments and custom reports. Use Fishbowl's built-in backup for a quick copy, schedule it, add a mysqldump or file-level backup for redundancy, copy the result offsite and test a restore regularly.
How-toHow to Adjust Inventory in Fishbowl
In Fishbowl, the audit-friendly way to adjust inventory is a cycle count: you count a location or part, enter the real quantity and commit, and Fishbowl posts the difference. For one-off corrections you can use scrap or add inventory, and move inventory between locations. Check the inventory reports afterwards.
How-toFishbowl Inventory and QuickBooks Integration: Setup, Mapping and Sync Errors
Fishbowl runs inventory, orders and manufacturing, and posts the accounting results to QuickBooks. Inventory quantities stay in Fishbowl; QuickBooks receives journal-style postings and documents mapped to its accounts. Most sync errors come from account mapping, missing customers or vendors, closed periods or mismatched names.
How-toFishbowl Inventory UPS Integration: Setup and Common Rate and Label Errors
Fishbowl connects to UPS through its shipping integration: you register your UPS account, map Fishbowl carrier services to UPS services, and then rate and print labels from the Shipping module. Nearly all rate and label errors trace back to four inputs: the UPS account and shipper number, the ship-from address, package weight and dimensions, and a destination address UPS will not validate.
How-toFishbowl Inventory API Documentation: Auth, Endpoints and Examples
Fishbowl exposes a JSON REST API from its own server. You log in with an app name, app ID and a Fishbowl user to receive a token, send that token as a Bearer header, and call resource endpoints for parts, inventory, sales orders, purchase orders and imports. Fishbowl publishes reference documentation online and the server can show interactive docs for your own version.
How-toOdoo Multiple Prices per Product: How to Use Pricelists
Odoo handles multiple prices per product with pricelists. Enable pricelists in Sales settings, create one pricelist per customer group, currency or channel, add rules by product, category or quantity, and assign the pricelist to a customer or choose it on the quotation. Rules can be a fixed price, a discount percentage or a formula based on another price.
How-toOdoo Manufacturing API: Working with mrp.production and mrp.bom
Odoo exposes manufacturing through its normal external API: the models mrp.bom (bills of materials), mrp.production (manufacturing orders) and mrp.workorder, called via XML-RPC or JSON-RPC with execute_kw. Authenticate, search and read the BOM, create a manufacturing order, then call its action methods such as action_confirm to move it through states. There is no separate manufacturing API.
How-toOdoo: Create a Manufacturing Order from a Sales Order
To make confirming an Odoo sales order create a manufacturing order, give the product a Bill of Materials of type Manufacture this product and set both the Manufacture and Replenish on Order (MTO) routes on the product. When the order is confirmed, the delivery demand triggers a procurement, the Manufacture rule fires, and an MO is created with the sales order as its source.
How-toOdoo Manufacturing Tutorial: From BOM to Finished Product
The Odoo Manufacturing app (MRP) turns a Bill of Materials into manufacturing orders that consume components and produce finished goods. The core flow is: create products, build a BOM, optionally add work centers and operations, create and confirm a manufacturing order, then produce and mark it done. This walkthrough covers the process end to end and what to verify on Odoo 19.
How-toOdoo Manufacturing App: How to Make a Kit
In Odoo you make a kit by creating a Bill of Materials and setting BoM Type to Kit instead of Manufacture this product. A kit is not produced: when you sell or deliver it, Odoo replaces the kit product with its components on the stock moves. Use a kit for bundles you pack at delivery, and a manufactured BOM when you need to build and stock the assembled item.
How-toFishbowl Inventory Integrations, Scanners and Forecasting
Fishbowl connects to accounting (QuickBooks, Xero), e-commerce platforms, shipping carriers and other systems through built-in integrations, partner connectors and its REST API. Barcode scanning is usually done with the Fishbowl Go mobile app on supported scanner devices, and forecasting is based on sales history, lead times and reorder points rather than a full planning engine.
How-toFishbowl Inventory Export, Customer Support and When to Hire a Consultant
Export from Fishbowl with the Import/Export module for master data and transactions as CSV, or run a report and export it to a file. For anything custom, read the underlying MySQL database with a read-only user. For help, use Fishbowl's support and your reseller, and hire a consultant when the work is integration, migration or reporting design rather than a quick question.
How-toFishbowl Inventory Release Notes, Updates and Upgrade Checklist
Fishbowl publishes release notes with each version through its help center and support site; read them for the version you are moving to, not just the latest. For on-prem installs, an update means upgrading the Fishbowl server first, then clients, after a verified database backup. Test in a copy of production before upgrading the live system.
How-toOdoo Manufacturing Reports: Production Analysis, Cost and Forecast
Odoo has a Reporting menu in the Manufacturing app with analysis views of manufacturing orders and work center productivity, plus forecasted stock views in Inventory. Cost analysis, OEE and a master production schedule depend on version and edition. For anything else, group and filter the manufacturing order list, use pivot and graph views, or build a custom report with a SQL view, Python model or Studio.
How-toHow to Install Odoo and Set Up a Development Environment
For development, install Odoo from source: install PostgreSQL and system libraries, clone the Odoo repository at your target version, create a Python virtual environment, install requirements, then start odoo-bin with a config file and a new database. Use Docker for a quick trial. Run with developer options and create your own addons folder for custom modules.
How-toSAP Business One: Reporting to Excel, Module List and Price Lists
In SAP Business One you can export most lists and reports to Excel with the Microsoft Excel button, write your own SQL in Tools > Queries > Query Manager, or use Excel-based reporting tools offered with your version. The main modules are Administration, Financials, Sales A/R, Purchasing A/P, Business Partners, Banking, Inventory, Production, MRP, Service, HR and Reports. Price lists live under Inventory > Price Lists.
How-toSAP Business One Financial Reports and Reporting Features
SAP Business One ships standard financial reports under Financials > Financial Reports, such as Trial Balance, Balance Sheet, Profit and Loss Statement and cash flow, plus aging reports under Business Partners. For custom needs it offers Query Manager (SQL), Crystal Reports layouts, Print Layout Designer for documents and dashboards or cockpits. Drill-down arrows trace every figure to its journal entry.
How-toAcumatica: How to Make a Field Required
In Acumatica you make a field required with a customization project: use workflow field states for conditional rules, mark an attribute as required for item or customer classes, or use a DAC extension in code for an always-required field. Choose the least invasive route, test in a copy of the tenant, and publish the project.
How-toAcumatica Manufacturing: Scheduling, Kiosk and Estimating
Acumatica Manufacturing schedules production orders against work center capacity and calendars, shows the result on a schedule board, takes shop floor transactions through a kiosk-style entry, and supports estimating for quoted jobs. Scheduling quality depends on routing times, work center calendars and machine capacity being right before anything else.
How-toAcumatica Manufacturing Data Collection: Labor and Production Entry
Shop floor data collection in Acumatica Manufacturing records what actually happened on a production order: operators clock on and off, report labor time, move quantities between operations and issue material. Clean collection needs a clear rule for who enters what, simple screens at the machine and a daily check of open transactions.
How-toMYOB Acumatica Manufacturing: Batch Size in BOMs and Production Orders
In Acumatica Manufacturing the bill of material is defined for a batch size: component quantities are the amounts needed to make that batch, and a production order scales them by order quantity divided by batch size. Yield and scrap factors then increase the required material. Setting the batch size to match how the plant actually makes the product keeps component requirements correct.
How-toMRPeasy integration with QuickBooks, Xero, Sage and HubSpot
MRPeasy is an operations system (inventory, MRP, production, purchasing, sales) and expects a separate accounting package for the general ledger. It offers integrations for accounting tools such as QuickBooks Online and Xero, and reaches others like Sage and HubSpot through its REST API or connector tools. Treat sync as invoices, bills and contacts, not as a full ledger replacement.
How-toMRPeasy API documentation: authentication, endpoints and examples
The MRPeasy REST API returns JSON over HTTPS and is authenticated with an API key and secret that you generate in your account. You read and write resources such as customer orders, manufacturing orders, items and stock, and page through lists with a Range header. Always confirm the exact resource names against MRPeasy's own API documentation.
How-toKatana MRP Integrations and the MRPeasy REST API
Katana and MRPeasy both offer native connectors for common sales channels and accounting systems, plus a REST API for everything else. Use the native connector for orders and stock sync, and the API for custom reports, ERP links and missing fields. Always check which direction each connector syncs and what it ignores.
How-toMRPeasy Forecasting, Trial, Support and Cancellation
MRPeasy plans from customer orders, stock levels and reorder rules, and works well when demand is mostly known orders. It is not a statistical forecasting engine, so teams with forecast-driven demand usually add a spreadsheet or an external model. This page also covers trial evaluation, support routes and how to exit cleanly.
How-toMRPeasy Xero Integration (and Shopify)
MRPeasy offers integrations with Xero for accounting and with Shopify for sales orders and stock. In general, Xero receives invoices and related accounting documents from MRPeasy, and Shopify sends orders into MRPeasy while MRPeasy sends available stock back. Check the current integration documentation for exact fields and limits.
How-toMRPeasy Custom Fields
MRPeasy lets administrators extend records with additional fields in its settings, so you can store information such as drawing revision, customer part number or inspection class on items and documents. Availability by record type and plan varies, so confirm in your account, and remember that a custom field stores data but does not by itself change planning logic.
AdvancedSYSPRO SQL Query for Inventory On Hand by Warehouse
SYSPRO runs on SQL Server with one database per company, typically named like SysproCompanyA, and inventory is split between InvMaster for part-level data and InvWarehouse for quantities per warehouse. Join them on StockCode, filter, and read the quantity columns. Use a read-only login, never write to SYSPRO tables directly, and prefer e.net business objects for any change.
AdvancedCostpoint Year-End Close and Indirect Rate True-Up
At year end a Costpoint contractor closes the periods, computes actual indirect rates from final pool and base amounts, and posts a true-up for the difference between provisional rates used all year and the actual rates. Do these in sequence, with reconciliations between each step, and the later incurred cost submission becomes mostly a reporting exercise.
AdvancedHow to Add AI to Macola ERP On-Prem Without Sending Data to a Cloud
Macola 10 runs on SQL Server, so the safest pattern is a read-only reporting copy of the Macola company database, a small set of approved views, a retrieval index over attached documents, and an open-weight model served on a local GPU. Writes stay out of the first phases and, when added, go through Macola's supported import or SDK routes with a person approving each one.
AdvancedMade2Manage AI Integration Without Cloud: A Private On-Prem Architecture
Made2Manage stores jobs, sales orders, purchasing and inventory in SQL Server tables that a reporting copy can expose through approved views. Pair that with a retrieval index over job travelers and quality documents and an open-weight model on a local GPU, and users can ask about jobs, shortages and orders without any data leaving the plant.
AdvancedSelf-Hosted Odoo AI Assistant: Private Architecture With a Local Model
Self-hosted Odoo already exposes its data through an authenticated external API that enforces access rights and record rules, so a private assistant can call it as the signed-in user. Add a retrieval index over attachments and a local open-weight model, and nothing leaves your servers. Direct PostgreSQL access is for aggregates only, because it bypasses record rules.
AdvancedAI for abas ERP and proALPHA On-Prem: A Private, GDPR-Conscious Architecture
abas ERP and proALPHA are typically run on a company's own servers in the DACH region, so a private AI layer fits: read through each product's documented interfaces or a database reporting copy, index documents locally, and serve a German-capable open-weight model on your own GPU. Data does not need to leave your premises.
CIO briefingSYSPRO 7 to SYSPRO 8: What an IT Leader Should Plan Before Upgrading
A SYSPRO 7 to 8 upgrade is mostly a customisation, integration and report inventory exercise rather than a data migration problem. List everything that touches SYSPRO, test each item in a copy of production, plan the user interface change for operators, and agree rollback. Check with your SYSPRO partner and current support terms for your version before deciding the timing.
CIO briefingQAD vs Plex: Which Fits a Discrete Manufacturer?
Neither is universally better. Plex is a single cloud platform that combines ERP with MES, quality and shop floor control, which suits plants that want one system and are willing to adopt its standard processes. QAD is a configurable ERP strongest in multi-site, multi-country manufacturing, with a longer history on Progress and more deployment choices. Decide on your processes, footprint and integration needs, not on brand.
CIO briefingShould We Upgrade from IFS Applications 10 to IFS Cloud?
For most IFS Applications 10 customers the question is not whether to move to IFS Cloud but when and how, because vendor support and new functionality are concentrated in IFS Cloud. The real cost is rarely the platform itself; it is customisations, integrations, reports and the retirement of the desktop client, so scope those first.
CIO briefingCostpoint Cloud or On-Prem for a Contractor Handling CUI?
Neither choice makes you compliant by itself. The decision turns on whether Costpoint data in your environment is CUI, which authorization or assessment evidence the hosting provider can actually give you, how much of the control set you want to own, and what you plan to connect to the system, including AI. Decide based on scope and evidence, not on a general preference for cloud.
MES, PLM, QMS & shop floor
How to Send Production and Labor Reporting from MES to ERP
Treat the ERP work order as the system of record for cost and quantity, and the MES as the system of record for what physically happened. Send one confirmation message per operation (or per shift or lot) containing work order, operation sequence, good quantity, scrap quantity with reason, and labor start/stop per employee and work center, post it through the ERP's supported transaction API, and make the message idempotent so a retry never double-posts.
How-toHow to Calculate OEE from MES Data and ERP Standards
OEE equals Availability times Performance times Quality. Availability comes from MES run and stop events against planned production time, Performance compares actual output to the ideal cycle time (usually the routing standard from the ERP), and Quality is good units divided by total units. The numbers are only trustworthy if planned time, ideal cycle time and the good/scrap split are defined once and used consistently.
How-toHow to Design Scrap and Downtime Reason Codes for MES and ERP
Keep one governed list of reason codes with a small hierarchy, owned in a single system and synchronised to the other. Separate scrap reasons from downtime reasons, mark each downtime code planned or unplanned and each scrap code as process, material, design or operator related, and map codes to ERP accounts or cost categories where accounting needs them. Fewer, clearer codes beat long lists nobody uses correctly.
How-toHow to Sync an NCR From Your QMS to ERP Quarantine and MRB Disposition
The reliable pattern is two events: when the NCR opens, the ERP moves or flags the affected lot or serial into a non-nettable quarantine status; when the Material Review Board closes it, the disposition (use as is, rework, repair, scrap, return to vendor) triggers exactly one matching ERP transaction. The NCR number is the key that ties both sides together.
How-toHow to Link a CAPA to ERP Lots and Serial Numbers for Containment and Effectiveness
A CAPA is only as good as its containment scope, and the scope comes from ERP genealogy: forward trace from the suspect raw material lot or process to every job, serial and shipment that consumed it, and backward trace from the failed serial to its components. Store the CAPA number against those ERP records, then use ERP rejection and return data to verify effectiveness.
How-toHow to Populate AS9102 First Article Inspection Forms From ERP Data
Roughly half of an AS9102 package is data your ERP already holds: part number, revision, drawing, serial or lot, PO, raw material and special process records on Forms 1 and 2. Form 3 characteristics come from the ballooned drawing and the inspection results, not the ERP. The ERP's best contribution is deciding when an FAI is required and keeping the evidence linked.
How-toGauge Found Out of Tolerance: How to Find Affected Product Using ERP and Calibration Data
When a calibration finds a gauge out of tolerance, you must assess every product it measured since its last in-tolerance calibration. That is only possible if inspection records carry the gauge ID. Record the gauge on each inspection result, then query by gauge and date window to list lots, jobs and shipments, and raise NCRs for any that are doubtful.
How-toHow to Issue a Supplier Corrective Action Request (SCAR) Using ERP Receiving and Reject Data
Supplier quality starts with three ERP datasets: PO receipts (what arrived and when), receiving inspection results (what failed and why), and NCRs or vendor returns (what it cost). Join them by supplier and part to compute reject rate and on-time delivery, set thresholds that trigger a SCAR, and attach the evidence lots to the request so the supplier can investigate.
How-toHow to integrate Ignition with your ERP
Do not let Ignition write straight into ERP tables. Put a staging layer between them: Ignition writes production events to a staging table or calls an ERP API through a gateway script, and a controlled poster validates and posts them to the ERP. Pull work orders the other way with a scheduled gateway script or Named Query against a read-only view or API.
How-toHow to integrate Tulip with your ERP
Tulip talks to an ERP through Connectors: you define an HTTP or SQL connector with functions that your Apps call as triggers. Use Tulip Tables as a local cache of work orders and as an outbox of completions, and let an integration layer or the ERP's API do the actual posting. Keep ERP credentials in the connector, not in the App logic.
How-toHow to send a Windchill BOM to your ERP
Release the BOM from Windchill on an approved change, not on demand. Use PTC's Enterprise Systems Integration (ESI) for a managed release to SAP or Oracle-class ERPs, or build the feed on Windchill REST Services (OData) for other targets. Map part, structure, revision and effectivity explicitly, and make the ERP response visible back in Windchill.
How-toTeamcenter to SAP BOM transfer: why releases fail and how to fix them
Most failed Teamcenter to SAP transfers come from order and master data problems: the BOM was sent before its materials existed, a unit of measure or plant is missing, the SAP change number or status does not allow the update, or a mapping produced a value SAP rejects. Read the SAP-side message first (IDoc status, application log, BAPI return), then correct the Teamcenter data or the mapping.
How-toHow to replace paper travelers with a digital traveler
Treat the digital traveler as a view of the ERP work order and routing, plus a record of what was actually done. Pull released orders and operations from the ERP, add controlled instructions and required data captures per step, post completions back, and keep the signed record as an auditable artifact. Pilot on one cell before changing the whole plant.
AdvancedISA-95 and B2MML: How to Integrate ERP with MES
ISA-95 defines the boundary between business systems (Level 4, the ERP) and manufacturing operations (Level 3, the MES) and the information that crosses it. B2MML is the XML implementation of those models. In practice you exchange a ProductionSchedule from ERP to MES, and ProductionPerformance, plus material and equipment information, back, mapping each element to your ERP's work order and confirmation APIs.
AdvancedHow to Connect OPC UA Machine Data to Your ERP
Do not connect OPC UA servers straight to the ERP. Read machine tags through an edge gateway or MES, convert signals into business events (cycle complete, stop, state change, count), attach the work order context, and post summarised confirmations to the ERP through its supported API. The ERP wants quantities, times and reasons per order, not millions of raw tag values.
AdvancedHow to add a private AI layer to Infor Factory Track on-prem
Infor Factory Track captures shop floor and warehouse transactions by barcode and posts them to the connected ERP (commonly Infor M3 or SyteLine; confirm yours), keeping its working data in a SQL Server database. A private AI layer should read that database through a read-only secondary or copy, discover the schema from INFORMATION_SCHEMA rather than guessing names, join it to ERP data for context, and run an open-weight model locally. Corrections to transactions go through the supported application screens or ERP interfaces after approval.
AdvancedHow to Add a Private AI Layer to Rockwell FactoryTalk On-Prem
FactoryTalk is a family, so pick the read surface per product: Historian SE through its PI-based interfaces, View SE alarm and event logs through the SQL database, ProductionCentre through its documented interfaces, and VantagePoint where you already consolidate data. Put a read-only tool server in front, serve an open-weight model locally, and respect FactoryTalk Security.
AdvancedHow to Add AI to a Self-Hosted Ignition Gateway Without Cloud
Ignition writes history and alarms to a SQL database you own, so a read-only database account plus a few WebDev or Named Query endpoints give an AI tool server clean access. Index the tag tree and your plant documents, serve an open-weight model on local GPUs, and map Ignition roles and tag permissions into the tool layer.
AdvancedHow to Add AI to Siemens Opcenter Execution (MES) On-Prem
Opcenter Execution is a family with different data models, so start by identifying your variant (Foundation, Discrete or Process) and its supported service and reporting interfaces. Read through those, or through a reporting copy of the database, behind a read-only tool server. Serve an open-weight model on local GPUs and send any write-back through the MES's own transactions with approval.
AdvancedHow to add AI to GE Proficy (Historian and Plant Applications) on-prem
Keep Proficy where it is and put a read-only AI layer beside it. The assistant reaches Historian through its documented OLE DB provider or client SDK, reaches Plant Applications through its SQL Server database or a reporting copy, and runs an open-weight model on local GPUs. No tag data leaves the site, and every question and query is logged.
AdvancedHow to connect an on-prem AI assistant to Kepware and OPC UA servers
OPC UA gives you live values, not history, so the private AI layer needs a read-only OPC UA client with a node whitelist plus a time-series store for trends. Kepware can feed that store through its own logging or gateway agents. A local open-weight model calls approved tools and never writes to a device tag.
AdvancedHow to add a private AI layer to a custom MES on SQL Server
A custom MES has the advantage that you own the schema. Put a readable secondary or reporting copy beside it, expose approved views through a tool server, mirror your application roles with row-level security, and run an open-weight model on local GPUs. Write-back goes only through the MES application's own API with human approval.
AdvancedHow to use AI on SCADA alarm and event logs without leaving the site
Alarm and event logs are structured, high volume and sensitive, which makes them a good fit for a local AI layer. Export or replicate the journal to a reporting store, compute ISA-18.2 style KPIs with queries, and let a local model explain patterns and draft rationalization notes. The assistant is advisory and never acknowledges, shelves or changes alarms.
AdvancedHow to Add AI to ETQ Reliance or Another On-Prem QMS
A private AI layer for a QMS exposes NCR, CAPA, complaint, audit and controlled-document records to an assistant through the vendor's documented API or a read-only reporting copy, with attachments indexed locally. An open-weight model runs on your GPUs, QMS roles are carried into every call, and the assistant only drafts records for a quality professional to submit.
AdvancedHow to Use AI on Minitab and SPC Data Stored on File Shares
Do not let a language model calculate Cpk. Export or parse SPC data from file shares into a normalized table, compute capability and control limits in code, and give the model tools that return those numbers plus the source file. A local open-weight model then answers questions and summarizes trends, and NTFS permissions decide which files each user can touch.
AdvancedHow to Add AI to Kronos Workforce Central (On-Prem) Privately
Workforce Central holds some of the most sensitive data a plant owns: hours, pay codes, schedules and personal data. A private layer keeps it inside your network by reading from a replica or reporting copy, using the WFC integration interfaces for anything live, mirroring access profiles, and running an open-weight model on local GPUs. Pay calculation stays in Kronos.
CTO, IT & engineering managers
How to Run an ERP User Access Review (Quarterly Checklist)
An ERP user access review is a recurring control where system owners confirm that every active user, role and privileged permission is still justified. Extract users and roles from the ERP itself, join them to HR status, send each business owner a scoped list to certify or revoke, record the decisions, and execute the removals with ticket evidence.
How-toHow to Test ERP Backup and Disaster Recovery
A backup is only proven when you have restored it and a user has transacted in the restored system. Define RTO and RPO with the business, restore the full ERP stack (database, application, integrations, attachments, secrets) to an isolated environment, run a scripted smoke test, time every step, and record gaps as action items.
How-toERP Patching Cadence: How Often Should You Patch?
Patch the ERP stack in layers on different clocks: operating system and database monthly or quarterly, ERP vendor cumulative updates quarterly or semi-annually, and security fixes on an emergency path measured in days. Test every patch in a sandbox refreshed from production, with a scripted regression and a tested rollback.
How-toHow to Monitor ERP Performance: What to Track and Alert On
Monitor the ERP from the user's side first (response time of a few key transactions), then the layers beneath: database waits, blocking and long queries, application server health, batch and integration job duration, queues and storage. Baseline normal for each, alert on deviation, and keep history so you can answer slow-yesterday questions.
How-toHow to Run an Internal ERP Help Desk: Tiers, SLAs and Knowledge
An effective ERP help desk uses three tiers: business super users for how-do-I questions, an ERP support analyst tier for configuration, data and access issues, and technical or vendor escalation for defects and infrastructure. Categorise tickets by process and impact, set SLAs by business impact, and mine ticket data monthly to fix root causes and training gaps.
How-toHow to Sync the BOM Between PLM and ERP
Make PLM the system of record for the engineering BOM (EBOM) and ERP the system of record for the manufacturing BOM (MBOM), and push only released data from PLM to ERP on a change-release event. Never edit the same BOM structure in both systems, and treat every failed transfer as a visible work item, not a silent log line.
How-toECO and ECN Process Across PLM and ERP
An ECR requests a change, an ECO authorizes and defines it, and an ECN notifies the organization once it is released. PLM should run the workflow up to release, and ERP should receive the released result with an effectivity and a disposition for existing stock and open orders.
How-toHow to Create ERP Items from CAD Automatically
Generate the part number once, in one place (usually PDM or PLM), carry the attributes as CAD properties, and push a released item to the ERP item master through its import interface with validation. Retyping parts into ERP is the main source of duplicates, wrong units and missing make or buy codes.
How-toEngineering Change Impact on Open Orders
Before releasing an engineering change, run a where-used on each changed part, then list open work orders, purchase orders, stock, WIP and customer orders that reference it, and set a disposition (use up, rework, scrap, return, or cut over). Record the decision per quantity so planners act on it instead of guessing.
How-toManaging Item Revisions and Effectivity in ERP
A revision identifies a released state of a part or BOM; effectivity says when, or for which units, that revision applies. Use date effectivity for most changes, lot or serial effectivity when traceability matters, and keep revision letters controlled by PLM so ERP never invents its own.
How-toHow to Prepare for an ERP Licensing Audit
Start before the vendor letter arrives: build your own count of named users, concurrent sessions, modules and integrations, map each to the license metric in your contract, and fix the gaps. Most true-up findings come from dormant accounts, users holding roles above what they need, integrations and APIs counted as indirect use, and modules enabled but never bought.
How-toHow to Set Up SSO for Your ERP (SAML, OIDC, Entra ID, Okta)
Treat the ERP as a service provider and your identity platform (Entra ID, Okta, ADFS, Ping) as the identity provider. Exchange metadata, agree one stable claim that matches the ERP username, map roles by group, keep a local break-glass admin, and handle service accounts and thick clients separately because they usually cannot use browser SSO.
How-toHow to Automate ERP Regression Testing
Automate the stable, high-volume business flows at the API, batch and reporting layers first, and keep UI automation to a thin set of critical paths. Success depends less on the tool than on repeatable test data, a refreshable test environment and a clear owner for each test.
How-toERP Data Archiving Strategy: What to Archive and What to Purge
Find which tables drive database growth, set a retention rule per record type from legal and business needs, use the vendor's supported archive or purge routines where they exist, and prove you can still report on and restore the archived data before deleting anything from production.
CIO briefingERP Integration Architecture: API vs iPaaS vs ETL
Choose by what the data does, not by tool preference. Use the ERP's own API (or its native bus) for transactional writes that must be validated by ERP business logic, ETL or change data capture for bulk analytical reads, and an iPaaS when you have many endpoints, need monitoring and retries, and lack the staff to run your own middleware. Most real estates need two of the three.
CIO briefingData Platform for ERP Data: Replica, Warehouse or Lakehouse
Start with the smallest thing that removes reporting load from the ERP: a read replica or vendor replication feed. Add a warehouse or lakehouse when you must join ERP data with other sources, keep history, or serve many consumers. Put a governed semantic layer on top, because raw ERP tables are not a usable analytics or AI interface on their own.
CIO briefingEvent-Driven ERP Integration: Architecture That Holds Up
Use events when several systems must react to ERP changes quickly and you want to stop polling. Get events from the ERP's native mechanism where one exists, otherwise from change data capture, and design every consumer to be idempotent and tolerant of reordering. Keep the ERP as the system of record and treat events as notifications, not as the ledger.
CIO briefingHow to Securely Give an LLM Access to ERP Data
Treat the LLM as an untrusted component. Give it read-only access through a dedicated, least-privilege path that enforces the asking user's ERP permissions, validate and log every query it generates, require human approval for any write, and decide deliberately where the model runs. Security comes from the architecture around the model, not from the prompt.
CIO briefingBuild vs Buy for ERP Extensions: A CTO Decision Guide
Work down a ladder: configure the standard product, then buy a supported ISV add-on, then build outside the ERP core against its APIs, and only then modify in the core. Each step down raises upgrade risk and lifetime cost. Build only where the capability is a genuine differentiator or no product fits, and keep the code upgrade-safe and owned.
CIO briefingERP Cloud Migration: The Risks a CTO Should Score First
The biggest risks are not infrastructure. They are customisations that do not survive, integrations that assume the old network, data quality and volume, a cutover window the business cannot accept, licensing changes, and loss of control over upgrade timing. Score each, and decide between lift and shift, hosted private cloud or SaaS re-implementation on that evidence.
CIO & IT leadership
ERP RFP Template with AI Requirements
Add six AI requirement blocks to your ERP RFP: data access and grounding, security and roles, deployment and data residency, model governance, user experience and explainability, and commercial terms. Each block below has requirement wording you can paste and a way to mark it mandatory, weighted or informational.
How-toHow to Score ERP AI Vendors in an RFP
Score in two passes: pass/fail gates first (deployment, data residency, security, mandatory functionality), then weighted criteria on a defined 0 to 4 scale with evidence required for every score. Fix the weights before bids arrive, score independently, then reconcile, and keep price as a separate, calculated factor.
CIO briefingERP Upgrade or AI First? A CIO Decision Framework
In most cases, add a grounded AI layer on top of your current ERP first, because it proves value in weeks and shows exactly what an upgrade would need to fix. Reserve a full ERP replacement for cases where the platform itself is end of support, unsupported, or structurally blocking the business, not simply because it feels dated.
CIO briefingHow Much Does ERP AI Actually Cost?
A scoped pilot against one ERP module typically runs 15,000 to 50,000 USD; a single-department production deployment runs 50,000 to 150,000; a multi-module enterprise rollout runs 150,000 to 500,000 or more, plus ongoing hosting and usage costs. Native vendor copilots are usually priced per active user per month on top of existing licensing, not included free.
CIO briefingAdding AI to a Legacy ERP Without Replacing It
Yes, for most legacy ERPs still running in production. If the system exposes its data in any queryable form - ODBC, an API, a scheduled export, or even a read replica of the database - a grounded AI layer can sit alongside it, answering questions and automating workflows without touching core code, buying years of runway before a forced migration.
CIO briefingDoes Your ERP Vendor's AI Copilot Increase Lock-In?
Native vendor copilots such as SAP Joule, Oracle Fusion AI agents and Microsoft Copilot in Dynamics 365 are usually bundled or low-cost to start, but they only see that vendor's native data model and typically bill on consumption, which raises both switching cost and long-run cloud spend. Use them for what they do well inside the vendor's own UI, and keep cross-system or custom-field questions on a vendor-neutral layer.
CIO briefingIs Your ERP Data Ready for AI? A Readiness Checklist
Most ERP data is ready enough to start a scoped AI pilot immediately; full data-quality remediation is not a prerequisite. A handful of specific gaps - duplicate item or customer masters, inconsistent units of measure, missing descriptions, and orphaned records - will visibly degrade AI answers and are worth checking before the pilot, not after.
CIO briefingERP Selection in 2026: Where AI Actually Matters
Treat AI as one evaluation column among many, not the deciding factor: fit, data model, industry depth, and total cost of ownership still decide most ERP selections. Test AI claims live against your own data during the demo, not the vendor's canned dataset, and separate "embedded copilot" marketing from features that ship and work today.
CIO briefingCutting ERP Support Cost with AI: What Actually Moves the Needle
AI reduces ERP support cost mainly by deflecting the high-volume, low-complexity tickets: "how do I run X report," "why is this field locked," "what does this error mean." It does not remove the need for tier 2/3 staff who fix configuration, data, and integration problems, so budget the savings against ticket volume, not headcount, in the first year.
CIO briefingTwo-Tier ERP Plus AI: Closing the Reporting Gap Without Re-Platforming
AI does not remove the rationale for a two-tier ERP strategy (a heavy Tier 1 system like SAP or Oracle at corporate, a lighter Tier 2 system like NetSuite or Dynamics at subsidiaries), but a shared, grounded AI query layer across both tiers can close the cross-entity reporting gap that is the strategy's usual weak point, without a costly re-platforming project.
CIO briefingBuilding an ERP Modernization Roadmap That Includes AI
Sequence a modernization roadmap as data and integration cleanup first, a grounded AI query layer second (which can run on the current ERP, before any platform upgrade), and platform migration or upgrade third, timed on its own business case rather than forced early to enable AI. Trying to do all three simultaneously is the most common way modernization programs stall.
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.
CIO briefingERP AI Governance: Do You Need a Board and What Should It Do?
Yes, once more than one AI use case touches ERP data - even a lightweight, four-person committee that meets monthly beats no governance at all. Its job is narrow: approve which ERP data an AI tool can touch, set the review cadence for accuracy and access, and own the kill switch if something goes wrong. It should not be a bureaucratic gate that slows every pilot to a crawl.
CIO briefingMeasuring ERP AI ROI After Go-Live
Measure ROI with three metric families - time saved on named tasks, error or rework reduction, and adoption depth - tracked against a pre-go-live baseline you captured before the tool launched. Most CIOs skip the baseline and then cannot prove anything six months later, so capture it in week one even if the AI tool is not fully ready.
CIO briefingERP Data Sovereignty for AI: What CIOs Need to Check
Data sovereignty for ERP AI comes down to one question: does your ERP data, or any derivative of it (embeddings, cached responses, logs), ever leave the jurisdiction or infrastructure boundary you are required to keep it inside. Cloud-hosted, multi-tenant AI copilots from major ERP vendors often cannot answer that question precisely; on-premises or single-tenant deployments in your own cloud region can.
CIO briefingStaffing an ERP AI Team: What Roles You Actually Need
Most mid-market organizations do not need a dedicated ERP AI team at pilot stage - one ERP-literate technical owner working part-time with an implementation partner is enough. A dedicated team becomes worthwhile once you have more than two or three live AI use cases in production, at which point you need a named owner for prompt/data quality, one for integration and access, and a business-side owner for adoption.
CIO briefingERP AI Vendor Due Diligence: What CIOs Should Actually Check
The single highest-signal question in ERP AI vendor due diligence is 'show me it answering a real question against our actual ERP data, live, not a demo dataset.' Beyond that, focus diligence on data grounding method, security and access model, exit/portability terms, and references from customers on your specific ERP platform - not on feature checklists, which most vendors can match on paper.
CIO briefingSyteLine or CloudSuite Industrial: how to decide in 2026
Infor's roadmap has converged on CloudSuite Industrial (CSI), which is SyteLine's code line delivered as a multi-tenant cloud service on AWS with continuous updates; on-prem SyteLine still runs and is still supported on current versions, but new Infor OS, ION, and AI-adjacent capability lands in CSI first. The decision is not 'SyteLine is dying' so much as 'on-prem SyteLine is a slower lane on the same road.' CIOs should decide based on integration needs, customization depth, and whether IT wants to keep owning SQL Server and patching, not on vendor pressure alone.
CIO briefingNetSuite or Infor: which fits a growing manufacturer in 2026
NetSuite wins on financials, multi-entity consolidation, and speed of implementation, and is the stronger pick for a manufacturer that is asset-light, distribution-heavy, or scaling through acquisition. Infor's manufacturing lines (SyteLine/CSI, LN, M3) win on shop-floor depth: routings, APS scheduling, configure-to-order, and discrete/process manufacturing complexity that NetSuite's manufacturing module still handles more thinly. The right answer depends on where the operational complexity actually lives, not on brand preference.
CIO briefingOracle EBS 12.2: stay on-prem or move to Fusion in 2026
Oracle has committed to Premier Support for E-Business Suite 12.2 into the early 2030s, which is longer than many CIOs assume, so there is no forced 2027 cliff for EBS specifically (that date is commonly confused with SAP ECC's 2027 deadline). The real decision drivers for EBS customers are: how much the org depends on customizations that do not translate to Fusion's SaaS model, whether continuous quarterly Fusion updates fit the org's change-management capacity, and whether Fusion's standardized processes are an acceptable tradeoff for the customizations currently in EBS.
CIO briefingSAP ECC 2027: what mid-size manufacturers should actually do
SAP's mainstream maintenance for ECC 6.0 ends in 2027, with extended maintenance available at additional cost typically through around 2030 depending on the specific agreement. Mid-size manufacturers have three real options: migrate to S/4HANA (on-prem or cloud) before 2027, pay for extended maintenance to buy 2-3 more years, or move off SAP entirely. With limited internal SAP resourcing, most mid-size manufacturers should already be past discovery and into a scoped S/4HANA conversion plan by now, or actively budgeting for extended maintenance as a deliberate bridge, not a default.
CIO briefingERP AI: when to hire a partner versus build it in-house
Build in-house when you have or can hire engineers with real experience in retrieval-augmented generation, your ERP's specific API/data model, and production LLM deployment, and when the AI capability is a genuine long-term differentiator worth owning. Hire a partner when time-to-value matters, your team's strength is running the ERP rather than building AI infrastructure, or you want to validate the use case with a working pilot before committing to a multi-quarter internal build. Most mid-size manufacturers are better served starting with a partner-led pilot and deciding on in-house investment once the use case is proven.
CIO briefingHow to Write an RFP for ERP AI
Write the ERP AI RFP as two linked scopes: the ERP platform and the AI layer that reads or acts on its data. Define the business questions the AI must answer, where data may and may not travel, which ERP roles apply, and how you will test answers before you sign. Vague asks like 'must have AI' produce slideware, not comparable bids.
CIO briefingQuestions to Ask AI Vendors in an ERP RFP
Ask AI vendors how, not whether: how the assistant reaches ERP data, whose permissions it uses, where each model runs, how answers are tested, what it costs at volume and what you can take with you on exit. Below are the questions grouped by topic, with what a good and a worrying answer sounds like.
CIO briefingERP Selection RFP Timeline: How Long It Takes
A well-run ERP selection for a mid-size manufacturer usually takes about 4 to 8 months from kickoff to signed contract, and longer for multi-site or regulated companies. Adding an AI proof of value adds roughly 3 to 6 weeks if run in parallel with reference checks, and much more if left to the end.
CIO briefingHow to present ERP AI to the board: what to include and what to leave out
A board does not need a model tour. It needs one decision, a bounded first step, the risks and who owns them, a cost envelope, and the evidence you will bring back. Structure the session as decision, exposure, pilot, money, and proof, in about eight slides.
CIO briefingERP AI budget line items: what to put on the sheet before finance asks
Budget ERP AI in eight groups: infrastructure, software and model licences, integration, data preparation, security and compliance, people and change, run cost, and contingency plus exit. The costs that surprise teams are data cleanup, internal time and ongoing evaluation, not the model itself.
CIO briefingNegotiating AI add-ons with your ERP vendor at renewal
Treat the AI add-on as a separate decision from the renewal, and ask for four things in writing: unbundled pricing with consumption caps, no training on your data, full API and data access regardless of the AI SKU, and clean exit terms. Use a credible alternative as leverage, not as a threat.
CIO briefingERP AI change management: getting planners, buyers and supervisors to actually use it
Adoption follows trust and fit, not announcements. Start with one painful, repeated task for a small group of respected users, make answers checkable, state clearly what the tool will not do to jobs, and measure use weekly. Scale by word of mouth from named champions, not by mandate.
CIO briefingERP AI KPIs: which to track in the first 90 days and which to hold for later
Track three layers: adoption and quality as leading indicators (repeat use, answer accuracy on a fixed test set, time to answer), operational outcomes as lagging ones (report hours, expedite count, close days), and cost per active user. Fix baselines before launch, or you will not be able to prove anything.
Want answers from your own ERP data?
ERPray answers questions from your live ERP, grounded and permission-aware, on-prem if you need it.