USE [fl610-620] GO /****** Object: Trigger [dbo].[KRM_Mesal_Ins] Script Date: 04/14/2014 16:31:37 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO -- ============================================= -- Author: -- Create date: -- Description: -- ============================================= CREATE TRIGGER [dbo].[KRM_Mesal_Ins] ON [dbo].[KRM] AFTER INSERT --NOT FOR REPLICATION AS BEGIN -- SET NOCOUNT ON added to prevent extra result sets from -- interfering with SELECT statements. SET NOCOUNT ON; DECLARE @MesalDatumTijd DATETIME DECLARE @my_lotnr CHAR(40) DECLARE @my_machine SMALLINT DECLARE @my_hoogte FLOAT DECLARE @my_gewicht FLOAT DECLARE @my_soortgew FLOAT DECLARE @my_temp FLOAT DECLARE @my_gew_hoogte INT DECLARE @my_hoogte_afk INT DECLARE @my_gew_soortgew FLOAT --- 12-09-2012 EW --- sg afkPlus/afkMin ivm asymetrische afkeur grenzen DECLARE @my_soortgew_afk_P FLOAT DECLARE @my_soortgew_afk_M FLOAT DECLARE @my_gew_temp INT DECLARE @my_temp_afk INT DECLARE @my_lotnr_found INT --- 15-06-2010 EW --- tag toegevoegd waarin de reden van afkeur gelogd wordt DECLARE @my_AfkeurOorzaak SMALLINT -------------------------15-06-2010----------------------------- --- 27-05-2011 EW --- Vanuit MPV wordt bepaald door welke system(en) een anode gemaakt is en in de KRM tabel gelogd DECLARE @my_sectime INT Declare @My_LotNummer char(40) Declare @My_Systeem Int Declare @My_R1 SmallInt Declare @My_R2 SmallInt Declare @My_R3 SmallInt; -------------------------27-05-2011----------------------------- SET @my_lotnr_found = 0; SELECT @MesalDatumTijd = CONVERT(datetime, inserted.[Tijd], 105), -- 4-4-2011 alleen 8 characters in lotnummer, voorloop "1" wordt er af gehaald @my_lotnr = substring(inserted.[LotNr],2,8), @My_LotNummer = inserted.[LotNr], @my_machine = inserted.[MachineNr], @my_hoogte = inserted.[Hoogte], @my_soortgew = inserted.[SGewicht], @my_temp = inserted.[Temp], @my_gew_hoogte = [flmassa].dbo.MPV.HOOGTE, @my_hoogte_afk = [flmassa].dbo.MPV.HOOGTE_AFK, @my_gew_soortgew = [flmassa].dbo.MPV.SG, --- 12-09-2012 EW --- sg afkPlus/afkMin ivm asymetrische afkeur grenzen @my_soortgew_afk_P = [flmassa].dbo.MPV.SG_REG, @my_soortgew_afk_M = [flmassa].dbo.MPV.SG_AFK, @my_gew_temp = [flmassa].dbo.MPV.TEMP, @my_temp_afk = [flmassa].dbo.MPV.TEMP_AFK, --- 15-06-2010 EW --- tag toegevoegd waarin de reden van afkeur gelogd wordt @my_AfkeurOorzaak = inserted.[AfkOorzaak] -------------------------15-06-2010----------------------------- FROM inserted INNER JOIN [flmassa].dbo.MPV ON inserted.LotNr = [flmassa].dbo.MPV.LOTNR; IF (@@ROWCOUNT > 0) AND (@MesalDatumTijd > 0) SET @my_lotnr_found = 1; --Haal gewicht op waarvan MPV lotnummer onbekend is SELECT @MesalDatumTijd = CONVERT(datetime, inserted.[Tijd], 105), @my_machine = ISNULL(inserted.[MachineNr],0), @my_gewicht = (ISNULL(inserted.[Gewicht],0) / 1000.0) FROM inserted --- 27-05-2011 EW --- Vanuit MPV wordt bepaald door welke system(en) een anode gemaakt is. Dit wordt in KRM gelogd --- in de velden S1, S2 en S3. Default FALSE, TRUE als systeem draait en identiek lotnummer heeft als de anode Declare CurMPV Cursor For -- selectie van records uit massa-MPV Select SYSTEEM -- met identiek lotnummer als vormerij-KRM From [flmassa].dbo.MPV Where LOTNR=@My_LotNummer; Select @My_Sectime = inserted.[SecTime] -- om aktuele record in KRM te bepalen die moet worden From inserted; -- geupdated met Systeem informatie Select @My_R1 = S040_1_RB, -- om te bepalen of massa-systeem met identiek lotnumer @My_R2 = S040_2_RB, -- als vormerij wel draait @My_R3 = S040_3_RB From [flmassa].dbo.R_Alg Open CurMPV; Fetch Next From CurMPV InTo @My_Systeem; While @@fetch_status=0 -- loop om geselecteerde records te testen Begin If (@My_Systeem = 1) and (@My_R1 = 1) Update KRM Set [S1] = 1 Where [SecTime] = @My_Sectime; If (@My_Systeem = 2) and (@My_R2 = 1) Update KRM Set [S2] = 1 Where [SecTime] = @My_Sectime; If (@My_Systeem = 3) and (@My_R3 = 1) Update KRM Set [S3] = 1 Where [SecTime] = @My_Sectime; Fetch Next From CurMPV InTo @My_Systeem; End; Close CurMPV; Deallocate CurMPV; -------------------------27-05-2011----------------------------- -- Insert statements for trigger here EXEC flmassa.dbo.msp_MesalAnode @MesalDatumTijd, @my_lotnr, @my_machine, @my_hoogte, @my_gewicht, @my_soortgew, @my_temp, @my_gew_hoogte, --- 12-09-2012 EW --- sg afkPlus/afkMin ivm asymetrische afkeur grenzen @my_hoogte_afk, @my_gew_soortgew, @my_soortgew_afk_P, @my_soortgew_afk_M, @my_gew_temp, @my_temp_afk, @my_lotnr_found, --- 15-06-2010 EW --- tag toegevoegd waarin de reden van afkeur gelogd wordt @my_AfkeurOorzaak -------------------------15-06-2010----------------------------- END