Skip to content
M3 Reference

CSYTAB

Prefix: CTcodesDivision-level

The generic system code table — hundreds of logical code tables share this one physical table, separated by the STCO constant; a code field elsewhere decodes here by matching its value against STKY under the right STCO (M3's analog of JDE's UDC table)

Module: FoundationCompany-partitioned (CONO)
Notes

Language-dependent texts repeat per LNCD language code — filter to one language or names multiply. Division-level overrides repeat per DIVI; blank DIVI rows are the company-level defaults.

What the badges mean
Prefix: MM
Prefix: the table’s 2-character physical-column prefix (e.g. MM on MITMAS) — every field alias on the table carries it. Join by matching aliases across tables, not full column names (see the quirks guide).
master
Data class: what the table holds — master data, balances, transaction documents, code/reference tables, or history.
Shared across companies
The table carries no CONO — rows aren’t partitioned per company (see the quirks guide).
Division-level
The table carries DIVI — rows are scoped below company to a division, one layer more granular than CONO alone (see the quirks guide).
In field listings, K marks a primary-key field.

Fields

8 fields · 5 key

8 fields.

Table fields: key flag, field name, column alias, description, data type, length, and decode flags. 8 fields.
KeyFieldAliasDescriptionTypeLengthFlags
KeyCTCONOCONOCompanynumeric
KeyCTDIVIDIVIDivision — blank rows hold the company-level defaultsalphanumeric
KeyCTSTCOSTCOConstant naming the logical code table this row belongs to — the discriminator that splits CSYTAB into hundreds of code tablesalphanumeric
KeyCTSTKYSTKYCode key — the value coded fields elsewhere match againstalphanumeric
KeyCTLNCDLNCDLanguage code — texts repeat per language; filter to one or names multiplyalphanumeric
CTTX40TX40Description (40 characters) — the text a decode join selectsalphanumeric40
CTTX15TX15Short description (15 characters)alphanumeric15
CTPARMPARMParameter string — some code tables pack extra attributes here, positionallyalphanumeric

Field provenance: hand-curated.

Boilerplate SQL

Starting point for reading CSYTAB on Databricks — numeric YYYYMMDD dates are wrapped to NULL, verified status ladders are decoded, and the CONO anchor is in place. Set your Unity Catalog location, company, and filter values below; they’re substituted into the SQL and the copy button.

Query parameters

6 parameters not filled: <catalog>, <schema>, <company>, <DIVI>, <STCO>, <STKY>

-- ============================================================
-- Table  : CSYTAB — The generic system code table — hundreds of logical code tables share this one physical table, separated by the STCO constant; a code field elsewhere decodes here by matching its value against STKY under the right STCO (M3's analog of JDE's UDC table)
-- Purpose: Column-selected read of CSYTAB — auto-generated from field metadata
-- Grain  : One row per company (CONO) + CTDIVI + CTSTCO + CTSTKY + CTLNCD
-- Notes  : Auto-generated skeleton for a prefixed physical M3 schema or a landing schema normalized to the prefixed names in this catalog. Raw Data Lake property names vary with the published object: map them through Data Catalog before running this SQL. Dates are numeric YYYYMMDD (0 = none, mapped to NULL); all curated status values are decoded inline. Audit columns (RGDT/RGTM/LMDT/CHNO/CHID) omitted — see the quirks guide.
-- ============================================================
SELECT
  ct.CTCONO AS "Company",
  ct.CTDIVI AS "Division — blank rows hold the company-level defaults",
  ct.CTSTCO AS "Constant naming the logical code table this row belongs to — the discriminator that splits CSYTAB into hundreds of code tables",
  ct.CTSTKY AS "Code key — the value coded fields elsewhere match against",
  ct.CTLNCD AS "Language code — texts repeat per language; filter to one or names multiply",
  ct.CTTX40 AS "Description (40 characters) — the text a decode join selects",
  ct.CTTX15 AS "Short description (15 characters)",
  ct.CTPARM AS "Parameter string — some code tables pack extra attributes here, positionally"
FROM <catalog>.<schema>.CSYTAB ct
WHERE
  ct.CTCONO = <company>
  -- AND ct.CTDIVI = '<DIVI>'
  -- AND ct.CTSTCO = '<STCO>'
  -- AND ct.CTSTKY = '<STKY>'
ORDER BY ct.CTSTCO;

Verified September 2026

Relationships

Diagram of 1-hop neighbors — join details below. CSYTAB decode edges are highlighted; they’re the joins newcomers most often get wrong.

Programs That Use This Table

More Foundation tables

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by Infor. Infor, Infor M3, and Infor CloudSuite are trademarks of Infor and/or its affiliates.