Hallo,
wie stell ich denn ein, dass gelöschte Artikel in der 2008-Version tatsächlich gelöscht werden. Derzeit sind sie immer noch da und haben offenbar "N" im Feld AKTIV_JN. In einigen Programmen, z.B. Lagerbuchen ohne Stückliste, werden auch diese gelöschten Artikel angezeigt, was ziemlich irritiert. Auch beim Schnellsuchfeld führt das zu problemen: Verzweig in Debugger mit sausw="22.
Gruß
gelöschte Artikel AKTIV_JN
Moderator: SYNERPY
-
- Beiträge: 18
- Registriert: Mo Nov 05, 2007 12:53 pm
o.k. wenn z.B. Relationen da sind, z.B. ein Arbeitsplan etc existiert, leuchtet das ein, aber wenn ich z.B. Artikel 4711 anlege, muss ich den doch löschen können, und zwar so, daß er nirgends mehr ersichtlich ist und so dass z.B. diese Nummer später wieder bei Bedarf angelegt werden kann.admin hat geschrieben:Ein Artikel, der schon einmal verwendet wurde, kann nicht gelöscht werden. Daher wird der Artikel beim Löschen automatisch auf inaktiv gestellt.
-
- Site Admin
- Beiträge: 2673
- Registriert: Di Feb 10, 2004 5:48 am
- Wohnort: Bayreuth
Wir haben das jetzt so gelöst, dass der Artikel gelöscht wird, wenn beim Löschen keine Fehlermeldung kommt (weil der Artikel beispielsweise bereits in einer Rechnung vorkommt etc). Sonst wird der Artikel auf inaktiv gesetzt.
Code: Alles auswählen
SET SQL DIALECT 3;
SET NAMES ISO8859_1;
SET TERM ^ ;
CREATE OR ALTER TRIGGER V_BSA_BD0 FOR V_BSA
ACTIVE BEFORE DELETE POSITION 0
AS
BEGIN
POST_EVENT 'DUMMY_EVENT';
END
^
CREATE OR ALTER TRIGGER V_BSA_BD0 FOR V_BSA
ACTIVE BEFORE DELETE POSITION 0
AS
DECLARE VARIABLE SJA VARCHAR(1);
DECLARE VARIABLE SNEIN VARCHAR(1);
BEGIN
/* Letzter Stand 19.05.2009 09:44:02 PF */
/* Protokollieren, dass Aktion hier durchgelaufen ist */
IF (GEN_ID(GEN_ENTWICKLUNG,0) = 0) THEN
INSERT INTO A_WASMACHTIB (PROGRAMMTEIL) VALUES ('V_BSA_BD0');
EXECUTE PROCEDURE P_BFIRMA_JANEIN RETURNING_VALUES(:SJA,:SNEIN);
BEGIN
DELETE FROM BSA WHERE ID = OLD.ID;
-- Artikel deaktivieren, statt sie zu löschen, wenn bereits Abhängigkeiten
-- vorhanden sind
WHEN ANY DO
UPDATE BSA
SET AKTIV_JN = :SNEIN
WHERE ID = OLD.ID AND
AKTIV_JN = :sJA; -- Nicht, wenn Resteverwertung oder sonstiger Status
END
END
^
SET TERM ; ^
/* Privileges of triggers */
GRANT INSERT ON A_WASMACHTIB TO TRIGGER V_BSA_BD0;
GRANT SELECT, UPDATE, DELETE ON BSA TO TRIGGER V_BSA_BD0;
GRANT UPDATE, REFERENCES ON V_BSA TO TRIGGER V_BSA_BD0;
GRANT EXECUTE ON PROCEDURE P_BFIRMA_JANEIN TO TRIGGER V_BSA_BD0;