NextTables Knowledge Base

Table Maintenance BAdI - Meta Method Explained

Written by Sebastian Uhlig | Nov 21, 2019 10:20:00 AM

In this article you will learn everything about the META method of the table maintenance BAdI. You will get an understanding of different types of fields and receive an overview of all parameters. At the end of the article you can find a sample implementation you can use for your own project.

Our Table Maintenance BAdI blog series in overview

  1. Table Maintenance - How to Implement a BAdI (general overview)
  2. Table Maintenance BAdI - Meta Method Explained
  3. Table Maintenance BAdI - Data Method Explained
  4. Table Maintenance BAdI - Update Method Explained
  5. Table Maintenance BAdI - Error Handling Explained

Using the logic inside the META method, you can control properties of table as a whole as well as the respective single fields. You can use this method to overwrite settings set in front end. Moreover, you can change editability and visibility of certain fields. Furthermore, you can change the search behaviour from dropdown to search and vice versa. Finally, you can utilize this method to execute authorization check on table level.

This exit is implemented via interface /NLY/IF_BADI_EDITOR, method SET_META_EXIT.

There are different types of fields, which are explained below.

Key fields

Generally, key fields should not be changed in edit mode, as this would result in new entries. Therefore, in case of an update event, key fields should always be locked and not editable.

In any other scenario the following three cases are possible: 

  • 1 – locked            (the field is locked) 
  • 2 – editable - required     (the field is required and null is not allowed) 
  • 3 – editable - not required     (the field is not required and null is allowed)

In the table below you can find an overview.

Key Field

Insert

Update

true (X)

key field 

1

locked

1

locked (key fields are not editable)

2

editable (required)

3

editable (not required)

false ( )

non-key field

1

locked 

1

locked 

2

editable (required)

2

editable (required)

3

editable (not required)

3

editable (not required)

 

Required fields

Per default, key fields are configured as required and non-key fields as not required. But both settings can be changed.

A non-key field can be set as required or mandatory for input. For example, if business users want the customer category attribute to be always filled, you can set this field to required, even if it is not a key field.

The other way around, it is also possible to define a key field as not required, therefore not mandatory for input. This could be the case if your semantic key consists of multiple fields and you allow initial values (null) for one of them.

Non-editable fields

You can set fields to be not editable, so the user cannot change the values of the field on edit or insert actions. The best example are fields like "Changed by" or "Changed on", which will be populated automatically before the database update, but should not be manually changed by the user.

Overview of all parameters

In the tables below you can find an overview of all parameters and possible values.

Table parameters

Property

Type

Description

Possible Values

TBLLEN

CHAR 30

Table length

NextLytics internal use only

TECHNAME

CHAR 30

Technical name of the table (e.g. /BIC/AZOMACOST2)

 

TABNAME

CHAR 30

Table name (e.g. ZOMACOST)

 

DESCR

CHAR 30

Table description

 

EDITABLE

CHAR 1

Table edit setting

1    Editable

2    Insertable

3    Editable and Insertable

4    Deletable

5    Deletable and Editable

6    Deletable and Insertable

7    Deletable, Editable and Insertable

IS_INLINE

CHAR 1

Enable Inline Editing

1 Yes

2 No

IS_LOC_FILTER

CHAR 1

Enable Local Filter

1 Yes

2 No

IS_PRE_FILTER

CHAR 1

Enable Global Filter

1 Yes

2 No

IS_DELETE_ALL

CHAR 1

Delete ADSO Content

1 Delete Action available    

SUPPRESS_EXPORT

CHAR 1

Suppress Export

X Suppress Export

JSFUNCTIONS

STRING

JavaScript Functions

NextLytics internal use only

BUTTONS

 

Table

Custom Buttons Settings.

See next table for more details

 

F1HELP

STRING

F1 Help

NextLytics internal use only

CHECK_AUTH_INFOPROV

CHAR 1

Check analysis authorization for InfoProvider

1 Yes


ACTIVATION

CHAR 1

Activation

1 - activate at once (default value)

