Das Ziel besteht im Ermitteln der übergeordneten Aktivität der Aktivität, die aktualisiert werden soll. - Diese Informationen ...

'

              -- Das Ziel besteht im Ermitteln der übergeordneten Aktivität der Aktivität, die aktualisiert werden soll.
              -- Diese Informationen werden in der Fortsetzungstabelle gespeichert. Da Entscheidungen
              -- basierend auf diesem Wert getroffen werden, muss verhindert werden, dass Benutzer diesen Wert nach dem Lesevorgang aktualisieren.
              -- Wird nichts gefunden, muss verhindert werden, dass sie einen Wert einfügen. Zum Verhindern einer Einfügung
              -- kann eine Anwendungssperre für die 'ActivityID' verwendet werden. Das Protokoll erfordert, dass vor dem Hinzufügen des Fortsetzungsvorgangs
              -- eine exklusive Anwendungssperre für die ID erfolgt. Damit eine Änderung verhindert wird, werden
              -- wiederholte Lesesperren verwendet. Der Wert kann sich ändern, wenn das aktuelle übergeordnete Element nicht das 
              -- Stammelement ist. Wenn diese Fortsetzung eingerichtet wird, würde daher ein Verweis auf dieses neue übergeordnete Element erfolgen.
            
              DECLARE @@ret INT
              EXEC @@ret = sp_getapplock @ContinuationToken, 'Exklusiv', 'Transaktion', 100
              IF (@@ret < 0)  -- Sperre nicht erteilt
              BEGIN
                RAISERROR('Sperre nicht erteilt'', 16, 1)
                RETURN
              END
              
              -- Das übergeordnete Element der aktuellen Ablaufverfolgungkann auch eine Fortsetzung sein. Suchen nach dem Stammelement (Hauptablaufverfolgung).
              DECLARE @@rootTrace NVARCHAR(128)

              DECLARE @@parentTemp NVARCHAR(128)
              SET @@parentTemp = @ParentActivityID
              WHILE (@@parentTemp IS NOT NULL)
              BEGIN
                  SET @@rootTrace = @@parentTemp

                  EXEC @@ret = sp_getapplock @@parentTemp, 'Freigegeben', 'Transaktion', 100
                  IF (@@ret < 0)  -- Sperre nicht erteilt
                  BEGIN
                    RAISERROR('Lock not granted', 16, 1)
                    RETURN
                  END

                  SET @@parentTemp = NULL
                  SELECT @@parentTemp = ParentActivityID 
                  FROM
English
English (United States)
Deutsch (Deutschland)
German (Germany)
Español (España)
Spanish (Spain)
Français (France)
French (France)
日本語
Japanese
한국어
Korean