Temat: Automatyczne przypisanie etykiety (gniazda rozszerzeń)

Witam.
Próbuję zaprogramować gniazdo rozszerzeń, ale utknąłem.
Chcę, aby po zmianie statusu zamówienia np. na "w produkcji (W)" z automatu przypisywała się do niego odpowiednia etykieta np. "W produkcji" z kolorem czerwonym.

Gniazdo zawarłem zaraz po zatwierdzeniu zmiany na zamówieniu, przekazuję zmienną
@IdObiektu


Obrazek


Kod procedury wygląda obecnie następująco:

if exists (select 1 from sysobjects where name = 'MAGSRC_przypisz_etykiete' and type = 'P')
drop procedure MAGSRC_przypisz_etykiete
go
create procedure MAGSRC_przypisz_etykiete
@IdObiektu numeric
as
declare @errmsg varchar(255)
begin
update zamowienie set id_etykiety=9
where @idobiektu=id_zamowienia
and status_zam = 'W'
end
go


Domyślam się, że problem może być w przekazywaniu wartości
 status_zam 

lub w tym, że zmiana statusu zamówienia występuje w tym samym momencie co sprawdzenie statusu i w ogólnym rozrachunku, zanim wykona się gniazdo rozszerzenia, status tego zamówienia nie zdąży zmienić się na "W".
Ale to tylko moje domysły.
Będę wdzięczny za wszelkie wskazówki.Ten post został edytowany przez Autora dnia 22.06.16 o godzinie 15:50
Rafał M.

Rafał M. Dyrektor ds. Asseco
WAPRO ERP, Asseco
Business Solutions
...

Temat: Automatyczne przypisanie etykiety (gniazda rozszerzeń)

Co do zasady dane na formularzu dopóki nie zostaną zatwierdzone nie przechodzą do bazy danych. Jest to oczywiście celowe bo w przypadku anulowania zmian zawartość w bazie się nie zmienia. Od zasady są wyjątki ale akurat w przypadku statusu wyjątku nie ma. Zatem gniazdo, które nazywa się "Ustawienie statusu zamówienia" po prostu odpowiada za ustawienie wartości na formularzu , która to wartość podczas zatwierdzania dokumentu zostanie przesłana do bazy. Można w tym gnieździe wymusić aby niektóre statusy się nie ustawiały ale wykonanie procedury jak w w podanym przykładzie nie zadziała bo w bazie danych nie mamy statusu W.

Najprościej podłączyć dokładnie tak samo wyglądającą procedurę w gnieździe po zatwierdzeniu dokumentu. Ewentualnie w gnieździe "Ustawienie statusu zamówienia" dokonywać od razu zapisu statusu do bazy poleceniem UPDATE (z tym że trzeba przekazać wartość statusu jako zmienną) ale odradzam ten sposób ponieważ w przypadku anulowania zmian należałoby oprogramować gniazdo po anulowaniu wycofując zmianę statusu w bazie danych.

Następna dyskusja:

Gniazda rozszerzeń - eksport




Wyślij zaproszenie do