Hello!
If you ever wanted to determine the transaction type (dialog, parameter tcode …) and status (locked …), you probably came across table TSTC (where tcodes are defined) and found that this information is encoded in the CINFO field — which contains an old-school hexadecimal value.
Meaning
So… what do those CINFO values mean? Here we go:
CINFO (hex) | Binary | Type | Locked ? | Auth. object check ? |
---|---|---|---|---|
0x00 | 0000 0000 | Dialog transaction | no | no |
0x04 | 0000 0100 | Dialog transaction | no | yes |
0x20 | 0010 0000 | Dialog transaction | yes | no |
0x24 | 0010 0100 | Dialog transaction | yes | yes |
0x01 | 0000 0001 | Area menu (obsolete) | no | - |
0x21 | 0010 0001 | Area menu (obsolete) | yes | - |
0x02 | 0000 0010 | Parameter / variant transaction | no | - |
0x22 | 0010 0010 | Parameter / variant transaction | yes | - |
0x08 | 0000 1000 | Object transaction | no | no |
0x0C | 0000 1100 | Object transaction | no | yes |
0x28 | 0010 1000 | Object transaction | yes | no |
0x2C | 0010 1100 | Object transaction | yes | yes |
0x80 | 1000 0000 | Report transaction | no | no |
0x84 | 1000 0100 | Report transaction | no | yes |
0xA0 | 1010 0000 | Report transaction | yes | no |
0xA4 | 1010 0100 | Report transaction | yes | yes |
0x90 | 1001 0000 | Report transaction with variant | no | no |
0x94 | 1001 0100 | Report transaction with variant | no | yes |
0xB0 | 1011 0000 | Report transaction with variant | yes | no |
0xB4 | 1011 0100 | Report transaction with variant | yes | yes |
0x05 (invalid) | 0000 0101 | Area menu (obsolete) | no | - |
0x06 (invalid) | 0000 0110 | Object transaction -or- Parameter transaction | no no | yes n/a |
0x44 (invalid) | 0100 0100 | Dialog transaction | no | yes |
(The CINFO values marked with “invalid” exist, but make no sense… probably because they’re relicts created by SAP a long time ago. 😯 )
Bitmasks
According to the above, these are the bitmasks (for use in your own programs):
Bitmask (hex) | Binary | Meaning |
---|---|---|
0x00 | 0000 0000 | Dialog transaction |
0x01 | 0000 0001 | Area menu |
0x02 | 0000 0010 | Parameter / variant transaction |
0x08 | 0000 1000 | Object transaction |
0x80 | 1000 0000 | Report transaction |
0x90 | 1001 0000 | Report transaction with variant |
0x04 | 0000 0100 | Flag: Authorization object check ? |
0x20 | 0010 0000 | Flag: Locked ? |
Example
To get started, either have a look at the report “RSAUDITC_BCE” or try this:
REPORT. TABLES: tstc. * -- Bitmasks DATA: c_auth TYPE x VALUE '04', c_lock TYPE x VALUE '20'. * -- Find all locked transactions SELECT * FROM tstc. CHECK tstc-cinfo O c_lock. WRITE: / tstc-tcode, 'is locked'. ENDSELECT. * -- Find customer transactions w/o authorization check SELECT * FROM tstc WHERE tcode LIKE 'Y%' OR tcode LIKE 'Z%'. CHECK NOT tstc-cinfo O c_auth. WRITE: / tstc-tcode, 'has no authorization check'. ENDSELECT. |
See you!
Thank you Daniel.
This info is really helpful. Where in SAP did you find these definitions?
Hi Sabrina.
I found some of the bitmasks in standard reports – this got me started.
Then I searched a huge system for all possible CINFO values and matched this against the ones I knew so far – this information confirmed (most of) the known values and exposed the values that I didn’t know yet.
Then I reproduced the known and unknown CINFO values, until the logic became obvious.
Finally, I tried to dig the faulty values (which is the most interesting part).
Best regards, Daniel