Infor LN Sales Order Tables Reference: tdsls400, tdsls401 and Related Tables
This reference lists the Infor LN 10.x tables behind the order-to-cash flow, with the fields a developer or report writer needs and the joins between them. It covers quotations, contracts, sales orders, actual deliveries, order history, sales invoices in cisli and the business partner role tables.
| Table code | Description | Physical name pattern | Key fields | Key fields to know | Join to | Main session | Notes |
|---|---|---|---|---|---|---|---|
tdsls100 | Sales quotations (header) | ttdsls100<company> | qono | qono quotation, ofbp sold-to BP, qdat quotation date, expd expiry date, qsta status, sotp order type, ccur order currency, opty opportunity | tdsls100.ofbp = tccom110.ofbp | tdsls1500m000 Sales Quotations Overview | Header of a quotation; lines are in tdsls101. |
tdsls101 | Sales quotation lines | ttdsls101<company> | qono, pono | item, qoor ordered quantity, cuqs sales unit, pric price, cups sales price unit, disc line discount, lsta line status, ddta planned delivery date, cwar warehouse | tdsls101.qono = tdsls100.qono; tdsls101.item = tcibd001.item | tdsls1501m000 Sales Quotation Lines | Line status lsta is separate from the header status qsta. |
tdsls300 | Sales contracts (header) | ttdsls300<company> | cono | cono contract, ofbp sold-to BP, icyp contract type, icap contract status, sdat effective date, edat expiry date, ccur currency, cpay payment terms, sotp order type | tdsls300.ofbp = tccom110.ofbp | tdsls3500m000 Sales Contracts | Lines with agreed quantities and prices are in tdsls301. |
tdsls301 | Sales contract lines | ttdsls301<company> | cono, pono | item, qoor agreed quantity, pric price, disc discount %, icap line status, qicl called quantity, qiiv invoiced quantity, sdat effective date, edat expiry date | tdsls301.cono = tdsls300.cono; tdsls401.cono and tdsls401.cpon point back to it | tdsls3501m000 Sales Contract Lines | Called and invoiced quantities show how much of the contract is used. |
tdsls400 | Sales orders (header) | ttdsls400<company> | orno | orno order, ofbp sold-to BP, stbp ship-to BP, itbp invoice-to BP, pfbp pay-by BP, sotp order type, odat order date, hdst header status, ccur currency, corn customer order, cofc sales office | tdsls400.ofbp = tccom110.ofbp; tdsls400.sotp = tdsls094.sotp | tdsls4100m000 Sales Orders | In SQL the columns carry a prefix: t_orno on SQL Server, t$orno on Oracle. |
tdsls401 | Sales order lines | ttdsls401<company> | orno, pono, sqnb | item, qoor ordered quantity, cuqs sales unit, pric price, oamt amount, ddta planned delivery date, qidl delivered quantity, invd invoice date, cwar warehouse, clyn canceled | tdsls401.orno = tdsls400.orno; tdsls401.item = tcibd001.item | tdsls4101m000 Sales Order Lines | sqnb 0 is the order line; planned delivery lines (tdsls4101m100) use higher sequence numbers. |
tdsls406 | Sales order actual delivery lines | ttdsls406<company> | orno, pono, sqnb, dsqn | dsqn actual delivery sequence, qidl delivered quantity, dldt actual delivery date, shpm shipment, shln shipment line, deln delivery note, invn invoice number, invd invoice date, qnvc invoice quantity, stat status | tdsls406.orno, pono, sqnb = tdsls401.orno, pono, sqnb; tdsls406.shpm = whinh430.shpm | tdsls4106m000 Sales Order Actual Delivery Lines | One row per confirmed delivery, so partial shipments create several rows per line. |
tdsls450 | Sales order history (header) | ttdsls450<company> | orno, trdt | trdt transaction date, ddtc customer requested delivery date, pcod delivery pattern | tdsls450.orno = tdsls400.orno | tdsls4550m000 Sales Order History | Written only when Log Order History (tdsls400.hiss) is set; confirm the full index in your data dictionary. |
tdsls451 | Sales order line history | ttdsls451<company> | orno, pono, trdt | trdt transaction date, ckor record type, stcd processed in statistics | tdsls451.orno, pono = tdsls401.orno, pono | tdsls4551m000 Sales Order Line History | Used for change audits and sales statistics after lines are archived or processed. |
tdsls094 | Sales order types | ttdsls094<company> | sotp | sotp order type, dsca description | tdsls400.sotp = tdsls094.sotp | Sales Order Types session in the tdsls module | The order type controls which activities a line passes through (see tdsls4534s000). |
tdsls4534s000 | Sales order line status (session, not a table) | n/a | orno, pono, sqnb | Shows the activities linked to a line, their status and whether each runs automatically | Reads tdsls400, tdsls401, tdsls406 | tdsls4534s000 Sales Order Line Status | The first activity with status Free is the next step to run. |
cisli305 | Invoices (sales invoice header) | tcisli305<company> | sfcp, tran, idoc | stat invoice status, idat invoice date, itbp invoice-to BP, ofbp sold-to BP, cslo sales order, cshp shipment, dudt due date, amti amount | cisli305.sfcp, tran, idoc = cisli310.sfcp, tran, idoc | cisli3105m000 Invoices | The invoice number is financial company + transaction type + document number. |
cisli310 | Invoice lines | tcisli310<company> | sfcp, tran, idoc, line | orno order number, pono order line, item, dqua delivered quantity, shpm shipment, amti net line amount, cvat tax code, ofbp sold-to BP | cisli310.orno = tdsls400.orno and cisli310.pono = tdsls401.pono when the source is a sales order | cisli3110m000 Invoice Lines | srtp (source type) tells you which document the line came from. |
tccom100 | Business partners | ttccom100<company> | bpid | bpid business partner, nama name, prst status, cadr address, clan language, prbp parent BP, ccur currency | tccom100.bpid = tccom110.ofbp | tccom4500m000 Business Partners | One BP can hold several roles; each role has its own table. |
tccom110 | Sold-to business partners | ttccom110<company> | ofbp | ofbp sold-to BP, bpst status, cadr address, crep internal sales rep, cofc sales office, creg area, chan channel | tdsls400.ofbp = tccom110.ofbp | tccom4510m000 Sold-to Business Partners | Default order data for the customer lives here, not in tccom100. |
tccom111 | Ship-to business partners | ttccom111<company> | stbp | stbp ship-to BP, cadr address, bpst status, cwar warehouse, cfrw carrier/LSP | tdsls400.stbp = tccom111.stbp | tccom4511m000 Ship-to Business Partners | Ship-to address can be overridden per order (tdsls400.stad) and per line (tdsls401.stad). |
tccom112 | Invoice-to business partners | ttccom112<company> | itbp | itbp invoice-to BP, itst status, ccur currency, cpay payment terms, crlr credit limit, cfcg financial customer group | tdsls400.itbp = tccom112.itbp; cisli305.itbp = tccom112.itbp | tccom4512m000 Invoice-to Business Partners | Credit limit and payment terms used at invoicing come from here. |
tccom114 | Pay-by business partners | ttccom114<company> | pfbp | pfbp pay-by BP, bpst status, ccur currency, mrem reminder method | tdsls400.pfbp = tccom114.pfbp | tccom4114s000 Pay-by Business Partner | Drives receivables collection, not the order itself. |
tccom130 | Addresses | ttccom130<company> | cadr | cadr address code, nama name, namc street, ccit city, pstc postal code, ccty country, cste state/province | tdsls400.stad = tccom130.cadr; tccom110.cadr = tccom130.cadr | tccom4530m000 Addresses | Order-level address fields (ofad, stad, itad, pfad) all point here. |
tcibd001 | Items - general | ttcibd001<company> | item | item, dsca description, kitm item type, citg item group, cuni inventory unit | tdsls401.item = tcibd001.item | tcibd0501m000 Items | Sales-specific item data is in tdisa001; see the item master reference. |
Physical tables are t + table code + company number, e.g. ttdsls400100 for company 100. Column names in SQL carry the t_ prefix on SQL Server and t$ on Oracle (t_orno, t$orno). Field names were checked against the LN 10.x online help field definitions for each session; customizations and Feature Packs can add columns, so check the data dictionary in your own VRC.
Need a tested order-to-cash query for your LN release?
Send us your LN version, database and the report you need, and we will check the joins and fields against your setup.
Optional. The tool and every export work without this. No spam.
How the sales tables chain together
A quotation (tdsls100/101) can become a sales order. The order header tdsls400 holds the four partner roles: sold-to ofbp, ship-to stbp, invoice-to itbp and pay-by pfbp. Lines live in tdsls401 keyed by orno, pono and sqnb, where sequence 0 is the order line and higher sequences are planned delivery lines. Each confirmed shipment writes a row in tdsls406 with its own actual delivery sequence dsqn, the shipment number and later the invoice number. Invoicing then creates cisli305 headers and cisli310 lines, and cisli310.orno and pono point back to the order line.
- Quote: tdsls100 header, tdsls101 lines
- Order: tdsls400 header, tdsls401 lines, tdsls406 actual deliveries
- Invoice: cisli305 header, cisli310 lines
- Partners: tccom110, tccom111, tccom112, tccom114 by role
Worked example: open order lines with delivered quantity
To list open lines for one customer on SQL Server, join ttdsls400100 h to ttdsls401100 l on l.t_orno = h.t_orno, filter h.t_ofbp on the customer code and l.t_sqnb = 0, and compare l.t_qoor with l.t_qidl. Add ttcibd001100 i on i.t_item = l.t_item for the description. On Oracle the same query uses t$orno, t$ofbp and so on. Enumerated fields such as hdst return numbers, not labels, so map them through the domain in the data dictionary rather than hard-coding text. Filter out canceled lines with clyn as well.
Gotchas that break reports
Item codes are padded: the project segment comes first, so a standard item has leading spaces in tcibd001.item and every item column that references it. Trim or pad consistently in joins to external systems. Delivered quantity exists on both tdsls401 (cumulative) and tdsls406 (per delivery); summing tdsls406 per line and also adding tdsls401 double counts. Order history in tdsls450 and tdsls451 only exists when history logging is switched on for the order. Amounts in tdsls401 are in order currency, while invoice lines carry both transaction and home-currency amounts.
How to check a field in your own system
Open the session, place the cursor on the field and use the field help: LN shows the table and field name behind it. For the full column list, check the table definition in the data dictionary for your package VRC. Fields added by Infor Feature Packs or by your own customizations will not appear in any public list, so treat this page as the standard core and verify extras locally. Physical names follow one rule: t, the table code and the three-digit company number, so the same table in company 200 is ttdsls400200. Keep a list of the companies you report on and build the table names from it rather than hard-coding one company.
Frequently Asked Questions
What is tdsls400 in Infor LN?
tdsls400 is the Sales Orders header table, maintained in session tdsls4100m000. It is keyed by orno and holds the sold-to, ship-to, invoice-to and pay-by business partners, the order type sotp, order date odat, currency ccur and the header status hdst. Order lines are in tdsls401.
Where are sales deliveries stored in Infor LN?
Actual deliveries are in tdsls406, Sales Order Actual Delivery Lines (session tdsls4106m000). Each row is one confirmed delivery for a line, with the delivered quantity qidl, actual delivery date dldt, shipment shpm and, once invoiced, the invoice number and date. The warehouse side of the shipment is in whinh430 and whinh431.
Which tables hold Infor LN sales invoices?
Sales invoices are in the Invoicing package: cisli305 for the invoice header (session cisli3105m000) and cisli310 for the lines (session cisli3110m000). Both are keyed by the financial company sfcp, transaction type tran and document number idoc; lines add a line number. cisli310 carries orno and pono back to the sales order.
Why does my SQL say the column orno does not exist?
LN prefixes every column in the database. On SQL Server the column is t_orno, on Oracle it is t$orno, and the physical table name is t + table code + company, such as ttdsls400100. Queries written with the logical names only work inside LN tools such as the query or report engine.
If your team wants to ask LN about orders, shipments and invoices in plain English on your own servers, we can set up a read-only AI layer over these tables.
Related Tools
Infor LN Item Master Tables Reference (tcibd001, tdisa001, tdipu001)
Find which LN 10.x table and session holds each item attribute: general, sales, purchase, item by business partner, ordering, warehousing and production.
Infor LN & BaanInfor LN Warehousing Tables Reference (whinh, whwmd, whinr)
Table-by-table map of LN 10.x Warehousing: masters, warehouse orders, receipts, outbound advice, shipments, cycle counts, adjustments and inventory transactions.
Infor LN & BaanInfor LN Common Data (tcmcs) General Tables Reference
The tcmcs general tables that almost every LN session references, with key field, maintenance session, typical referencing tables and table sharing guidance.
Infor LN & BaanInfor LN and Baan ERP Table List by Package
Filterable list of commonly used Infor LN and Baan tables by package, with the naming convention, key fields and where a Baan IV table differs from LN.
Infor LN & BaanInfor LN SQL Query Generator
Fill in the table, company number and key range to get read-only SQL for the LN database, with the physical table name built for you.
More Infor LN & Baan tools
See all- Infor LN Session and Module Code Reference
- Infor LN Production Order Status and Lifecycle Reference
- Infor LN 4GL Session Script Template
- Infor LN Company and Enterprise Unit Design Worksheet
- Infor LN DAL Hook Review Checklist
- Infor LN Warehousing Order Origins and Types Reference
- Infor LN Table Name and SQL Query Builder
- Infor LN Regression Test Effort Calculator
- Infor LN and Baan Customization Inventory Worksheet
Keep exploring
Free tools
- Infor LN Production Tables Reference (tisfc001, tibom010, tirou102)Field-level map of the LN 10.x tables behind production orders, operations, estimated and actual material and hours, BOMs, routings, work centers and machines.
- Infor LN Item Master Tables Reference (tcibd001, tdisa001, tdipu001)Find which LN 10.x table and session holds each item attribute: general, sales, purchase, item by business partner, ordering, warehousing and production.
- Infor LN Database Growth by Table CalculatorEstimate how fast the main LN 10.x transaction tables grow from your order volumes, and how many GB you need after N years.
ERP fixes and how-tos
- Baan Open Order Report: Sales and Purchase Sessions, Filters and TablesHow to get a Baan open order report for sales and purchase orders: which sessions to use, how to filter open lines, and which tables to query or export.
- Private AI Layer for Infor LN On-Prem: Reference ArchitectureReference architecture to add a private AI assistant to Infor LN on-prem: data access paths, retrieval, permissions, sizing and rollout, no cloud needed.
- How to process a sales order to invoice in Infor LNWalk the full Infor LN order-to-cash flow: create the sales order, release it to warehousing, confirm the shipment, then compose and post the sales invoice.
Runs with your ERP
- Vertex with Infor LN: sales and use tax and VAT calculationHow Vertex indirect tax software works with Infor LN, SyteLine, M3 and other Infor ERPs for sales and use tax and VAT, with setup steps, pitfalls and AI use.
- Avalara AvaTax with Infor LN and Other Infor ERPsAvalara AvaTax connectors for Infor products: real-time sales tax on invoice lines, exemption certificates and filing. What is known for LN and what to verify.
- Affinda and Infor LN: AI document capture for invoices and ordersHow Affinda AI document extraction fits Infor LN invoice and order capture, what data flows, what breaks, and where a private on-prem AI layer helps.
Guides
- Infor LN Authorization Model: Deep Dive Configuration GuideConfigure Infor LN authorization with role-based access, company-level security, field-level permissions, and audit logging for BAAN/LN enterprise security.
- Extending Standard Infor LN Tables: Developer GuideExtend standard Infor LN tables safely with custom fields, triggers, and validation logic. Avoid upgrade conflicts with proven extension patterns for BAAN/LN.
- Sales Order Automation for Manufacturers: From Emailed PO to ERP in MinutesSales order automation for manufacturers: AI reads emailed POs, validates pricing and parts, and enters clean orders into SyteLine, LN, or M3 in minutes.
AI on your ERP
- AI for Infor LN Purchasing: Faster Exception Handling on Orders, Schedules and SuppliersAI for Infor LN purchasing: triage late orders and schedules, answer supplier performance questions, and draft POs with buyer approval. On-prem option.
- AI for Infor LN: Sessions, BODs, and Engineer-to-Order WorkAdd grounded AI to Infor LN 10.x or CloudSuite: natural-language answers over sessions and BODs, agents for project and engineer-to-order work, on-prem options.
Integrations
- How to automate email into Infor LNAutomate inbound purchase orders, RFQs, invoices and supplier confirmations from shared mailboxes into Infor LN with ION, review queues and safe write-back.
- How to add AI agents to Infor LNHow to add AI agents to Infor LN: a tool layer over ION API and BODs, read-only reporting first, approval before writes, and fully on-prem model hosting.