Documentos de Académico
Documentos de Profesional
Documentos de Cultura
BOPF controla la lógica empresarial de la aplicación, así como la recuperación de datos del
búfer y la capa de persistencia. Los principales principios de diseño son una separación clara de
la lógica comercial y el almacenamiento en búfer de los datos, así como una estructuración clara
de la lógica comercial en partes pequeñas con una separación clara de cambiar y verificar la
lógica comercial. El enfoque BOPF para implementar objetos comerciales divide la lógica
comercial en los siguientes cuatro conceptos:
● Comportamiento
● Determinaciones
● Validaciones
● Consultas
/BOBF/TEST_UI: Esta transacción se utiliza como entorno de prueba. Esta transacción ayudaría
al consultor (ya sea funcional o técnico) a ver los datos de una orden de expedición, orden de
flete o reserva de flete en particular.
Caso de uso
A diferencia de ABAP, aquí seguimos un enfoque diferente en BOPF para recuperar los datos de
la base de datos. No vamos a escribir ninguna consulta de selección;
En cambio, los datos se recuperan llamando a los métodos estándar: QUERY, RETRIEVE y
RETRIEVE BY ASSOCIATION, según la relación entre los nodos en un objeto comercial.
Fuente: https://blogs.sap.com/2014/02/21/bopf-overview-and-report-development-with-a-usecase/
Capa de consumidores
● En la capa del consumidor, podemos utilizar los métodos de la API de BOPF para crear
nuevos BO, buscar BO existentes, actualizar los BO seleccionados, etc.
● Con frecuencia, los BO de BOPF serán consumidos por aplicaciones de interfaz de
usuario, como aplicaciones WDA, etc.
Capa de transacción
● Las interacciones con los BO dentro de BOPF se negocian a través de una capa de
transacción centralizada que maneja los detalles de manejo de transacciones de bajo
nivel, como el bloqueo de objetos, etc.
● Desde la perspectiva de la capa del consumidor, las interacciones con la capa de
transacción consisten en poco más que un puñado de llamadas API intuitivas.
Capa de persistencia
Fuente: https://blogs.sap.com/2013/01/04/navigating-the-bopf-part-1-getting-started/
● Nodos
○ Los nodos se utilizan para modelar los datos de un BO.
○ Los nodos se organizan jerárquicamente para modelar las diversas dimensiones
de los datos de BO. Esta jerarquía está organizada debajo de un solo nodo raíz
(muy parecido a XML). A partir de ahí, la jerarquía se puede anidar
arbitrariamente según los requisitos comerciales.
○ La mayor parte del tiempo se encontrará trabajando con nodos persistentes (por
ejemplo, nodos respaldados por la base de datos). También es posible definir
nodos transitorios cuyos contenidos se cargan bajo demanda en tiempo de
ejecución.
○ Cada nodo consta de uno o más atributos que describen el tipo de datos
almacenados en el nodo:
■ Los atributos vienen en dos variedades distintas: atributos persistentes y
atributos transitorios. Los atributos persistentes representan aquellos
atributos que persistirán cada vez que se guarde el BO. Los atributos
transitorios son atributos volátiles que se cargan bajo demanda.
■ Los atributos de un nodo se definen en términos de definiciones de
estructura del Diccionario ABAP.
○ En tiempo de ejecución, un nodo BO es como un contenedor que puede tener
cero, una o muchas filas.
● Comportamiento:
○ Las acciones definen los servicios (o el comportamiento) de un BO.
○ Las acciones se asignan a nodos individuales dentro de un BO.
○ La funcionalidad proporcionada por una acción (generalmente) se define en
términos de una clase de Objetos ABAP que implementa la interfaz
/BOBF/IF_FRW_ACTION.
○ Hasta cierto punto, es apropiado pensar en las acciones como similares a los
métodos de una clase de Objetos ABAP.
● Asociaciones
○ Aunque los BO están diseñados para ser entidades autónomas y
autocontenidas, no tienen que existir de forma aislada. Con las asociaciones
podemos definir una relación directa y unidireccional de un BO a otro.
● Determinaciones
○ De acuerdo con la guía de mejora de BOPF mencionada anteriormente, una
determinación "es un elemento asignado a un nodo de objeto comercial que
describe la lógica comercial interna cambiante en el objeto comercial"
○ En algunos aspectos, las determinaciones son análogas a los disparadores de
bases de datos. En otras palabras, son funciones que se activan siempre que se
cumplan determinadas condiciones de activación. Estas condiciones se
describen en términos de una serie de patrones :
■ "Obtener datos dependientes inmediatamente después de la
modificación"
■ "Obtener datos dependientes antes de guardar"
■ “Rellenar atributos transitorios de nodos persistentes”
■ "Deriva instancias de nodos transitorios"
○ La lógica dentro de una determinación se define a través de una clase de
Objetos ABAP que implementa la interfaz /BOBF/IF_FRW_DETERMINATION.
● Validaciones
○ De acuerdo con la guía de mejora de BOPF, las validaciones son "un elemento
de un nodo de objeto comercial que describe alguna lógica comercial de
verificación interna en el objeto comercial".
○ Validaciones de acciones:
■ Consultas personalizadas
Fuente: https://blogs.sap.com/2013/01/04/navigating-the-bopf-part-2-business-object-overview/
● /BOBF/IF_TRA_TRANSACTION_MGR
○ Esta referencia de objeto proporciona un administrador de transacciones que se
puede usar para administrar cambios transaccionales. Dichas transacciones
podrían contener un solo paso (por ejemplo, actualizar el nodo X) o dividirse en
varios pasos (agregar un nodo, llamar a una acción, etc.).
● /BOBF/IF_TRA_SERVICE_MANAGER
○ La referencia del objeto del administrador de servicios nos proporciona los
métodos que necesitamos para buscar nodos BO, actualizar nodos BO,
desencadenar validaciones, realizar acciones, etc.
● /BOBF/IF_FRW_CONFIGURATION
○ Esta referencia de objeto nos proporciona metadatos para un BO en particular.
Exploraremos la utilidad de tener acceso a estos metadatos próximamente.
ENDCLASS.
me->mo_txn_mngr =
/bobf/cl_tra_trans_mgr_factory=>get_transaction_manager( ).
me->mo_svc_mngr =
/bobf/cl_tra_serv_mgr_factory=>get_service_manager(
/bobf/if_demo_customer_c=>sc_bo_key ).
Fuente:https://blogs.sap.com/2013/01/16/navigating-the-bopf-part-3-working-with-the-bopf-a
pi/