El año pasado
Establecí un camino de aprendizaje para ponerme al día con las herramientas y técnicas de desarrollo de SAP que, a pesar de estar presentes desde hace un tiempo, la zona de confort era demasiado cómoda para salir de ella, hasta que llegó el avance y me di cuenta de que no quería quedarme atrás. Después de un año, las cosas están empezando a dar frutos :), lo cual es genial.
En esta oportunidad, quiero hablar sobre el Marco de Procesamiento de Objetos Empresariales (BOPF), que es otra forma de mantener registros de base de datos de manera orientada a objetos. Aunque esta es una visión bastante simplista, resulta que el marco es capaz de hacer muchas más cosas, como tratar con autorizaciones o incluso orquestar el flujo lógico del negocio de la aplicación. Se puede integrar con varias tecnologías de IU, como UI5 o Web Dynpro/FPM.
Siguiendo mis últimos ejemplos de modelar una Tienda de Música dentro de SAP, quería ver cómo podría modelar esto en un Objeto Empresarial. Así que ejecuté mi instancia de VM con la Edición de Desarrollador de SAP AS ABAP 751, abrí Eclipse y creé un nuevo objeto empresarial.
Eclipse tiene este asistente listo para crear BOs
Seleccioné el paquete y le di un nombre. Estoy realizando una creación manual aquí, pero veremos más adelante que también es posible crear BOs a partir de ABAP CDS usando algunas anotaciones. Estoy curioso por ver cuál es el resultado final, así que nombré esto como "MANUAL" y más tarde compararé este BO con uno creado a partir de CDS para ver la diferencia.
En la siguiente pantalla, se te pide que definas una estructura persistente y una estructura transitoria. La estructura persistente será la definición de la tabla de base de datos, la estructura transitoria son solo campos que se pueden calcular en tiempo de ejecución, como detalles de datos maestros que no deseas tener duplicados en tus tablas de base de datos. Por simplificación, elijo crear solo una estructura persistente.
Una cosa muy buena sobre ABAP 7.50 es que ahora podemos definir estructuras, elementos de datos y dominios desde Eclipse mismo, ¡adiós SE11!
Así que mi estructura se ve así:
@EndUserText.label : 'Estructura'
@AbapCatalog.enhancementCategory : #NOT_EXTENSIBLE
define type zinstruments_ps {
@EndUserText.label : 'Número de serie del instrumento'
serialnumber : abap.char(10);
@EndUserText.label : 'Nombre de la empresa del instrumento'
builder : abap.char(35);
@EndUserText.label : 'Tipo de instrumento'
type : abap.char(30);
@EndUserText.label : 'Imagen del instrumento'
picture_url : abap.char(255);
@EndUserText.label : 'Precio del instrumento'
@Semantics.amount.currencyCode : 'zinstruments_ps.currency_code'
price : abap.curr(15,3);