Как отобразить сообщение об ошибке plsql с динамическим действием - PullRequest
0 голосов
/ 02 октября 2018

У меня есть 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;

1 Ответ

0 голосов
/ 03 октября 2018

Пакет apex_error относится только к обработке страниц, а не к взаимодействию с динамическими действиями.

Вам нужно будет отобразить сообщение, используя такую ​​технику https://www.talkapex.com/2018/03/custom-apex-notification-messages/

Возможно, используя концепции, упомянутые здесь https://community.oracle.com/message/14948411#14948411

Если ваш процесс установит скрытое значение, то будет отображаться с помощью пользовательского API.Насколько вы можете использовать это повторно, зависит только от вас.

...