Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Невозможно вставить NULL в ("SUPERMAG"."TTREMAINSPROD"."ZONEID") : Супермаг Плюс (Супермаг 2000)

24.11.2024 1:46


23.06.2020 03:51
Всем доброго времени суток.
Несколько дней назад появились проблемы с отчётом "Остатки в производстве", а так же не было расчёта себестоимости за этот период.
При поиске ошибки выяснилось, что ССР не отрабатывала из за отсутствия переноса в товародвижении, который, в свою очередь не выполнялся из за открытого периода в производстве.
Период закрыли. Перенос под конец выдал ошибку (до выполнения закрытия периода ошибку выдавал при старте):

ORA-01400: невозможно вставить NULL в ("SUPERMAG"."TTFIFOCHANGEDPRODDOCS"."ZONEID")
ORA-06512: на "SUPERMAG.FIFOTRANSFER", line 508
ORA-06512: на "SUPERMAG.FIFOTRANSFER", line 639
ORA-06512: на "SUPERMAG.FIFOTRANSFER", line 656
ORA-06512: на "SUPERMAG.FIFOTRANSFER", line 679
ORA-06512: на "SUPERMAG.SMRUNTRANSFER", line 6
ORA-06512: на line 1

Проблема с отчётом осталась - считает только нулеве и все




Ошибка при работе отчёта:
сообщение: "ORA-01400: невозможно вставить NULL в ("SUPERMAG"."TTREMAINSPROD"."ZONEID")
ORA-06512: на "SUPERMAG.REMAINS", line 1313
ORA-06512: на "SUPERMAG.REP_FORMTEMPTABLE", line 3318
ORA-06512: на "SUPERMAG.REP_OSTATKIPROD", line 12
ORA-06512: на line 1"

Есть идеи в каких документах искать ошибки?
23.06.2020 10:03
для поиска табличек, где ZONEID нулевая можно использовать такую процедурку
SQL код:
set serveroutput on
declare
zonenull number;
begin
for c in (select table_name from dba_tab_columns where owner='SUPERMAG' and column_name='ZONEID' and table_name not like 'TT%' and table_name not like 'FV%' and table_name not like 'SV%' order by 1)
loop
execute immediate 'select count(*) from supermag.'||c.table_name||' where zoneid is null' into zonenull;
dbms_output.put_line(c.table_name||': '||zonenull);
end loop;
end; 
23.06.2020 10:10
Примерно так поискать можно (проверить не на чем):
SQL код:
SELECT P.* 
  FROM SUPERMAG.SMDOCUMENTS D, SUPERMAG.SVDOCPRODUCTION P
 WHERE ((D.DOCTYPE IN ('PE','PO','PN') AND D.DOCSTATE = 3)
        OR (D.DOCTYPE = 'PD' AND D.DOCSTATE = 2))
    AND D.CREATEDAT >= :DATE_FROM
    AND P.DOCTYPE = D.DOCTYPE AND P.ID = D.ID
    AND P.ZONEID IS NULL
; 
Производственные документы от даты :DATE_FROM до конца. Фильтр по типам документов можно вообще выкинуть, вдруг новые добавились.
25.06.2020 02:52
Всем спасибо!
Проблема решилась после поиска таблиц с zoneid и номером МХ. После редактирования записей (простановка ZONEID) всё заработало!
25.06.2020 08:28
Как я понимаю, это участки на производстве не были проставлены?
26.06.2020 07:01
Да, цеха не были проставлены. Ошибку давали документы именно за определённый период, когда открыли период - при переносе данных и вылазила ошибка "невозможно вставить NULL в ("SUPERMAG"."TTFIFOCHANGEDPRODDOCS"."ZONEID")"
Часовой пояс GMT +3, время: 01:46.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.