2 - no activation 

If no entry is maintained, automatic activation takes place.

ALIAS_TTYPE

CHAR 10

Alias Table Type

 

ALIAS_TABNAME

CHAR 10

Alias Table Name

 

CONTENT_ADMIN

CHAR 1

 

Content Admin ('X'=yes, ' '=no

CONFIG_ADMIN

CHAR 1

 

Configuration Admin

('X'=yes, ' '=no)

TABTYPE

CHAR 10

 

Table Type

TABDESC

STRING

 

Description

MAX_ROWS

NUMC

Changes the max. rows shown in a table.

Normally this setting is set to 1000 and can be changed in the configuration. If the table type is custom, it makes sense to configure MAX_ROWS and C_TOTAL_ROWS via coding. 

 

Field parameters

Property

Type

Description

Possible Values

FNAME

CHAR 30

Field name

 

LEN

NUMC 6

Length (No. of Characters)

 

INTLEN

NUMC 6

Internal Length (No. of Characters)

 

TYPE

CHAR 1

ABAP Data Type

C    Character String

D    Date (Date: YYYYMMDD)

T    Time (Time: HHMMSS)

P    Packed number

g    Character string with variable length (ABAP type STRING)

G    Long text (XXL)

Y    File (XXL)

>    Timestamp

M    HTML Content

j    Static Boxed Components

J Checkbox ('1'=Yes, '2'=No)

INTTYPE

CHAR 1

Internal ABAP Data Type

C    Character String

N    Character String with Digits Only

D    Date (Date: YYYYMMDD)

T    Time (Time: HHMMSS)

X    Byte Seq. (hexadecimal), in DDIC metadata also for INT1/2/4

I    Integer number (4-byte integer with sign)

b    1-byte integer, integer number <= 254

s    2-byte integer, only for length field before LCHR or LRAW

P    Packed number

F    Floating point number to accuracy of 8 bytes

g    Character string with variable length (ABAP type STRING)

y    Byte sequence with variable length (ABAP type XSTRING)

u    Structured type, flat

v    Structured type, deep

h    Table type

V    Character string (old Dictionary type VARC)

r    Reference to class/interface

l    Reference to data object

a    Decimal Floating Point Number, 16 Digits

e    Decimal Floating Point Number, 34 Digits

j    Static Boxed Components

k    Generic Boxed Components

z    Node Line for Structured Objects

8    Whole Number (8-Byte Integer with Sign)

DECIMALS

NUMC 6

Number of Decimal Places

 

DECIMALS_DISP

CHAR 1

Decimal places display

 

DESCR

CHAR 60

Short Description of Repository Objects

 

KEYFLAG

CHAR 1

Identifies a key field of a table

X    Key field

DISPLAY

CHAR 1

Show or hide field (Visibility)

1   Visible

2    Not Visible, but still in global filter (prefilter)

3   Only Visible in Table View

4   Not Visible - not transferred to frontend

So value 2 can be used if field should not be available for the user, but still be available in the global filter/ prefilter for backend filtering.

Value 4 is to be used, when data should not be sent to frontend and in no way be available to the end user.

EDITABLE

CHAR 1

Editabiltity setting

1    Locked (keep target value)

2    Editable - Required

3    Editable - Not Required

4    Locked (overwrite target value)

SUPPRESS_EXPORT

CHAR 1

Suppress Export

X    Suppress Export

SUPPRESS_LOC_FILTER

CHAR 1

Suppress local filter

X    Suppress local filter

SUPPRESS_PRE_FILTER

CHAR 1

Suppress global filter

X    Suppress global filter

SUPPRESS_GROUP_BY

CHAR 1

Suppress group by

X    Suppress group by

CELLRENDERER

STRING

Cell renderer as Function in JS

 

F4HELP

Table

Search Info, see next table for details

 

F1HELP

STRING

F1 Help

NextLytics internal use only

VARIABLES-NAME

CHAR 30

Variable Name

 

VARIABLES-DESCR

CHAR 60

Variable Description

 

INFOOBJECT

CHAR 30

InfoObject

 

CONVEXIT

CHAR 5

Conversion Routine

E.g. ALPHA or PERI6. Usually changes to this field are not needed

IOBJTP

CHAR 3

Type of an InfoObject

CHA    Characteristic

KYF    Key figure

TIM    Time characteristic

DPA    Data packet characteristic

UNI    Unit of measurement

XXL    XXL InfoObject

DDIC_POSITION

NUMC 4

Position of the table field in DDIC

 

UI_POSITION

NUMC 4

Position of the table field in User Interface

 

CHECK_INFOOBJECT_INTEGRITY

CHAR 1

Check InfoObject integrity

1 yes

2 no

IOBJ_AUTH_REL_FLAG

CHAR 1

Authorization relevant flag for InfoObject

X yes

NextLytics internal use only, will get populated with an X if this InfoObject is authorization relevant

DISPLAY_TEXT

Table

Characteristic display

NextLytics internal use only 

6    No Display

0    Key and Text

1    Text

2    Key

3    Text and Key

4    Long Text

5    Medium-Length Text

7    Short Text

B    Text and Key as Short Text

C    Text and Key as Medium Text

D    Text and Key as Long Text

E    Key and Text as Short Text

F    Key and Text as Medium Text

G    Key and Text as Long Text ) 

