Add BO-enhancements (Features) using RAP Cloud Environment
Desarrollo de ampliaciones con código de cliente en una aplicación en ABAP RAP en Ambiente Cloud (Features).
Objetivo
Adecuar una aplicación CRUD para añadir ampliaciones a lógica de negocio o código de cliente, con el modelo RestFul Application programming model en Eclipse utilizando ABAP Development Tools.
Prerequisitos
- Desarrollo de un servicio OData para una aplicación FIORI (Managed).
- Añadir lógica de negocio a una aplicación ABAP RAP ambiente Cloud.
- Añadir una entidad al modelo de datos de una aplicación ABAP RAP ambiente Cloud.
- Añadir virtual elements a una aplicación RAP Ambiente Cloud.
- Añadir internal actions a una aplicación RAP Ambiente Cloud.
- Añadir functions a una aplicación RAP Ambiente Cloud.
Cuando desarrollamos una aplicación por lo regular tenemos algunas acciones que pudieran ser condicionadas de acuerdo a la lógica del negocio.
En este caso condicionaremos algunas acciones estándar Update, Delete así como las no estándar Accept o Reject de acuerdo al estatus del Travel.
Pasos
- Definir el feature control en el behavior de Travel.
- Implementar el código en la clase pool de Travel.
- Visualizar la Aplicación (Preview).
1.- Definir el feature control en el behavior de Travel.
Incluír en las siguientes sentencias el indicador de feature.
( features : instance )
Grabar (Ctrl+S) y Activar (CTRL+F3).
2.- Implementar el código en la clase pool de Travel.
Implementar el método a la clase de Travel para el feature.
Añadir el siguiente método a la clase del Travel e implementarlo.
METHODS get_instance_features FOR INSTANCE FEATURES
IMPORTING keys REQUEST requested_features FOR Travel RESULT result.
**************************************************************************
* Instance-bound dynamic feature control
**************************************************************************
METHOD get_instance_features.
" read relevant travel instance data
READ ENTITIES OF ZR_RAP100_TRAVEL_M IN LOCAL MODE
ENTITY travel
FIELDS ( TravelID OverallStatus )
WITH CORRESPONDING #( keys )
RESULT DATA(travels)
FAILED failed.
" evaluate the conditions, set the operation state, and set result parameter
result = VALUE #( FOR travel IN travels
( %tky = travel-%tky
%features-%update = COND #( WHEN travel-OverallStatus = travel_status-accepted
THEN if_abap_behv=>fc-o-disabled ELSE if_abap_behv=>fc-o-enabled )
%features-%delete = COND #( WHEN travel-OverallStatus = travel_status-open
THEN if_abap_behv=>fc-o-enabled ELSE if_abap_behv=>fc-o-disabled )
%action-Edit = COND #( WHEN travel-OverallStatus = travel_status-accepted
THEN if_abap_behv=>fc-o-disabled ELSE if_abap_behv=>fc-o-enabled )
%action-acceptTravel = COND #( WHEN travel-OverallStatus = travel_status-accepted
THEN if_abap_behv=>fc-o-disabled ELSE if_abap_behv=>fc-o-enabled )
%action-rejectTravel = COND #( WHEN travel-OverallStatus = travel_status-rejected
THEN if_abap_behv=>fc-o-disabled ELSE if_abap_behv=>fc-o-enabled )
) ).
ENDMETHOD.
A todo código se le puede dar formato con Shift + F1.
Grabar (Ctrl+S) y Activar (CTRL+F3).
3.- Visualizar la aplicación.
Seleccionar el Service Binding de la aplicación.
Presionar el botón Preview.
Presionar el botón Go.
Y seleccionar un Travel para ver su detalle.
Acciones activas dependiendo del estatus del Travel.
Travel status: Open.
Travel status: Accepted.
Travel status: Rejected.
Continua…
Agregar Side Effects a la aplicación creada.
Add BO-enhancements (Side Effects) using RAP Cloud Environment