UiPath Documentation
orchestrator
2022.4
false
Orchestrator-Anleitung
Wichtig :
Bitte beachten Sie, dass dieser Inhalt teilweise mithilfe von maschineller Übersetzung lokalisiert wurde. Es kann 1–2 Wochen dauern, bis die Lokalisierung neu veröffentlichter Inhalte verfügbar ist.

Fehlerbehebung aktualisieren

Migration von Organisationseinheiten

When upgrading your existing Orchestrator where multiple Organization Units were defined to v2019.10, certain conditions could result in the existing OU's not being properly migrated to the Folders paradigm. Specifically, this occurs when an OU with one or more assigned users is deleted and results in those users being unable to use Orchestrator.

Es werden zwei Skripts bereitgestellt, um dieses Problem zu beheben, wenn es bei Ihrem Orchestrator-Upgrade auftritt:

In Verbindung damit werden alle betroffenen Zuweisungen von Benutzern zu Organisationseinheiten für gelöschte Organisationseinheiten gelöscht:

  1. Laden Sie beide Skripte von den obigen Links herunter.
  2. Führen Sie SelectUndeletedUserOrganizationEntires.sql aus und speichern Sie die resultierenden Daten.
  3. Führen Sie DeleteAffectedUserOrganizationUnitsEntries.sql aus.

Gleichzeitige Anfragen zur Ordnererstellung

Benutzer, die ein Upgrade von Orchestrator-Versionen vor v2019.10 durchführen, sind von einem Problem betroffen, das durch gleichzeitige Anfragen zur Ordnererstellung entsteht. Das Problem führt dazu, dass einige Benutzerrollen falsch angezeigt werden, außerdem kann das Löschen oder Neuzuweisen von Benutzern beeinträchtigt werden.

Wenn dieses Problem auftritt, führen Sie das folgende Skript aus:

DECLARE @duplicates TABLE([Id] BIGINT, [Code] NVARCHAR(95), [TenantId] INT)
INSERT INTO @duplicates
SELECT ou.[Id], ou.[Code], ou.[TenantId]
FROM [dbo].[OrganizationUnits] ou
INNER JOIN
  (SELECT duplicates.[Code]
   FROM [dbo].[OrganizationUnits] duplicates
   WHERE duplicates.[IsDeleted] = 0 AND duplicates.[ProvisionType] = 0
   GROUP BY duplicates.[Code]
   HAVING COUNT(duplicates.[Code]) > 1) a ON a.[Code] = ou.[Code]
WHERE ou.[IsDeleted] = 0 AND ou.[ProvisionType] = 0
DECLARE @id BIGINT
DECLARE @code NVARCHAR(95)
DECLARE @tenantId INT
DECLARE @rootCode NVARCHAR(95) = (SELECT TOP 1 [Code] FROM [dbo].[OrganizationUnits])
DECLARE @rootCodeLength INT = LEN(IIF(CHARINDEX('.', @rootCode) > 0, SUBSTRING(@rootCode, 0, CHARINDEX('.', @rootCode)), @rootCode))
DECLARE duplicates_Cursor CURSOR FOR
SELECT * FROM @duplicates
OPEN duplicates_Cursor
FETCH NEXT FROM duplicates_Cursor INTO @id, @code, @tenantId
WHILE @@FETCH_STATUS = 0
BEGIN
    BEGIN TRAN
    DECLARE @result int;
    DECLARE @resource NVARCHAR(30) = 'Tenant#' + CAST(@tenantId AS NVARCHAR(10)) + '.RootFolder#0'
    EXEC @result = sp_getapplock @resource, 'Exclusive', 'Transaction', 10000;
    DECLARE @lastCode NVARCHAR(95) = (SELECT MAX([Code]) FROM [dbo].[OrganizationUnits] WHERE [IsDeleted] = 0)
    DECLARE @nextCode NVARCHAR(95) = CAST(CAST(@lastCode AS BIGINT) + 1 AS NVARCHAR(95))
    UPDATE [dbo].[OrganizationUnits]
    SET [Code]  = REPLICATE('0', @rootCodeLength - LEN(@nextCode)) + @nextCode
    WHERE [Id] = @id
    FETCH NEXT FROM duplicates_Cursor INTO @id, @code, @tenantId
    COMMIT TRAN;
END
CLOSE duplicates_Cursor
DEALLOCATE duplicates_Cursor
DECLARE @duplicates TABLE([Id] BIGINT, [Code] NVARCHAR(95), [TenantId] INT)
INSERT INTO @duplicates
SELECT ou.[Id], ou.[Code], ou.[TenantId]
FROM [dbo].[OrganizationUnits] ou
INNER JOIN
  (SELECT duplicates.[Code]
   FROM [dbo].[OrganizationUnits] duplicates
   WHERE duplicates.[IsDeleted] = 0 AND duplicates.[ProvisionType] = 0
   GROUP BY duplicates.[Code]
   HAVING COUNT(duplicates.[Code]) > 1) a ON a.[Code] = ou.[Code]
WHERE ou.[IsDeleted] = 0 AND ou.[ProvisionType] = 0
DECLARE @id BIGINT
DECLARE @code NVARCHAR(95)
DECLARE @tenantId INT
DECLARE @rootCode NVARCHAR(95) = (SELECT TOP 1 [Code] FROM [dbo].[OrganizationUnits])
DECLARE @rootCodeLength INT = LEN(IIF(CHARINDEX('.', @rootCode) > 0, SUBSTRING(@rootCode, 0, CHARINDEX('.', @rootCode)), @rootCode))
DECLARE duplicates_Cursor CURSOR FOR
SELECT * FROM @duplicates
OPEN duplicates_Cursor
FETCH NEXT FROM duplicates_Cursor INTO @id, @code, @tenantId
WHILE @@FETCH_STATUS = 0
BEGIN
    BEGIN TRAN
    DECLARE @result int;
    DECLARE @resource NVARCHAR(30) = 'Tenant#' + CAST(@tenantId AS NVARCHAR(10)) + '.RootFolder#0'
    EXEC @result = sp_getapplock @resource, 'Exclusive', 'Transaction', 10000;
    DECLARE @lastCode NVARCHAR(95) = (SELECT MAX([Code]) FROM [dbo].[OrganizationUnits] WHERE [IsDeleted] = 0)
    DECLARE @nextCode NVARCHAR(95) = CAST(CAST(@lastCode AS BIGINT) + 1 AS NVARCHAR(95))
    UPDATE [dbo].[OrganizationUnits]
    SET [Code]  = REPLICATE('0', @rootCodeLength - LEN(@nextCode)) + @nextCode
    WHERE [Id] = @id
    FETCH NEXT FROM duplicates_Cursor INTO @id, @code, @tenantId
    COMMIT TRAN;
END
CLOSE duplicates_Cursor
DEALLOCATE duplicates_Cursor
  • Migration von Organisationseinheiten
  • Gleichzeitige Anfragen zur Ordnererstellung

War diese Seite hilfreich?

Verbinden

Benötigen Sie Hilfe? Support

Möchten Sie lernen? UiPath Academy

Haben Sie Fragen? UiPath-Forum

Auf dem neuesten Stand bleiben