KE30 Results Changed? Find Who Changed the Report (KE32) or the Form (KE35)
When a CO-PA drilldown report (KE30) suddenly shows different numbers, the first question is whether someone changed the report definition (KE32) or the form (KE35). This post shows two ways to find the creator and the last person who changed each object: from the GUI, and by reading the tables TKEB1 and TKES1 directly.
Note: screens, menus and settings can differ by SAP release and system configuration.
1. Report and form
A drilldown report is made of two objects. The columns (period, actual/cumulative and so on) and the rows (P&L lines) are defined in the form. The report takes a form and adds characteristics, variables and output options.
| Item | Detail |
|---|---|
| Report | KE31 create / KE32 change / KE33 display. Table TKEB1 |
| Form | KE34 create / KE35 change / KE36 display. Table TKES1 |
| When values changed | Column definitions (period variables, plan/actual flag, value-field formulas) live in the form, so check the form first |
| One form, many reports | Changing a form changes every report that uses it |
2. From the GUI
| Item | Detail |
|---|---|
| Report (KE32) | Select the report in the list, then press the information (ⓘ) icon in the toolbar. A popup shows created by, created on, last changed by, changed on and last executed on |
| Form (KE35) | Select the form in the list and press the same information (ⓘ) icon |
| Menu | The Extras menu does not have this entry. It opens only from the toolbar icon |
| Which form a report uses | KE32 → Extras → Report parameters (Shift+F6) shows the form name |
3. Table TKEB1 (report header)
Create and change information of a report is in TKEB1. The key is APPLCLASS = 'KE', SUBCLASS = operating concern, TABNAME = CE1 + operating concern, REPID = report name.
| Field | Meaning |
|---|---|
| REPID | Report name |
| FORM | Form used by the report |
| UNAME / GDATE | Created by / created on |
| MODNA / MODDA / MODTI | Last changed by / changed on / changed at |
| MODCN | Version number (increases with every save) |
| LASUB / CNSUB | Last executed on / number of executions |
4. Table TKES1 (form header)
Create and change information of a form is in TKES1. The key structure is the same as TKEB1, with FORM instead of REPID.
| Field | Meaning |
|---|---|
| FORM | Form name |
| FART | Form type |
| GDATE | Created on. There is no created-by field, and in practice GDATE is often 00000000 |
| MODNA / MODDA / MODTI | Last changed by / changed on / changed at |
| MODCN | Version number |
| INACT | Inactive flag |
5. SQL: reports changed recently
HANA SQL, run in the DB02 SQL editor. Replace the client, operating concern and date. USER_ADDR is joined to show the name next to the user ID. Use only /* */ comments: the DB02 editor removes line breaks before executing, so a -- comment swallows every condition that follows it.
SELECT r.REPID AS REPORT_ID,
r.FORM AS FORM_ID,
r.UNAME AS CREATED_BY, r.GDATE AS CREATED_ON,
r.MODNA AS CHANGED_BY, r.MODDA AS CHANGED_ON, r.MODTI AS CHANGED_AT,
r.MODCN AS VERSION,
r.LASUB AS LAST_RUN_ON, r.CNSUB AS RUN_COUNT,
u.NAME_TEXTC AS CHANGED_BY_NAME
FROM TKEB1 r
LEFT JOIN USER_ADDR u ON u.MANDT = r.MANDT AND u.BNAME = r.MODNA
WHERE r.MANDT = '100'
AND r.APPLCLASS = 'KE'
AND r.SUBCLASS = '1000' /* operating concern */
AND r.MODDA >= '20260801' /* changed on or after this date */
ORDER BY r.MODDA DESC, r.MODTI DESC;
To look at one report only, add r.REPID = 'report name'.
6. SQL: forms changed recently
SELECT f.FORM,
f.FART AS FORM_TYPE,
f.GDATE AS CREATED_ON,
f.MODNA AS CHANGED_BY, f.MODDA AS CHANGED_ON, f.MODTI AS CHANGED_AT,
f.MODCN AS VERSION,
u.NAME_TEXTC AS CHANGED_BY_NAME
FROM TKES1 f
LEFT JOIN USER_ADDR u ON u.MANDT = f.MANDT AND u.BNAME = f.MODNA
WHERE f.MANDT = '100'
AND f.APPLCLASS = 'KE'
AND f.SUBCLASS = '1000' /* operating concern */
AND f.MODDA >= '20260801'
ORDER BY f.MODDA DESC, f.MODTI DESC;
To find which reports use a form, read TKEB1 with FORM = 'form name'.
7. How to read the result
| Item | Detail |
|---|---|
| Last value, not history | MODNA/MODDA hold only the latest change. Earlier changes are not kept |
| If you need history | If the form or report was transported (KE3I), E071 gives the request number by object name |
| MODCN version | Number of saves. A big jump means the object was saved many times recently |
| Separating the cause | If the form did not change but the values did, look at the selection variables (period from/to) or at the data (unvalued lines before period close) |
Korean version of this post: blog.naver.com/jeonnow/224414544611
Comments
Post a Comment