Skip to Content
Technical Articles
Author's profile photo Paul McFarling

BOPF Administrative Data in Transactional FIORI Elements Apps

I couldn’t find good documentation on how to use the administrative data that I’ve see in almost all FIORI Elements blogs etc..  so after digging through SAP code, I got it work,

First, add created on/changed on date, time and user to your table.

The domains should be dats, tims and char(12) for the user name.

I recommend putting them in a structure that you can just include in all your tables.


@EndUserText.label : 'Admin Data for BOPF'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
define structure zadmin_data {
  create_date : datum;
  create_time : tims;
  create_by   : username;
  change_date : datum;
  change_time : tims;
  change_by   : username;

Then, add it as an include in all your table definitions,

Next, annotate your transactional CDS View per below.

      @ObjectModel.readOnly: true
      @Semantics.systemDate.createdAt: true
      @ObjectModel.readOnly: true
      @Semantics.systemTime.createdAt: true
      @ObjectModel.readOnly: true
      @Semantics.user.createdBy: true
      @ObjectModel.readOnly: true
      @Semantics.systemDate.lastChangedAt: true
      @ObjectModel.readOnly: true
      @Semantics.systemTime.lastChangedAt: true
      @ObjectModel.readOnly: true
      @Semantics.user.lastChangedBy: true


That’s it.


Now for a little more about what’s going on.  The generated BOPF comes with a determination called ADMINISTRATIVE _DATA. It is implemented by class /BOBF/CL_LIB_D_ADMIN_DATA_AI.

that class reads the annotations and fills out the admin data.


Some other notes:

I could not get it work with the include I often see  “/bobf/s_lib_admin_data”

Annotating those fields with @Semantics.systemDate and @Semantics.systemTime or @Semantics.systemDateTime (Since the date/time is handled by 1 TIMESTAMPL field in the include) resulted in short dumps due to data type mismatches.

I also found class /bobf/cl_lib_d_admin_data_cds but I cannot figure out how to use it, or if I should. Since the ADMINISTRATIVE_DATA determination is hard wired to /BOBF/CL_LIB_D_ADMIN_DATA_AI I didn’t see a point as the annotations would just short dump in /BOBF/CL_LIB_D_ADMIN_DATA_AI anyway.


This was done on an S/4 1909 FPS01 system.

Assigned Tags

      You must be Logged on to comment or reply to a post.
      Author's profile photo Gunasekhar Reddy Nalla
      Gunasekhar Reddy Nalla

      Thank you Paul,  when used with right semantics - systemDateTime, it works with the “/bobf/s_lib_admin_data” also with out shortdumps. I am also on 1901 FP01.


      Author's profile photo Chun Aun Gooi
      Chun Aun Gooi

      Make sure your create/change datetime has data element TIMESTAMPL (length 21). If you are using TIMESTAMP (length 15), you will get the short dump.