-- drop function fnt_getdocumentbyid(table_id numeric(10,0), record_id numeric(10,0));
-- select * from adempiere.fnt_getdocumentbyid(321, 1000000);
CREATE OR REPLACE FUNCTION fnt_getdocumentbyid(table_id numeric(10,0), record_id numeric(10,0))
RETURNS varchar AS $$
DECLARE
table_name TEXT;
select_query TEXT;
result RECORD;
v_documentno varchar;
BEGIN
-- Obtiene el nombre de la tabla a partir de ad_table_id
SELECT t.TableName
INTO table_name
FROM AD_Table t
WHERE t.AD_Table_ID = table_id;
-- Construye la consulta SELECT
select_query := 'SELECT * FROM ' || table_name ||
' WHERE ' || table_name || '_ID = ' || record_id || ';';
-- Ejecuta la consulta y muestra los resultados
FOR result IN EXECUTE select_query LOOP
-- Imprime los valores de cada fila
-- RAISE NOTICE '%', result.DocumentNo; -- Reemplaza los nombres de columna
v_documentno = result.DocumentNo;
END LOOP;
return v_documentno;
END;
$$ LANGUAGE plpgsql;
martes, 16 de julio de 2024
Get DocumentNo By Table ID and Record ID
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario