From fc5d2e04d8b389d6b71ab71e302929135c3f6f5d Mon Sep 17 00:00:00 2001 From: a4704105-04b0-45f3-93ed-b6db29ef1d94 Date: Thu, 30 Oct 2025 15:06:53 +0000 Subject: [PATCH] Action --- src/zbp_hs_i_rappartner.clas.locals_imp.abap | 43 ++++++++++++++++++++ src/zhs_c_rappartner.bdef.asbdef | 3 ++ src/zhs_c_rappartner.ddlx.asddlxs | 4 +- src/zhs_i_rappartner.bdef.asbdef | 3 ++ 4 files changed, 52 insertions(+), 1 deletion(-) diff --git a/src/zbp_hs_i_rappartner.clas.locals_imp.abap b/src/zbp_hs_i_rappartner.clas.locals_imp.abap index dd1e6b6..de32bb3 100644 --- a/src/zbp_hs_i_rappartner.clas.locals_imp.abap +++ b/src/zbp_hs_i_rappartner.clas.locals_imp.abap @@ -9,6 +9,11 @@ CLASS lhc_Partner DEFINITION INHERITING FROM cl_abap_behavior_handler. IMPORTING keys FOR partner~validatecoredata. METHODS fillcurrency FOR DETERMINE ON MODIFY IMPORTING keys FOR partner~fillcurrency. + METHODS clearallemptystreets FOR MODIFY + IMPORTING keys FOR ACTION partner~clearallemptystreets. + + METHODS fillemptystreets FOR MODIFY + IMPORTING keys FOR ACTION partner~fillemptystreets. ENDCLASS. @@ -92,4 +97,42 @@ CLASS lhc_Partner IMPLEMENTATION. ENDMETHOD. + METHOD clearAllEmptyStreets. + + SELECT FROM zhs_dmo_partner + FIELDS partner, street + WHERE street = 'EMPTY' + INTO TABLE @DATA(lt_partner_data). + + LOOP AT lt_partner_data INTO DATA(ls_partner). + MODIFY ENTITIES OF ZHS_I_RAPPartner IN LOCAL MODE + ENTITY Partner + UPDATE FIELDS ( Street ) + WITH VALUE #( ( PartnerNumber = ls_partner-partner Street = '' %control-Street = if_abap_behv=>mk-on ) ). + ENDLOOP. + + INSERT VALUE #( + %msg = new_message_with_text( text = |{ lines( lt_partner_data ) } records changed| + severity = if_abap_behv_message=>severity-success ) + ) INTO TABLE reported-partner. + + + ENDMETHOD. + + METHOD fillEmptyStreets. + READ ENTITIES OF ZHS_I_RAPPartner IN LOCAL MODE + ENTITY Partner + FIELDS ( Street ) + WITH CORRESPONDING #( keys ) + RESULT DATA(lt_partner_data). + + LOOP AT lt_partner_data INTO DATA(ls_partner) WHERE Street IS INITIAL. + MODIFY ENTITIES OF ZHS_I_RAPPartner IN LOCAL MODE + ENTITY Partner + UPDATE FIELDS ( Street ) + WITH VALUE #( ( %tky = ls_partner-%tky Street = 'EMPTY' %control-Street = if_abap_behv=>mk-on ) ). + ENDLOOP. + + ENDMETHOD. + ENDCLASS. diff --git a/src/zhs_c_rappartner.bdef.asbdef b/src/zhs_c_rappartner.bdef.asbdef index b0a6ff3..8522655 100644 --- a/src/zhs_c_rappartner.bdef.asbdef +++ b/src/zhs_c_rappartner.bdef.asbdef @@ -6,4 +6,7 @@ define behavior for ZHS_C_RAPPartner alias Partner use create; use update; use delete; + + use action fillEmptyStreets; + use action clearAllEmptyStreets; } \ No newline at end of file diff --git a/src/zhs_c_rappartner.ddlx.asddlxs b/src/zhs_c_rappartner.ddlx.asddlxs index 8dc7dc2..606f923 100644 --- a/src/zhs_c_rappartner.ddlx.asddlxs +++ b/src/zhs_c_rappartner.ddlx.asddlxs @@ -33,7 +33,9 @@ annotate entity ZHS_C_RAPPartner with ] @UI.selectionField: [{ position: 10 }] - @UI.lineItem: [{ position: 20, importance: #MEDIUM }] + @UI.lineItem: [{ position: 20, importance: #MEDIUM }, + { position: 10, type: #FOR_ACTION, label: 'Fill', dataAction: 'fillEmptyStreets' }, + { position: 20, type: #FOR_ACTION, label: 'Clear All', dataAction: 'clearAllEmptyStreets' }] @UI.identification: [{ position: 20, qualifier: 'PARTNER_INFO' }] @EndUserText.label: 'Partner' @EndUserText.quickInfo: 'Identifier of the partner' diff --git a/src/zhs_i_rappartner.bdef.asbdef b/src/zhs_i_rappartner.bdef.asbdef index 6f6601a..fedf1a8 100644 --- a/src/zhs_i_rappartner.bdef.asbdef +++ b/src/zhs_i_rappartner.bdef.asbdef @@ -16,6 +16,9 @@ authorization master ( instance ) determination fillCurrency on modify { create; update; } + action fillEmptyStreets; + static action clearAllEmptyStreets; + mapping for zhs_dmo_partner {