T001 — Company Codes¶
The central FI organisational unit configuration table; one row per company code defined in the system.
Purpose¶
T001 defines every company code (Buchungskreis) in the SAP system. A company code is the smallest organisational unit for which a complete, self-contained set of accounts can be drawn up. Nearly every FI table uses BUKRS as a key field, and all of them resolve back to a row in T001. This is a Customising (configuration) table — changes require a transport request.
Key fields¶
| Field | Type | Description |
|---|---|---|
| MANDT | CLNT(3) | Client |
| BUKRS | CHAR(4) | Company code (4-character alphanumeric key) |
| BUTXT | CHAR(25) | Company name |
| ORT01 | CHAR(25) | City |
| LAND1 | CHAR(3) | Country key (ISO-like, e.g. DE GB US) |
| WAERS | CUKY(5) | Local (company code) currency |
| SPRAS | LANG(1) | Language key |
| KTOPL | CHAR(4) | Chart of accounts assigned to this company code |
| PERIV | CHAR(2) | Fiscal year variant (e.g. K4=calendar year V3=Apr–Mar) |
| RCOMP | CHAR(6) | Company for group consolidation (links to table TGSB) |
Common queries¶
List all company codes with name and currency
SELECT bukrs, butxt, waers, land1, ktopl, periv
INTO TABLE @DATA(lt_company_codes)
FROM t001
WHERE mandt = @sy-mandt
ORDER BY bukrs.
Get currency and country for a specific company code
SELECT SINGLE bukrs, butxt, waers, land1, periv
INTO @DATA(ls_cc)
FROM t001
WHERE mandt = @sy-mandt
AND bukrs = @lv_bukrs.
Find all company codes operating in a given country
SELECT bukrs, butxt, waers, spras
INTO TABLE @DATA(lt_by_country)
FROM t001
WHERE mandt = @sy-mandt
AND land1 = @lv_country.
Joins¶
| Join target | Key fields | Purpose |
|---|---|---|
| T001W | MANDT + BUKRS |
Plants assigned to a company code |
| LFA1 | (via purchasing org assignment) | Vendor master — use T001 to resolve BUKRS on LFB1 |
| BKPF | MANDT + BUKRS |
All accounting documents for the company code |
| SKA1 | MANDT + KTOPL |
GL accounts defined in the chart of accounts |
" Company codes and their assigned plants
SELECT c~bukrs, c~butxt, c~waers,
p~werks, p~name1 AS plant_name
INTO TABLE @DATA(lt_cc_plants)
FROM t001 AS c
INNER JOIN t001w AS p ON p~mandt = c~mandt
AND p~bukrs = c~bukrs
WHERE c~mandt = @sy-mandt
ORDER BY c~bukrs, p~werks.
Pitfalls¶
T001 is a configuration table — handle with care
T001 rows are created and changed via transaction OX02 and always require a transport. Never INSERT, UPDATE, or DELETE rows in T001 from custom ABAP code. Use the table read-only.
Company code is not the same as company (RCOMP)
BUKRS is the legal and accounting entity used for day-to-day postings. RCOMP is the consolidation grouping used for group reporting. One RCOMP can cover several BUKRS values. Do not confuse the two when building consolidation or intercompany reports.
Currency in T001 drives FI document currency translation
WAERS determines the local currency for all amounts stored in DMBTR within BSEG. If you join T001 to BSEG to add currency information, be aware that BSEG also has WAERS for the document currency (WRBTR), which may differ.
See also¶
bkpf-bseg.md— FI accounting documents keyed on BUKRSmara.md— Material master (plant assignment links back to T001 via T001W)