Devolver información de una funcion
De WikiDgp21
Revisión del 11:02 11 mar 2009 de Badia (Discusión | contribuciones) (Página nueva: Para ello hemos de definit la función para que nos devuelve un tipo result. Este tipo tiene 3 componentes: *Estado: Habitualmente **0: Todo ha ido bien. **9: Error *Código del erro...)
Para ello hemos de definit la función para que nos devuelve un tipo result. Este tipo tiene 3 componentes:
- Estado: Habitualmente
- 0: Todo ha ido bien.
- 9: Error
- Código del error: Corresponderá a un código de mensaje que introduciremos previamente.
- Información adicional: Información adicional relativa a los datos que han generado el error que le sirva al usuario para corregir el error.
Prototipo de función a utilizar
CREATE FUNCTION f_contabf (codfac numeric, arg character) RETURNS result AS $_$
DECLARE
...
BEGIN
res.stat = 0;
res.cod = ;
res.text = ;
...
-- Genera error
if fechacp >= fecha then
res.stat = 9;
res.cod = 'f_contcp'; --> Código del mensaje a mostrar por la aplicación
res.text = fecha;
return res;
end if;
...
END;
$_$
LANGUAGE plpgsql;
Pantalla: dgg0450.0, (Facturas de ventas ), crtrl. 11 (guardar)
Programación:
stat numeric(2,0)@1;
...
result numeric(2,0)@148;
...
exef(22); //genera los apuntes contables
if ((result > 0) | (stat > 0)) //si hay error en la función
{
exef(23); //mensaje error
exef(16); //rollback
exit 0;
}
Función 22
Invoca la función que devuelve tipo result
g_rellena, parámetros: 1,0,n
Sql: select * from f_contabf(#118,'i')
Pares: 001148,002149,003150
Campos para recoger el resultado de la función:
148: Status, Numérico 2 dígitos
149: Código error, alfanumérico, 10 dígitos
150: Información adicional, alfanumérico, 40 dígitos
Función 23
Mensaje de error
g_mens, parámetros: msg0008 ,#149,,150