Fiori Elements vs Freestyle: Cual elegir para tu proyecto SAP?

Kategorie
Fiori
Veröffentlicht
Autor
Johannes

Al desarrollar aplicaciones SAP Fiori, una de las primeras decisiones es la eleccion entre Fiori Elements y Freestyle SAPUI5. Ambos enfoques tienen sus fortalezas y casos de uso ideales.

Descripcion general

AspectoFiori ElementsFreestyle SAPUI5
Esfuerzo de desarrolloBajo a medioAlto
FlexibilidadLimitada por plantillasMaxima
Curva de aprendizajeAnnotations + RAPSAPUI5 completo
MantenimientoSAP actualiza plantillasResponsabilidad propia
ConsistenciaGarantizadaDepende del desarrollador

Fiori Elements

Ventajas

  1. Desarrollo rapido

    • La UI se genera automaticamente desde metadatos
    • Sin codigo JavaScript para funcionalidades estandar
    • Las Annotations controlan el comportamiento de la UI
  2. Consistencia automatica

    • Siempre cumple con las Fiori Design Guidelines
    • Look & Feel uniforme en todas las apps
    • Actualizaciones automaticas con nuevas versiones de UI5
  3. Menor mantenimiento

    • SAP actualiza las plantillas
    • Menos codigo propio = menos errores
    • Mejoras de seguridad automaticas
  4. Integracion RAP

    • Integracion perfecta con RESTful ABAP Programming
    • Behavior Definitions controlan directamente la UI
    • Draft Handling automatico

Desventajas

  1. Flexibilidad limitada

    • Solo se puede lo que soportan las plantillas
    • Requisitos especiales de UI son dificiles
    • A veces se necesita Custom Code
  2. Curva de aprendizaje

    • Vocabulario de Annotations extenso
    • Modelo de metadatos OData debe entenderse
    • Debugging de generacion de UI puede ser complejo
  3. Dependencia

    • Dependencia de las plantillas de SAP
    • Cambios en el comportamiento de plantillas posibles
    • Menos control sobre el codigo generado

Plantillas Fiori Elements

PlantillaCaso de uso
List ReportListas con busqueda y filtros
Object PageVista detallada de objetos
Overview PageDashboards con tarjetas
Analytical List PageListas con funciones analiticas
WorklistListas de tareas simples

Freestyle SAPUI5

Ventajas

  1. Maxima flexibilidad

    • Todo es posible lo que SAPUI5 permite
    • Requisitos de UI personalizados implementables
    • Control total sobre cada control
  2. Escenarios complejos

    • Integraciones especiales
    • Visualizaciones no estandar
    • Flujos de interaccion individuales
  3. Independencia

    • Sin limitaciones de plantillas
    • Propias decisiones de arquitectura
    • Control total del codigo

Desventajas

  1. Mayor esfuerzo

    • Cada vista debe programarse
    • Consistencia es responsabilidad del desarrollador
    • Mas codigo = mas posibilidad de errores
  2. Mantenimiento

    • Las actualizaciones deben implementarse manualmente
    • Revision regular de compatibilidad necesaria
    • Mayor esfuerzo de testing
  3. Curva de aprendizaje empinada

    • SAPUI5 completo debe dominarse
    • Arquitectura MVC, Data Binding, Routing
    • Fiori Design Guidelines deben observarse manualmente

Criterios de decision

Elegir Fiori Elements cuando…

  • Se necesitan aplicaciones CRUD estandar
  • El tiempo de desarrollo es critico
  • Se busca maxima consistencia con SAP estandar
  • El backend es RAP/CDS y el frontend debe generarse
  • El mantenimiento a largo plazo debe mantenerse bajo
-- Ejemplo: List Report con Fiori Elements
-- Solo se necesitan Annotations!
@UI.lineItem: [{ position: 10 }]
@UI.selectionField: [{ position: 10 }]
key OrderId,
@UI.lineItem: [{ position: 20, importance: #HIGH }]
CustomerName,
@UI.lineItem: [{ position: 30 }]
@Semantics.amount.currencyCode: 'Currency'
TotalAmount,
Currency

Elegir Freestyle cuando…

  • Se requieren requisitos de UI especiales
  • Se necesitan integraciones no estandar
  • El diseno difiere de las plantillas Fiori
  • Se necesita maximo control sobre cada detalle
  • Ya existe experiencia con SAPUI5
// Ejemplo: Componente personalizado con Freestyle
sap.ui.define([
"sap/ui/core/Control"
], function(Control) {
return Control.extend("mi.app.control.RatingStars", {
metadata: {
properties: {
value: { type: "int", defaultValue: 0 },
maxValue: { type: "int", defaultValue: 5 }
},
events: {
change: {
parameters: { value: { type: "int" } }
}
}
},
renderer: function(oRm, oControl) {
// Logica de renderizado personalizada
oRm.openStart("div", oControl);
oRm.class("customRating");
oRm.openEnd();
// ... renderizado de estrellas
oRm.close("div");
}
});
});

Enfoque hibrido

A menudo la combinacion de ambos enfoques es la mejor solucion:

Extensions en Fiori Elements

// manifest.json - Extension para Fiori Elements
{
"sap.ui5": {
"extends": {
"extensions": {
"sap.ui.controllerExtensions": {
"sap.fe.templates.ListReport.ListReportController": {
"controllerName": "mi.app.ext.ListReportExt"
}
},
"sap.ui.viewExtensions": {
"sap.fe.templates.ObjectPage.view.Details": {
"CustomSection": {
"className": "sap.ui.core.Fragment",
"fragmentName": "mi.app.ext.CustomSection",
"type": "XML"
}
}
}
}
}
}
}

Custom Column en List Report

CustomColumn.fragment.xml
<core:FragmentDefinition xmlns:core="sap.ui.core"
xmlns="sap.m">
<HBox>
<Icon src="{= ${Status} === 'A' ? 'sap-icon://accept' : 'sap-icon://decline'}"
class="sapUiSmallMarginEnd"/>
<Text text="{StatusText}"/>
</HBox>
</core:FragmentDefinition>

Comparacion de rendimiento

AspectoFiori ElementsFreestyle
Carga inicialSimilar (Bibliotecas UI5)Similar
RenderizadoOptimizado por SAPDepende de implementacion
Huella de memoriaPuede ser mayorControlable
Eficiencia de redCarga de metadatosSegun implementacion

Resumen por caso de uso

Caso de usoRecomendacionRazon
App CRUD estandarFiori ElementsTiempo de desarrollo
Dashboard gerencialFiori Elements (OVP)Plantillas de tarjetas
Interfaz de datos maestrosFiori ElementsConsistencia
Gamification/VisualizacionesFreestyleRequisitos especiales
Integracion de tercerosFreestyleFlexibilidad
Formulario complejo con logicaHibridoEquilibrio

Conclusion

La decision entre Fiori Elements y Freestyle depende de los requisitos especificos del proyecto:

  • Fiori Elements es ideal para aplicaciones de negocio estandar con minimo esfuerzo de desarrollo
  • Freestyle es necesario para requisitos no estandar y maximo control
  • Un enfoque hibrido combina lo mejor de ambos mundos

Para la mayoria de aplicaciones de negocio, Fiori Elements con extensiones selectivas ofrece el mejor equilibrio entre eficiencia de desarrollo y flexibilidad.

Temas relacionados