Update
This commit is contained in:
10
src/test_abap_cheat_sheets_classic/package.devc.xml
Normal file
10
src/test_abap_cheat_sheets_classic/package.devc.xml
Normal file
@@ -0,0 +1,10 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_DEVC" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DEVC>
|
||||
<CTEXT>ABAP Cheat Sheets: Classic ABAP</CTEXT>
|
||||
</DEVC>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
@@ -0,0 +1,139 @@
|
||||
CLASS zcl_demo_abap_sap_luw_helper DEFINITION
|
||||
PUBLIC
|
||||
FINAL
|
||||
CREATE PUBLIC .
|
||||
|
||||
PUBLIC SECTION.
|
||||
TYPES log_type TYPE SORTED TABLE OF zdemo_abap_logt WITH UNIQUE KEY id.
|
||||
|
||||
CLASS-DATA: itab TYPE STANDARD TABLE OF zdemo_abap_luw_t,
|
||||
log_entries TYPE STANDARD TABLE OF zdemo_abap_logt.
|
||||
|
||||
CLASS-METHODS: get_work_process_info RETURNING VALUE(id_no) TYPE string,
|
||||
create_log_entries IMPORTING log TYPE log_type,
|
||||
checking_transaction_state RETURNING VALUE(tx_state) TYPE string,
|
||||
cc_alv_display IMPORTING container TYPE c
|
||||
log TYPE abap_bool DEFAULT abap_false,
|
||||
subr_delete,
|
||||
subr_insert IMPORTING values TYPE zdemo_abap_luw_t,
|
||||
subr_update_log IMPORTING log TYPE log_type.
|
||||
PROTECTED SECTION.
|
||||
PRIVATE SECTION.
|
||||
CLASS-DATA: wp_pid TYPE wppid,
|
||||
wp_index TYPE wpindex.
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_DEMO_ABAP_SAP_LUW_HELPER IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD cc_alv_display.
|
||||
DATA(cont) = NEW cl_gui_custom_container( container_name = container ).
|
||||
|
||||
IF log = abap_false.
|
||||
SELECT key_field, ch, num, time_stamp
|
||||
FROM zdemo_abap_luw_t
|
||||
INTO CORRESPONDING FIELDS OF TABLE @Itab
|
||||
ORDER BY key_field.
|
||||
|
||||
TRY.
|
||||
cl_salv_table=>factory( EXPORTING r_container = cont
|
||||
container_name = CONV string( container )
|
||||
IMPORTING r_salv_table = DATA(alv)
|
||||
CHANGING t_table = itab ).
|
||||
|
||||
DATA(columns) = alv->get_columns( ).
|
||||
DATA(col_tab) = columns->get( ).
|
||||
LOOP AT col_tab ASSIGNING FIELD-SYMBOL(<column>).
|
||||
DATA(column) = columns->get_column( <column>-columnname ).
|
||||
column->set_medium_text( CONV scrtext_m( <column>-columnname ) ).
|
||||
|
||||
IF <column>-columnname = 'CLIENT'.
|
||||
<column>-r_column->set_visible( abap_false ).
|
||||
ELSE.
|
||||
<column>-r_column->set_visible( abap_true ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
alv->display( ).
|
||||
CATCH cx_salv_msg cx_salv_not_found.
|
||||
MESSAGE 'ALV display not possible' TYPE 'I'
|
||||
DISPLAY LIKE 'E'.
|
||||
ENDTRY.
|
||||
|
||||
ELSE.
|
||||
|
||||
SELECT id, context, name, details, timestamp
|
||||
FROM zdemo_abap_logt
|
||||
INTO CORRESPONDING FIELDS OF TABLE @log_entries
|
||||
ORDER BY id.
|
||||
|
||||
TRY.
|
||||
cl_salv_table=>factory( EXPORTING r_container = cont
|
||||
container_name = CONV string( container )
|
||||
IMPORTING r_salv_table = alv
|
||||
CHANGING t_table = log_entries ).
|
||||
|
||||
columns = alv->get_columns( ).
|
||||
col_tab = columns->get( ).
|
||||
LOOP AT col_tab ASSIGNING FIELD-SYMBOL(<col>).
|
||||
column = columns->get_column( <col>-columnname ).
|
||||
column->set_medium_text( CONV scrtext_m( <col>-columnname ) ).
|
||||
|
||||
IF <col>-columnname = `DETAILS`.
|
||||
column->set_output_length( 70 ).
|
||||
ENDIF.
|
||||
|
||||
IF <col>-columnname = 'CLIENT'.
|
||||
<col>-r_column->set_visible( abap_false ).
|
||||
ELSE.
|
||||
<col>-r_column->set_visible( abap_true ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
alv->display( ).
|
||||
CATCH cx_salv_msg cx_salv_not_found.
|
||||
MESSAGE 'ALV display not possible' TYPE 'I'
|
||||
DISPLAY LIKE 'E'.
|
||||
ENDTRY.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD checking_transaction_state.
|
||||
tx_state = `Tx state: ` &&
|
||||
`Update task (` && SWITCH #( cl_system_transaction_state=>get_in_update_task( ) WHEN 1 THEN `1)` ELSE `0)` ) &&
|
||||
` Local update (` && SWITCH #( cl_system_transaction_state=>get_update_task_local( ) WHEN 1 THEN `1)` ELSE `0)` ) &&
|
||||
` Perf. on commit (` && SWITCH #( cl_system_transaction_state=>get_on_commit( ) WHEN 1 THEN `1)` ELSE `0)` ) &&
|
||||
` Perf. on rollback (` && SWITCH #( cl_system_transaction_state=>get_on_rollback( ) WHEN 1 THEN `1)` ELSE `0)` ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD create_log_entries.
|
||||
INSERT zdemo_abap_logt FROM TABLE @log.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_work_process_info.
|
||||
CALL FUNCTION 'TH_GET_OWN_WP_NO'
|
||||
IMPORTING
|
||||
wp_pid = wp_pid
|
||||
wp_index = wp_index.
|
||||
|
||||
id_no = |Work process ID: { wp_pid } / work process index: { wp_index }|.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD subr_delete.
|
||||
DELETE FROM zdemo_abap_luw_t.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD subr_insert.
|
||||
INSERT zdemo_abap_luw_t FROM @values.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD subr_update_log.
|
||||
INSERT zdemo_abap_logt FROM TABLE @log.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
@@ -0,0 +1,16 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_DEMO_ABAP_SAP_LUW_HELPER</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Helper class for SAP LUW example</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
76
src/test_abap_cheat_sheets_classic/zdemo_abap_dbluw.tabl.xml
Normal file
76
src/test_abap_cheat_sheets_classic/zdemo_abap_dbluw.tabl.xml
Normal file
@@ -0,0 +1,76 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DD02V>
|
||||
<TABNAME>ZDEMO_ABAP_DBLUW</TABNAME>
|
||||
<DDLANGUAGE>E</DDLANGUAGE>
|
||||
<TABCLASS>TRANSP</TABCLASS>
|
||||
<CLIDEP>X</CLIDEP>
|
||||
<DDTEXT>Demo database table</DDTEXT>
|
||||
<MASTERLANG>E</MASTERLANG>
|
||||
<MAINFLAG>X</MAINFLAG>
|
||||
<CONTFLAG>A</CONTFLAG>
|
||||
<EXCLASS>1</EXCLASS>
|
||||
</DD02V>
|
||||
<DD09L>
|
||||
<TABNAME>ZDEMO_ABAP_DBLUW</TABNAME>
|
||||
<AS4LOCAL>A</AS4LOCAL>
|
||||
<TABKAT>0</TABKAT>
|
||||
<TABART>APPL0</TABART>
|
||||
<BUFALLOW>N</BUFALLOW>
|
||||
</DD09L>
|
||||
<DD03P_TABLE>
|
||||
<DD03P>
|
||||
<FIELDNAME>CLIENT</FIELDNAME>
|
||||
<KEYFLAG>X</KEYFLAG>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000006</INTLEN>
|
||||
<NOTNULL>X</NOTNULL>
|
||||
<DATATYPE>CLNT</DATATYPE>
|
||||
<LENG>000003</LENG>
|
||||
<MASK> CLNT</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>KEY_FIELD</FIELDNAME>
|
||||
<KEYFLAG>X</KEYFLAG>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>X</INTTYPE>
|
||||
<INTLEN>000004</INTLEN>
|
||||
<NOTNULL>X</NOTNULL>
|
||||
<DATATYPE>INT4</DATATYPE>
|
||||
<LENG>000010</LENG>
|
||||
<MASK> INT4</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>CH</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000020</INTLEN>
|
||||
<DATATYPE>CHAR</DATATYPE>
|
||||
<LENG>000010</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>NUM</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>X</INTTYPE>
|
||||
<INTLEN>000004</INTLEN>
|
||||
<DATATYPE>INT4</DATATYPE>
|
||||
<LENG>000010</LENG>
|
||||
<MASK> INT4</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>TIME_STAMP</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>p</INTTYPE>
|
||||
<INTLEN>000008</INTLEN>
|
||||
<DATATYPE>UTCL</DATATYPE>
|
||||
<LENG>000027</LENG>
|
||||
<MASK> UTCL</MASK>
|
||||
</DD03P>
|
||||
</DD03P_TABLE>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
826
src/test_abap_cheat_sheets_classic/zdemo_abap_dynpro.prog.abap
Normal file
826
src/test_abap_cheat_sheets_classic/zdemo_abap_dynpro.prog.abap
Normal file
@@ -0,0 +1,826 @@
|
||||
*&---------------------------------------------------------------------*
|
||||
*& ABAP cheat sheet: Dynpro
|
||||
*&
|
||||
*&-------------------------- PURPOSE ----------------------------------*
|
||||
*& - Example to demonstrate dynpro-related statements
|
||||
*& - Topics covered: Dynpro flow logic and related statements (MODULE,
|
||||
*& FIELD, CHAIN/ENDCHAIN, LOOP/ENDLOOP, CALL SUBSCREEN), ABAP statements
|
||||
*& for calling and leaving dynpros (SET SCREEN, CALL SCREEN, LEAVE
|
||||
*& SCREEN), modifying static attributes (LOOP AT SCREEN, MODIFY SCREEN),
|
||||
*& statements related to the GUI status and title (GET/SET PF-STATUS,
|
||||
*& SET TITLEBAR), controls (table and tabstrip controls)
|
||||
*&
|
||||
*&----------------------- GETTING STARTED -----------------------------*
|
||||
*& - Open the program with the ABAP development tools for Eclipse (ADT).
|
||||
*& - Choose F8 to run the program.
|
||||
*& - Select the radio buttons and/or provide input in input fields etc.
|
||||
*& to check out dynpro-related syntax in action.
|
||||
*&
|
||||
*&----------------------------- NOTE -----------------------------------*
|
||||
*& The code presented in this class is intended only to support the ABAP
|
||||
*& cheat sheets. It is not intended for direct use in a production system
|
||||
*& environment. The code examples in the ABAP cheat sheets are primarily
|
||||
*& intended to provide a better explanation and visualization of the
|
||||
*& syntax and semantics of ABAP statements, not to solve concrete
|
||||
*& programming tasks. For production application programs, you should
|
||||
*& always work out your own solution for each individual case. There is
|
||||
*& no guarantee for the correctness or completeness of the code.
|
||||
*& Furthermore, there is no legal responsibility or liability for any
|
||||
*& errors or their consequences that may occur when using the the example
|
||||
*& code.
|
||||
*&---------------------------------------------------------------------*
|
||||
REPORT zdemo_abap_dynpro.
|
||||
|
||||
DATA:
|
||||
"OK field
|
||||
ok_code LIKE sy-ucomm,
|
||||
"Auxiliary variable for storing the value of the OK field
|
||||
save_ok LIKE ok_code,
|
||||
dyn_num LIKE sy-dynnr,
|
||||
dyn_title LIKE sy-title.
|
||||
|
||||
"Note: This demo database table does not have any semantic information
|
||||
"that may be used for input helps etc.
|
||||
TABLES zdemo_abap_flsch.
|
||||
|
||||
"----- Related to dynpro 9850 (Home page) -----
|
||||
DATA: screen_elements TYPE abap_bool,
|
||||
stmts TYPE abap_bool,
|
||||
stmts2 TYPE abap_bool,
|
||||
controls TYPE abap_bool.
|
||||
|
||||
"----- Related to dynpro 9860 (Screen elements) -----
|
||||
|
||||
DATA: "Icons
|
||||
icon TYPE icons-text,
|
||||
icon_name TYPE c LENGTH 20,
|
||||
icon_text TYPE c LENGTH 10,
|
||||
"check boxes
|
||||
ch_a TYPE abap_bool,
|
||||
ch_b TYPE abap_bool,
|
||||
ch_c TYPE abap_bool,
|
||||
checkbox_msg TYPE c LENGTH 4,
|
||||
input_field TYPE c LENGTH 20,
|
||||
"radio buttons
|
||||
rb_x TYPE abap_bool,
|
||||
rb_y TYPE abap_bool,
|
||||
rb_z TYPE abap_bool,
|
||||
radiobutton_msg TYPE c LENGTH 1.
|
||||
|
||||
"----- Related to dynpro 9870 (Statements I) -----
|
||||
|
||||
DATA: call_screen TYPE abap_bool,
|
||||
call_screen_starting TYPE abap_bool,
|
||||
call_screen_st_end TYPE abap_bool,
|
||||
set_screen TYPE abap_bool,
|
||||
leave_screen_next TYPE abap_bool,
|
||||
leave_screen_set TYPE abap_bool,
|
||||
leave_to_screen TYPE abap_bool,
|
||||
set_pfstatus TYPE abap_bool,
|
||||
set_pf_excluding TYPE abap_bool,
|
||||
get_pfstatus TYPE abap_bool,
|
||||
get_pfstatsus_excl TYPE abap_bool,
|
||||
set_titlebar TYPE abap_bool,
|
||||
set_titlebar_with TYPE abap_bool,
|
||||
with_title TYPE c LENGTH 15,
|
||||
col1 TYPE i,
|
||||
lin1 TYPE i,
|
||||
col2 TYPE i,
|
||||
lin2 TYPE i,
|
||||
col3 TYPE i,
|
||||
lin3 TYPE i,
|
||||
pf TYPE c LENGTH 1,
|
||||
pfkey TYPE syst_pfkey,
|
||||
title TYPE c LENGTH 1.
|
||||
|
||||
"Data type and objects for the EXCLUDING addition of GET/SET PF-STATUS
|
||||
"statements
|
||||
TYPES fu_key_tab TYPE TABLE OF sy-ucomm WITH NON-UNIQUE KEY table_line.
|
||||
DATA: excl_list1 TYPE fu_key_tab,
|
||||
excl_list2 TYPE fu_key_tab,
|
||||
excl_list3 TYPE fu_key_tab.
|
||||
|
||||
"----- Related to dynpro 9880 (Statements II) -----
|
||||
|
||||
DATA: loop_modify TYPE abap_bool,
|
||||
field_stmt TYPE abap_bool,
|
||||
mod_at_exit TYPE abap_bool,
|
||||
selected TYPE abap_bool,
|
||||
set TYPE abap_bool,
|
||||
field_a TYPE c LENGTH 1,
|
||||
field_b TYPE c LENGTH 1,
|
||||
field_c TYPE c LENGTH 1,
|
||||
field_d TYPE c LENGTH 1,
|
||||
field_e TYPE c LENGTH 1,
|
||||
field_f TYPE c LENGTH 1,
|
||||
output_field_1 TYPE c LENGTH 100,
|
||||
output_field_2 TYPE c LENGTH 100,
|
||||
output_field_3 TYPE c LENGTH 100,
|
||||
field_help TYPE c LENGTH 30,
|
||||
input_help TYPE c LENGTH 30,
|
||||
"For GET/SET CURSOR statements
|
||||
fld TYPE c LENGTH 20,
|
||||
off TYPE i,
|
||||
val TYPE string,
|
||||
len TYPE i.
|
||||
|
||||
"For field and input help
|
||||
TYPES: BEGIN OF values,
|
||||
carrid TYPE zdemo_abap_flsch-carrid,
|
||||
connid TYPE zdemo_abap_flsch-connid,
|
||||
END OF values.
|
||||
|
||||
DATA: progname TYPE sy-repid,
|
||||
dynnum TYPE sy-dynnr,
|
||||
dynpro_values TYPE TABLE OF dynpread,
|
||||
field_value LIKE LINE OF dynpro_values,
|
||||
values_tab TYPE TABLE OF values,
|
||||
tab TYPE TABLE OF zdemo_abap_flsch-carrid,
|
||||
carr TYPE zdemo_abap_flsch-carrid,
|
||||
conn TYPE zdemo_abap_flsch-connid.
|
||||
|
||||
DATA itab_flsch TYPE TABLE OF zdemo_abap_flsch-carrid.
|
||||
|
||||
TYPES: BEGIN OF carrid_line,
|
||||
carrid TYPE zdemo_abap_flsch-carrid,
|
||||
END OF carrid_line.
|
||||
|
||||
DATA carrid_list TYPE STANDARD TABLE OF carrid_line.
|
||||
|
||||
"----- Related to dynpro 9890 (Exit command) -----
|
||||
|
||||
"For demonstration purposes, implementations for the
|
||||
"related dialog modules are done in methods of a local
|
||||
"class.
|
||||
|
||||
"----- Related to dynpro 9990 (Controls) -----
|
||||
|
||||
"For table controls
|
||||
DATA lines TYPE i.
|
||||
DATA fill TYPE i.
|
||||
CONTROLS flights TYPE TABLEVIEW USING SCREEN 9900.
|
||||
|
||||
"Internal table to hold data that is to be displayed.
|
||||
DATA itab_flights TYPE TABLE OF zdemo_abap_flsch WITH EMPTY KEY.
|
||||
|
||||
"Filling the internal table
|
||||
SELECT *
|
||||
FROM zdemo_abap_flsch
|
||||
ORDER BY carrid, connid
|
||||
INTO TABLE @itab_flights.
|
||||
|
||||
"For tabstrip controls
|
||||
CONTROLS tabstr TYPE TABSTRIP.
|
||||
DATA number LIKE sy-dynnr.
|
||||
|
||||
"For ALV Grid control
|
||||
TYPES: BEGIN OF flight_struc,
|
||||
carrid TYPE zdemo_abap_flsch-carrid,
|
||||
connid TYPE zdemo_abap_flsch-connid,
|
||||
countryfr TYPE zdemo_abap_flsch-countryfr,
|
||||
cityfrom TYPE zdemo_abap_flsch-cityfrom,
|
||||
airpfrom TYPE zdemo_abap_flsch-airpfrom,
|
||||
countryto TYPE zdemo_abap_flsch-countryto,
|
||||
cityto TYPE zdemo_abap_flsch-cityto,
|
||||
airpto TYPE zdemo_abap_flsch-airpto,
|
||||
fltime TYPE zdemo_abap_flsch-fltime,
|
||||
END OF flight_struc.
|
||||
|
||||
DATA itab4alv TYPE TABLE OF flight_struc WITH EMPTY KEY.
|
||||
|
||||
"----- For other dialog modules -----
|
||||
|
||||
DATA: links TYPE TABLE OF tline,
|
||||
field_tab TYPE TABLE OF dfies WITH EMPTY KEY.
|
||||
|
||||
"----- Local class -----
|
||||
|
||||
CLASS local_class DEFINITION.
|
||||
PUBLIC SECTION.
|
||||
CLASS-METHODS: provide_fu_keys IMPORTING example TYPE i
|
||||
RETURNING VALUE(fu_keys) TYPE fu_key_tab,
|
||||
|
||||
cc_alv_display IMPORTING container TYPE c,
|
||||
"Implementations for dialog modules for dynpro 9890
|
||||
pbo9890,
|
||||
pai9890,
|
||||
cancel.
|
||||
|
||||
"Variable declarations for dialog modules for dynpro 9890
|
||||
CLASS-DATA: mandatory_field TYPE c LENGTH 20,
|
||||
btn_exit_1 TYPE abap_bool,
|
||||
btn_exit_2 TYPE abap_bool.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS local_class IMPLEMENTATION.
|
||||
|
||||
METHOD provide_fu_keys.
|
||||
CASE example.
|
||||
WHEN 1.
|
||||
fu_keys = VALUE #( ( 'CANCEL' ) ( 'SAP' ) ).
|
||||
WHEN 2.
|
||||
fu_keys = VALUE #( ( 'CANCEL' ) ).
|
||||
WHEN OTHERS.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
METHOD cc_alv_display.
|
||||
DATA(cont) = NEW cl_gui_custom_container( container_name = container ).
|
||||
|
||||
SELECT carrid, connid, countryfr, cityfrom, airpfrom, countryto, cityto, airpto, fltime
|
||||
FROM zdemo_abap_flsch
|
||||
ORDER BY carrid, connid
|
||||
INTO CORRESPONDING FIELDS OF TABLE @itab4alv.
|
||||
|
||||
TRY.
|
||||
cl_salv_table=>factory( EXPORTING r_container = cont
|
||||
container_name = CONV string( container )
|
||||
IMPORTING r_salv_table = DATA(alv)
|
||||
CHANGING t_table = itab4alv ).
|
||||
alv->get_columns( )->set_optimize( abap_true ).
|
||||
alv->get_display_settings( )->set_list_header( 'Flights' ).
|
||||
LOOP AT alv->get_columns( )->get( ) ASSIGNING FIELD-SYMBOL(<col>).
|
||||
DATA(column) = <col>-r_column.
|
||||
column->set_long_text( |{ column->get_columnname( ) }| ).
|
||||
ENDLOOP.
|
||||
alv->display( ).
|
||||
CATCH cx_salv_msg cx_salv_not_found.
|
||||
MESSAGE `ALV display not possible` TYPE 'I'
|
||||
DISPLAY LIKE 'E'.
|
||||
ENDTRY.
|
||||
ENDMETHOD.
|
||||
METHOD pai9890.
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'CLOSE1'.
|
||||
MESSAGE `Processing continues. It does so only after the input field is filled.` TYPE 'I'.
|
||||
SET SCREEN 0.
|
||||
LEAVE SCREEN.
|
||||
WHEN 'CLOSE2'.
|
||||
MESSAGE `Superfluouse message :)` TYPE 'I'.
|
||||
WHEN OTHERS.
|
||||
MESSAGE `Processing continues. It does so only after the input field is filled.` TYPE 'I'.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD pbo9890.
|
||||
SET PF-STATUS 'STATUS9890'.
|
||||
SET TITLEBAR 'TITLE9890'.
|
||||
|
||||
dyn_num = sy-dynnr.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD cancel.
|
||||
MESSAGE `Module "cancel" was called. The dynpro will be left without the need to fill in the mandatory input field.` TYPE 'I'.
|
||||
|
||||
IF ok_code = 'CLOSE2'.
|
||||
CLEAR: ok_code, mandatory_field.
|
||||
SET SCREEN 0.
|
||||
LEAVE SCREEN.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
END-OF-SELECTION.
|
||||
|
||||
"Filling demo database tables
|
||||
zcl_demo_abap_flight_tables=>fill_dbtabs( ).
|
||||
|
||||
CALL SCREEN 9850.
|
||||
|
||||
**********************************************************************
|
||||
|
||||
***************** Dialog modules for 9850 ****************************
|
||||
|
||||
MODULE status_9850 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9850'.
|
||||
SET TITLEBAR 'TITLE9850'.
|
||||
|
||||
CLEAR: screen_elements, stmts, stmts2.
|
||||
dyn_num = sy-dynnr.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9850 INPUT.
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'ENTER' OR 'GO'.
|
||||
CASE abap_true.
|
||||
WHEN screen_elements.
|
||||
CALL SCREEN 9860.
|
||||
WHEN stmts.
|
||||
CALL SCREEN 9870.
|
||||
WHEN stmts2.
|
||||
CALL SCREEN 9880.
|
||||
WHEN controls.
|
||||
CALL SCREEN 9900.
|
||||
ENDCASE.
|
||||
WHEN OTHERS.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
ENDMODULE.
|
||||
|
||||
***************** Dialog modules for 9860 ****************************
|
||||
|
||||
MODULE status_9860 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9860'.
|
||||
SET TITLEBAR 'TITLE9860'.
|
||||
|
||||
"Modifying static attributes
|
||||
IF loop_modify = 'X'.
|
||||
LOOP AT SCREEN INTO DATA(scr).
|
||||
IF scr-name = 'ICON3'.
|
||||
scr-invisible = '1'.
|
||||
MODIFY SCREEN FROM scr.
|
||||
ENDIF.
|
||||
IF scr-name = 'INPUT_FIELD'.
|
||||
scr-length = 10.
|
||||
scr-intensified = '1'.
|
||||
"scr-required = '1'.
|
||||
MODIFY SCREEN FROM scr.
|
||||
ENDIF.
|
||||
IF scr-name = 'RB_Z'.
|
||||
scr-active = '0'.
|
||||
MODIFY SCREEN FROM scr.
|
||||
ENDIF.
|
||||
IF scr-name = 'CH_B'.
|
||||
scr-input = '0'.
|
||||
MODIFY SCREEN FROM scr.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
|
||||
dyn_num = sy-dynnr.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9860 INPUT.
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
"Icons
|
||||
WHEN 'ICON1'.
|
||||
icon_name = 'ICON_GREEN_LIGHT'.
|
||||
icon_text = `green`.
|
||||
WHEN 'ICON2'.
|
||||
icon_name = 'ICON_YELLOW_LIGHT'.
|
||||
icon_text = `yellow`.
|
||||
WHEN 'ICON3'.
|
||||
icon_name = 'ICON_RED_LIGHT'.
|
||||
icon_text = `red`.
|
||||
"Input field
|
||||
WHEN 'BTN_NO'.
|
||||
MESSAGE |The text "{ input_field }" in the input field has { numofchar( input_field ) } characters. Trailing blanks are ignored.| TYPE 'I'.
|
||||
"Check boxes
|
||||
WHEN 'CH_BTN'.
|
||||
IF ch_a = abap_true.
|
||||
checkbox_msg = 'A'.
|
||||
ENDIF.
|
||||
IF ch_b = abap_true.
|
||||
checkbox_msg = checkbox_msg && 'B'.
|
||||
ENDIF.
|
||||
IF ch_c = abap_true.
|
||||
checkbox_msg = checkbox_msg && 'C'.
|
||||
ENDIF.
|
||||
IF checkbox_msg IS INITIAL.
|
||||
checkbox_msg = 'None'.
|
||||
ENDIF.
|
||||
checkbox_msg = checkbox_msg.
|
||||
MESSAGE checkbox_msg TYPE 'I'.
|
||||
CLEAR checkbox_msg.
|
||||
"Radio buttons
|
||||
WHEN 'RB_BTN'.
|
||||
CASE abap_true.
|
||||
WHEN rb_x.
|
||||
radiobutton_msg = 'X'.
|
||||
WHEN rb_y.
|
||||
radiobutton_msg = 'Y'.
|
||||
WHEN rb_z.
|
||||
radiobutton_msg = 'Z'.
|
||||
WHEN OTHERS.
|
||||
radiobutton_msg = ' '.
|
||||
ENDCASE.
|
||||
MESSAGE radiobutton_msg TYPE 'I'.
|
||||
CLEAR radiobutton_msg.
|
||||
WHEN 'HOME'.
|
||||
SET SCREEN 0.
|
||||
LEAVE SCREEN.
|
||||
WHEN OTHERS.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
|
||||
IF save_ok = 'ICON1' OR save_ok = 'ICON2' OR save_ok = 'ICON3'.
|
||||
CALL FUNCTION 'ICON_CREATE'
|
||||
EXPORTING
|
||||
name = icon_name
|
||||
text = icon_text
|
||||
info = 'Status'
|
||||
add_stdinf = 'X'
|
||||
IMPORTING
|
||||
result = icon
|
||||
EXCEPTIONS
|
||||
icon_not_found = 1
|
||||
outputfield_too_short = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
MESSAGE `Issue.` TYPE 'I' DISPLAY LIKE 'E'.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
|
||||
ENDMODULE.
|
||||
|
||||
***************** Dialog modules for 9870 ****************************
|
||||
|
||||
MODULE status_9870 OUTPUT.
|
||||
|
||||
"Control structures in case of calling the dynpro again
|
||||
IF set_pfstatus IS NOT INITIAL AND pfkey = 'STATUS9870'.
|
||||
SET PF-STATUS 'DEMOSTATUS'.
|
||||
ELSEIF set_pfstatus IS NOT INITIAL AND pfkey = 'DEMOSTATUS'.
|
||||
SET PF-STATUS 'STATUS9870'.
|
||||
ELSEIF set_pf_excluding IS NOT INITIAL AND pfkey = 'STATUS9870'.
|
||||
excl_list1 = local_class=>provide_fu_keys( 1 ).
|
||||
SET PF-STATUS 'DEMOSTATUS' EXCLUDING excl_list1.
|
||||
ELSEIF set_pf_excluding IS NOT INITIAL AND pfkey = 'DEMOSTATUS'.
|
||||
excl_list2 = local_class=>provide_fu_keys( 2 ).
|
||||
SET PF-STATUS 'STATUS9870' EXCLUDING excl_list2.
|
||||
ELSE.
|
||||
SET PF-STATUS 'STATUS9870'.
|
||||
ENDIF.
|
||||
|
||||
IF set_titlebar IS NOT INITIAL.
|
||||
IF dyn_title CS 'Demo title'.
|
||||
SET TITLEBAR 'TITLE9870'.
|
||||
ELSE.
|
||||
SET TITLEBAR 'DEMOTITLE'.
|
||||
ENDIF.
|
||||
ELSEIF SET_TITLEBAR_with IS NOT INITIAL.
|
||||
SET TITLEBAR 'DEMOTITLE' WITH '"' with_title '"'.
|
||||
ELSE.
|
||||
SET TITLEBAR 'TITLE9870'.
|
||||
ENDIF.
|
||||
|
||||
"Prepopulating values
|
||||
col1 = 5.
|
||||
lin1 = 10.
|
||||
col2 = 1.
|
||||
lin2 = 1.
|
||||
col3 = 80.
|
||||
lin3 = 20.
|
||||
dyn_num = sy-dynnr.
|
||||
dyn_title = sy-title.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9870 INPUT.
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'ENTER' OR 'GO'.
|
||||
CASE abap_true.
|
||||
WHEN set_screen.
|
||||
MESSAGE |A SET SCREEN statement is about to get called. The static next dynpro of dynpro { sy-dynnr } is 0.| &&
|
||||
` It is dynamically overwritten. Another dynpro will be displayed. A new dynpro sequence is not started.` TYPE 'I'.
|
||||
SET SCREEN 9860.
|
||||
WHEN call_screen.
|
||||
MESSAGE `A CALL SCREEN statement is about to get called. You will switch to another dynpro. A new dynpro sequence is started.` TYPE 'I'.
|
||||
CALL SCREEN 9860.
|
||||
WHEN call_screen_starting.
|
||||
IF col1 < 0 OR lin1 < 0.
|
||||
MESSAGE `Only positive integers can be specified.` TYPE 'E'.
|
||||
ELSE.
|
||||
MESSAGE |The statement "CALL SCREEN ... STARTING AT { col1 } { lin1 }." is about to get called. | &&
|
||||
`Note: In the dialog box that opens, click the icon in the popup footer to remain in the program. Clicking the X leaves the program.` TYPE 'I'.
|
||||
CALL SCREEN 9860 STARTING AT col1 lin1.
|
||||
ENDIF.
|
||||
WHEN call_screen_st_end.
|
||||
IF col2 < 0 OR lin2 < 0
|
||||
OR col3 < 0 OR lin3 < 0.
|
||||
MESSAGE `Only positive integers can be specified.`
|
||||
TYPE 'E'.
|
||||
ELSE.
|
||||
MESSAGE |The statement "CALL SCREEN ... STARTING AT { col2 } { lin2 } ENDING AT { col3 } { lin3 }| &&
|
||||
`." is about to get called. Note: In the dialog box that opens, click the icon in the popup footer ` &&
|
||||
`to remain in the program. Clicking the X leaves the program.` TYPE 'I'.
|
||||
CALL SCREEN 9860 STARTING AT col2 lin2 ENDING AT col3 lin3.
|
||||
ENDIF.
|
||||
WHEN leave_screen_next.
|
||||
MESSAGE `A LEAVE SCREEN statement is about to get called. The current dynpro is exited, and the statically ` &&
|
||||
`defined next dynpro is called, which is 0 in this case. Hence, the current dynpro sequence is terminated. ` &&
|
||||
`Since the dynpro sequence is nested, you return to the home page and the parent dynpro sequence.` TYPE 'I'.
|
||||
LEAVE SCREEN.
|
||||
WHEN leave_screen_set.
|
||||
MESSAGE `A LEAVE SCREEN statement is about to get called. In this case, a SET SCREEN statement before the LEAVE ` &&
|
||||
`SCREEN statement overwrites the next dynpro (0 here). A new dynpro sequence is not started, instead the statement ` &&
|
||||
`branches to another dynpro in the same sequence.` TYPE 'I'.
|
||||
SET SCREEN 9900.
|
||||
LEAVE SCREEN.
|
||||
WHEN leave_to_screen.
|
||||
MESSAGE `A LEAVE TO SCREEN statement is about to get called. A new dynpro sequence is not started, instead the ` &&
|
||||
`statement branches to another dynpro in the same sequence. It has the same effect as the previous example.` TYPE 'I'.
|
||||
LEAVE TO SCREEN 9900.
|
||||
WHEN set_pfstatus.
|
||||
pfkey = sy-pfkey.
|
||||
MESSAGE |The current GUI status is { pfkey }. The current dynpro { sy-dynnr } will be set as the next dynpro.| &&
|
||||
` It will have a different GUI status.` TYPE 'I'.
|
||||
SET SCREEN 9870.
|
||||
WHEN set_pf_excluding.
|
||||
GET PF-STATUS pfkey.
|
||||
MESSAGE |The current GUI status is { pfkey }. The current dynpro will be set as the next dynpro.| &&
|
||||
` It will have a different GUI status (set at PBO) but excluding function codes (for example, the CANCEL button).` TYPE 'I'.
|
||||
SET SCREEN 9870.
|
||||
WHEN get_pfstatus.
|
||||
GET PF-STATUS pfkey.
|
||||
MESSAGE |The current GUI status is { pfkey }, which was retrieved using GET-PF-STATUS. Value of sy-pfkey: { sy-pfkey }.| TYPE 'I'.
|
||||
SET SCREEN 9870.
|
||||
WHEN get_pfstatsus_excl.
|
||||
GET PF-STATUS pfkey EXCLUDING excl_list3.
|
||||
MESSAGE |The current GUI status is { pfkey }. The exluded function codes are: {
|
||||
COND #( WHEN excl_list3 IS INITIAL THEN `None are excluded. Try to run SET PF-STATUS ... EXCLUDING ... first before this one.`
|
||||
ELSE concat_lines_of( table = excl_list3 sep = `, ` ) ) }| TYPE 'I'.
|
||||
SET SCREEN 9870.
|
||||
CLEAR excl_list3.
|
||||
WHEN set_titlebar.
|
||||
MESSAGE |The current title is "{ dyn_title }". The current dynpro is set as the next dynpro.| &&
|
||||
`The text in the title bar should change.` TYPE 'I'.
|
||||
SET SCREEN 9870.
|
||||
WHEN set_titlebar_with.
|
||||
MESSAGE |The current title is "{ dyn_title }". The current dynpro is set as the next dynpro.| &&
|
||||
`The text in the title bar should change according to your input in the input field.` TYPE 'I'.
|
||||
SET SCREEN 9870.
|
||||
ENDCASE.
|
||||
WHEN 'SAP'.
|
||||
cl_gui_frontend_services=>execute( document = 'https://www.sap.com' ).
|
||||
SET SCREEN 9870.
|
||||
WHEN 'SAYHI'.
|
||||
MESSAGE `Hallo ` && sy-uname && `.` TYPE 'I'.
|
||||
SET SCREEN 9870.
|
||||
WHEN 'HOME'.
|
||||
LEAVE TO SCREEN 9850.
|
||||
WHEN 'LEAVE' OR 'CANCEL'.
|
||||
LEAVE PROGRAM.
|
||||
WHEN OTHERS.
|
||||
ENDCASE.
|
||||
ENDMODULE.
|
||||
|
||||
***************** Dialog modules for 9880 ****************************
|
||||
|
||||
MODULE status_9880 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9880'.
|
||||
SET TITLEBAR 'TITLE9880'.
|
||||
|
||||
"Clearing variables in case the dynpro is called again
|
||||
IF field_stmt IS INITIAL.
|
||||
CLEAR: output_field_1, output_field_2, output_field_3,
|
||||
field_a, field_b, field_c, field_d, field_e, field_f.
|
||||
ENDIF.
|
||||
IF field_d IS INITIAL.
|
||||
CLEAR output_field_2.
|
||||
ENDIF.
|
||||
IF field_e IS INITIAL OR field_f IS INITIAL.
|
||||
CLEAR output_field_3.
|
||||
ENDIF.
|
||||
|
||||
"Prepopulating fields for input help
|
||||
progname = sy-repid.
|
||||
dynnum = sy-dynnr.
|
||||
CLEAR: field_value, dynpro_values.
|
||||
field_value-fieldname = 'CARR'.
|
||||
APPEND field_value TO dynpro_values.
|
||||
|
||||
"Setting the cursor field
|
||||
IF set = abap_true.
|
||||
SET CURSOR FIELD 'CONN'.
|
||||
CLEAR set.
|
||||
ENDIF.
|
||||
|
||||
dyn_num = sy-dynnr.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9880 INPUT.
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'ENTER' OR 'GO'.
|
||||
CASE abap_true.
|
||||
WHEN loop_modify.
|
||||
MESSAGE `Another dynpro will be set as the next dynpro. This dynpro includes a LOOP AT SCREEN ` &&
|
||||
` and MODIFY SCREEN statements in the PBO dialog module. Some screen elements have their static ` &&
|
||||
`attributes changed. For example, they are made invisible or inactive, or the length is changed.` TYPE 'I'.
|
||||
SET SCREEN 9860.
|
||||
LEAVE SCREEN.
|
||||
WHEN field_stmt.
|
||||
MESSAGE `The current dynpro will be set as the next dynpro. Depending on which checkboxes you ` &&
|
||||
`have selected, text is displayed in the fields below showing the effect of FIELD statements.` TYPE 'I'.
|
||||
SET SCREEN 9880.
|
||||
WHEN mod_at_exit.
|
||||
SET SCREEN 9890.
|
||||
ENDCASE.
|
||||
WHEN 'SELECTED'.
|
||||
CLEAR conn.
|
||||
SET SCREEN 9880.
|
||||
WHEN 'GET'.
|
||||
GET CURSOR FIELD fld OFFSET off VALUE val LENGTH len.
|
||||
MESSAGE |Current position of cursor: Field: "{ fld }", value: "{ val }", offset: "{ off }", length "{ len }"| TYPE 'I'.
|
||||
SET SCREEN 9880.
|
||||
WHEN 'SET'.
|
||||
set = abap_true.
|
||||
MESSAGE `Clicking the pushbutton triggers a SET CURSOR statement to be called at PBO. This sets the cursor on ` &&
|
||||
`a specific input field (the one in the lower left corner).` TYPE 'I'.
|
||||
SET SCREEN 9880.
|
||||
WHEN 'HOME'.
|
||||
LEAVE TO SCREEN 9850.
|
||||
WHEN 'LEAVE' OR 'CANCEL'.
|
||||
LEAVE PROGRAM.
|
||||
WHEN OTHERS.
|
||||
ENDCASE.
|
||||
ENDMODULE.
|
||||
|
||||
***************** Dialog modules for 9890 ****************************
|
||||
"For demonstration purposes, the dialog module implementations are
|
||||
"done in methods of a local class.
|
||||
|
||||
MODULE status_9890 OUTPUT.
|
||||
local_class=>pbo9890( ).
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9890 INPUT.
|
||||
local_class=>pai9890( ).
|
||||
ENDMODULE.
|
||||
|
||||
***************** Dialog modules for 9900 ****************************
|
||||
|
||||
MODULE status_9900 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9900'.
|
||||
SET TITLEBAR 'TITLE9900'.
|
||||
|
||||
"For vertically scrolling in the table control
|
||||
"To do this, the LINES component of the scxtab_control structure is set
|
||||
"to the correct line number. Each time the scroll bar is scrolled, the
|
||||
"PAI event is triggered with an empty function code, and the top_line
|
||||
"component of the cxtab_control structure is automatically set to the
|
||||
"new top line before PBO.
|
||||
flights-lines = lines( itab_flights ).
|
||||
|
||||
"Setting a tab to be active by default in case of calling the
|
||||
"dynpro again after leaving it.
|
||||
IF tabstr-activetab IS INITIAL
|
||||
OR number IS INITIAL.
|
||||
number = '9920'.
|
||||
tabstr-activetab = 'TAB2'.
|
||||
ENDIF.
|
||||
local_class=>cc_alv_display( 'ALVCONT' ).
|
||||
dyn_num = sy-dynnr.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9900 INPUT.
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'TAB1'.
|
||||
number = '9910'.
|
||||
tabstr-activetab = save_ok.
|
||||
WHEN 'TAB2'.
|
||||
number = '9920'.
|
||||
tabstr-activetab = save_ok.
|
||||
WHEN 'HOME'.
|
||||
"REFRESH statement: You can check out the effect, for example, by setting
|
||||
"the vertical scroll bar somewhere. If you then go back and call the dynpro
|
||||
"again, the control is refreshed (the scroll bar is again at the top).
|
||||
REFRESH CONTROL 'FLIGHTS' FROM SCREEN sy-dynnr.
|
||||
CLEAR: number, tabstr-activetab.
|
||||
SET SCREEN 0.
|
||||
LEAVE SCREEN.
|
||||
WHEN 'CANCEL' OR 'LEAVE'.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
ENDMODULE.
|
||||
|
||||
***************** Further dialog modules to support the example ****************************
|
||||
|
||||
MODULE module_1 INPUT.
|
||||
output_field_1 = 'Available in module_1:' && ` ` &&
|
||||
COND #( WHEN field_a = abap_true THEN 'A' ELSE '' ) &&
|
||||
COND #( WHEN field_b = abap_true THEN 'B' ELSE '' ) &&
|
||||
COND #( WHEN field_c = abap_true THEN 'C' ELSE '' ) &&
|
||||
' /'.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_2 INPUT.
|
||||
output_field_1 = output_field_1 &&
|
||||
' Available in module_2:' && ` ` &&
|
||||
COND #( WHEN field_a = abap_true THEN 'A' ELSE '' ) &&
|
||||
COND #( WHEN field_b = abap_true THEN 'B' ELSE '' ) &&
|
||||
COND #( WHEN field_c = abap_true THEN 'C' ELSE '' ) &&
|
||||
' /'.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_3 INPUT.
|
||||
output_field_1 = output_field_1 &&
|
||||
' Available in module_3:' && ` ` &&
|
||||
COND #( WHEN field_a = abap_true THEN 'A' ELSE '' ) &&
|
||||
COND #( WHEN field_b = abap_true THEN 'B' ELSE '' ) &&
|
||||
COND #( WHEN field_c = abap_true THEN 'C' ELSE '' ).
|
||||
CLEAR: field_a, field_b, field_c.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_4 INPUT.
|
||||
output_field_2 = 'module_4 was called because field_d was selected.'.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_5 INPUT.
|
||||
output_field_3 = 'module_5 was called because field_e and field_f were selected.'.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_f1 INPUT.
|
||||
"In this example, a demo object from the ABAP Keyword
|
||||
"Documentation examples is used.
|
||||
CALL FUNCTION 'HELP_OBJECT_SHOW'
|
||||
EXPORTING
|
||||
dokclass = 'TX'
|
||||
doklangu = sy-langu
|
||||
dokname = 'DEMO_FOR_F1_HELP'
|
||||
TABLES
|
||||
links = links.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_f4 INPUT.
|
||||
CALL FUNCTION 'DYNP_VALUES_READ'
|
||||
EXPORTING
|
||||
dyname = progname
|
||||
dynumb = dynnum
|
||||
translate_to_upper = 'X'
|
||||
TABLES
|
||||
dynpfields = dynpro_values.
|
||||
|
||||
field_value = dynpro_values[ 1 ].
|
||||
|
||||
SELECT carrid, connid
|
||||
FROM zdemo_abap_flsch
|
||||
WHERE carrid = @( CONV #( field_value-fieldvalue ) )
|
||||
INTO CORRESPONDING FIELDS OF TABLE @values_tab.
|
||||
|
||||
"Note: To save extra artifacts, this example goes without a dedicated DDIC
|
||||
"structure with which input help can be created comfortably. Hence, creating
|
||||
"a table manually for the field_tab parameter of the function module below.
|
||||
field_tab = VALUE #(
|
||||
( tabname = 'ZDEMO_ABAP_FLSCH' fieldname = 'CARRID' langu = 'E' position = '1'
|
||||
offset = '0' leng = '3' intlen = '6' outputlen = '3' datatype = 'CHAR' inttype = 'C' )
|
||||
( tabname = 'ZDEMO_ABAP_FLSCH' fieldname = 'CONNID' langu = 'E' position = '2'
|
||||
offset = '6' leng = '4' intlen = '8' outputlen = '4' datatype = 'NUMC' inttype = 'N' ) ).
|
||||
|
||||
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
|
||||
EXPORTING
|
||||
retfield = 'CONNID'
|
||||
dynpprog = progname
|
||||
dynpnr = dynnum
|
||||
dynprofield = 'CONN'
|
||||
value_org = 'S'
|
||||
window_title = 'Selection'
|
||||
TABLES
|
||||
value_tab = values_tab
|
||||
field_tab = field_tab.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_dropdown INPUT.
|
||||
SELECT DISTINCT carrid
|
||||
FROM zdemo_abap_flsch
|
||||
INTO CORRESPONDING FIELDS OF TABLE @carrid_list.
|
||||
|
||||
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
|
||||
EXPORTING
|
||||
retfield = 'CARRID'
|
||||
value_org = 'S'
|
||||
TABLES
|
||||
value_tab = carrid_list
|
||||
EXCEPTIONS
|
||||
parameter_error = 1
|
||||
no_values_found = 2
|
||||
OTHERS = 3.
|
||||
IF sy-subrc <> 0.
|
||||
carr = 'LH'.
|
||||
ENDIF.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_fill_table OUTPUT.
|
||||
TRY.
|
||||
zdemo_abap_flsch = itab_flights[ flights-current_line ].
|
||||
CATCH cx_sy_itab_line_not_found.
|
||||
RETURN.
|
||||
ENDTRY.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE module_read_table INPUT.
|
||||
lines = sy-loopc.
|
||||
MODIFY itab_flights FROM zdemo_abap_flsch INDEX flights-current_line.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE cancel INPUT.
|
||||
local_class=>cancel( ).
|
||||
ENDMODULE.
|
||||
2793
src/test_abap_cheat_sheets_classic/zdemo_abap_dynpro.prog.xml
Normal file
2793
src/test_abap_cheat_sheets_classic/zdemo_abap_dynpro.prog.xml
Normal file
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,3 @@
|
||||
FUNCTION-POOL ZDEMO_ABAP_FUGR. "MESSAGE-ID ..
|
||||
|
||||
* INCLUDE LZDEMO_ABAP_FUGRD... " Local class definition
|
||||
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>LZDEMO_ABAP_FUGRTOP</NAME>
|
||||
<DBAPL>S</DBAPL>
|
||||
<DBNA>D$</DBNA>
|
||||
<SUBC>I</SUBC>
|
||||
<APPL>S</APPL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<LDBNAME>D$S</LDBNAME>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
@@ -0,0 +1,15 @@
|
||||
*******************************************************************
|
||||
* System-defined Include-files. *
|
||||
*******************************************************************
|
||||
INCLUDE LZDEMO_ABAP_FUGRTOP. " Global Declarations
|
||||
INCLUDE LZDEMO_ABAP_FUGRUXX. " Function Modules
|
||||
|
||||
*******************************************************************
|
||||
* User-defined Include-files (if necessary). *
|
||||
*******************************************************************
|
||||
* INCLUDE LZDEMO_ABAP_FUGRF... " Subroutines
|
||||
* INCLUDE LZDEMO_ABAP_FUGRO... " PBO-Modules
|
||||
* INCLUDE LZDEMO_ABAP_FUGRI... " PAI-Modules
|
||||
* INCLUDE LZDEMO_ABAP_FUGRE... " Events
|
||||
* INCLUDE LZDEMO_ABAP_FUGRP... " Local class implement.
|
||||
* INCLUDE LZDEMO_ABAP_FUGRT99. " ABAP Unit tests
|
||||
@@ -0,0 +1,18 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>SAPLZDEMO_ABAP_FUGR</NAME>
|
||||
<DBAPL>S</DBAPL>
|
||||
<DBNA>D$</DBNA>
|
||||
<SUBC>F</SUBC>
|
||||
<APPL>S</APPL>
|
||||
<RLOAD>E</RLOAD>
|
||||
<FIXPT>X</FIXPT>
|
||||
<LDBNAME>D$S</LDBNAME>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
63
src/test_abap_cheat_sheets_classic/zdemo_abap_fugr.fugr.xml
Normal file
63
src/test_abap_cheat_sheets_classic/zdemo_abap_fugr.fugr.xml
Normal file
@@ -0,0 +1,63 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_FUGR" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<AREAT>Demo function group</AREAT>
|
||||
<INCLUDES>
|
||||
<SOBJ_NAME>LZDEMO_ABAP_FUGRTOP</SOBJ_NAME>
|
||||
<SOBJ_NAME>SAPLZDEMO_ABAP_FUGR</SOBJ_NAME>
|
||||
</INCLUDES>
|
||||
<FUNCTIONS>
|
||||
<item>
|
||||
<FUNCNAME>ZDEMO_ABAP_DELETE_FU</FUNCNAME>
|
||||
<UPDATE_TASK>1</UPDATE_TASK>
|
||||
<SHORT_TEXT>Demo update function module</SHORT_TEXT>
|
||||
</item>
|
||||
<item>
|
||||
<FUNCNAME>ZDEMO_ABAP_LOG_FU</FUNCNAME>
|
||||
<UPDATE_TASK>1</UPDATE_TASK>
|
||||
<SHORT_TEXT>Demo update function module</SHORT_TEXT>
|
||||
<IMPORT>
|
||||
<RSIMP>
|
||||
<PARAMETER>LOG</PARAMETER>
|
||||
<TYP>ZCL_DEMO_ABAP_SAP_LUW_HELPER=>LOG_TYPE</TYP>
|
||||
</RSIMP>
|
||||
<RSIMP>
|
||||
<PARAMETER>CAUSE_ERROR</PARAMETER>
|
||||
<DEFAULT>ABAP_FALSE</DEFAULT>
|
||||
<OPTIONAL>X</OPTIONAL>
|
||||
<TYP>ABAP_BOOL</TYP>
|
||||
</RSIMP>
|
||||
</IMPORT>
|
||||
<DOCUMENTATION>
|
||||
<RSFDO>
|
||||
<PARAMETER>LOG</PARAMETER>
|
||||
<KIND>P</KIND>
|
||||
</RSFDO>
|
||||
<RSFDO>
|
||||
<PARAMETER>CAUSE_ERROR</PARAMETER>
|
||||
<KIND>P</KIND>
|
||||
</RSFDO>
|
||||
</DOCUMENTATION>
|
||||
</item>
|
||||
<item>
|
||||
<FUNCNAME>ZDEMO_ABAP_MODIFY_FU</FUNCNAME>
|
||||
<UPDATE_TASK>1</UPDATE_TASK>
|
||||
<SHORT_TEXT>Demo update function module</SHORT_TEXT>
|
||||
<IMPORT>
|
||||
<RSIMP>
|
||||
<PARAMETER>VALUES</PARAMETER>
|
||||
<TYP>ZDEMO_ABAP_LUW_T</TYP>
|
||||
</RSIMP>
|
||||
</IMPORT>
|
||||
<DOCUMENTATION>
|
||||
<RSFDO>
|
||||
<PARAMETER>VALUES</PARAMETER>
|
||||
<KIND>P</KIND>
|
||||
</RSFDO>
|
||||
</DOCUMENTATION>
|
||||
</item>
|
||||
</FUNCTIONS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
@@ -0,0 +1,34 @@
|
||||
FUNCTION zdemo_abap_delete_fu.
|
||||
*"----------------------------------------------------------------------
|
||||
*"*"Update Function Module:
|
||||
*"
|
||||
*"*"Local Interface:
|
||||
*"----------------------------------------------------------------------
|
||||
|
||||
|
||||
DELETE FROM zdemo_abap_luw_t.
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries(
|
||||
VALUE #( ( id = 70
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_delete_fu'
|
||||
details = `Function module called`
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 71
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_delete_fu'
|
||||
details = zcl_demo_abap_sap_luw_helper=>get_work_process_info( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 72
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_delete_fu'
|
||||
details = `SAP LUW Key: ` && cl_system_transaction_state=>get_sap_luw_key( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 73
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_delete_fu'
|
||||
details = zcl_demo_abap_sap_luw_helper=>checking_transaction_state( )
|
||||
timestamp = utclong_current( ) ) ) ).
|
||||
|
||||
|
||||
ENDFUNCTION.
|
||||
@@ -0,0 +1,41 @@
|
||||
FUNCTION ZDEMO_ABAP_LOG_FU.
|
||||
*"----------------------------------------------------------------------
|
||||
*"*"Update Function Module:
|
||||
*"
|
||||
*"*"Local Interface:
|
||||
*" IMPORTING
|
||||
*" VALUE(LOG) TYPE ZCL_DEMO_ABAP_SAP_LUW_HELPER=>LOG_TYPE
|
||||
*" VALUE(CAUSE_ERROR) TYPE ABAP_BOOL DEFAULT ABAP_FALSE
|
||||
*"----------------------------------------------------------------------
|
||||
|
||||
|
||||
MODIFY zdemo_abap_logt FROM TABLE @log.
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries(
|
||||
VALUE #( ( id = 90
|
||||
context = `Function module`
|
||||
name = `zdemo_abap_log_fu`
|
||||
details = `Function module called`
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 91
|
||||
context = `Function module`
|
||||
name = `zdemo_abap_log_fu`
|
||||
details = zcl_demo_abap_sap_luw_helper=>get_work_process_info( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 92
|
||||
context = `Function module`
|
||||
name = `zdemo_abap_log_fu`
|
||||
details = `SAP LUW Key: ` && cl_system_transaction_state=>get_sap_luw_key( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 93
|
||||
context = `Function module`
|
||||
name = `zdemo_abap_log_fu`
|
||||
details = zcl_demo_abap_sap_luw_helper=>checking_transaction_state( )
|
||||
timestamp = utclong_current( ) ) ) ).
|
||||
|
||||
IF cause_error = abap_true.
|
||||
DATA(error_not_caught) = 1 / 0.
|
||||
ENDIF.
|
||||
|
||||
|
||||
ENDFUNCTION.
|
||||
@@ -0,0 +1,38 @@
|
||||
FUNCTION ZDEMO_ABAP_MODIFY_FU.
|
||||
*"----------------------------------------------------------------------
|
||||
*"*"Update Function Module:
|
||||
*"
|
||||
*"*"Local Interface:
|
||||
*" IMPORTING
|
||||
*" VALUE(VALUES) TYPE ZDEMO_ABAP_LUW_T
|
||||
*"----------------------------------------------------------------------
|
||||
|
||||
values-time_stamp = utclong_current( ).
|
||||
|
||||
MODIFY zdemo_abap_luw_t FROM @values.
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries(
|
||||
VALUE #( ( id = 80
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_modify_fu'
|
||||
details = `Function module called`
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 81
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_modify_fu'
|
||||
details = zcl_demo_abap_sap_luw_helper=>get_work_process_info( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 82
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_modify_fu'
|
||||
details = `SAP LUW Key: ` && cl_system_transaction_state=>get_sap_luw_key( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 83
|
||||
context = 'Function module'
|
||||
name = 'zdemo_abap_modify_fu'
|
||||
details = zcl_demo_abap_sap_luw_helper=>checking_transaction_state( )
|
||||
timestamp = utclong_current( ) ) ) ).
|
||||
|
||||
|
||||
|
||||
ENDFUNCTION.
|
||||
83
src/test_abap_cheat_sheets_classic/zdemo_abap_logt.tabl.xml
Normal file
83
src/test_abap_cheat_sheets_classic/zdemo_abap_logt.tabl.xml
Normal file
@@ -0,0 +1,83 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DD02V>
|
||||
<TABNAME>ZDEMO_ABAP_LOGT</TABNAME>
|
||||
<DDLANGUAGE>E</DDLANGUAGE>
|
||||
<TABCLASS>TRANSP</TABCLASS>
|
||||
<CLIDEP>X</CLIDEP>
|
||||
<DDTEXT>Log table</DDTEXT>
|
||||
<MASTERLANG>E</MASTERLANG>
|
||||
<CONTFLAG>A</CONTFLAG>
|
||||
<EXCLASS>1</EXCLASS>
|
||||
</DD02V>
|
||||
<DD09L>
|
||||
<TABNAME>ZDEMO_ABAP_LOGT</TABNAME>
|
||||
<AS4LOCAL>A</AS4LOCAL>
|
||||
<TABKAT>0</TABKAT>
|
||||
<TABART>APPL0</TABART>
|
||||
<BUFALLOW>N</BUFALLOW>
|
||||
</DD09L>
|
||||
<DD03P_TABLE>
|
||||
<DD03P>
|
||||
<FIELDNAME>CLIENT</FIELDNAME>
|
||||
<KEYFLAG>X</KEYFLAG>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000006</INTLEN>
|
||||
<NOTNULL>X</NOTNULL>
|
||||
<DATATYPE>CLNT</DATATYPE>
|
||||
<LENG>000003</LENG>
|
||||
<MASK> CLNT</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>ID</FIELDNAME>
|
||||
<KEYFLAG>X</KEYFLAG>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>X</INTTYPE>
|
||||
<INTLEN>000004</INTLEN>
|
||||
<NOTNULL>X</NOTNULL>
|
||||
<DATATYPE>INT4</DATATYPE>
|
||||
<LENG>000010</LENG>
|
||||
<MASK> INT4</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>CONTEXT</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000030</INTLEN>
|
||||
<DATATYPE>CHAR</DATATYPE>
|
||||
<LENG>000015</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>NAME</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000040</INTLEN>
|
||||
<DATATYPE>CHAR</DATATYPE>
|
||||
<LENG>000020</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>DETAILS</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>g</INTTYPE>
|
||||
<INTLEN>000008</INTLEN>
|
||||
<DATATYPE>STRG</DATATYPE>
|
||||
<MASK> STRG</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>TIMESTAMP</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>p</INTTYPE>
|
||||
<INTLEN>000008</INTLEN>
|
||||
<DATATYPE>UTCL</DATATYPE>
|
||||
<LENG>000027</LENG>
|
||||
<MASK> UTCL</MASK>
|
||||
</DD03P>
|
||||
</DD03P_TABLE>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
75
src/test_abap_cheat_sheets_classic/zdemo_abap_luw_t.tabl.xml
Normal file
75
src/test_abap_cheat_sheets_classic/zdemo_abap_luw_t.tabl.xml
Normal file
@@ -0,0 +1,75 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<DD02V>
|
||||
<TABNAME>ZDEMO_ABAP_LUW_T</TABNAME>
|
||||
<DDLANGUAGE>E</DDLANGUAGE>
|
||||
<TABCLASS>TRANSP</TABCLASS>
|
||||
<CLIDEP>X</CLIDEP>
|
||||
<DDTEXT>Demo database table</DDTEXT>
|
||||
<MASTERLANG>E</MASTERLANG>
|
||||
<CONTFLAG>A</CONTFLAG>
|
||||
<EXCLASS>1</EXCLASS>
|
||||
</DD02V>
|
||||
<DD09L>
|
||||
<TABNAME>ZDEMO_ABAP_LUW_T</TABNAME>
|
||||
<AS4LOCAL>A</AS4LOCAL>
|
||||
<TABKAT>0</TABKAT>
|
||||
<TABART>APPL0</TABART>
|
||||
<BUFALLOW>N</BUFALLOW>
|
||||
</DD09L>
|
||||
<DD03P_TABLE>
|
||||
<DD03P>
|
||||
<FIELDNAME>CLIENT</FIELDNAME>
|
||||
<KEYFLAG>X</KEYFLAG>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000006</INTLEN>
|
||||
<NOTNULL>X</NOTNULL>
|
||||
<DATATYPE>CLNT</DATATYPE>
|
||||
<LENG>000003</LENG>
|
||||
<MASK> CLNT</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>KEY_FIELD</FIELDNAME>
|
||||
<KEYFLAG>X</KEYFLAG>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>X</INTTYPE>
|
||||
<INTLEN>000004</INTLEN>
|
||||
<NOTNULL>X</NOTNULL>
|
||||
<DATATYPE>INT4</DATATYPE>
|
||||
<LENG>000010</LENG>
|
||||
<MASK> INT4</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>CH</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000020</INTLEN>
|
||||
<DATATYPE>CHAR</DATATYPE>
|
||||
<LENG>000010</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>NUM</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>X</INTTYPE>
|
||||
<INTLEN>000004</INTLEN>
|
||||
<DATATYPE>INT4</DATATYPE>
|
||||
<LENG>000010</LENG>
|
||||
<MASK> INT4</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>TIME_STAMP</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>p</INTTYPE>
|
||||
<INTLEN>000008</INTLEN>
|
||||
<DATATYPE>UTCL</DATATYPE>
|
||||
<LENG>000027</LENG>
|
||||
<MASK> UTCL</MASK>
|
||||
</DD03P>
|
||||
</DD03P_TABLE>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
513
src/test_abap_cheat_sheets_classic/zdemo_abap_sap_luw.prog.abap
Normal file
513
src/test_abap_cheat_sheets_classic/zdemo_abap_sap_luw.prog.abap
Normal file
@@ -0,0 +1,513 @@
|
||||
*&---------------------------------------------------------------------*
|
||||
*& ABAP cheat sheet: SAP LUW
|
||||
*&
|
||||
*&-------------------------- PURPOSE ----------------------------------*
|
||||
*& - Example to demonstrate ABAP syntax in the context of the SAP LUW.
|
||||
*& - Topics covered: Using update function modules and subroutines as
|
||||
*& bundling techniques, synchronous/asynchronous/local updates
|
||||
*&
|
||||
*&----------------------- GETTING STARTED -----------------------------*
|
||||
*& - Open the program with the ABAP development tools for Eclipse (ADT).
|
||||
*& - Choose F8 to run the program.
|
||||
*& - Select the radio buttons and choose 'Go' to progress with the program.
|
||||
*&
|
||||
*&----------------------------- NOTE -----------------------------------*
|
||||
*&* The code presented in this class is intended only to support the ABAP
|
||||
*&* cheat sheets. It is not intended for direct use in a production system
|
||||
*&* environment. The code examples in the ABAP cheat sheets are primarily
|
||||
*&* intended to provide a better explanation and visualization of the
|
||||
*&* syntax and semantics of ABAP statements, not to solve concrete
|
||||
*&* programming tasks. For production application programs, you should
|
||||
*&* always work out your own solution for each individual case. There is
|
||||
*&* no guarantee for the correctness or completeness of the code.
|
||||
*&* Furthermore, there is no legal responsibility or liability for any
|
||||
*&* errors or their consequences that may occur when using the the example
|
||||
*&* code.
|
||||
*&---------------------------------------------------------------------*
|
||||
REPORT zdemo_abap_sap_luw.
|
||||
|
||||
DATA: tab_struc TYPE zdemo_abap_luw_t,
|
||||
ok_code LIKE sy-ucomm,
|
||||
save_ok LIKE sy-ucomm,
|
||||
del_insert TYPE abap_bool,
|
||||
perform TYPE abap_bool,
|
||||
commit TYPE abap_bool,
|
||||
commit_wait TYPE abap_bool,
|
||||
local_update TYPE abap_bool,
|
||||
err TYPE abap_bool,
|
||||
rollback TYPE abap_bool,
|
||||
terminate TYPE abap_bool,
|
||||
dynnr TYPE sy-dynnr,
|
||||
counter TYPE i,
|
||||
log_itab TYPE zcl_demo_abap_sap_luw_helper=>log_type.
|
||||
|
||||
CLASS lcl DEFINITION.
|
||||
PUBLIC SECTION.
|
||||
|
||||
TYPES: BEGIN OF request4log,
|
||||
log TYPE zdemo_abap_logt,
|
||||
called TYPE abap_bool,
|
||||
wp_info TYPE abap_bool,
|
||||
luw_key TYPE abap_bool,
|
||||
tx_state TYPE abap_bool,
|
||||
END OF request4log.
|
||||
|
||||
CLASS-METHODS: prep,
|
||||
create_log_entries IMPORTING req TYPE request4log.
|
||||
ENDCLASS.
|
||||
|
||||
CLASS lcl IMPLEMENTATION.
|
||||
|
||||
METHOD prep.
|
||||
DELETE FROM zdemo_abap_luw_t.
|
||||
|
||||
INSERT zdemo_abap_luw_t FROM TABLE @( VALUE #(
|
||||
( key_field = 1
|
||||
ch = 'DEMO DATA'
|
||||
num = 11
|
||||
time_stamp = utclong_current( ) )
|
||||
( key_field = 2
|
||||
ch = 'THAT WAS'
|
||||
num = 22
|
||||
time_stamp = utclong_current( ) )
|
||||
( key_field = 3
|
||||
ch = 'CREATED'
|
||||
num = 33
|
||||
time_stamp = utclong_current( ) )
|
||||
( key_field = 4
|
||||
ch = 'IN ADVANCE'
|
||||
num = 44
|
||||
time_stamp = utclong_current( ) ) ) ).
|
||||
|
||||
DELETE FROM zdemo_abap_logt.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD create_log_entries.
|
||||
|
||||
IF req-called = abap_true.
|
||||
counter += 1.
|
||||
INSERT VALUE #( id = counter
|
||||
context = req-log-context
|
||||
name = req-log-name
|
||||
details = `Called!`
|
||||
timestamp = utclong_current( )
|
||||
) INTO TABLE log_itab.
|
||||
ENDIF.
|
||||
|
||||
IF req-luw_key = abap_true.
|
||||
counter += 1.
|
||||
INSERT VALUE #( id = counter
|
||||
context = req-log-context
|
||||
name = req-log-name
|
||||
details = `SAP LUW key: ` &&
|
||||
cl_system_transaction_state=>get_sap_luw_key( )
|
||||
timestamp = utclong_current( )
|
||||
) INTO TABLE log_itab.
|
||||
|
||||
ENDIF.
|
||||
|
||||
IF req-wp_info = abap_true.
|
||||
counter += 1.
|
||||
INSERT VALUE #( id = counter
|
||||
context = req-log-context
|
||||
name = req-log-name
|
||||
details =
|
||||
zcl_demo_abap_sap_luw_helper=>get_work_process_info( )
|
||||
timestamp = utclong_current( )
|
||||
) INTO TABLE log_itab.
|
||||
ENDIF.
|
||||
|
||||
IF req-tx_state = abap_true.
|
||||
counter += 1.
|
||||
INSERT VALUE #(
|
||||
id = counter
|
||||
context = req-log-context
|
||||
name = req-log-name
|
||||
details =
|
||||
zcl_demo_abap_sap_luw_helper=>checking_transaction_state( )
|
||||
timestamp = utclong_current( )
|
||||
) INTO TABLE log_itab.
|
||||
ENDIF.
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
||||
|
||||
FORM delete.
|
||||
zcl_demo_abap_sap_luw_helper=>subr_delete( ).
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'Subroutine'
|
||||
name = 'delete' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
ENDFORM.
|
||||
|
||||
FORM insert.
|
||||
|
||||
DATA values TYPE zdemo_abap_luw_t.
|
||||
IMPORT values = values FROM MEMORY ID 'DEMO_INSERT'.
|
||||
IF sy-subrc = 0.
|
||||
values-time_stamp = utclong_current( ).
|
||||
zcl_demo_abap_sap_luw_helper=>subr_insert( values ).
|
||||
ENDIF.
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'Subroutine'
|
||||
name = 'insert' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
ENDFORM.
|
||||
|
||||
FORM update_log.
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'Subroutine'
|
||||
name = 'update_log' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>subr_update_log( log_itab ).
|
||||
ENDFORM.
|
||||
|
||||
FORM call_on_rollback.
|
||||
|
||||
"No implementation here. Only to demonstrate that the
|
||||
"subroutine is called in the event of triggering a
|
||||
"rollback.
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'Subroutine'
|
||||
name = 'call_on_rollback' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true ) ).
|
||||
ENDFORM.
|
||||
|
||||
END-OF-SELECTION.
|
||||
|
||||
lcl=>prep( ).
|
||||
|
||||
counter += 1.
|
||||
INSERT VALUE #(
|
||||
id = counter
|
||||
context = '-'
|
||||
name = '-'
|
||||
details = |Program { sy-repid } has been started.| &&
|
||||
`The first dynpro is about to be called.`
|
||||
timestamp = utclong_current( )
|
||||
) INTO TABLE log_itab.
|
||||
|
||||
counter += 1.
|
||||
INSERT VALUE #( id = counter
|
||||
context = '-'
|
||||
name = '-'
|
||||
details = `SAP LUW Key: ` &&
|
||||
cl_system_transaction_state=>get_sap_luw_key( )
|
||||
timestamp = utclong_current( )
|
||||
) INTO TABLE log_itab.
|
||||
|
||||
CALL SCREEN 9750.
|
||||
|
||||
**********************************************************************
|
||||
|
||||
***************** Dialog modules for 9750 ****************************
|
||||
|
||||
MODULE status_9750 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9750'.
|
||||
SET TITLEBAR 'TITLE9750'.
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PBO'
|
||||
name = 'status_9750' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>cc_alv_display( 'DBENTRIES' ).
|
||||
dynnr = sy-dynnr.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9750 INPUT.
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PAI'
|
||||
name = 'user_command_9750' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'GO' OR 'ENTER'.
|
||||
|
||||
IF del_insert = abap_true.
|
||||
CALL FUNCTION 'ZDEMO_ABAP_DELETE_FU' IN UPDATE TASK.
|
||||
|
||||
MESSAGE `A function module has been registered ` &&
|
||||
`that clears the database table.` TYPE 'I'.
|
||||
|
||||
ELSEIF local_update = abap_true.
|
||||
|
||||
SET UPDATE TASK LOCAL.
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PAI'
|
||||
name = 'user_command_9750' )
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
CALL FUNCTION 'ZDEMO_ABAP_DELETE_FU' IN UPDATE TASK.
|
||||
|
||||
MESSAGE `Local update has been activated. A function ` &&
|
||||
`module has been registered that clears the database table.` &&
|
||||
` No matter if you choose COMMIT WORK or COMMIT WORK AND ` &&
|
||||
`WAIT in the next step, it will be a synchronous update.` TYPE 'I'.
|
||||
|
||||
ELSEIF perform = abap_true.
|
||||
|
||||
PERFORM delete ON COMMIT.
|
||||
PERFORM call_on_rollback ON ROLLBACK.
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PAI'
|
||||
name = 'user_command_9750' )
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
MESSAGE `Subroutines have been registered for commit ` &&
|
||||
`and rollback.` TYPE 'I'.
|
||||
|
||||
ENDIF.
|
||||
|
||||
WHEN OTHERS.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
ENDMODULE.
|
||||
|
||||
***************** Dialog modules for 9760 ****************************
|
||||
|
||||
MODULE status_9760 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9760'.
|
||||
SET TITLEBAR 'TITLE9760'.
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PBO'
|
||||
name = 'status_9760' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
dynnr = sy-dynnr.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9760 INPUT.
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PAI'
|
||||
name = 'user_command_9760' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'GO' OR 'ENTER'.
|
||||
|
||||
IF perform = abap_true.
|
||||
"Registered subroutines cannot have any parameter interface.
|
||||
"Therefore, data can only be passed through external interfaces,
|
||||
"for example, the ABAP memory.
|
||||
EXPORT values = tab_struc TO MEMORY ID 'DEMO_INSERT'.
|
||||
PERFORM insert ON COMMIT.
|
||||
|
||||
MESSAGE `A subroutine that inserts the entries in the ` &&
|
||||
`database table has been registered. ` &&
|
||||
`When you select a commit option in the next step, ` &&
|
||||
`COMMIT WORK and COMMIT WORK AND WAIT have ` &&
|
||||
`the same effect. The subroutines are executed in ` &&
|
||||
`the current work process in this case.` TYPE 'I'.
|
||||
ELSE.
|
||||
CALL FUNCTION 'ZDEMO_ABAP_MODIFY_FU' IN UPDATE TASK
|
||||
EXPORTING
|
||||
values = tab_struc.
|
||||
MESSAGE `An update function module that inserts the ` &&
|
||||
`entries in the database table has ` &&
|
||||
`been registered.` TYPE 'I'.
|
||||
ENDIF.
|
||||
WHEN OTHERS.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
ENDMODULE.
|
||||
|
||||
***************** Dialog modules for 9770 ****************************
|
||||
|
||||
MODULE status_9770 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9770'.
|
||||
SET TITLEBAR 'TITLE9770'.
|
||||
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PBO'
|
||||
name = 'status_9770' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
dynnr = sy-dynnr.
|
||||
|
||||
IF perform = 'X'.
|
||||
LOOP AT SCREEN INTO DATA(scr).
|
||||
IF scr-name = 'EXCURSION_WP'
|
||||
OR scr-name = 'WAIT'
|
||||
OR scr-name = 'FAIL_LUW'
|
||||
OR scr-name = 'ERR'
|
||||
OR scr-name = 'TERMINATE'
|
||||
OR scr-name = 'ERROR_A'.
|
||||
scr-invisible = '1'.
|
||||
MODIFY SCREEN FROM scr.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9770 INPUT.
|
||||
lcl=>create_log_entries(
|
||||
VALUE #( log = VALUE #( context = 'PAI'
|
||||
name = 'user_command_9770' )
|
||||
called = abap_true
|
||||
luw_key = abap_true
|
||||
tx_state = abap_true
|
||||
wp_info = abap_true ) ).
|
||||
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
|
||||
WHEN 'GO' OR 'ENTER' OR 'OK'.
|
||||
|
||||
CASE 'X'.
|
||||
|
||||
WHEN commit.
|
||||
IF perform = abap_false.
|
||||
CALL FUNCTION 'ZDEMO_ABAP_LOG_FU' IN UPDATE TASK
|
||||
EXPORTING
|
||||
log = log_itab.
|
||||
MESSAGE `An update function module that inserts ` &&
|
||||
`entries for the log has been registered. ` &&
|
||||
`COMMIT WORK is about to be executed.` TYPE 'I'.
|
||||
ELSE.
|
||||
PERFORM update_log ON COMMIT.
|
||||
|
||||
MESSAGE `A subroutine that inserts entries for the ` &&
|
||||
`log has been registered ` &&
|
||||
`COMMIT WORK is about to be executed.` TYPE 'I'.
|
||||
ENDIF.
|
||||
|
||||
COMMIT WORK.
|
||||
|
||||
SELECT COUNT(*) FROM zdemo_abap_luw_t INTO @DATA(entries).
|
||||
|
||||
MESSAGE `COMMIT WORK has been executed. Current ` &&
|
||||
`number of database table entries: ` &&
|
||||
entries &&
|
||||
`. If it is 4 and not 1, the update will be done ` &&
|
||||
`asynchronously.` TYPE 'I'.
|
||||
WHEN commit_wait.
|
||||
IF perform = abap_false.
|
||||
CALL FUNCTION 'ZDEMO_ABAP_LOG_FU' IN UPDATE TASK
|
||||
EXPORTING
|
||||
log = log_itab.
|
||||
MESSAGE `An update function module that inserts ` &&
|
||||
`entries for the log has been registered. ` &&
|
||||
`COMMIT WORK AND WAIT is about to be executed.` TYPE 'I'.
|
||||
ELSE.
|
||||
PERFORM update_log ON COMMIT.
|
||||
|
||||
MESSAGE `A subroutine that inserts entries for the ` &&
|
||||
`log has been registered ` &&
|
||||
`COMMIT WORK AND WAIT is about to be executed.` TYPE 'I'.
|
||||
ENDIF.
|
||||
|
||||
COMMIT WORK AND WAIT.
|
||||
|
||||
SELECT COUNT(*) FROM zdemo_abap_luw_t INTO @entries.
|
||||
|
||||
MESSAGE `COMMIT WORK AND WAIT has been executed. Current ` &&
|
||||
`number of database table entries: ` &&
|
||||
entries &&
|
||||
`. If it is 1, the update has been done synchronously.` TYPE 'I'.
|
||||
WHEN rollback.
|
||||
ROLLBACK WORK.
|
||||
|
||||
MESSAGE `ROLLBACK WORK has been executed. A rollback has ` &&
|
||||
`been triggered. The original database table content ` &&
|
||||
`should be displayed.`
|
||||
TYPE 'I'.
|
||||
|
||||
MESSAGE `Note: As an exception, and only for this demo ` &&
|
||||
`example, the sample implementation includes a ` &&
|
||||
`database update to the log table after the ` &&
|
||||
`table after the rollback, just to show the progress of the ` &&
|
||||
`execution up to that point.` TYPE 'I' DISPLAY LIKE 'E'.
|
||||
|
||||
"Update log table
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries( log_itab ).
|
||||
|
||||
"Log information for triggering a rollback
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries(
|
||||
VALUE #( ( id = 99
|
||||
context = '-'
|
||||
name = '-'
|
||||
details = `Rollback triggered`
|
||||
timestamp = utclong_current( ) ) ) ).
|
||||
WHEN err.
|
||||
CALL FUNCTION 'ZDEMO_ABAP_LOG_FU' IN UPDATE TASK
|
||||
EXPORTING
|
||||
log = log_itab
|
||||
cause_error = abap_true.
|
||||
|
||||
IF local_update = abap_true.
|
||||
MESSAGE `A function module has been registered that ` &&
|
||||
`causes an error (zero division). COMMIT WORK AND WAIT ` &&
|
||||
`is about to be executed. You are directly informed ` &&
|
||||
`about the error and the program is terminated. All ` &&
|
||||
`changes are implicitly rolled back. You can check ` &&
|
||||
`transaction ST22 for the error caused.` TYPE 'I'.
|
||||
ELSE.
|
||||
MESSAGE `Function module was registered that ` &&
|
||||
`causes an error (zero division). COMMIT WORK AND WAIT` &&
|
||||
` will be excetued. All changes are implicitly rolled back.` &&
|
||||
` When you start over or leave the example in the next dynpro, ` &&
|
||||
`you should be informed about the issue in the Business Workplace. ` &&
|
||||
`Also check ST22.` TYPE 'I'.
|
||||
ENDIF.
|
||||
|
||||
COMMIT WORK AND WAIT.
|
||||
|
||||
WHEN terminate.
|
||||
MESSAGE `This is an error message of type A. ` &&
|
||||
`It termiantes the program. All changes are ` &&
|
||||
`implicitly rolled back. ` &&
|
||||
`You may want to check the database table entries of ` &&
|
||||
`the example that remain unchanged.` TYPE 'A'.
|
||||
ENDCASE.
|
||||
|
||||
WHEN OTHERS.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
|
||||
SUBMIT ('ZDEMO_ABAP_SAP_LUW_DISPL').
|
||||
ENDMODULE.
|
||||
864
src/test_abap_cheat_sheets_classic/zdemo_abap_sap_luw.prog.xml
Normal file
864
src/test_abap_cheat_sheets_classic/zdemo_abap_sap_luw.prog.xml
Normal file
@@ -0,0 +1,864 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_ABAP_SAP_LUW</NAME>
|
||||
<DBAPL>S</DBAPL>
|
||||
<SUBC>1</SUBC>
|
||||
<FIXPT>X</FIXPT>
|
||||
<LDBNAME>D$S</LDBNAME>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<DYNPROS>
|
||||
<item>
|
||||
<HEADER>
|
||||
<PROGRAM>ZDEMO_ABAP_SAP_LUW</PROGRAM>
|
||||
<SCREEN>9750</SCREEN>
|
||||
<LANGUAGE>E</LANGUAGE>
|
||||
<DESCRIPT>Delete database table entries</DESCRIPT>
|
||||
<TYPE>N</TYPE>
|
||||
<NEXTSCREEN>9760</NEXTSCREEN>
|
||||
<LINES>027</LINES>
|
||||
<COLUMNS>121</COLUMNS>
|
||||
</HEADER>
|
||||
<CONTAINERS>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>SCREEN</TYPE>
|
||||
<NAME>SCREEN</NAME>
|
||||
</RPY_DYCATT>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>RADIOGROUP</TYPE>
|
||||
<NAME>%A_DEL_INSERT</NAME>
|
||||
<ELEMENT_OF>SCREEN</ELEMENT_OF>
|
||||
<LINE>006</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>076</LENGTH>
|
||||
<HEIGHT>003</HEIGHT>
|
||||
</RPY_DYCATT>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>CUST_CTRL</TYPE>
|
||||
<NAME>DBENTRIES</NAME>
|
||||
<ELEMENT_OF>SCREEN</ELEMENT_OF>
|
||||
<LINE>012</LINE>
|
||||
<COLUMN>005</COLUMN>
|
||||
<LENGTH>068</LENGTH>
|
||||
<HEIGHT>007</HEIGHT>
|
||||
</RPY_DYCATT>
|
||||
</CONTAINERS>
|
||||
<FIELDS>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX1</NAME>
|
||||
<TEXT>The_SAP_LUW_is_started._In_this_example,_all_the_entries_in_a_database_table_(see_below)_are_to_be_deleted.</TEXT>
|
||||
<LINE>002</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>107</LENGTH>
|
||||
<VISLENGTH>107</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX2</NAME>
|
||||
<TEXT>The_ABAP_SQL_statement_is_implemented_in_an_update_function_module_and_a_subroutine._</TEXT>
|
||||
<LINE>003</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>085</LENGTH>
|
||||
<VISLENGTH>085</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX3</NAME>
|
||||
<TEXT>Choose_one_of_the_following_options:</TEXT>
|
||||
<LINE>004</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>036</LENGTH>
|
||||
<VISLENGTH>036</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX4</NAME>
|
||||
<TEXT>Current_database_table_entries:</TEXT>
|
||||
<LINE>010</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>031</LENGTH>
|
||||
<VISLENGTH>031</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX5</NAME>
|
||||
<TEXT>Dynpro_number:</TEXT>
|
||||
<LINE>021</LINE>
|
||||
<COLUMN>005</COLUMN>
|
||||
<LENGTH>014</LENGTH>
|
||||
<VISLENGTH>014</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEMPLATE</TYPE>
|
||||
<NAME>DYNNR</NAME>
|
||||
<TEXT>___________</TEXT>
|
||||
<LINE>021</LINE>
|
||||
<COLUMN>021</COLUMN>
|
||||
<LENGTH>011</LENGTH>
|
||||
<VISLENGTH>011</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
<OUTPUTONLY>X</OUTPUTONLY>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>OKCODE</TYPE>
|
||||
<NAME>OK_CODE</NAME>
|
||||
<TEXT>____________________</TEXT>
|
||||
<LENGTH>020</LENGTH>
|
||||
<VISLENGTH>020</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_DEL_INSERT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>DEL_INSERT</NAME>
|
||||
<TEXT>Use_update_task_(CALL_FUNCTION_..._IN_UPDATE_TASK_statement)</TEXT>
|
||||
<LINE>006</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>062</LENGTH>
|
||||
<VISLENGTH>062</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_DEL_INSERT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>LOCAL_UPDATE</NAME>
|
||||
<TEXT>Use_update_task_and_perform_local_update_(SET_UPDATE_TASK_LOCAL_statement)</TEXT>
|
||||
<LINE>007</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>076</LENGTH>
|
||||
<VISLENGTH>076</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_DEL_INSERT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>PERFORM</NAME>
|
||||
<TEXT>Use_subroutines_(PERFORM_statement)</TEXT>
|
||||
<LINE>008</LINE>
|
||||
<COLUMN>004</COLUMN>
|
||||
<LENGTH>037</LENGTH>
|
||||
<VISLENGTH>037</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
</FIELDS>
|
||||
<FLOW_LOGIC>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS BEFORE OUTPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE STATUS_9750.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW/>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS AFTER INPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE USER_COMMAND_9750.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
</FLOW_LOGIC>
|
||||
</item>
|
||||
<item>
|
||||
<HEADER>
|
||||
<PROGRAM>ZDEMO_ABAP_SAP_LUW</PROGRAM>
|
||||
<SCREEN>9760</SCREEN>
|
||||
<LANGUAGE>E</LANGUAGE>
|
||||
<DESCRIPT>Create database table entry</DESCRIPT>
|
||||
<TYPE>N</TYPE>
|
||||
<NEXTSCREEN>9770</NEXTSCREEN>
|
||||
<LINES>027</LINES>
|
||||
<COLUMNS>121</COLUMNS>
|
||||
</HEADER>
|
||||
<CONTAINERS>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>SCREEN</TYPE>
|
||||
<NAME>SCREEN</NAME>
|
||||
</RPY_DYCATT>
|
||||
</CONTAINERS>
|
||||
<FIELDS>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX7</NAME>
|
||||
<TEXT>To_create_a_database_table_entry,_make_entries_in_the_following_input_fields:</TEXT>
|
||||
<LINE>002</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>077</LENGTH>
|
||||
<VISLENGTH>077</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX8</NAME>
|
||||
<TEXT>KEY_FIELD</TEXT>
|
||||
<LINE>004</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>009</LENGTH>
|
||||
<VISLENGTH>009</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
<LABELLEFT>X</LABELLEFT>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEMPLATE</TYPE>
|
||||
<NAME>TAB_STRUC-KEY_FIELD</NAME>
|
||||
<TEXT>_______.__</TEXT>
|
||||
<LINE>004</LINE>
|
||||
<COLUMN>015</COLUMN>
|
||||
<LENGTH>010</LENGTH>
|
||||
<VISLENGTH>010</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>INT4</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX11</NAME>
|
||||
<TEXT>Type_i</TEXT>
|
||||
<LINE>004</LINE>
|
||||
<COLUMN>028</COLUMN>
|
||||
<LENGTH>006</LENGTH>
|
||||
<VISLENGTH>006</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX9</NAME>
|
||||
<TEXT>CH</TEXT>
|
||||
<LINE>006</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>002</LENGTH>
|
||||
<VISLENGTH>002</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
<LABELLEFT>X</LABELLEFT>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEMPLATE</TYPE>
|
||||
<NAME>TAB_STRUC-CH</NAME>
|
||||
<TEXT>__________</TEXT>
|
||||
<LINE>006</LINE>
|
||||
<COLUMN>015</COLUMN>
|
||||
<LENGTH>010</LENGTH>
|
||||
<VISLENGTH>010</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX12</NAME>
|
||||
<TEXT>Type_c_length_10</TEXT>
|
||||
<LINE>006</LINE>
|
||||
<COLUMN>028</COLUMN>
|
||||
<LENGTH>016</LENGTH>
|
||||
<VISLENGTH>016</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX10</NAME>
|
||||
<TEXT>NUM</TEXT>
|
||||
<LINE>008</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>003</LENGTH>
|
||||
<VISLENGTH>003</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
<LABELLEFT>X</LABELLEFT>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEMPLATE</TYPE>
|
||||
<NAME>TAB_STRUC-NUM</NAME>
|
||||
<TEXT>_______.__</TEXT>
|
||||
<LINE>008</LINE>
|
||||
<COLUMN>015</COLUMN>
|
||||
<LENGTH>010</LENGTH>
|
||||
<VISLENGTH>010</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>INT4</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX13</NAME>
|
||||
<TEXT>Type_i</TEXT>
|
||||
<LINE>008</LINE>
|
||||
<COLUMN>028</COLUMN>
|
||||
<LENGTH>006</LENGTH>
|
||||
<VISLENGTH>006</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX14</NAME>
|
||||
<TEXT>Dynpro_number:</TEXT>
|
||||
<LINE>011</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>014</LENGTH>
|
||||
<VISLENGTH>014</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEMPLATE</TYPE>
|
||||
<NAME>DYNNR</NAME>
|
||||
<TEXT>___________</TEXT>
|
||||
<LINE>011</LINE>
|
||||
<COLUMN>019</COLUMN>
|
||||
<LENGTH>011</LENGTH>
|
||||
<VISLENGTH>011</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
<OUTPUTONLY>X</OUTPUTONLY>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>OKCODE</TYPE>
|
||||
<NAME>OK_CODE</NAME>
|
||||
<TEXT>____________________</TEXT>
|
||||
<LENGTH>020</LENGTH>
|
||||
<VISLENGTH>020</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
</FIELDS>
|
||||
<FLOW_LOGIC>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS BEFORE OUTPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE STATUS_9760.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW/>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS AFTER INPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE USER_COMMAND_9760.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
</FLOW_LOGIC>
|
||||
</item>
|
||||
<item>
|
||||
<HEADER>
|
||||
<PROGRAM>ZDEMO_ABAP_SAP_LUW</PROGRAM>
|
||||
<SCREEN>9770</SCREEN>
|
||||
<LANGUAGE>E</LANGUAGE>
|
||||
<DESCRIPT>End SAP LUW</DESCRIPT>
|
||||
<TYPE>N</TYPE>
|
||||
<NEXTSCREEN>0000</NEXTSCREEN>
|
||||
<LINES>027</LINES>
|
||||
<COLUMNS>121</COLUMNS>
|
||||
</HEADER>
|
||||
<CONTAINERS>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>SCREEN</TYPE>
|
||||
<NAME>SCREEN</NAME>
|
||||
</RPY_DYCATT>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>RADIOGROUP</TYPE>
|
||||
<NAME>%A_COMMIT</NAME>
|
||||
<ELEMENT_OF>SCREEN</ELEMENT_OF>
|
||||
<LINE>004</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>048</LENGTH>
|
||||
<HEIGHT>005</HEIGHT>
|
||||
</RPY_DYCATT>
|
||||
</CONTAINERS>
|
||||
<FIELDS>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX6</NAME>
|
||||
<TEXT>Select_one_of_the_following_options_to_proceed:</TEXT>
|
||||
<LINE>002</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>047</LENGTH>
|
||||
<VISLENGTH>047</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
<LABELLEFT>X</LABELLEFT>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>%#AUTOTEXT009</NAME>
|
||||
<TEXT>Dynpro_number:</TEXT>
|
||||
<LINE>012</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>014</LENGTH>
|
||||
<VISLENGTH>014</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEMPLATE</TYPE>
|
||||
<NAME>DYNNR</NAME>
|
||||
<TEXT>___________</TEXT>
|
||||
<LINE>012</LINE>
|
||||
<COLUMN>018</COLUMN>
|
||||
<LENGTH>011</LENGTH>
|
||||
<VISLENGTH>011</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
<OUTPUTONLY>X</OUTPUTONLY>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>OKCODE</TYPE>
|
||||
<NAME>OK_CODE</NAME>
|
||||
<TEXT>____________________</TEXT>
|
||||
<LENGTH>020</LENGTH>
|
||||
<VISLENGTH>020</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_COMMIT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>COMMIT</NAME>
|
||||
<TEXT>Asynchronous_update_with_COMMIT_WORK</TEXT>
|
||||
<LINE>004</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>038</LENGTH>
|
||||
<VISLENGTH>038</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<GROUP1>1</GROUP1>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_COMMIT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>COMMIT_WAIT</NAME>
|
||||
<TEXT>Synchronous_update_with_COMMIT_WORK_AND_WAIT</TEXT>
|
||||
<LINE>005</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>046</LENGTH>
|
||||
<VISLENGTH>046</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<GROUP1>1</GROUP1>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_COMMIT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>ROLLBACK</NAME>
|
||||
<TEXT>Rollback_changes_using_ROLLBACK_WORK</TEXT>
|
||||
<LINE>006</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>038</LENGTH>
|
||||
<VISLENGTH>038</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_COMMIT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>ERR</NAME>
|
||||
<TEXT>Cause_a_failure_in_the_current_SAP_LUW</TEXT>
|
||||
<LINE>007</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>040</LENGTH>
|
||||
<VISLENGTH>040</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>RADIOGROUP</CONT_TYPE>
|
||||
<CONT_NAME>%A_COMMIT</CONT_NAME>
|
||||
<TYPE>RADIO</TYPE>
|
||||
<NAME>TERMINATE</NAME>
|
||||
<TEXT>Terminate_program_with_error_message_of_type_A</TEXT>
|
||||
<LINE>008</LINE>
|
||||
<COLUMN>003</COLUMN>
|
||||
<LENGTH>048</LENGTH>
|
||||
<VISLENGTH>048</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
</FIELDS>
|
||||
<FLOW_LOGIC>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS BEFORE OUTPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE STATUS_9770.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW/>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS AFTER INPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE USER_COMMAND_9770.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
</FLOW_LOGIC>
|
||||
</item>
|
||||
</DYNPROS>
|
||||
<CUA>
|
||||
<ADM>
|
||||
<ACTCODE>000003</ACTCODE>
|
||||
<PFKCODE>000003</PFKCODE>
|
||||
</ADM>
|
||||
<STA>
|
||||
<RSMPE_STAT>
|
||||
<CODE>STATUS9750</CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<ACTCODE>000001</ACTCODE>
|
||||
<PFKCODE>000001</PFKCODE>
|
||||
<BUTCODE>0001</BUTCODE>
|
||||
<INT_NOTE>Delete database table entries</INT_NOTE>
|
||||
</RSMPE_STAT>
|
||||
<RSMPE_STAT>
|
||||
<CODE>STATUS9760</CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<ACTCODE>000002</ACTCODE>
|
||||
<PFKCODE>000002</PFKCODE>
|
||||
<BUTCODE>0001</BUTCODE>
|
||||
<INT_NOTE>Create database table entry</INT_NOTE>
|
||||
</RSMPE_STAT>
|
||||
<RSMPE_STAT>
|
||||
<CODE>STATUS9770</CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<ACTCODE>000003</ACTCODE>
|
||||
<PFKCODE>000003</PFKCODE>
|
||||
<BUTCODE>0001</BUTCODE>
|
||||
<INT_NOTE>End SAP LUW</INT_NOTE>
|
||||
</RSMPE_STAT>
|
||||
</STA>
|
||||
<FUN>
|
||||
<RSMPE_FUNT>
|
||||
<CODE>ENTER</CODE>
|
||||
<TEXTNO>001</TEXTNO>
|
||||
<TEXT_TYPE>S</TEXT_TYPE>
|
||||
<FUN_TEXT>Enter</FUN_TEXT>
|
||||
</RSMPE_FUNT>
|
||||
<RSMPE_FUNT>
|
||||
<CODE>GO</CODE>
|
||||
<TEXTNO>001</TEXTNO>
|
||||
<TEXT_TYPE>S</TEXT_TYPE>
|
||||
<TEXT_NAME>ICON_MAPPED_RELATION</TEXT_NAME>
|
||||
<ICON_ID>@EY@</ICON_ID>
|
||||
<FUN_TEXT>Go</FUN_TEXT>
|
||||
<ICON_TEXT>Go</ICON_TEXT>
|
||||
<INFO_TEXT>Go</INFO_TEXT>
|
||||
</RSMPE_FUNT>
|
||||
<RSMPE_FUNT>
|
||||
<CODE>LEAVE</CODE>
|
||||
<TEXTNO>001</TEXTNO>
|
||||
<TEXT_TYPE>S</TEXT_TYPE>
|
||||
<FUN_TEXT>Exit</FUN_TEXT>
|
||||
</RSMPE_FUNT>
|
||||
</FUN>
|
||||
<BUT>
|
||||
<RSMPE_BUT>
|
||||
<PFK_CODE>000001</PFK_CODE>
|
||||
<CODE>0001</CODE>
|
||||
<NO>01</NO>
|
||||
<PFNO>08</PFNO>
|
||||
</RSMPE_BUT>
|
||||
<RSMPE_BUT>
|
||||
<PFK_CODE>000002</PFK_CODE>
|
||||
<CODE>0001</CODE>
|
||||
<NO>01</NO>
|
||||
<PFNO>08</PFNO>
|
||||
</RSMPE_BUT>
|
||||
<RSMPE_BUT>
|
||||
<PFK_CODE>000003</PFK_CODE>
|
||||
<CODE>0001</CODE>
|
||||
<NO>01</NO>
|
||||
<PFNO>08</PFNO>
|
||||
</RSMPE_BUT>
|
||||
</BUT>
|
||||
<PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000001</CODE>
|
||||
<PFNO>00</PFNO>
|
||||
<FUNCODE>ENTER</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000001</CODE>
|
||||
<PFNO>08</PFNO>
|
||||
<FUNCODE>GO</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000001</CODE>
|
||||
<PFNO>15</PFNO>
|
||||
<FUNCODE>LEAVE</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000002</CODE>
|
||||
<PFNO>00</PFNO>
|
||||
<FUNCODE>ENTER</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000002</CODE>
|
||||
<PFNO>08</PFNO>
|
||||
<FUNCODE>GO</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000002</CODE>
|
||||
<PFNO>15</PFNO>
|
||||
<FUNCODE>LEAVE</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000003</CODE>
|
||||
<PFNO>00</PFNO>
|
||||
<FUNCODE>ENTER</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000003</CODE>
|
||||
<PFNO>08</PFNO>
|
||||
<FUNCODE>GO</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000003</CODE>
|
||||
<PFNO>15</PFNO>
|
||||
<FUNCODE>LEAVE</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
</PFK>
|
||||
<SET>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9750</STATUS>
|
||||
<FUNCTION>ENTER</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9750</STATUS>
|
||||
<FUNCTION>GO</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9750</STATUS>
|
||||
<FUNCTION>LEAVE</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9760</STATUS>
|
||||
<FUNCTION>ENTER</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9760</STATUS>
|
||||
<FUNCTION>GO</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9760</STATUS>
|
||||
<FUNCTION>LEAVE</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9770</STATUS>
|
||||
<FUNCTION>ENTER</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9770</STATUS>
|
||||
<FUNCTION>GO</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9770</STATUS>
|
||||
<FUNCTION>LEAVE</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
</SET>
|
||||
<DOC>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>A</OBJ_TYPE>
|
||||
<OBJ_CODE>000001</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Delete database table entries</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>P</OBJ_TYPE>
|
||||
<OBJ_CODE>000001</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Delete database table entries</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>B</OBJ_TYPE>
|
||||
<OBJ_CODE>000001</OBJ_CODE>
|
||||
<SUB_CODE>0001</SUB_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Delete database table entries</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>A</OBJ_TYPE>
|
||||
<OBJ_CODE>000002</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Create database table entry</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>P</OBJ_TYPE>
|
||||
<OBJ_CODE>000002</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Create database table entry</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>B</OBJ_TYPE>
|
||||
<OBJ_CODE>000002</OBJ_CODE>
|
||||
<SUB_CODE>0001</SUB_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Create database table entry</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>A</OBJ_TYPE>
|
||||
<OBJ_CODE>000003</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>End SAP LUW</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>P</OBJ_TYPE>
|
||||
<OBJ_CODE>000003</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>End SAP LUW</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>B</OBJ_TYPE>
|
||||
<OBJ_CODE>000003</OBJ_CODE>
|
||||
<SUB_CODE>0001</SUB_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>End SAP LUW</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
</DOC>
|
||||
<TIT>
|
||||
<RSMPE_TITT>
|
||||
<CODE>TITLE9750</CODE>
|
||||
<TEXT>Delete database table entries</TEXT>
|
||||
</RSMPE_TITT>
|
||||
<RSMPE_TITT>
|
||||
<CODE>TITLE9760</CODE>
|
||||
<TEXT>Create database table entry</TEXT>
|
||||
</RSMPE_TITT>
|
||||
<RSMPE_TITT>
|
||||
<CODE>TITLE9770</CODE>
|
||||
<TEXT>End SAP LUW</TEXT>
|
||||
</RSMPE_TITT>
|
||||
</TIT>
|
||||
</CUA>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>Demonstrating SAP LUW</ENTRY>
|
||||
<LENGTH>21</LENGTH>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
@@ -0,0 +1,139 @@
|
||||
*&---------------------------------------------------------------------*
|
||||
*& Demo program used in the context of the SAP LUW ABAP cheat sheet
|
||||
*&
|
||||
*&----------------------------- NOTE -----------------------------------*
|
||||
*& The code presented in this class is intended only to support the ABAP
|
||||
*& cheat sheets. It is not intended for direct use in a production system
|
||||
*& environment. The code examples in the ABAP cheat sheets are primarily
|
||||
*& intended to provide a better explanation and visualization of the
|
||||
*& syntax and semantics of ABAP statements, not to solve concrete
|
||||
*& programming tasks. For production application programs, you should
|
||||
*& always work out your own solution for each individual case. There is
|
||||
*& no guarantee for the correctness or completeness of the code.
|
||||
*& Furthermore, there is no legal responsibility or liability for any
|
||||
*& errors or their consequences that may occur when using the the example
|
||||
*& code.
|
||||
*&---------------------------------------------------------------------*
|
||||
REPORT zdemo_abap_sap_luw_displ.
|
||||
|
||||
DATA: ok_code LIKE sy-ucomm,
|
||||
save_ok LIKE sy-ucomm,
|
||||
dynnr LIKE sy-dynnr.
|
||||
|
||||
END-OF-SELECTION.
|
||||
|
||||
"Checks if program is started separately
|
||||
SELECT COUNT(*)
|
||||
FROM zdemo_abap_logt
|
||||
INTO @DATA(entries).
|
||||
|
||||
SELECT SINGLE id
|
||||
FROM zdemo_abap_logt
|
||||
WHERE id = 100
|
||||
INTO @DATA(exists).
|
||||
|
||||
IF sy-subrc = 0 OR entries = 0.
|
||||
DELETE FROM zdemo_abap_logt.
|
||||
|
||||
DATA(check) = abap_true.
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries(
|
||||
VALUE #( ( id = 97
|
||||
context = '-'
|
||||
name = '-'
|
||||
details = `Choose Start over from the menu.`
|
||||
timestamp = utclong_current( ) ) ) ).
|
||||
ENDIF.
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries(
|
||||
VALUE #( ( id = 100
|
||||
context = '-'
|
||||
name = '-'
|
||||
details = |New program executed: { sy-repid }|
|
||||
timestamp = utclong_current( ) ) ) ).
|
||||
|
||||
CALL SCREEN 9780.
|
||||
|
||||
**********************************************************************
|
||||
|
||||
***************** Dialog modules for 9780 ****************************
|
||||
|
||||
MODULE status_9780 OUTPUT.
|
||||
SET PF-STATUS 'STATUS9780'.
|
||||
SET TITLEBAR 'TITLE9780'.
|
||||
|
||||
"Checks for asynchronous update
|
||||
IF check = abap_false.
|
||||
DATA(idx) = 0.
|
||||
|
||||
DO 5 TIMES. "A maximum of 5 seconds of waiting time
|
||||
SELECT SINGLE id, context
|
||||
FROM zdemo_abap_logt
|
||||
WHERE
|
||||
"Entry inserted ...
|
||||
id = 93 "by the final update function module
|
||||
OR id = 99 "in case of ROLLBACK WORK
|
||||
OR id = 96 "in case of the intended failure in SAP LUW
|
||||
OR context = 'Subroutine' "if subroutines are used
|
||||
INTO @DATA(wa). "#EC CI_CMPLX_WHERE
|
||||
|
||||
IF sy-subrc = 0.
|
||||
EXIT.
|
||||
ELSE.
|
||||
idx = sy-index.
|
||||
WAIT UP TO 1 SECONDS.
|
||||
ENDIF.
|
||||
ENDDO.
|
||||
|
||||
IF idx = 5.
|
||||
MESSAGE `The asynchronous update takes too long. ` &&
|
||||
`You may want to restart the example and try again.`
|
||||
TYPE 'I'.
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>create_log_entries(
|
||||
VALUE #(
|
||||
( id = 101
|
||||
context = 'PBO'
|
||||
name = 'status_9780'
|
||||
details = `Module called`
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 102
|
||||
context = 'PBO'
|
||||
name = 'status_9780'
|
||||
details = zcl_demo_abap_sap_luw_helper=>get_work_process_info( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 103
|
||||
context = 'PBO'
|
||||
name = 'status_9780'
|
||||
details = `SAP LUW Key: ` &&
|
||||
cl_system_transaction_state=>get_sap_luw_key( )
|
||||
timestamp = utclong_current( ) )
|
||||
( id = 104
|
||||
context = 'PBO'
|
||||
name = 'status_9780'
|
||||
details = zcl_demo_abap_sap_luw_helper=>checking_transaction_state( )
|
||||
timestamp = utclong_current( ) ) ) ).
|
||||
|
||||
zcl_demo_abap_sap_luw_helper=>cc_alv_display( 'CC_DB_FINAL' ).
|
||||
zcl_demo_abap_sap_luw_helper=>cc_alv_display( container = 'CC_WP'
|
||||
log = abap_true ).
|
||||
dynnr = sy-dynnr.
|
||||
ENDMODULE.
|
||||
|
||||
MODULE user_command_9780 INPUT.
|
||||
save_ok = ok_code.
|
||||
CLEAR ok_code.
|
||||
|
||||
CASE save_ok.
|
||||
WHEN 'STARTOVER'.
|
||||
ROLLBACK WORK.
|
||||
DELETE FROM zdemo_abap_logt.
|
||||
SUBMIT ('ZDEMO_ABAP_SAP_LUW').
|
||||
WHEN OTHERS.
|
||||
DELETE FROM zdemo_abap_logt.
|
||||
LEAVE PROGRAM.
|
||||
ENDCASE.
|
||||
ENDMODULE.
|
||||
@@ -0,0 +1,240 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_PROG" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<PROGDIR>
|
||||
<NAME>ZDEMO_ABAP_SAP_LUW_DISPL</NAME>
|
||||
<DBAPL>S</DBAPL>
|
||||
<SUBC>1</SUBC>
|
||||
<FIXPT>X</FIXPT>
|
||||
<LDBNAME>D$S</LDBNAME>
|
||||
<UCCHECK>X</UCCHECK>
|
||||
</PROGDIR>
|
||||
<DYNPROS>
|
||||
<item>
|
||||
<HEADER>
|
||||
<PROGRAM>ZDEMO_ABAP_SAP_LUW_DISPL</PROGRAM>
|
||||
<SCREEN>9780</SCREEN>
|
||||
<LANGUAGE>E</LANGUAGE>
|
||||
<DESCRIPT>Display database table and log</DESCRIPT>
|
||||
<TYPE>N</TYPE>
|
||||
<NEXTSCREEN>9780</NEXTSCREEN>
|
||||
<LINES>027</LINES>
|
||||
<COLUMNS>186</COLUMNS>
|
||||
</HEADER>
|
||||
<CONTAINERS>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>SCREEN</TYPE>
|
||||
<NAME>SCREEN</NAME>
|
||||
</RPY_DYCATT>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>CUST_CTRL</TYPE>
|
||||
<NAME>CC_DB_FINAL</NAME>
|
||||
<ELEMENT_OF>SCREEN</ELEMENT_OF>
|
||||
<LINE>003</LINE>
|
||||
<COLUMN>002</COLUMN>
|
||||
<LENGTH>074</LENGTH>
|
||||
<HEIGHT>007</HEIGHT>
|
||||
</RPY_DYCATT>
|
||||
<RPY_DYCATT>
|
||||
<TYPE>CUST_CTRL</TYPE>
|
||||
<NAME>CC_WP</NAME>
|
||||
<ELEMENT_OF>SCREEN</ELEMENT_OF>
|
||||
<LINE>013</LINE>
|
||||
<COLUMN>002</COLUMN>
|
||||
<LENGTH>156</LENGTH>
|
||||
<HEIGHT>014</HEIGHT>
|
||||
</RPY_DYCATT>
|
||||
</CONTAINERS>
|
||||
<FIELDS>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX15</NAME>
|
||||
<TEXT>Database_table_entries:</TEXT>
|
||||
<LINE>001</LINE>
|
||||
<COLUMN>002</COLUMN>
|
||||
<LENGTH>023</LENGTH>
|
||||
<VISLENGTH>023</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>%#AUTOTEXT003</NAME>
|
||||
<TEXT>Dynpro_number:</TEXT>
|
||||
<LINE>001</LINE>
|
||||
<COLUMN>130</COLUMN>
|
||||
<LENGTH>014</LENGTH>
|
||||
<VISLENGTH>014</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEMPLATE</TYPE>
|
||||
<NAME>DYNNR</NAME>
|
||||
<TEXT>___________</TEXT>
|
||||
<LINE>001</LINE>
|
||||
<COLUMN>146</COLUMN>
|
||||
<LENGTH>011</LENGTH>
|
||||
<VISLENGTH>011</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<OUTPUT_FLD>X</OUTPUT_FLD>
|
||||
<OUTPUTONLY>X</OUTPUTONLY>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>TEXT</TYPE>
|
||||
<NAME>TX16</NAME>
|
||||
<TEXT>Log_database_table_entries:</TEXT>
|
||||
<LINE>011</LINE>
|
||||
<COLUMN>002</COLUMN>
|
||||
<LENGTH>027</LENGTH>
|
||||
<VISLENGTH>027</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<REQU_ENTRY>N</REQU_ENTRY>
|
||||
</RPY_DYFATC>
|
||||
<RPY_DYFATC>
|
||||
<CONT_TYPE>SCREEN</CONT_TYPE>
|
||||
<CONT_NAME>SCREEN</CONT_NAME>
|
||||
<TYPE>OKCODE</TYPE>
|
||||
<NAME>OK_CODE</NAME>
|
||||
<TEXT>____________________</TEXT>
|
||||
<LENGTH>020</LENGTH>
|
||||
<VISLENGTH>020</VISLENGTH>
|
||||
<HEIGHT>001</HEIGHT>
|
||||
<FORMAT>CHAR</FORMAT>
|
||||
<INPUT_FLD>X</INPUT_FLD>
|
||||
</RPY_DYFATC>
|
||||
</FIELDS>
|
||||
<FLOW_LOGIC>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS BEFORE OUTPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE STATUS_9780.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW/>
|
||||
<RPY_DYFLOW>
|
||||
<LINE>PROCESS AFTER INPUT.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
<RPY_DYFLOW>
|
||||
<LINE> MODULE USER_COMMAND_9780.</LINE>
|
||||
</RPY_DYFLOW>
|
||||
</FLOW_LOGIC>
|
||||
</item>
|
||||
</DYNPROS>
|
||||
<CUA>
|
||||
<ADM>
|
||||
<ACTCODE>000001</ACTCODE>
|
||||
<PFKCODE>000001</PFKCODE>
|
||||
</ADM>
|
||||
<STA>
|
||||
<RSMPE_STAT>
|
||||
<CODE>STATUS9780</CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<ACTCODE>000001</ACTCODE>
|
||||
<PFKCODE>000001</PFKCODE>
|
||||
<BUTCODE>0001</BUTCODE>
|
||||
<INT_NOTE>Display database table and log</INT_NOTE>
|
||||
</RSMPE_STAT>
|
||||
</STA>
|
||||
<FUN>
|
||||
<RSMPE_FUNT>
|
||||
<CODE>LEAVE</CODE>
|
||||
<TEXTNO>001</TEXTNO>
|
||||
<TEXT_TYPE>S</TEXT_TYPE>
|
||||
<FUN_TEXT>Exit</FUN_TEXT>
|
||||
</RSMPE_FUNT>
|
||||
<RSMPE_FUNT>
|
||||
<CODE>STARTOVER</CODE>
|
||||
<TEXTNO>001</TEXTNO>
|
||||
<TEXT_TYPE>S</TEXT_TYPE>
|
||||
<TEXT_NAME>ICON_SYSTEM_UNDO</TEXT_NAME>
|
||||
<ICON_ID>@2W@</ICON_ID>
|
||||
<FUN_TEXT>STARTOVER</FUN_TEXT>
|
||||
<ICON_TEXT>Start over</ICON_TEXT>
|
||||
<INFO_TEXT>Start over</INFO_TEXT>
|
||||
</RSMPE_FUNT>
|
||||
</FUN>
|
||||
<BUT>
|
||||
<RSMPE_BUT>
|
||||
<PFK_CODE>000001</PFK_CODE>
|
||||
<CODE>0001</CODE>
|
||||
<NO>01</NO>
|
||||
<PFNO>08</PFNO>
|
||||
</RSMPE_BUT>
|
||||
</BUT>
|
||||
<PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000001</CODE>
|
||||
<PFNO>08</PFNO>
|
||||
<FUNCODE>STARTOVER</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
<RSMPE_PFK>
|
||||
<CODE>000001</CODE>
|
||||
<PFNO>15</PFNO>
|
||||
<FUNCODE>LEAVE</FUNCODE>
|
||||
<FUNNO>001</FUNNO>
|
||||
</RSMPE_PFK>
|
||||
</PFK>
|
||||
<SET>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9780</STATUS>
|
||||
<FUNCTION>LEAVE</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
<RSMPE_STAF>
|
||||
<STATUS>STATUS9780</STATUS>
|
||||
<FUNCTION>STARTOVER</FUNCTION>
|
||||
</RSMPE_STAF>
|
||||
</SET>
|
||||
<DOC>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>A</OBJ_TYPE>
|
||||
<OBJ_CODE>000001</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Display database table and log</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>P</OBJ_TYPE>
|
||||
<OBJ_CODE>000001</OBJ_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Display database table and log</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
<RSMPE_ATRT>
|
||||
<OBJ_TYPE>B</OBJ_TYPE>
|
||||
<OBJ_CODE>000001</OBJ_CODE>
|
||||
<SUB_CODE>0001</SUB_CODE>
|
||||
<MODAL>D</MODAL>
|
||||
<INT_NOTE>Display database table and log</INT_NOTE>
|
||||
</RSMPE_ATRT>
|
||||
</DOC>
|
||||
<TIT>
|
||||
<RSMPE_TITT>
|
||||
<CODE>TITLE9780</CODE>
|
||||
<TEXT>Display database table and log</TEXT>
|
||||
</RSMPE_TITT>
|
||||
</TIT>
|
||||
</CUA>
|
||||
<TPOOL>
|
||||
<item>
|
||||
<ID>R</ID>
|
||||
<ENTRY>Demonstrating SAP LUW - Display</ENTRY>
|
||||
<LENGTH>31</LENGTH>
|
||||
</item>
|
||||
</TPOOL>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
||||
Reference in New Issue
Block a user