function openPopup() { var url = this.href; window.open(url, "popup_id", "scrollbars,resizable,width=300,height=400"); return false;}OverviewDashboards provides an interface that enables you to quickly and easily build and publish your dashboards. In this tutorial, you will review the elements that make up the interface for Dashboards.Watch this Tutorial This regular expressions matches CNPJ number. CNPJ is a Registration Number of Brazilian Companies.REPORT ZADN_SAMPLE.*----------------------------------------------------------------------** -> CLASS cl_regex_test DEFINITION*----------------------------------------------------------------------*CLASS cl_regex_test DEFINITION FINAL. PUBLIC SECTION. METHODS : check_cnpj IMPORTING p_cnpj TYPE string. PRIVATE SECTION. DATA: o_regex TYPE REF TO cl_abap_regex, o_matcher TYPE REF TO cl_abap_matcher.ENDCLASS. "cl_regex_test DEFINITION*----------------------------------------------------------------------** -> CLASS cl_regex_test IMPLEMENTATION*----------------------------------------------------------------------*CLASS cl_regex_test IMPLEMENTATION. METHOD check_cnpj.* Create the regular expression: CREATE OBJECT o_regex EXPORTING pattern = '\d{2}.?\d{3}.?\d{3}/?\d{4}-?\d{2}'.* Check to see if the CNPJ number matches the regular expression: CREATE OBJECT o_matcher EXPORTING regex = o_regex text = p_cnpj. IF o_matcher->match( ) NE abap_true. MESSAGE 'Enter valid CNPJ number...' TYPE 'E'. ELSE. MESSAGE 'This is a valid CNPJ number...' TYPE 'S'. ENDIF. ENDMETHOD. "check_cnpjENDCLASS. "cl_regex_test IMPLEMENTATION************************************************************************************************************************************************* ** PROGRAM FLOW LOGIC ** *************************************************************************START-OF-SELECTION. DATA : ocl_regex_test TYPE REF TO cl_regex_test. CREATE OBJECT ocl_regex_test. ocl_regex_test->check_cnpj( '12.043.129/0001-98' ). " IS VALID "ocl_regex_test->check_cnpj( '02.025.659/0001-981' ). " IS INVALID function openPopup() { var url = this.href; window.open(url, "popup_id", "scrollbars,resizable,width=300,height=400"); return false;}OverviewDashboards enables you to configure your components to alert you when specific thresholds have been met with color coding that displays as part of the components in your dashboard.In this tutorial, you will review the steps involved in setting up alerts for a component.Watch this Tutorial function openPopup() { var url = this.href; window.open(url, "popup_id", "scrollbars,resizable,width=300,height=400"); return false;}OverviewSelectors enable you to set up your dashboards so that users can select what data they want to view in display components like charts.In this tutorial, you will review how to configure a selector.Watch this Tutorial IntroductionThe concepts of dynamic programming are part of the unique features that ABAP offers for business programming. Exploiting the features of dynamic programming allows you to write powerful and flexible applications.REPORT ZADN_SAMPLE.*----------------------------------------------------------------------** -> CLASS lc_abnsample DEFINITION*----------------------------------------------------------------------*CLASS lc_abnsample DEFINITION. PUBLIC SECTION. TYPES : BEGIN OF ty_table_line, id TYPE char02, name TYPE char20, phone TYPE char15, END OF ty_table_line. METHODS : constructor. METHODS : get_item_by_key IMPORTING p_key TYPE char12 p_value TYPE any EXPORTING p_item TYPE any. PRIVATE SECTION. TYPES : ty_table TYPE STANDARD TABLE OF ty_table_line. DATA : it_table TYPE ty_table, st_table TYPE LINE OF ty_table. METHODS : load_table_data.ENDCLASS. "lc_abnsample DEFINITION*----------------------------------------------------------------------** -> CLASS lc_abnsample DEFINITION*----------------------------------------------------------------------*CLASS lc_abnsample IMPLEMENTATION. METHOD constructor. me->load_table_data( ). ENDMETHOD. "constructor METHOD load_table_data. CLEAR : me->st_table. me->st_table-id = 'AA'. me->st_table-name = 'NAME AA'. me->st_table-phone = 'PHONE AA'. APPEND me->st_table TO me->it_table. CLEAR : me->st_table. me->st_table-id = 'BB'. me->st_table-name = 'NAME BB'. me->st_table-phone = 'PHONE BB'. APPEND me->st_table TO me->it_table. CLEAR : me->st_table. me->st_table-id = 'CC'. me->st_table-name = 'NAME CC'. me->st_table-phone = 'PHONE CC'. APPEND me->st_table TO me->it_table. CLEAR : me->st_table. ENDMETHOD. "load_table_data METHOD get_item_by_key. READ TABLE me->it_table WITH KEY (p_key) = p_value INTO me->st_table. p_item = me->st_table. CLEAR : me->st_table. ENDMETHOD. "get_item_by_keyENDCLASS. "lc_abnsample DEFINITION************************************************************************************************************************************************* ** PROGRAM FLOW LOGIC ** *************************************************************************PARAMETERS : pa_key TYPE char12 DEFAULT 'ID', " Use : ID, NAME or PHONE pa_value TYPE char12 DEFAULT 'AA'. " For ID Use :