mirror of
https://github.com/abap2UI5/abap2UI5.git
synced 2025-04-29 22:09:24 +08:00
Update Layout and Transport Request App for Customizing (#1218)
* Update Layout * z2ui5_cl_pop_layout_v2.clas.abap aktualisieren Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * z2ui5_cl_pop_layout_v2.clas.abap aktualisieren Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * z2ui5_cl_pop_layout_v2.clas.abap aktualisieren Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * z2ui5_cl_pop_layout_v2.clas.abap aktualisieren Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * z2ui5_cl_pop_layout_v2.clas.abap aktualisieren Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * z2ui5_cl_pop_layout_v2.clas.abap aktualisieren Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * z2ui5_cl_pop_layout_v2.clas.abap aktualisieren Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * Update src/02/02/z2ui5_cl_pop_layout_v2.clas.abap Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * Update src/02/02/z2ui5_cl_pop_transport.clas.abap Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * Update src/02/02/z2ui5_cl_pop_transport.clas.abap Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com> * Update Transport and Layout * Layout and Transport APP Fix --------- Co-authored-by: Viktor Hoffmann <Viktor.Hoffmann@swisskrono.com> Co-authored-by: oblomov <102328295+oblomov-dev@users.noreply.github.com> Co-authored-by: abaplint[bot] <24845621+abaplint[bot]@users.noreply.github.com>
This commit is contained in:
parent
6c9a4bcbc6
commit
26d2855a40
|
@ -19,9 +19,17 @@ CLASS z2ui5_cl_pop_layout_v2 DEFINITION
|
|||
TYPES ty_s_Head TYPE z2ui5_t003.
|
||||
TYPES ty_t_head TYPE STANDARD TABLE OF ty_s_head WITH EMPTY KEY.
|
||||
|
||||
TYPES:
|
||||
BEGIN OF ty_s_sub_columns,
|
||||
key TYPE string,
|
||||
fname TYPE string,
|
||||
END OF ty_s_sub_columns.
|
||||
TYPES ty_t_sub_columns TYPE STANDARD TABLE OF ty_s_sub_columns WITH EMPTY KEY.
|
||||
|
||||
TYPES BEGIN OF ty_s_positions.
|
||||
INCLUDE TYPE z2ui5_t004.
|
||||
TYPES: tlabel TYPE string,
|
||||
TYPES: tlabel TYPE string,
|
||||
t_sub_col TYPE ty_t_sub_columns,
|
||||
END OF ty_s_positions.
|
||||
TYPES ty_t_positions TYPE STANDARD TABLE OF ty_s_positions WITH EMPTY KEY.
|
||||
|
||||
|
@ -52,18 +60,22 @@ CLASS z2ui5_cl_pop_layout_v2 DEFINITION
|
|||
CLASS-DATA ui_table TYPE control VALUE 'ui.Table' ##NO_TEXT.
|
||||
CLASS-DATA m_table TYPE control VALUE 'm.Table' ##NO_TEXT.
|
||||
|
||||
DATA mt_controls TYPE ty_t_controls.
|
||||
DATA mt_Head TYPE ty_t_layo.
|
||||
DATA ms_layout TYPE ty_s_layout.
|
||||
DATA ms_layout_tmp TYPE ty_s_layout.
|
||||
DATA mv_descr TYPE string.
|
||||
DATA mv_layout TYPE string.
|
||||
DATA mv_def TYPE abap_bool.
|
||||
DATA mv_usr TYPE abap_bool.
|
||||
DATA mv_open TYPE abap_bool.
|
||||
DATA mv_delete TYPE abap_bool.
|
||||
DATA mt_halign TYPE fixvalues.
|
||||
DATA mt_importance TYPE fixvalues.
|
||||
DATA mt_controls TYPE ty_t_controls.
|
||||
DATA mt_Head TYPE ty_t_layo.
|
||||
DATA ms_layout TYPE ty_s_layout.
|
||||
DATA ms_layout_tmp TYPE ty_s_layout.
|
||||
DATA mv_descr TYPE string.
|
||||
DATA mv_layout TYPE string.
|
||||
DATA mv_def TYPE abap_bool.
|
||||
DATA mv_usr TYPE abap_bool.
|
||||
DATA mv_open TYPE abap_bool.
|
||||
DATA mv_delete TYPE abap_bool.
|
||||
DATA mt_halign TYPE fixvalues.
|
||||
DATA mt_importance TYPE fixvalues.
|
||||
|
||||
DATA mv_active_subcolumn TYPE string.
|
||||
DATA mt_comps TYPE ty_t_positions.
|
||||
DATA mt_sub_cols TYPE ty_t_sub_columns.
|
||||
|
||||
CLASS-METHODS on_event_layout
|
||||
IMPORTING
|
||||
|
@ -157,6 +169,9 @@ CLASS z2ui5_cl_pop_layout_v2 DEFINITION
|
|||
IMPORTING
|
||||
!Head TYPE ty_s_layo.
|
||||
|
||||
METHODS render_add_subcolumn.
|
||||
METHODS on_event_subcoloumns.
|
||||
|
||||
CLASS-METHODS get_relative_name_of_table
|
||||
IMPORTING
|
||||
!table TYPE any
|
||||
|
@ -174,6 +189,12 @@ CLASS z2ui5_cl_pop_layout_v2 DEFINITION
|
|||
RETURNING
|
||||
VALUE(result) TYPE ty_s_layout.
|
||||
|
||||
CLASS-METHODS set_sub_columns
|
||||
IMPORTING
|
||||
!layout TYPE ty_t_positions
|
||||
RETURNING
|
||||
VALUE(result) TYPE ty_t_positions.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
@ -232,6 +253,7 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
( control = m_table attribute = 'WIDTH' )
|
||||
( control = m_table attribute = 'ALTERNATIVE_TEXT' )
|
||||
( control = m_table attribute = 'SEQUENCE' )
|
||||
( control = m_table attribute = 'SUBCOLUMN' )
|
||||
( control = ui_table attribute = 'VISIBLE' )
|
||||
( control = ui_table attribute = 'ALTERNATIVE_TEXT' )
|
||||
( control = ui_table attribute = 'HALIGN' )
|
||||
|
@ -277,11 +299,11 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
|
||||
CASE control-attribute.
|
||||
WHEN 'VISIBLE'.
|
||||
col = columns->column( )->header( `` ).
|
||||
col = columns->column( '4.5rem' )->header( `` ).
|
||||
col->text( 'Visible' ).
|
||||
WHEN 'MERGE'.
|
||||
col = columns->column( )->header( `` ).
|
||||
col->text( 'Merge duplicates' ).
|
||||
col = columns->column( '4.5rem' )->header( `` ).
|
||||
col->text( 'Merge' ).
|
||||
WHEN 'HALIGN'.
|
||||
col = columns->column( )->header( `` ).
|
||||
col->text( 'Align' ).
|
||||
|
@ -289,15 +311,17 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
col = columns->column( )->header( `` ).
|
||||
col->text( 'Importance' ).
|
||||
WHEN 'WIDTH'.
|
||||
col = columns->column( )->header( `` ).
|
||||
col = columns->column( `7rem` )->header( `` ).
|
||||
col->text( 'Width in rem' ).
|
||||
WHEN 'SEQUENCE'.
|
||||
col = columns->column( )->header( `` ).
|
||||
col = columns->column( `5rem` )->header( `` ).
|
||||
col->text( 'Sequence' ).
|
||||
WHEN 'ALTERNATIVE_TEXT'.
|
||||
col = columns->column( )->header( `` ).
|
||||
col->text( 'Alternative Text' ).
|
||||
|
||||
WHEN 'SUBCOLUMN'.
|
||||
col = columns->column( )->header( `` ).
|
||||
col->text( 'Subcolumn' ).
|
||||
ENDCASE.
|
||||
|
||||
ENDLOOP.
|
||||
|
@ -340,8 +364,7 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
WHEN 'WIDTH'.
|
||||
|
||||
cells->input( value = |\{{ comp->name }\}|
|
||||
maxLength = `7`
|
||||
width = `7rem` ).
|
||||
maxLength = `7` ).
|
||||
|
||||
WHEN 'SEQUENCE'.
|
||||
|
||||
|
@ -353,6 +376,13 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
|
||||
cells->input( |\{{ comp->name }\}| ).
|
||||
|
||||
WHEN 'SUBCOLUMN'.
|
||||
|
||||
cells->button( text = |\{{ comp->name }\}|
|
||||
icon = `sap-icon://add`
|
||||
press = client->_event( val = 'CALL_SUBCOLUMN'
|
||||
t_arg = VALUE #( ( `${FNAME}` ) ) ) ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDLOOP.
|
||||
|
@ -454,6 +484,11 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
client->popup_destroy( ).
|
||||
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN OTHERS.
|
||||
|
||||
on_event_subcoloumns( ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
@ -805,7 +840,8 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
importance,
|
||||
width,
|
||||
sequence,
|
||||
alternative_text
|
||||
alternative_text,
|
||||
subcolumn
|
||||
FROM z2ui5_t004
|
||||
WHERE guid = @Head-guid
|
||||
INTO CORRESPONDING FIELDS OF TABLE @ms_layout-t_layout ##SUBRC_OK.
|
||||
|
@ -907,7 +943,8 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
importance,
|
||||
width,
|
||||
sequence,
|
||||
alternative_text
|
||||
alternative_text,
|
||||
subcolumn
|
||||
FROM z2ui5_t004
|
||||
WHERE guid = @def-guid
|
||||
INTO TABLE @DATA(t_pos) ##SUBRC_OK.
|
||||
|
@ -944,6 +981,7 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
|
||||
result-s_head = CORRESPONDING #( def ).
|
||||
result-t_layout = sort_by_seqence( result-t_layout ).
|
||||
result-t_layout = set_sub_columns( result-t_layout ).
|
||||
|
||||
RETURN.
|
||||
|
||||
|
@ -1154,4 +1192,126 @@ CLASS z2ui5_cl_pop_layout_v2 IMPLEMENTATION.
|
|||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD render_add_subcolumn.
|
||||
|
||||
DATA(lo_popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
lo_popup = lo_popup->dialog( afterclose = client->_event( 'SUBCOLUMN_CANCEL' )
|
||||
contentwidth = `20%`
|
||||
title = 'Define Sub Coloumns' ).
|
||||
|
||||
DATA(vbox) = lo_popup->vbox( justifycontent = 'SpaceBetween' ).
|
||||
|
||||
DATA(item) = vbox->list( nodata = `no Subcolumns defined`
|
||||
items = client->_bind_edit( mt_sub_cols )
|
||||
selectionchange = client->_event( 'SELCHANGE' )
|
||||
)->custom_list_item( ).
|
||||
|
||||
DATA(grid) = item->grid( ).
|
||||
|
||||
grid->combobox( selectedkey = `{FNAME}`
|
||||
items = client->_bind( mt_comps )
|
||||
)->item( key = '{FNAME}'
|
||||
text = '{FNAME}'
|
||||
)->get_parent(
|
||||
)->button( icon = 'sap-icon://decline'
|
||||
type = `Transparent`
|
||||
press = client->_event( val = `SUBCOLUMN_DELETE`
|
||||
t_arg = VALUE #( ( `${KEY}` ) ) ) ).
|
||||
|
||||
lo_popup->buttons(
|
||||
)->button( text = `Delete All`
|
||||
icon = 'sap-icon://delete'
|
||||
type = `Transparent`
|
||||
press = client->_event( val = `SUBCOLUMN_DELETE_ALL` )
|
||||
)->button( text = `Add Item`
|
||||
icon = `sap-icon://add`
|
||||
press = client->_event( val = `SUBCOLUMN_ADD` )
|
||||
)->button( text = 'Cancel'
|
||||
press = client->_event( 'SUBCOLUMN_CANCEL' )
|
||||
)->button( text = 'OK'
|
||||
press = client->_event( 'SUBCOLUMN_CONFIRM' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( lo_popup->stringify( ) ).
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_event_subcoloumns.
|
||||
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN 'CALL_SUBCOLUMN'.
|
||||
|
||||
DATA(arg) = client->get( )-t_event_arg.
|
||||
mv_active_SUBCOLumn = VALUE #( arg[ 1 ] OPTIONAL ).
|
||||
|
||||
READ TABLE ms_layout-t_layout REFERENCE INTO DATA(layout) WITH KEY fname = mv_active_subcolumn.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
mt_comps = ms_layout-t_layout.
|
||||
mt_sub_cols = layout->t_sub_col.
|
||||
|
||||
render_add_subcolumn( ).
|
||||
|
||||
WHEN `SUBCOLUMN_CONFIRM`.
|
||||
|
||||
READ TABLE ms_layout-t_layout REFERENCE INTO layout WITH KEY fname = mv_active_subcolumn.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CLEAR layout->subcolumn.
|
||||
|
||||
LOOP AT mt_sub_cols REFERENCE INTO DATA(line).
|
||||
layout->subcolumn = |{ layout->subcolumn } { line->fname }|.
|
||||
ENDLOOP.
|
||||
SHIFT layout->subcolumn LEFT DELETING LEADING space.
|
||||
|
||||
layout->t_sub_col = mt_sub_cols.
|
||||
|
||||
client->popup_destroy( ).
|
||||
|
||||
init_edit( ).
|
||||
render_edit( ).
|
||||
|
||||
WHEN `SUBCOLUMN_CANCEL`.
|
||||
|
||||
init_edit( ).
|
||||
render_edit( ).
|
||||
|
||||
WHEN `SUBCOLUMN_ADD`.
|
||||
INSERT VALUE #( key = z2ui5_cl_util=>uuid_get_c32( ) ) INTO TABLE mt_sub_cols.
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN `SUBCOLUMN_DELETE`.
|
||||
DATA(lt_event) = client->get( )-t_event_arg.
|
||||
DELETE mt_sub_cols WHERE key = lt_event[ 1 ].
|
||||
client->popup_model_update( ).
|
||||
|
||||
WHEN `SUBCOLUMN_DELETE_ALL`.
|
||||
mt_sub_cols = VALUE #( ).
|
||||
client->popup_model_update( ).
|
||||
|
||||
ENDCASE.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_sub_columns.
|
||||
|
||||
result = layout.
|
||||
|
||||
LOOP AT result REFERENCE INTO DATA(line) WHERE subcolumn IS NOT INITIAL.
|
||||
|
||||
SPLIT line->subcolumn AT ` ` INTO TABLE DATA(tab).
|
||||
|
||||
line->t_sub_col = VALUE #( FOR t IN tab
|
||||
( key = z2ui5_cl_util=>uuid_get_c32( ) fname = t ) ).
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
||||
|
|
613
src/02/02/z2ui5_cl_pop_transport.clas.abap
Normal file
613
src/02/02/z2ui5_cl_pop_transport.clas.abap
Normal file
|
@ -0,0 +1,613 @@
|
|||
CLASS z2ui5_cl_pop_transport DEFINITION
|
||||
PUBLIC FINAL
|
||||
CREATE PUBLIC.
|
||||
|
||||
PUBLIC SECTION.
|
||||
INTERFACES if_serializable_object.
|
||||
INTERFACES z2ui5_if_app.
|
||||
|
||||
TYPES trobj_name TYPE c LENGTH 120.
|
||||
TYPES sxco_transport TYPE c LENGTH 20.
|
||||
|
||||
TYPES: BEGIN OF ty_s_data,
|
||||
short_description TYPE string,
|
||||
transport TYPE sxco_transport,
|
||||
task TYPE sxco_transport,
|
||||
selkz TYPE abap_bool,
|
||||
END OF ty_s_data.
|
||||
|
||||
CLASS-DATA mt_data TYPE STANDARD TABLE OF ty_s_data WITH EMPTY KEY.
|
||||
|
||||
DATA ms_transport TYPE ty_s_data.
|
||||
|
||||
CLASS-METHODS factory
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO z2ui5_cl_pop_transport.
|
||||
|
||||
CLASS-METHODS add_DATA_to_tranport
|
||||
IMPORTING
|
||||
ir_data TYPE REF TO datA
|
||||
iv_tabname TYPE string
|
||||
is_transport TYPE ty_s_data.
|
||||
|
||||
CLASS-METHODS add_to_transport_onprem
|
||||
IMPORTING
|
||||
ir_data TYPE REF TO datA
|
||||
iv_tabname TYPE string
|
||||
is_transport TYPE ty_s_data.
|
||||
|
||||
PROTECTED SECTION.
|
||||
CLASS-METHODS get_tr_onprem.
|
||||
|
||||
CLASS-METHODS set_e071k
|
||||
IMPORTING
|
||||
ir_data TYPE REF TO datA
|
||||
iv_tabname TYPE string
|
||||
is_transport TYPE ty_s_data
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS set_e071
|
||||
IMPORTING
|
||||
iv_tabname TYPE string
|
||||
is_transport TYPE ty_s_data
|
||||
RETURNING
|
||||
VALUE(result) TYPE REF TO data.
|
||||
|
||||
CLASS-METHODS read_e070.
|
||||
|
||||
DATA client TYPE REF TO z2ui5_if_client.
|
||||
DATA mv_init TYPE abap_bool.
|
||||
|
||||
METHODS on_init.
|
||||
|
||||
METHODS render_view.
|
||||
|
||||
METHODS on_event.
|
||||
METHODS get_tr_cloud.
|
||||
|
||||
PRIVATE SECTION.
|
||||
CLASS-METHODS get_e071k_tabkey
|
||||
IMPORTING
|
||||
!line TYPE any
|
||||
dfies TYPE z2ui5_cl_stmpncfctn_api=>ty_t_dfies
|
||||
RETURNING
|
||||
VALUE(rv_tabkey) TYPE trobj_name.
|
||||
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
CLASS z2ui5_cl_pop_transport IMPLEMENTATION.
|
||||
|
||||
METHOD z2ui5_if_app~main.
|
||||
me->client = client.
|
||||
|
||||
IF mv_init = abap_false.
|
||||
mv_init = abap_true.
|
||||
|
||||
on_init( ).
|
||||
|
||||
render_view( ).
|
||||
|
||||
ENDIF.
|
||||
|
||||
on_event( ).
|
||||
|
||||
client->view_model_update( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_init.
|
||||
|
||||
IF z2ui5_cl_util_api=>rtti_check_lang_version_cloud( ) = abap_true.
|
||||
get_tr_cloud( ).
|
||||
ELSE.
|
||||
get_tr_onprem( ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD render_view.
|
||||
DATA(popup) = z2ui5_cl_xml_view=>factory_popup( ).
|
||||
|
||||
popup->dialog( contentWidth = '40%'
|
||||
afterclose = client->_event( 'CLOSE' )
|
||||
)->table( mode = 'SingleSelectLeft'
|
||||
items = client->_bind_edit( mt_data )
|
||||
)->columns(
|
||||
)->column( )->text( 'Transport' )->get_parent(
|
||||
)->column( )->text( 'Description' )->get_parent(
|
||||
)->get_parent(
|
||||
)->items(
|
||||
)->column_list_item( selected = '{SELKZ}'
|
||||
)->cells(
|
||||
)->text( '{TRANSPORT}'
|
||||
)->text( '{SHORT_DESCRIPTION}'
|
||||
)->get_parent( )->get_parent( )->get_parent( )->get_parent(
|
||||
)->buttons( )->button( text = 'Select'
|
||||
press = client->_event( 'TRANSPORT_SELECT' )
|
||||
type = 'Emphasized' ).
|
||||
|
||||
client->popup_display( popup->stringify( ) ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD on_event.
|
||||
CASE client->get( )-event.
|
||||
|
||||
WHEN `CLOSE`.
|
||||
|
||||
CLEAR ms_transport.
|
||||
|
||||
client->popup_destroy( ).
|
||||
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN `TRANSPORT_SELECT`.
|
||||
|
||||
READ TABLE mt_data INTO DATA(line) WITH KEY selkz = abap_true.
|
||||
IF sy-subrc = 0.
|
||||
ms_transport = line.
|
||||
ENDIF.
|
||||
|
||||
client->popup_destroy( ).
|
||||
|
||||
client->nav_app_leave( client->get_app( client->get( )-s_draft-id_prev_app_stack ) ).
|
||||
|
||||
WHEN OTHERS.
|
||||
|
||||
ENDCASE.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD factory.
|
||||
result = NEW #( ).
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD add_DATA_to_tranport.
|
||||
|
||||
IF z2ui5_cl_util_api=>rtti_check_lang_version_cloud( ) = abap_false.
|
||||
* add_to_transport_cloud( ir_data = ir_data
|
||||
* iv_tabname = iv_tabname
|
||||
* is_transport = is_transport ).
|
||||
* ELSE.
|
||||
add_to_transport_onprem( ir_data = ir_data
|
||||
iv_tabname = iv_tabname
|
||||
is_transport = is_transport ).
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_e071k_tabkey.
|
||||
|
||||
DATA lv_type TYPE c LENGTH 1.
|
||||
DATA lv_tabkey TYPE c LENGTH 999.
|
||||
DATA lv_tabkey_len TYPE i.
|
||||
DATA lv_field_len TYPE i.
|
||||
DATA lv_offset TYPE i.
|
||||
|
||||
LOOP AT dfies INTO DATA(s_dfies) WHERE keyflag = abap_true.
|
||||
|
||||
ASSIGN COMPONENT s_dfies-fieldname OF STRUCTURE line TO FIELD-SYMBOL(<value>).
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ENDIF.
|
||||
|
||||
lv_type = cl_abap_typedescr=>describe_by_data( <value> )->type_kind.
|
||||
|
||||
IF lv_type NA 'CDNT'.
|
||||
lv_tabkey+lv_tabkey_len = '*'.
|
||||
rv_tabkey = lv_tabkey.
|
||||
RETURN.
|
||||
ELSE.
|
||||
lv_field_len = cl_abap_typedescr=>describe_by_data( <value> )->length / cl_abap_char_utilities=>charsize.
|
||||
ENDIF.
|
||||
|
||||
lv_field_len = cl_abap_typedescr=>describe_by_data( <value> )->length / cl_abap_char_utilities=>charsize.
|
||||
lv_tabkey+lv_tabkey_len(lv_field_len) = <value>.
|
||||
lv_tabkey_len = lv_tabkey_len + lv_field_len.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
IF lv_tabkey_len > 119.
|
||||
|
||||
IF lv_tabkey CS '_'.
|
||||
lv_offset = sy-fdpos.
|
||||
lv_tabkey+lv_offset = '*'.
|
||||
ELSE.
|
||||
lv_tabkey+119 = '*'.
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
rv_tabkey = lv_tabkey.
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD add_to_transport_onprem.
|
||||
|
||||
FIELD-SYMBOLS <t_e071k> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <t_e071> TYPE STANDARD TABLE.
|
||||
|
||||
DATA(r_e071k) = set_e071k( ir_data = ir_data
|
||||
iv_tabname = iv_tabname
|
||||
is_transport = is_transport ).
|
||||
|
||||
DATA(r_e071) = set_e071( iv_tabname = iv_tabname
|
||||
is_transport = is_transport ).
|
||||
|
||||
ASSIGN r_e071k->* TO <t_e071k>.
|
||||
ASSIGN r_e071->* TO <t_e071>.
|
||||
|
||||
DATA(fb1) = 'TR_APPEND_TO_COMM_OBJS_KEYS'.
|
||||
|
||||
CALL FUNCTION fb1
|
||||
EXPORTING wi_trkorr = is_transport-task
|
||||
TABLES wt_e071 = <t_e071>
|
||||
wt_e071k = <t_e071k>
|
||||
EXCEPTIONS OTHERS = 1.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
DATA(fb2) = 'TR_SORT_AND_COMPRESS_COMM'.
|
||||
|
||||
CALL FUNCTION fb2
|
||||
EXPORTING iv_trkorr = is_transport-task
|
||||
EXCEPTIONS OTHERS = 1.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ELSE.
|
||||
COMMIT WORK AND WAIT.
|
||||
ENDIF.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_tr_cloud.
|
||||
|
||||
* DATA(lo_current_user) = xco_cp=>sy->user( ).
|
||||
*
|
||||
* DATA(lo_kind_filter) = xco_cp_transport=>filter->kind( xco_cp_transport=>kind->task ).
|
||||
* DATA(lo_owner_filter) = xco_cp_transport=>filter->owner( xco_cp_abap_sql=>constraint->equal( lo_current_user->name ) ).
|
||||
* DATA(lo_status_filter) = xco_cp_transport=>filter->status( xco_cp_transport=>status->modifiable ).
|
||||
* DATA(lo_type_filter) = xco_cp_transport=>filter->type( io_type = xco_cp_transport=>type->customizing_task ).
|
||||
* DATA(lt_transports) = xco_cp_cts=>transports->where( VALUE #( ( lo_kind_filter )
|
||||
* ( lo_owner_filter )
|
||||
* ( lo_status_filter )
|
||||
* ( lo_type_filter ) )
|
||||
* )->resolve( xco_cp_transport=>resolution->request ).
|
||||
*
|
||||
* LOOP AT lt_transports INTO DATA(lo_transport).
|
||||
* DATA(lo_transport_request) = lo_transport->get_request( ).
|
||||
*
|
||||
* DATA(prop) = lo_transport_request->properties( )->get( ).
|
||||
*
|
||||
* DATA(tasks) = lo_transport_request->get_tasks( ).
|
||||
*
|
||||
* LOOP AT tasks INTO DATA(task).
|
||||
*
|
||||
* IF lo_current_user->name = task->properties( )->get_owner( )->name.
|
||||
*
|
||||
* DATA(data) = VALUE ty_s_data( short_description = prop-short_description
|
||||
* transport = lo_transport_request->value
|
||||
* task = task->value ).
|
||||
* APPEND data TO mt_data.
|
||||
*
|
||||
* ENDIF.
|
||||
*
|
||||
* ENDLOOP.
|
||||
*
|
||||
* ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD get_tr_onprem.
|
||||
|
||||
DATA lo_tab TYPE REF TO data.
|
||||
DATA lo_line TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <line> TYPE any.
|
||||
FIELD-SYMBOLS <value> TYPE any.
|
||||
|
||||
read_e070( ).
|
||||
|
||||
DATA(table_name) = 'E07T'.
|
||||
|
||||
TRY.
|
||||
DATA(t_comp) = z2ui5_cl_util_api=>rtti_get_t_attri_by_table_name( table_name ).
|
||||
|
||||
DATA(new_struct_desc) = cl_abap_structdescr=>create( t_comp ).
|
||||
|
||||
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
|
||||
|
||||
CREATE DATA lo_tab TYPE HANDLE new_table_desc.
|
||||
CREATE DATA lo_line TYPE HANDLE new_struct_desc.
|
||||
|
||||
ASSIGN lo_tab->* TO <table>.
|
||||
ASSIGN lo_line->* TO <line>.
|
||||
|
||||
DATA(index) = 0.
|
||||
|
||||
LOOP AT mt_data INTO DATA(line).
|
||||
index = index + 1.
|
||||
IF index = 1.
|
||||
DATA(where) = |TRKORR EQ '{ line-task }'|.
|
||||
ELSE.
|
||||
where = |{ where }OR TRKORR EQ '{ line-task }'|.
|
||||
ENDIF.
|
||||
where = |( { where } )|.
|
||||
ENDLOOP.
|
||||
|
||||
SELECT trkorr, as4text
|
||||
FROM (table_name)
|
||||
WHERE (where)
|
||||
INTO TABLE @<table>.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
LOOP AT <table> INTO <line>.
|
||||
|
||||
ASSIGN COMPONENT 'TRKORR' OF STRUCTURE <line> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ELSE.
|
||||
|
||||
READ TABLE mt_data REFERENCE INTO DATA(data) WITH KEY task = <value>.
|
||||
IF sy-subrc = 0.
|
||||
|
||||
ASSIGN COMPONENT 'AS4TEXT' OF STRUCTURE <line> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ELSE.
|
||||
|
||||
data->short_description = <value>.
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDIF.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_e071k.
|
||||
|
||||
DATA t_e071k TYPE REF TO data.
|
||||
DATA s_e071k TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS <t_e071k> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <s_e071k> TYPE any.
|
||||
FIELD-SYMBOLS <value> TYPE any.
|
||||
FIELD-SYMBOLS <tab> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <line> TYPE any.
|
||||
|
||||
DATA(t_comp) = z2ui5_cl_util_api=>rtti_get_t_attri_by_table_name( 'E071K' ).
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(struct_desc) = cl_abap_structdescr=>create( t_comp ).
|
||||
|
||||
DATA(table_desc) = cl_abap_tabledescr=>create( p_line_type = struct_desc
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
|
||||
|
||||
CREATE DATA t_e071k TYPE HANDLE table_desc.
|
||||
CREATE DATA s_e071k TYPE HANDLE struct_desc.
|
||||
|
||||
ASSIGN t_e071k->* TO <t_e071k>.
|
||||
ASSIGN s_e071k->* TO <s_e071k>.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
DATA(dfies) = z2ui5_cl_util_api=>rtti_get_t_dfies_by_table_name( iv_tabname ).
|
||||
|
||||
* is_transport-transport = assign_value( component = 'TRKORR'
|
||||
* structure = <s_e071k> ). )
|
||||
|
||||
ASSIGN COMPONENT 'TRKORR' OF STRUCTURE <s_e071k> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = is_transport-transport.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'PGMID' OF STRUCTURE <s_e071k> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = 'R3TR'.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'MASTERTYPE' OF STRUCTURE <s_e071k> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = 'TABU'.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'OBJECT' OF STRUCTURE <s_e071k> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = 'TABU'.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'MASTERNAME' OF STRUCTURE <s_e071k> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = iv_tabname.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'OBJNAME' OF STRUCTURE <s_e071k> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = iv_tabname.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
|
||||
ASSIGN iR_data->* TO <tab>.
|
||||
|
||||
IF <tab> IS INITIAL.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
|
||||
LOOP AT <tab> ASSIGNING <line>.
|
||||
|
||||
ASSIGN COMPONENT 'TABKEY' OF STRUCTURE <s_e071k> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = get_e071k_tabkey( dfies = dfies
|
||||
line = <line> ).
|
||||
ENDIF.
|
||||
|
||||
APPEND <s_e071k> TO <t_e071k>.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
result = t_e071k.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD set_e071.
|
||||
|
||||
DATA t_e071 TYPE REF TO data.
|
||||
DATA s_e071 TYPE REF TO data.
|
||||
|
||||
FIELD-SYMBOLS <t_e071> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <s_e071> TYPE any.
|
||||
FIELD-SYMBOLS <value> TYPE any.
|
||||
|
||||
DATA(t_comp) = z2ui5_cl_util_api=>rtti_get_t_attri_by_table_name( 'E071' ).
|
||||
|
||||
TRY.
|
||||
|
||||
DATA(struct_desc_new) = cl_abap_structdescr=>create( t_comp ).
|
||||
|
||||
DATA(table_desc_new) = cl_abap_tabledescr=>create( p_line_type = struct_desc_new
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
|
||||
|
||||
CREATE DATA t_e071 TYPE HANDLE table_desc_new.
|
||||
CREATE DATA s_e071 TYPE HANDLE struct_desc_new.
|
||||
|
||||
ASSIGN t_e071->* TO <t_e071>.
|
||||
ASSIGN s_e071->* TO <s_e071>.
|
||||
|
||||
CATCH cx_root.
|
||||
|
||||
ENDTRY.
|
||||
|
||||
ASSIGN COMPONENT 'TRKORR' OF STRUCTURE <s_e071> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = is_transport-transport.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'PGMID' OF STRUCTURE <s_e071> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = 'R3TR'.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'OBJECT' OF STRUCTURE <s_e071> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = 'TABU'.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'OBJ_NAME' OF STRUCTURE <s_e071> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = iv_tabname.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
ASSIGN COMPONENT 'OBJFUNC' OF STRUCTURE <s_e071> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
RETURN.
|
||||
ELSE.
|
||||
<value> = 'K'.
|
||||
ENDIF.
|
||||
UNASSIGN <value>.
|
||||
|
||||
APPEND <s_e071> TO <t_e071>.
|
||||
|
||||
result = t_e071.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
METHOD read_e070.
|
||||
|
||||
DATA lo_tab TYPE REF TO data.
|
||||
DATA lo_line TYPE REF TO data.
|
||||
DATA ls_data TYPE ty_s_data.
|
||||
|
||||
FIELD-SYMBOLS <table> TYPE STANDARD TABLE.
|
||||
FIELD-SYMBOLS <line> TYPE any.
|
||||
FIELD-SYMBOLS <value> TYPE any.
|
||||
|
||||
DATA(table_name) = 'E070'.
|
||||
|
||||
TRY.
|
||||
DATA(t_comp) = z2ui5_cl_util_api=>rtti_get_t_attri_by_table_name( table_name ).
|
||||
|
||||
DATA(new_struct_desc) = cl_abap_structdescr=>create( t_comp ).
|
||||
|
||||
DATA(new_table_desc) = cl_abap_tabledescr=>create( p_line_type = new_struct_desc
|
||||
p_table_kind = cl_abap_tabledescr=>tablekind_std ).
|
||||
|
||||
CREATE DATA lo_tab TYPE HANDLE new_table_desc.
|
||||
CREATE DATA lo_line TYPE HANDLE new_struct_desc.
|
||||
|
||||
ASSIGN lo_tab->* TO <table>.
|
||||
ASSIGN lo_line->* TO <line>.
|
||||
|
||||
DATA(where) =
|
||||
|( TRFUNCTION EQ 'Q' ) AND ( TRSTATUS EQ 'D' ) AND ( KORRDEV EQ 'CUST' ) AND ( AS4USER EQ '{ sy-uname }' )|.
|
||||
|
||||
SELECT trkorr, strkorr
|
||||
FROM (table_name)
|
||||
WHERE (where)
|
||||
INTO TABLE @<table>.
|
||||
IF sy-subrc <> 0.
|
||||
RETURN.
|
||||
ENDIF.
|
||||
CATCH cx_root.
|
||||
ENDTRY.
|
||||
|
||||
LOOP AT <table> INTO <line>.
|
||||
|
||||
ASSIGN COMPONENT 'TRKORR' OF STRUCTURE <line> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ELSE.
|
||||
ls_data-transport = <value>.
|
||||
ENDIF.
|
||||
|
||||
UNASSIGN <value>.
|
||||
|
||||
ASSIGN COMPONENT 'STRKORR' OF STRUCTURE <line> TO <value>.
|
||||
IF <value> IS NOT ASSIGNED.
|
||||
CONTINUE.
|
||||
ELSE.
|
||||
ls_data-task = <value>.
|
||||
ENDIF.
|
||||
|
||||
UNASSIGN <value>.
|
||||
|
||||
APPEND ls_data TO mt_data.
|
||||
|
||||
ENDLOOP.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
ENDCLASS.
|
16
src/02/02/z2ui5_cl_pop_transport.clas.xml
Normal file
16
src/02/02/z2ui5_cl_pop_transport.clas.xml
Normal file
|
@ -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>Z2UI5_CL_POP_TRANSPORT</CLSNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Transportrequest</DESCRIPT>
|
||||
<STATE>1</STATE>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -185,6 +185,15 @@
|
|||
<LENG>000030</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
<DD03P>
|
||||
<FIELDNAME>SUBCOLUMN</FIELDNAME>
|
||||
<ADMINFIELD>0</ADMINFIELD>
|
||||
<INTTYPE>C</INTTYPE>
|
||||
<INTLEN>000510</INTLEN>
|
||||
<DATATYPE>CHAR</DATATYPE>
|
||||
<LENG>000255</LENG>
|
||||
<MASK> CHAR</MASK>
|
||||
</DD03P>
|
||||
</DD03P_TABLE>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
|
|
Loading…
Reference in New Issue
Block a user