- Primeros pasos
- Mejores prácticas
- Tenant
- Contexto de carpetas
- Automatizaciones
- Procesos
- Trabajos
- Desencadenadores
- Registros
- Supervisión
- Colas
- Activos
- Depósitos de almacenamiento
- Test Suite - Orchestrator
- Otras configuraciones
- Integraciones
- Robots clásicos
- Administración de host
- Acerca del nivel del host
- Gestionar los administradores del sistema
- Gestión de tenants
- Configuración de las notificaciones por correo electrónico del sistema
- Registros de auditoría para el portal del host
- Modo de mantenimiento
- Administración de la organización
- Solución de problemas
- Acerca de la resolución de problemas
- Expresiones cron
- Problemas de actualización
- Errores frecuentes de Orchestrator
Migración de unidades de organización
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.
Se proporcionan dos scripts para corregir este problema si sucede en tu actualización de Orchestrator:
Usados conjuntamente, eliminará cualquier Usuario afectado a las asignaciones de Unidad de organización para las Unidades de organización borradas:
- Descarga ambos scripts desde los enlaces anteriores.
- Ejecuta SelectUndeletedUserOrganizationEntires.sql y guarda los datos resultantes.
- Ejecuta DeleteAffectedUserOrganizationUnitsEntries.sql.
Solicitudes de creación de Carpetas simultáneas
Los usuarios que actualizan desde las versiones de Orchestrator anteriores a v2019.10 experimentan un problema debido a las solicitudes de creación de carpetas simultáneas. El problema hace que algunos roles de usuario se muestren de manera incorrecta y también afecte al proceso de eliminación o reasignación de usuarios.
Si te encuentras con este problema, ejecuta el siguiente script:
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