HIERARCHY_FOR_AUTH

CHAR 30

Hierarchy authorization

 

 

F4 Help

The table below explains the fields of F4HELP in detail.

Property

Type

Description

Possible Values

SEARCHMODE

CHAR 6

Search Type

DDIC    Search based on table and field in Data Dictionary

IOBJ    InfoObject

CUSTOM    Custom

SEARCHNAME

CHAR 60

Search Name

For example name of the InfoObject, if SEARCHMODE IOBJ is used

SEARCHSTYLE

CHAR 30

Search Style - dropdown or search bar

SEARCH show search bar

DROPDOWN    show dropdown

Remark: dropdown recommended only for less than 50 values 

MIN_CHAR

NUMC 3

Number of minimum characteristics to be entered before search will start

 

STRICT

CHAR 1

Defines whether adding results to dropdown is allowed.

1 adding results is not allowed

 

Buttons

The table below explains the fields of BUTTONS in detail.

Property

Type

Description

Possible Values

NAME

CHAR 30

Button Name

 

DESCR

CHAR 60

Description

 

ICON

CHAR 60

Icon

Any regular icon from font-awesome, like: paper-plane

PARENT

CHAR 30

Button Name

 The button name of an other button

LOCATION

CHAR 10

Location of the Button in UI

TOP - Top menu in the upper right of NextTables
CONTEXT - Only in the context menu via right click
Quick - Quick action menu on the left

SORT_ORDER

NUMC 6

Sort order

Any number

ACTION

CHAR 12

Action to be performed

 

MESSAGE

STRING

Message that blocks the request

 

TOOLTIP

CHAR 255

Button Tooltip

 

 

 

 

BAdI Structure

You can use the following code snippet as orientation while implementing your own logic. You can find a practical application of this method in this article.


   FIELD-SYMBOLS:  <l_s_fields_info> TYPE /nly/ts_fields_info,
<l_s_f4help>      TYPE /nly/ts_search_info.

*Change properties as needed

    LOOP AT CH_T_FIELDS_INFO ASSIGNING <l_s_fields_info>.

      CASE <l_s_fields_info>-fname.

        WHEN 'FIELD_NAME_1'.

          <l_s_fields_info>-editable = '1'.

        WHEN 'FIELD_NAME_2'.

          loop at <l_s_fields_info>-f4help assigning <l_s_f4help>.

            <l_s_f4help>-searchstyle = 'DROPDOWN'.

            ENDLOOP.

      ENDCASE.

   ENDLOOP.

Error Handling and Messages

You can pass messages to the user using the CT_MESSAGES table. Please refer to this article for detailed information.

Which License is needed for this feature Professional | Enterprise