我有一个返回单行的plsql,我正在通过动态操作执行它,如果没有值,我想通过 APEX_ERROR.ADD_ERROR 显示不同的错误消息。 显然,所有代码都是正确的,但是如果出错,则不会显示任何消息。
请注意:动态操作是通过按下客户端上的条件键javascript = //输入键 this.browserEvent.which === 13 不要提交页面。
我不知道该方法是否错误,您可以找到更好的方法。
declare
l_serie number;
l_codigo number;
l_product_name varchar2(500);
l_precio number;
l_exists number;
begin
select count(*)
into l_exists
from (
select a.ID_INGRESO_SERIE,
a.CODIGO_PRODUCTO,
(select PRODUCT_NAME
from TBL_PRD_DET
where PRODUCT_ID =a.CODIGO_PRODUCTO ) PRODUCTO,
(select PRICE
from TBL_SALE_PRICE
where PRODUCT_ID=a.CODIGO_PRODUCTO
and INVETORY_TYPE=1) PRECIO
from TBL_INGRESOS_DET_SERIES a
where ID_INGRESO_SERIE =:P58_CODIGO
and ESTADO_SERIE = 1
);
if l_exists > 0 then
select a.ID_INGRESO_SERIE,
a.CODIGO_PRODUCTO,
(select PRODUCT_NAME
from TBL_PRD_DET
where PRODUCT_ID =a.CODIGO_PRODUCTO ) PRODUCTO,
(select PRICE
from TBL_SALE_PRICE
where PRODUCT_ID=a.CODIGO_PRODUCTO
and INVETORY_TYPE=1) PRECIO
into l_serie,l_codigo,l_product_name,l_precio
from TBL_INGRESOS_DET_SERIES a
where ID_INGRESO_SERIE =:P58_CODIGO
and ESTADO_SERIE = 1;
APEX_COLLECTION.ADD_MEMBER (
p_collection_name =>'LISTA_VENTA',
p_n001 =>l_codigo,--CODIGO
p_n002 => 1, ---UNIDADES
p_n003 =>l_precio , ---PRECIO
p_n004 =>0, ---DESCUENTO
p_n005 =>l_serie,---CODIGO SERIE
p_c001 =>l_product_name,---NOMBRE PRODUCTO
p_d001 => SYSDATE
);
else
apex_error.add_error (
p_message => '¡no exit producto!',
p_display_location => apex_error.c_inline_in_notification);
end if;
end;
答案 0 :(得分:0)
apex_error程序包仅与页面处理有关,与动态动作的交互无关。
您需要使用类似的技术来显示消息 https://www.talkapex.com/2018/03/custom-apex-notification-messages/
也许使用这里提到的概念 https://community.oracle.com/message/14948411#14948411
您的过程将在其中设置一个隐藏值,然后使用自定义API进行显示。您是否可以重新使用它取决于您自己。