A la primera pregunta, creo que es la mejor forma, comprobar los valores de los campos obligatorios en un proceso y mostrar un mensaje
A la segunra pregunta: SET RETORNO PROCESO = NO (al menos aparece entre la lista de sentencias de procesos, pero he intentado utilizarla y no he podido. Tendre que probarla mas despacio.)
Cierto , pero esa sentencia FINALIZA EL PROCESO, y SET RETORNO PROCESO = NO, retorna el valor falso cuando este finaliza y por tanto, en la pulsacion de un boton, la segunda sentencia cancelaria la pulsacion del boton. Pero FINZALIZAR PROCESO no cancela la pulsacion, simplemente interrumpe el proceso.