Introdução/Vista Geral
Freqüentemente, em projetos envolvendo múltiplos usuários com integração de sistemas complexos, ocorre que, por algum motivo, a instância de BO (Objeto de Negócio) está bloqueada pela integração ou pelo usuário comercial. Isso resulta em uma falha na atualização.
Se deseja verificar o estado de bloqueio da instância do objeto de negócio, pode usar a Biblioteca de Reutilização padrão fornecida pela SAP "BOAction". Agradecemos a
jravnik
pelo conselho.
Nota: A Biblioteca de Reutilização "BOAction" faz parte do namespace "AP.PlatinumEngineering", que geralmente não é oficialmente suportado pela SAP. Na maioria dos casos, eles estão bem equipados para oferecer suporte a recursos comerciais essenciais, como envio de e-mails, obtenção de valores da lista de códigos com base no tipo de dados, entre outros. No entanto, infelizmente, não estão vinculados aos SLAs de Suporte Contratual da SAP.
Para mais detalhes, consulte:
https://apps.support.sap.com/sap/support/knowledge/public/en/2698916
Pré-Requisito
-
Estudo de Aplicações na Nuvem da SAP
-
Acesso ao sistema SAP Cloud for Customer com acesso ao PDI / SDK
-
Visão geral básica sobre o Script ABSL, Ação de BO e Eventos.
Caso de Uso:
O caso de uso que estou definindo aqui é completamente hipotético e poderia ser facilmente alcançado com recursos padrão.
Meu requisito é, a partir do BO personalizado, validar se a instância de oportunidade associada ao BO personalizado está bloqueada ou não. Se a instância de oportunidade estiver bloqueada por outro usuário, então gere uma mensagem de erro e evite salvar a instância do BO personalizado.
Implementação:
Chega de conversa, vamos ver isso em ação!
Crie um BO personalizado com campos e, mais importante, definição de mensagens. Como quero passar a mesma mensagem que está sendo retornada pela Biblioteca de Reutilização da SAP, mantive a definição da mensagem bastante genérica.
Definição de BO para a Definição de Texto de Mensagem:
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;
****
****
****
}
Desejamos exibir a mensagem de erro assim que um usuário salvar a instância do BO personalizado. Portanto, criei um script ABSL para Validação-AoGuardar do nó raiz do meu BO personalizado
Código ABSL de referência
Pedro Pascal
Se unió el 07/03/2018