Hello,
A veces buscas una solución en Google (o incluso aquí) y es muy difícil de encontrar, o buscas mejores formas de lograr un escenario que SAP estándar ya hace (como BAPIs, etc.) pero sin mucho éxito.
Estoy aquí para decirte que, si tienes instalado OnPremise FIORI (u otros productos), puedes estudiar cómo se hace en el "nuevo enfoque" que viene con las aplicaciones estándar, principalmente con clases/métodos "API" que pueden ser o contener exactamente lo que necesitas.
Veamos la Aplicación FIORI estándar
Approve Purchase Order
como ejemplo:
Al observar la página de detalles del ítem, podemos ver que lista todos los detalles importantes sobre él:
Pero si no quiero seleccionar manualmente todas las tablas relevantes para obtener estos datos, ¿qué puedo hacer para lograr una solución "completa" y simple? ¡Estudiemos cómo lo hace FIORI!
Primero, activando un rastreo para mi usuario en:
/IWFND/TRACES.
Después de la actualización, notamos qué servicio/entidad ejecuta exactamente esta pantalla para obtener los datos:
Al observar el retorno, podemos ver todos los datos presentados en la pantalla.
Ahora que sabemos qué servicio se ejecuta (también puedes averiguarlo consultando la Biblioteca de Aplicaciones FIORI ?):
Ve a la implementación del servicio para encontrar la clase proveedora de datos (DPC):
Esta:
Ahora busca esta clase, coloca un punto de interrupción en el método GET_ENTITY (buscando la entidad WorkflowTask, como vimos en el RASTREO):
Descubrimos que el lugar exacto donde el código estándar busca los datos relevantes para esta PO es en el método GET_PO_WORKFLOW_FOR_LIST:
¡Voilà! ¿Ahora has descubierto que hay una clase (CL_GBAPP_APV_PO_API) que contiene muchos métodos relacionados con el proceso de aprobación de una PO, así que puedes ver qué hacen todos los métodos y copiarlos según tus necesidades o incluso usar también estos métodos de la clase.
¡Disfruta! ??????
Saludos.