Tuesday, 25 October 2011 07:13

Erkennen von doppelten Links in Policies

Rate this item
(4 votes)

scopalis_logo

Es kommt sehr selten vor, aber es kann passieren:  Eine nachfolgende Activtiy wir mehr als einmal  getriggert, obwohl die Activtiy, die vorher ausgeführt wurde, nur ein Ergebnis hat und auch ‚Flatten‘ aktiviert ist.
Grund dafür sind zwei Links zwischen  denselben Start und Ziel-Activities:

policy

Dies kann z.B. in sehr seltenen Fällen passieren, wenn man Objekte kopiert.

Mit dieser Abfrage kann man diese identifizieren:

;WITH CTE
AS
(
SELECT DISTINCT SourceObject, TargetObject, Count(*) OVER(PARTITION BY TargetObject, SourceObject) AS CountDups
FROM LINKS INNER JOIN
                      OBJECTS ON LINKS.UniqueID = OBJECTS.UniqueID
WHERE (OBJECTS.Deleted IS NULL OR OBJECTS.Deleted = 0)
      AND (OBJECTS.Enabled = 1)
)

SELECT     FOLDERS.Name AS FolderName, POLICIES.Name AS PolicyName, OBJECTS.Name AS SourceObjectName, CTE.CountDups AS Number
FROM         CTE INNER JOIN
                      OBJECTS ON CTE.SourceObject = OBJECTS.UniqueID INNER JOIN
                      POLICIES ON OBJECTS.ParentID = POLICIES.UniqueID INNER JOIN
                      FOLDERS ON POLICIES.ParentID = FOLDERS.UniqueID
WHERE CTE.CountDups > 1 AND OBJECTS.Enabled = 1
            AND (FOLDERS.Deleted IS NULL OR FOLDERS.Deleted = 0)
            AND (POLICIES.Deleted IS NULL OR POLICIES.Deleted = 0)

query-result

Leave a comment