Introducción/Vista General
A menudo, en proyectos que involucran a múltiples usuarios con integración de sistemas complejos, sucede que debido a alguna razón, la instancia de BO (Objeto de Negocio) está bloqueada por la integración o el usuario comercial. Esto provoca un fallo en la actualización.
En caso de que desee conocer el estado de bloqueo de la instancia del objeto de negocio, puede utilizar la Biblioteca de Reutilización estándar proporcionada por SAP "BOAction". Gracias a
jravnik
por dar el consejo.
Nota: La Biblioteca de Reutilización "BOAction" forma parte del espacio de nombres "AP.PlatinumEngineering", que en general no está oficialmente respaldado por SAP. En la mayoría de los casos, están muy bien equipados para admitir características comerciales clave como el envío de correos electrónicos, obtener el valor de la lista de códigos en función del tipo de datos y más. Pero desafortunadamente, no están vinculados a los SLA de Soporte Contractual de SAP.
Para obtener más detalles, consulte:
https://apps.support.sap.com/sap/support/knowledge/public/en/2698916
Pre-Requisito
-
Estudio de Aplicaciones en la Nube de SAP
-
Acceso al sistema SAP Cloud for Customer con acceso a PDI / SDK
-
Visión general básica sobre el Script ABSL, Acción de BO y Eventos.
Caso de Uso:
El caso de uso que estoy definiendo aquí es completamente hipotético y podría lograrse fácilmente con características estándar.
Mi requisito es, desde el BO personalizado me gustaría validar si la instancia de oportunidad asociada con el BO personalizado está bloqueada o no. Si la instancia de oportunidad está bloqueada por otro usuario, entonces genere un mensaje de error y evite guardar la instancia del BO personalizado.
Implementación:
Suficiente charla, ¡veamos esto en acción!
Cree un BO personalizado con campos y, lo más importante, definición de mensajes. Dado que quiero pasar el mismo mensaje que está siendo devuelto por la Biblioteca de Reutilización de SAP, mantuve la definición del mensaje bastante genérica.
Definición de BO para la Definición de Texto de Mensaje:
import AP.Common.GDT as apCommonGDT;
import AP.PDI.bo;
[ChangeHistory] businessobject SK_PlayGround raises MSG_Error {
message MSG_Error text "&1": String;
[AlternativeKey] element ID: ID;
element StartDate: Date;
element EndDate: Date;
element ContactTime: Time;
element Note: MEDIUM_Name;
element OpportunityUUID: UUID;
****
****
****
}
Queremos mostrar el mensaje de error tan pronto como un usuario guarde la instancia del BO personalizado. Por lo tanto, he creado un script ABSL para Validación-AlGuardar del nodo raíz de mi BO personalizado
Código ABSL de referencia
Pedro Pascal
Se unió el 07/03/2018