Temat: Błąd w triggerze wapro td_kasuj

Witam,
Wystąpił u mnie dziwny błąd przy próbie utworzenia faktury ze zlecenia serwisowego.

Podejrzałem trochę wykonywany kod SQL ;) i było coś takiego:

-----
EXEC AP_SerwisWystawDokHan 34,3000107,0,79560,'FV',551

Msg 102, Level 15, State 1, Procedure td_bufor, Line 23
Incorrect syntax near '@errno'.
-----

Trigger td_bufor nie był zaszyfrowany. Jest on dość krótki i wygląda tak:

----------
ALTER trigger [dbo].[td_bufor] on [dbo].[BUFOR] for delete as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(255)

select @numrows = @@rowcount
if @numrows = 0
return

/* Delete all children in "BUFOR_POZYCJA" */
delete BUFOR_POZYCJA
from BUFOR_POZYCJA t2, deleted t1
where t2.ID_BUFORA = t1.ID_BUFORA
return

/* Errors handling */
error:
raiserror @errno @errmsg
rollback transaction
end
---------
Wygląda na to że błąd składniowy jest w linii raiseerror. Ponadto nie wiem czy dobrze myślę ale kod mi wygląda na niedokończony. Zmienne z treścią błędu nie są nigdzie ustawiane. Kod chyba też tak naprawdę
nigdy nie wchodzi w obsługę błędu.

Trigger pochodzi z nowej wersji Wf-Maga.

Pomyślałem że na wszelki wypadek zgłoszę. I jeszcze takie pytanie - czy mogę doraźnie zakomentować ten raiseerror by nie mieć błędów?
Szymon M.

Szymon M. Kierownik działu IT

Temat: Błąd w triggerze wapro td_kasuj

Na bazie testowej proszę spróbować zmienić :
raiserror @errno @errmsg => raiserror(@errmsg,16,1)

Rafał M.:
Witam,
Wystąpił u mnie dziwny błąd przy próbie utworzenia faktury ze zlecenia serwisowego.

Podejrzałem trochę wykonywany kod SQL ;) i było coś takiego:

-----
EXEC AP_SerwisWystawDokHan 34,3000107,0,79560,'FV',551

Msg 102, Level 15, State 1, Procedure td_bufor, Line 23
Incorrect syntax near '@errno'.
-----

Trigger td_bufor nie był zaszyfrowany. Jest on dość krótki i wygląda tak:

----------
ALTER trigger [dbo].[td_bufor] on [dbo].[BUFOR] for delete as
begin
declare
@numrows int,
@errno int,
@errmsg varchar(255)

select @numrows = @@rowcount
if @numrows = 0
return

/* Delete all children in "BUFOR_POZYCJA" */
delete BUFOR_POZYCJA
from BUFOR_POZYCJA t2, deleted t1
where t2.ID_BUFORA = t1.ID_BUFORA
return

/* Errors handling */
error:
raiserror @errno @errmsg
rollback transaction
end
---------
Wygląda na to że błąd składniowy jest w linii raiseerror. Ponadto nie wiem czy dobrze myślę ale kod mi wygląda na niedokończony. Zmienne z treścią błędu nie są nigdzie ustawiane. Kod chyba też tak naprawdę
nigdy nie wchodzi w obsługę błędu.

Trigger pochodzi z nowej wersji Wf-Maga.

Pomyślałem że na wszelki wypadek zgłoszę. I jeszcze takie pytanie - czy mogę doraźnie zakomentować ten raiseerror by nie mieć błędów?
Krzysztof Stachyra

Krzysztof Stachyra Szef Wydziału
Produkcji Systemów
Handlowo-Magazynowyc
h i ...

Temat: Błąd w triggerze wapro td_kasuj

Ciekawe to jest to, że w aktualnej wersji bazy nie ma takiego triggera jak td_bufor w magu, więc nie wiem skąd Pan ten trigger tam posiada :)
Mag zakłada trigger td3_bufor i on wygląda inaczej.

Co do składni to tą, którą Pan ma była stosowana przed zdaje się 2016 SQLem i w nowych wersjach raczej nie ma prawa wystąpić taka składnia bo były wszystkie wymienione, więc albo wersja jest jakaś mega stara albo trigger nie jest z maga i są tam jakieś inne stare strutkury programu, które nie zostały przez Was podniesione przy migracji (jeśli była robiona). Jeśli tak jest to mogą takie kwiatki wyskakiwać w innych miejscach.

Składnia jaką podał Pan Szymon jest obowiązująca jako jedyna od wersji 2016

Temat: Błąd w triggerze wapro td_kasuj

To może rzeczywiście być jakiś stary trigger która powinien zostać skasowany podczas którejś aktualizacji Wf-Maga ale nie został.

Mam trochę dostęp do baz Wf-Maga w różnych firmach i z ciekawości trochę posprawdzałem. W niektórych bazach go nie ma, w niektórych jest - więcej niż w jednej firmie więc to nie jest przypadek jednostkowy.
Krzysztof Stachyra

Krzysztof Stachyra Szef Wydziału
Produkcji Systemów
Handlowo-Magazynowyc
h i ...

Temat: Błąd w triggerze wapro td_kasuj

Ale to, że jest w bazach to trochę mało precyzyjna informacja. Pytanie konkret jest takie jakie są struktury programów w tych bazach. Sądząc po nazwie to nie jest trigger maga tylko innego programu. Mag ma nazwy wg schematu td3_xxx tu3_xxx itp.



Wyślij zaproszenie do