Отладка и обновление значений в интерактивном отчете APEX - PullRequest
0 голосов
/ 14 мая 2019

В приложении Interactive Report APEX 4.2.5 есть две проблемы. Я видел несколько примеров этой функциональности, но они не помогли мне до сих пор ..

1 - В отчете SELECT я выбираю некоторые поля, используя apex_item.text, так как я хочу, чтобы пользователь мог обновлять эти поля. Эта часть работает нормально. Моя проблема с записью обновленных значений обратно в таблицу (SELECT в представлении). У меня есть автономный блочный процесс SQL, который должен делать это (циклически проходить по строкам и получать доступ к значениям с помощью APEX_APPLICATION.G_Fxx), но он не работает. После подтверждения ошибки не возвращаются, вместо значений возвращаются к исходным значениям. Как я могу получить эти обновления для сохранения в таблице?

2 - В процессе SQL я включил и добавил некоторые операторы APEX_DEBUG.MESSAGE, но я не вижу результатов этих операторов нигде в журнале отладки или в таблице. Как я могу увидеть результат этих команд отладки?

Вот ВЫБРАТЬ:

select REQUISITION_LINE_ID
,apex_item.hidden(50,REQUISITION_LINE_ID,10,10) rid
,REQ_NUMBER
,REQ_LINE_NUMBER
,REQUISITION_QUANTITY
,SO_NUMBER
,SO_LINE
,ORDERED_QUANTITY
,SKU
,DESCRIPTION
,apex_item.text(10, SUPPLY_PO_NUMBER, 10, 10) SUPPLY_PO_NUMBER
,apex_item.text(20, SUPPLY_PO_LINE, 10, 10) SUPPLY_PO_LINE
,apex_item.text(30, SUPPLY_PO_SHIPMENT , 10, 10) SUPPLY_PO_SHIPMENT 
from camlb.xxcb_requisition_reference;

А вот и SQL-процесс:

declare
id number;
poorder number;
poline number;
poshipment number;

begin
APEX_DEBUG.ENABLE(p_level => 9);

for i in 1..APEX_APPLICATION.G_F50.count 
loop

id := APEX_APPLICATION.G_F50(i);
poorder:=APEX_APPLICATION.G_F10(i);
poline:=APEX_APPLICATION.G_F20(i);
poshipment:=APEX_APPLICATION.G_F30(i);

APEX_DEBUG_MESSAGE.LOG_MESSAGE('ID is ' || id || ', PO is ' || poorder || ', SUPPLY_PO_LINE is '|| poline || ', SUPPLY_PO_SHIPMENT is ' || poshipment);
APEX_DEBUG.MESSAGE('ID is ' || id || ', PO is ' || poorder || ', SUPPLY_PO_LINE is '|| poline || ', SUPPLY_PO_SHIPMENT is ' || poshipment);

update APPS.po_requisition_lines_all 
set ATTRIBUTE1=poorder,
ATTRIBUTE2=poline,
ATTRIBUTE3=poshipment
where requisition_line_id=id;

end loop;
end;

1 Ответ

0 голосов
/ 14 мая 2019

Обратите внимание, что массив флажков будет плотным, а массивы текстовых полей - редкими, благодаря поведению HTML. Есть несколько сообщений на эту тему, а также некоторые другие общие сообщения обработки флажков https://www.talkapex.com/2009/01/apex-report-with-checkboxes-advanced/

Вам необходимо перевести ваше приложение в режим отладки, используя панель инструментов разработчика, обычно расположенную внизу страницы времени выполнения (если вы также вошли в компоновщик).

Это установит для соответствующего параметра URL значение YES. Ищите журнал, связанный со страницей отправки, а не визуализации. Это может также заплатить, чтобы зарегистрировать соответствующие массивы перед входом в цикл.

...