CSYTAB
Prefix: CTcodesDivision-levelThe 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)
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.
MMonMITMAS) — 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 thanCONOalone (see the quirks guide).
Fields
8 fields · 5 key
8 fields.
| Key | Field | Alias | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Key | CTCONO | CONO | Company | numeric | ||
| Key | CTDIVI | DIVI | Division — blank rows hold the company-level defaults | alphanumeric | ||
| Key | CTSTCO | STCO | Constant naming the logical code table this row belongs to — the discriminator that splits CSYTAB into hundreds of code tables | alphanumeric | ||
| Key | CTSTKY | STKY | Code key — the value coded fields elsewhere match against | alphanumeric | ||
| Key | CTLNCD | LNCD | Language code — texts repeat per language; filter to one or names multiply | alphanumeric | ||
| CTTX40 | TX40 | Description (40 characters) — the text a decode join selects | alphanumeric | 40 | ||
| CTTX15 | TX15 | Short description (15 characters) | alphanumeric | 15 | ||
| CTPARM | PARM | Parameter string — some code tables pack extra attributes here, positionally | alphanumeric |
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.
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
- CRS100 — Salesperson maintenance — 'Salesperson. Open', where the sales representatives assigned to customers, quotations, and order lines are defined; one of the basic-data programs a company sets up before customer orders can be entered and invoicedPrimary sourceInteractive
- CRS175MI — Generic code-table API — GetGeneralCode reads CSYTAB code texts and parameters programmaticallyPrimary sourceAPI
More Foundation tables
- CFACILThe facility master — one row per facility (the costing/manufacturing level between division and warehouse), with its name and division; warehouses and orders reference it by FACI
- CMNDIVThe division master — one row per division within a company; the DIVI that financial and divisional tables carry resolves here