Validation
This commit is contained in:
@@ -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.
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user