Como comenté en la entrada referente al contenido de Employee Central, para mí los objetos MDF es una de las mayores virtudes de SuccessFactors.
Cada vez menos, pero todavía cuando hablo con algún compañero que trabaja con SAP on premise me dice, “es que SuccessFactors es muy rígido, no te puedes salir del estándar”. Y ahí es cuando empiezo a hablar de los objetos MDF y de las posibilidades que pueden ofrecer, sabiendo que no tienes un sistema por detrás para programar. Por lo menos no directamente.
En SAP on premise, cuando un cliente pide una nueva funcionalidad fuera del estándar, muchas veces pensamos en crear un objeto, enlaces y en la PPOME. Salvando las distancias y años entre sistemas, ahora podemos ampliar el sistema en SuccessFactors con los objetos MDF. Además, si disponemos de una cuenta de SCP, podemos llegar a utilizar extensiones y aplicaciones Fiori que nos hagan disponer de una funcionalidad casi sin restricciones. Y ahí tendríamos la parte de programación. Intentaré explicar a qué me refiero más adelante.
Voy a hacer una serie de post en los que intentaré mostrar:
- Cómo crear una extensión en SuccessFactors
- Cómo crear un objeto MDF (en este caso varios y enlazados entre ellos)
- Cómo ponerlo a disposición del empleado y del departamento de Recursos Humanos
Para ello utilizaré otros elementos que tiene el sistema como:
- Reglas de negocio, para inicializar campos y realizar controles
- Picklist o listas desplegables, para los campos seleccionables
- Objetos de referencia, también para campos seleccionables
- Workflows o flujos de trabajo, para que los empleados soliciten el dato y HR pueda tramitarlo
- Resumen de estructura de empresa, para ver gráficamente la estructura de los parkings con las plantas y plazas que tienen, así como las personas que ocupan cada plaza, si es lo que queremos
- Permisos Basados en Roles, para que cada persona vea y actualice solo aquello que puede.
Hasta ahora, los post anteriores eran más teóricos que prácticos. Para realizar este he creado una funcionalidad nueva, probando de distintas formas e intentando utilizar para ello varios recursos del sistema.
La funcionalidad va a consistir en dotar a la empresa de la base de datos de las plazas de garaje que tiene, o puede tener, en todas sus sedes y su asignación a empleados.
Para ello, lo primero que he hecho ha sido crear una extensión en el centro de extensiones de SuccessFactors para poder tener agrupados y ordenados todos los objetos que forman parte de la funcionalidad (4 objetos no son muchos, pero cuando vayas por el objeto 40 es conveniente tener todo ordenado).
Hay que rellenar el Título y el Código externo, pinchar el botón acción y Guardar extensión. También desde aquí podemos pinchar Añadir nuevo objeto para añadir el primero de los objetos
Para la funcionalidad, he creado 4 objetos
- Parking: Va a contener el parking, la ciudad y dirección donde esté el parking
- Planta: Va a contener el número de planta del parking, y estará asociado al parking específico
- Plaza: Va a contener el número de plaza con unas características propias y estará asociado a la planta
- Peticionplaza. Va a ser el enlace entre el empleado y la plaza de garaje
Desde el centro de extensiones se verá así. Con todos los objetos dentro de la extensión en el centro de extensiones.
Para la creación de un objeto, como he comentado antes, basta con pinchar dentro de la extensión, en Añadir nuevo objeto. Esto nos abrirá un objeto nuevo al que hay que darle un nombre (etiqueta) y un código. Y si se quiere una descripción.
Los campos externalCode y externalName vienen por defecto, y podremos cambiar el tipo de datos según lo que nos haga falta. Un tipo autonumérico, un tipo string, un tipo user, etc.
Con el botón Añadir campo, podremos añadir los campos que necesitemos y definir sus características básicas. Tipo de dato, visibilidad y si es obligatorio o no, y ya según el tipo de dato es importante indicar el origen de los datos, si se trata de una lista desplegable o de otro objeto o la longitud máxima si se trata de un string.
Así quedaría un objeto ya definido
En el menú de la izquierda, podemos indicar la relación de este objeto con otros objetos. Para este ejemplo, el objeto Planta se relaciona con el objeto Parking. Y ahí será donde lo reflejemos. Además, se tiene que indicar la multiplicidad y la relación temporal o de propiedad que tiene con el otro objeto.
En la parte de Reglas, podemos asignar reglas de negocio en los distintos apartados que tienen. Ya sean al iniciar el objeto, al cambiar los datos, al guardarlos o al borrarlos. O poner una regla a un campo específico, por si cambia ese campo.
Las reglas se pueden crear desde aquí o desde la funcionalidad de SuccessFactors de reglas de negocio. Si la regla no existe, la podemos crear desde aquí y si existe, la añadimos.
También se puede añadir flujos de trabajo (workflows) para que sea necesaria la aprobación del dato, con modificación del mismo o no, o para avisar a otras personas de la creación del dato.
El flujo de trabajo se puede asignar directamente en la pestaña de Flujo de trabajo o a través de una regla de negocio, como en este caso, siendo de esta forma la recomendable.
Además, hay que añadir una interfaz de usuario, que será la pantalla que se muestre cuando entren las personas a ver el dato.
Esta interfaz podrá tener los mismos campos que el objeto, más o menos. ¡Es nuestra interfaz y la diseñamos como queremos!
Las siguientes partes del menú, son opciones generales del objeto.
Propiedades, aquí podemos indicar principalmente si el objeto está fechado o no, si se puede consultar vía API y si está activo. Además, si el dato lleva flujo de datos asociado, si no se considera dato válido hasta que se haya realizado la aprobación del mismo.
En la pestaña de seguridad, indicaremos si el objeto requiere de tener el permiso necesario para verlo, crearlo, modificarlo o borrarlo. Y en qué parte de los permisos se encuentra.
Hay que recordar que en SuccessFactors se gestionar todo con Permisos Basados en Roles (RBP), así que aquí podemos indicar a cada rol, que permiso le damos, o podremos hacerlo desde la funcionalidad específica de Gestionar funciones de autorización.
Por último, el apartado DPP se corresponde con protección de datos y auditoría
Una vez que hemos rellenado todo lo que nos ha hecho falta, y para comenzar con las pruebas, pinchamos en el botón Acción y damos a Guardar objeto
Todas estas funcionalidades del centro de extensiones se pueden acceder desde sus entradas individuales. La definición de campos de datos, relaciones y asignación de reglas se podría hacer desde Configurar definiciones de objetos. La interfaz desde Gestionar interfaz de usuario de configuración, los permisos, desde Gestionar funciones de autorización, pero para eso tenemos una pantalla única que por lo general nos lo hará más sencillo.
Para no hacer más extenso el post, lo dejaré aquí y en el siguiente mostraré la configuración y relación de los objetos que he creído necesarios para disponer de la funcionalidad.