This happens if the configuration key for Reporting Services is enabled, but there is no Reporting Services Server refered and configured in AX.
With a little modification in AOT/Forms/SysUserGroupInfo/Data Sources/User Group Info/delete you can workaround the problem.
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;
}
Now your able to delete migrated user groups.

No comments:
Post a Comment