genexusextensions | | | |
jlr | |
Hola, Enrique
Creo que la mejor forma de hacer esto sería que tu extension se suscriba el
evento BeforeSaveKBObject, y que en caso de que lo entienda necesario
indique un error.
Al participar del Save del objeto, te puede servir tanto del lado del
cliente como del lado del server. Para que la extension sirva del lado del
server simplemente tiene que ser una extension a nivel de BL (tu clase
Package deriva de AbstractPackage, implementa IGxPackageBL, la dll no
referencia paquetes de UI).
Luego puedes elegir si lo instalas sólo del lado del cliente, sólo del lado
del server o de los dos lados. Incluso podrías tener condiciones de error
diferentes según de qué lado estás.
Sería algo así:
[EventSubscription(ArchitectureEvents.BeforeSaveKBObject)]
public void OnBeforeSaveKBObject(object sender, KBObjectCancelEventArgs
args)
{
if (!CheckRules(args.KBObject, out string message))
{
args.Cancel = true;
args.CancelMessage = message;
}
}
private bool CheckRules(KBObject obj, out string message)
{
if (/* some condition */)
{
message = "Some error message";
return false;
}
if (/* some other condition */)
{
message = "Some other error message";
return false;
}
message = String.Empty;
return true;
}
Saludos,
---------- Forwarded message --------- |
|
|
|
|
Back to genexusextensions |
|