SAP Business One Document Object Type Codes (ObjType)
Almost every cross-document query in SAP Business One filters on an ObjType number: the base document of a row, the type of a journal source, or the object a UDO links to. This list maps the numbers to the document, its tables and the DI API enum.
| ObjType | Object | Header table | Row table | DI API enum |
|---|---|---|---|---|
1 | Chart of accounts | OACT | - | oChartOfAccounts |
2 | Business partner | OCRD | CRD1 | oBusinessPartners |
4 | Item master | OITM | - | oItems |
13 | A/R invoice | OINV | INV1 | oInvoices |
14 | A/R credit memo | ORIN | RIN1 | oCreditNotes |
15 | Delivery | ODLN | DLN1 | oDeliveryNotes |
16 | Returns | ORDN | RDN1 | oReturns |
17 | Sales order | ORDR | RDR1 | oOrders |
18 | A/P invoice | OPCH | PCH1 | oPurchaseInvoices |
19 | A/P credit memo | ORPC | RPC1 | oPurchaseCreditNotes |
20 | Goods receipt PO | OPDN | PDN1 | oPurchaseDeliveryNotes |
21 | Goods return | ORPD | RPD1 | oPurchaseReturns |
22 | Purchase order | OPOR | POR1 | oPurchaseOrders |
23 | Sales quotation | OQUT | QUT1 | oQuotations |
24 | Incoming payment | ORCT | RCT2 | oIncomingPayments |
30 | Journal entry | OJDT | JDT1 | oJournalEntries |
46 | Outgoing payment | OVPM | VPM2 | oVendorPayments |
59 | Goods receipt (inventory) | OIGN | IGN1 | oInventoryGenEntry |
60 | Goods issue (inventory) | OIGE | IGE1 | oInventoryGenExit |
66 | Bill of materials | OITT | ITT1 | oProductTrees |
67 | Inventory transfer | OWTR | WTR1 | oStockTransfer |
202 | Production order | OWOR | WOR1 | oProductionOrders |
203 | A/R down payment invoice | ODPI | DPI1 | oDownPayments |
204 | A/P down payment invoice | ODPO | DPO1 | oPurchaseDownPayments |
540000006 | Purchase quotation | OPQT | PQT1 | oPurchaseQuotations |
1250000001 | Inventory transfer request | OWTQ | WTQ1 | oInventoryTransferRequest |
1470000113 | Purchase request | OPRQ | PRQ1 | oPurchaseRequest |
Codes are the standard ObjType values. DI API enum names are given for BoObjectTypes; verify against the SDK help of your exact version before building on them.
Document-flow reporting for Business One
Optional: a short call about tracing order to cash and plan to produce in B1.
Optional. The tool and every export work without this. No spam.
Where ObjType appears
Rows carry BaseType and BaseEntry, which point to the document they were copied from. A delivery row with BaseType 17 and a BaseEntry equals the sales order DocEntry. Journal entries carry TransType and BaseRef, so you can walk from a posting to its source. Approval templates, alerts and Query Manager formatted searches also use these numbers.
- BaseType and BaseEntry give document flow
- TransType in OJDT shows the source document type
- BoObjectTypes enums wrap the same codes in the SDK
- UDO registration uses object codes of its own
Tracing a sales chain
To trace a sales order forward, select delivery rows where BaseType is 17 and BaseEntry is the order DocEntry, then invoice rows where BaseType is 15 and BaseEntry is the delivery DocEntry. Reverse the direction for purchasing with 22 and 20. For production, a production order is 202, and its issue and receipt documents (60 and 59) reference it through BaseType 202.
Mistakes to avoid
Do not confuse 59 and 20: 59 is an inventory goods receipt without a purchase order, 20 is a goods receipt PO. Do not assume DocNum equals DocEntry when you filter by base entry. And remember that document types added in later versions may have codes not in this list, so check the SDK help for yours.
Frequently Asked Questions
What is the difference between BaseType and ObjType?
ObjType is the type of the document the row belongs to. BaseType is the type of the document the row was copied from, such as a delivery row copied from a sales order. Together with BaseEntry they form the document-flow link.
Is 202 the production order in every version?
Yes, the production order object type is 202 in the standard schema. Always confirm any code against the SDK help of your version, since newer releases add objects.
How do I find the source of a journal entry?
Check TransType and BaseRef in OJDT. TransType holds the ObjType of the source document and BaseRef holds its number, so a TransType of 13 points to an A/R invoice.
Do user-defined objects have ObjType codes?
User-defined objects are registered with their own code string, and user tables are prefixed with an at sign. They do not take the numeric codes of standard documents.
Need a document-flow report or a trace across orders, deliveries and invoices built for your Business One setup? Netray can help automate it read-only.
Related Tools
SAP Business One Database Tables Reference
Searchable lookup of the core SAP Business One tables, with the matching row table and what each one stores.
Developer ToolsSAP Business One DI API Sales Order Code Generator (C#)
Fill in connection and order details to get a C# DI API skeleton that connects, adds a sales order and reports errors.
Developer ToolsSAP Business One Service Layer Request Builder
Fill in host, company and item details and get ready-to-paste Service Layer requests for login, item query, sales order and production order.
SAPSAP Business One Production Component Shortage SQL Generator
Pick a status, due date and warehouse and get a query that shows components short against on-hand stock for open production orders.
More SAP tools
See all- SAP B1 User Permission Matrix Worksheet
- SAP B1 Period End Close Checklist
- SAP B1 Approval Procedure Template
- SAP B1 Business Partner Master Data Request Form
- SAP Business One User Acceptance Test Script Template
- SAP Business One Data Migration Mapping Worksheet
- SAP Business One User-Defined Fields and Tables Register
- SAP Business One User-Defined Field Planning Worksheet
- SAP Movement Types Reference