Ersteller und ErstellungsZeitpunkt von Custom Objects

Post Reply
Sven_Puth
Posts: 461
Joined: 07. Apr 2011, 15:55
Contact:

Ersteller und ErstellungsZeitpunkt von Custom Objects

Post by Sven_Puth » 03. Aug 2011, 21:12

Hallo,

da ich noch kein Feld gefunden habe, was darauf hindeutet, dass bereits für jedes Objekt der Ersteller hinterlegt wird, würde ich das gerne selbst eintragen.

Ich habe ein Custom Objekt und würde gerne das Feld Ersteller automatisch mit dem aktuellen Benutzer befüllen.
Gibt es hier schon Erfahrungen zu? Falls es etwas ähnliches nicht schon gibt wäre ein Feld für den Erstellungs-Zeitpunkt auch nicht schlecht. Danke schonmal.
Tria-media - IT Solutions

Sven_Puth
Posts: 461
Joined: 07. Apr 2011, 15:55
Contact:

Re: Ersteller und ErstellungsZeitpunkt von Custom Objects

Post by Sven_Puth » 09. Aug 2011, 15:57

Ich konnte mir mitlerweile selbst helfen und habe es über eine Erweiterung der Common-Classbase und einen weiteren Trigger gelöst. Dadurch habe ich den Ersteller und den Zeitpunkt für jedes Objekt.
Tria-media - IT Solutions

Kadach
Posts: 35
Joined: 04. Oct 2010, 12:36
Contact:

Re: Ersteller und ErstellungsZeitpunkt von Custom Objects

Post by Kadach » 11. Oct 2011, 12:18

Hallo Sven,

es wäre unheimlich toll, wenn du dein Wissen mit uns teilen würdest und uns deinen Trigger posten könntest.
Uns fehlt diese Information nämlich auch relativ häufig.

mfg,
Christian Kadach
Freiwilliger Mitarbeiter - Fachhochschule Dortmund

Sven_Puth
Posts: 461
Joined: 07. Apr 2011, 15:55
Contact:

Re: Ersteller und ErstellungsZeitpunkt von Custom Objects

Post by Sven_Puth » 11. Oct 2011, 13:33

Hallo Christian,

ich habe die SPSCommonClassBase um die Attribute UdCreateDate (DateTime) und UdCreator (GUID) erweitert und folgenden Trigger auf die SPSCommonClassBase gelegt, welchen ich mir von den anderen Triggern abgeleitet habe:

Code: Select all

CREATE TRIGGER [dbo].[UD_Insert] 
   ON  [dbo].[SPSCommonClassBase]
   AFTER INSERT
AS 
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for trigger here
    DECLARE @context_bin VARBINARY(128)
	DECLARE @TransactionID uniqueidentifier
	DECLARE @UserID uniqueidentifier
	DECLARE @ObjectID uniqueidentifier

	SELECT @context_bin=context_info FROM master.dbo.sysprocesses WHERE spid=@@SPID

IF (@context_bin <> 0x0)
BEGIN
	SET @TransactionID = CONVERT(UNIQUEIDENTIFIER,SUBSTRING(CAST(@context_bin AS VARCHAR(127)), 1, 36))
	SET @UserID = CONVERT(UNIQUEIDENTIFIER,SUBSTRING(CAST(@context_bin AS VARCHAR(127)), 37, 36))
END
ELSE
BEGIN
	SET @TransactionID=newid()
END
IF @TransactionID = '00000000-0000-0000-0000-000000000000'
	SELECT @TransactionID = newid()
    
    SELECT @ObjectID = ID FROM INSERTED

	 IF (@UserID IN (SELECT ID FROM SPSUserClassBase))	   
		UPDATE SPSCommonClassBase SET UdCreateDate = GETUTCDATE(), UdCreator = @UserID WHERE ID = @ObjectID           
	 ELSE
	    UPDATE SPSCommonClassBase SET UdCreateDate = GETUTCDATE() WHERE ID = @ObjectID    
END
Tria-media - IT Solutions

Post Reply

Return to “Customizing und Reporting”

Who is online

Users browsing this forum: No registered users and 0 guests