Das passiert, wenn der Konfigurationsschlüssel für Reporting Services aktiviert ist, aber keine Reporting Services Server angegeben und eingerichtet wurden.
Mit einer kleinen Anpassung in AOT/Forms/SysUserGroupInfo/Data Sources/User Group Info/delete kann dem Problem abgeholfen werden.
public void delete()
{
userGroupId groupID;
SysSRSTablePermissions permissionsTable;
AifEndpointUser aifEndpointUser;
SysSecurityFormTable sysSecurityFormTable;
;
groupID = userGroupInfo.Id;
ttsbegin;
delete_from aifEndpointUser
where aifEndpointUser.UserId == groupID
&& aifEndpointUser.AxaptaUserType == AifAxaptaUserType::UserGroup;
delete_from sysSecurityFormTable
where sysSecurityFormTable.UserGroupId == groupID;
super();
if (isConfigurationkeyEnabled(configurationKeyName2Id('ReportingServices')))
{
//Now that the group is deleted, we can synchronize all the secure views that
//include RLS criteria for this group. We need to keep the record for this
//group in SRSTablePermissions for now because they are used to determine which
//tables have permissions assigned to them for the specified group.
//Once all views have been synchronized, then we can delete those records.
if (SRSSecureViewManagerProxy::syncWithGroup(groupID) != 0)
{
// modificaton begin
if ((select * from SRSServers).RecId)
{
ttsabort;
return;
}
/*else
{
just fall trough, there is no need to abort, since there is no Reporting Services Servers located
}*/
// modification end
}
//Delete all records for the group from the SRSTablePermissions table.
delete_from permissionsTable where permissionsTable.GroupId == groupID;
}
ttscommit;
}
Nun können auch alte migrierte Benutzergruppen gelöscht werden.

No comments:
Post a Comment