TJ02T table — System Status Texts
TJ02T stores language-dependent texts for SAP system-status codes used by general status management. It translates a technical status such as an internal Ixxxx code into short and long descriptions for a selected language. It should be joined by status code and language and never used as the status source itself; active status comes from tables such as JEST.
A consultant-focused reference for TJ02T covering its purpose, key fields, joins, safe query restrictions, proof steps, release context, ownership and recurring interpretation traps.
Published 20 Sept 2026· 855 words
What it stores
TJ02T stores language-dependent short and long descriptions for SAP internal system-status codes. Each row must be interpreted using the complete technical key and the application process that writes it. A consultant should first establish whether the row represents current state, a dated master-data slice, a document item, a history event, an index entry or a compatibility representation. Organizational levels, validity dates, fiscal years, ledgers, languages, statuses and sequence numbers are part of the grain whenever those dimensions exist. The table should be read as evidence of application behavior, not as an isolated spreadsheet. Confirm the owning business object and configuration before deciding that a value is wrong.
Key fields
These are the fields most useful for identification, scoping and investigation. Verify key flags and data elements in SE11 for the exact installed release before building permanent extraction logic.
- ISTAT — technical system-status code.
- SPRAS — language key.
- TXT04 — short status text where provided.
- TXT30 — longer status description where provided.
- JEST/JCDS — provide current status and status-change history; TJ02T only supplies text.
How it joins the data model
Use complete business keys, not field-name similarity. Include client and organizational dimensions on both sides, respect validity dates and language, and test cardinality before aggregating. A one-to-many child join can multiply financial or quantity totals without producing a database error.
- I
- S
- T
- A
- T
- t
- o
- J
- E
- S
- T
- -
- S
- T
- A
- T
- |
- I
- S
- T
- A
- T
- t
- o
- J
- C
- D
- S
- -
- S
- T
- A
- T
- |
- S
- P
- R
- A
- S
- t
- o
- T
- 0
- 0
- 2
- l
- a
- n
- g
- u
- a
- g
- e
- d
- e
- f
- i
- n
- i
- t
- i
- o
- n
- s
How to read it safely
Begin with one known business object and the narrowest possible selection. Include MANDT where the table is client-dependent and never assume a document, partner, asset, material or account number is globally unique. Add the relevant company code, controlling area, plant, sales area, fiscal year, ledger, language, validity interval, item and sequence fields. Check inactive, deletion, reversal and status indicators before counting a row as operational. For high-volume transaction or change-history tables, restrict by object key and date before joining. Confirm indexes and key flags in the target system because releases and activated components can alter structure and performance. Use supported transactions, apps or APIs for correction; direct database updates are unsafe and unsupported.
How to prove it in the data
Take one reproducible example from the relevant SAP screen, report or application log. Record its full displayed key, organizational context, key date, language and status. Locate the matching TJ02T row using those values, then follow the documented parent and child joins without dropping key components. Compare the result using the same key date and ledger. When values differ, test for leading-zero conversion, multiple validity slices, inactive history, parallel ledgers, fiscal-year boundaries, archived data and asynchronous replication. Save the read-only evidence before escalating. If the row is wrong, reproduce the maintenance path in a non-production system and route the fix to the application owner rather than changing the table.
ECC vs S/4HANA
TJ02T remains the standard system-status text table in S/4HANA. Technical status codes are stable keys while displayed text is language dependent, so reports should filter by language and use the technical status code for joins and logic.
Common pitfalls
- Selecting by one convenient identifier and silently mixing organizational units, years, ledgers, languages or validity periods.
- Joining on a partial key or descriptive value and creating duplicates that appear to be legitimate business rows.
- Ignoring inactive, deletion, reversal or status indicators and reporting retained history as current state.
- Assuming this table is authoritative without checking S/4HANA simplification, Business Partner synchronization, Universal Journal, MATDOC, CDS views or an external cloud source.
- Treating a missing row as proof that an event never occurred even though logging, replication, authorization and archiving scope can differ.
- Updating table rows directly instead of correcting data through the supported transaction, app, API or migration process.
Whose problem this is
The functional team owning the underlying business process owns interpretation and configuration. Master-data or operations teams own missing or incorrectly maintained records. ABAP, integration and data teams own extraction, conversion and join defects. Basis, security and database teams own authorization and performance issues. Ownership should be assigned only after the same business key has been reconciled across the application, this table and its related objects.
Related SAP objects
Reviewed pages this object connects to in the ERPClimb knowledge graph.
Source: ERPClimb — https://erpclimb.com/sap-tables/tj02tERPClimb is an independent platform and is not affiliated with SAP SE. Reference pages are written and reviewed by SAP consultants for learning and troubleshooting.