Validation

This commit is contained in:
2025-10-30 13:13:39 +00:00
parent 307d185c33
commit 8839f644e1
2 changed files with 66 additions and 0 deletions

View File

@@ -3,6 +3,10 @@ CLASS lhc_Partner DEFINITION INHERITING FROM cl_abap_behavior_handler.
METHODS get_instance_authorizations FOR INSTANCE AUTHORIZATION
IMPORTING keys REQUEST requested_authorizations FOR Partner RESULT result.
METHODS validatekeyisfilled FOR VALIDATE ON SAVE
IMPORTING keys FOR partner~validatekeyisfilled.
METHODS validatecoredata FOR VALIDATE ON SAVE
IMPORTING keys FOR partner~validatecoredata.
ENDCLASS.
@@ -11,4 +15,62 @@ CLASS lhc_Partner IMPLEMENTATION.
METHOD get_instance_authorizations.
ENDMETHOD.
METHOD validateKeyisFilled.
LOOP AT keys INTO DATA(ls_key) WHERE PartnerNumber IS INITIAL.
INSERT VALUE #( PartnerNumber = ls_key-PartnerNumber ) INTO TABLE failed-partner.
INSERT VALUE #( PartnerNumber = ls_key-PartnerNumber
%msg = new_message_with_text( severity = if_abap_behv_message=>severity-error
text = 'Partnernumber is mandatory' )
) INTO TABLE reported-partner.
ENDLOOP.
ENDMETHOD.
METHOD validateCoreData.
READ ENTITIES OF ZHS_I_RAPPartner IN LOCAL MODE
ENTITY Partner
FIELDS ( Country PaymentCurrency )
WITH CORRESPONDING #( keys )
RESULT DATA(lt_partner_data)
FAILED DATA(ls_failed)
REPORTED DATA(ls_reported).
LOOP AT lt_partner_data INTO DATA(ls_partner).
SELECT SINGLE FROM i_country
FIELDS Country
WHERE Country = @ls_partner-country
INTO @DATA(ld_found_country).
IF sy-subrc <> 0.
INSERT VALUE #( PartnerNumber = ls_partner-PartnerNumber ) INTO TABLE failed-partner.
INSERT VALUE #(
PartnerNumber = ls_partner-PartnerNumber
%msg = new_message_with_text( text = 'Country not found in I_Country' )
%element-country = if_abap_behv=>mk-on
) INTO TABLE reported-partner.
ENDIF.
SELECT SINGLE FROM I_Currency
FIELDS Currency
WHERE Currency = @ls_partner-PaymentCurrency
INTO @DATA(ld_found_currency).
IF sy-subrc <> 0.
INSERT VALUE #( PartnerNumber = ls_partner-PartnerNumber ) INTO TABLE failed-partner.
INSERT VALUE #(
PartnerNumber = ls_partner-PartnerNumber
%msg = new_message_with_text( text = 'Currency not found in I_Currency' )
%element-paymentcurrency = if_abap_behv=>mk-on
) INTO TABLE reported-partner.
ENDIF.
ENDLOOP.
ENDMETHOD.
ENDCLASS.

View File

@@ -11,6 +11,10 @@ authorization master ( instance )
update;
delete;
validation validateKeyisFilled on save { create; }
validation validateCoreData on save { create; field Country, PaymentCurrency; }
mapping for zhs_dmo_partner
{
PartnerNumber = partner;