if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_edkb12]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_edkb12] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_edkb12_check]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_edkb12_check] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_edkb12_meldung]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_edkb12_meldung] GO if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_edkb12_profil]') and OBJECTPROPERTY(id, N'IsProcedure') = 1) drop procedure [dbo].[sp_edkb12_profil] GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO --------------------------------------------------------------------------------------------------------- -- Name: sp_edkb12 -- Desc: Funktion abhängig vom Funktionscode: -- 1: Lesen des ersten zu bearbeitenden Datensatzes aus EDK_Data -- 2: Update des Status in EDK_Data -- Status 1: In Bearbeitung -- 2: Fehlerhaft -- 3: Erfolgreich -- -- Autor Stefan Hutter -- -- Remarks: EDOKA Rel. 4.02 -- Version : 1.0 / 17.08.2008 --------------------------------------------------------------------------------------------------------- CREATE PROCEDURE [dbo].sp_edkb12 @fnkt int, @rowid int=0, @status int=0 AS -- Status 0: EDK-Verarbeitung pendent -- Status 1: Verarbeitung gestartet -- Status 2: Verarbeitung fehlerhaft beendet -- Status 3: Verarbeitung erfolgreich beendet -- fnkt 1: Alle pendenten EDK-Dateien auslesen -- fnkt 2: Statusmutation if @fnkt=1 begin select top 1 * from edk_data where status=0 order by insert_timestamp return end if @fnkt=2 begin update edk_data set status=@status, status_timestamp=getdate() where rowid=@rowid return end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_NULLS OFF GO --------------------------------------------------------------------------------------------------------- -- Name: sp_edkb12_check -- Desc: Prüft in EDOKA, ob der Dokumenttyp für die Dokumenterstellung über EDKB12 gesetzt ist -- -- Autor Stefan Hutter -- -- Remarks: EDOKA Rel. 4.02 -- Version : 1.0 / 17.08.2008 --------------------------------------------------------------------------------------------------------- CREATE PROCEDURE [dbo].[sp_edkb12_check] @idokumenttypnr int, @odokumenttypnr int output AS declare @counter int select @counter=count(*) from edk_data_doktype where dokumenttypnr=@idokumenttypnr - 900000000 set @odokumenttypnr=@counter return GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO --------------------------------------------------------------------------------------------------------- -- Name: sp_edkb12_meldung -- Desc: Meldungsversand aus EDKB12 -- Bei OK oder im Fehlerfall wird ein Mail an den Besteller und an den Sysadmin geschickt -- -- !!!Meldung an den Sysadmin unten mit fixer Sysadmin-Nr konfigurieren!!! -- set @sysadmin=... (Mitarbeiternr des Systemadministrators) -- -- Status-Beschreibung: -- 2 = Fehlermeldung -- 3 = OK-Meldung -- -1 = Fehlermeldung fü Sysadmin -- -- Autor Stefan Hutter -- -- Remarks: EDOKA Rel. 4.02 -- Version : 1.0 / 17.08.2008 --------------------------------------------------------------------------------------------------------- CREATE PROCEDURE [dbo].[sp_edkb12_meldung] @status int, @mitarbeiter int=0, @betreff varchar(256), @meldung varchar(1024), @dokumentid varchar(22) AS ---- Sysadmin setzen: Mitarbeiternummer des Systemadministrators declare @sysadmin int set @sysadmin=1 --- declare @mailempfang int declare @mailadresse varchar(255) declare @sendmail1 int declare @sendmail2 int declare @edkmail int declare @empfaenger int select @sendmail2=MailDokumentrueckgang, @sendmail1=edokamesasge, @mailempfang=mailempfang, @mailadresse=email, @edkmail=edoka_mail from mitarbeiter where mitarbeiternr=@mitarbeiter -- Meldung ueber Dokumenterstellung (OK, NOK) if @status = 3 or @status = 2 begin if @edkmail=1 begin insert message (titel, meldung, absender, empfaenger, erstellt_am, mutiert_am, mutierer, aktiv, dokumentid) values (@betreff, @meldung, 9999, @mitarbeiter, getdate(), getdate(), 9999, 1,@dokumentid) end if @mailempfang=1 begin EXEC sp_sendmail @mailadresse,@betreff,@meldung end end -- Meldung ueber Dokumenterstellung (OK, NOK) fuer Sysadmin if @status = 3 or @status = 2 begin select @sendmail2=MailDokumentrueckgang, @sendmail1=edokamesasge, @mailempfang=mailempfang, @mailadresse=email, @edkmail=edoka_mail from mitarbeiter where mitarbeiternr=@sysadmin if @edkmail=1 begin insert message (titel, meldung, absender, empfaenger, erstellt_am, mutiert_am, mutierer, aktiv, dokumentid) values (@betreff, @meldung, 9999, @mitarbeiter, getdate(), getdate(), 9999, 1,@dokumentid) end if @mailempfang=1 begin EXEC sp_sendmail @mailadresse,@betreff,@meldung end end -- Fehlermeldung if @status = -1 begin select @sendmail2=MailDokumentrueckgang, @sendmail1=edokamesasge, @mailempfang=mailempfang, @mailadresse=email, @edkmail=edoka_mail from mitarbeiter where mitarbeiternr=@sysadmin if @edkmail=1 begin insert message (titel, meldung, absender, empfaenger, erstellt_am, mutiert_am, mutierer, aktiv, dokumentid) values (@betreff, @meldung, 9999, @mitarbeiter, getdate(), getdate(), 9999, 1,@dokumentid) end if @mailempfang=1 begin EXEC sp_sendmail @mailadresse,@betreff,@meldung end end GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS OFF GO --------------------------------------------------------------------------------------------------------- -- Name: sp_sp_edkb12_profil -- Desc: Liest das erste (Standard-) Profil des verantwortlichen Mitarbeiters aus -- -- Autor Stefan Hutter -- -- Remarks: EDOKA Rel. 4.02 -- Version : 1.0 / 17.08.2008 --------------------------------------------------------------------------------------------------------- CREATE PROCEDURE [dbo].[sp_edkb12_profil] @mitarbeiternr int AS SELECT TOP 100 PERCENT profilnr, standard, aktiv, mitarbeiternr, unterschriftlinks, unterschriftrechts FROM dbo.profil WHERE (mitarbeiternr = @mitarbeiternr) and aktiv=1 ORDER BY standard DESC GO SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO