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