Axapta “动态AX 2009”;“用户组权限”;

Axapta “动态AX 2009”;“用户组权限”;,axapta,microsoft-dynamics,Axapta,Microsoft Dynamics,我想快速准备“用户组权限”,但这是非常困难的,例如,如果我想添加对“管理”->“位置”视图的访问权限,则此软件仅对父节点授予权限,而不对该父节点中的所有节点授予权限。我应该如何解决此问题 如果单击“维度集”,则需要对此父对象中的所有子对象授予权限。你知道我要做什么吗 public void MCOVgrantFullAccess(SecurityKeySet _startSecurityKeySet = null) { //klasa systemowa dictionary http

我想快速准备“用户组权限”,但这是非常困难的,例如,如果我想添加对“管理”->“位置”视图的访问权限,则此软件仅对父节点授予权限,而不对该父节点中的所有节点授予权限。我应该如何解决此问题

如果单击“维度集”,则需要对此父对象中的所有子对象授予权限。你知道我要做什么吗

public void MCOVgrantFullAccess(SecurityKeySet _startSecurityKeySet = null)
{
    //klasa systemowa dictionary http://msdn.microsoft.com/en-us/library/aa600103(v=ax.50).aspx
    Dictionary          dictionary = new Dictionary();

    DictSecurityKey     dictSecurityKey;
    int i;


    if (_startSecurityKeySet)
        securitySet = _startSecurityKeySet;
    else
        securitySet = SysSecurity::constructSecurityKeySet();


    // securityKeyCnt() An integer that indicates the number of security keys. http://msdn.microsoft.com/en-us/library/aa600103(v=ax.50).aspx
    // i = 365
    for (i=dictionary.securityKeyCnt(); i; i--)
    {
        dictSecurityKey = new DictSecurityKey(dictionary.securityKeyCnt2Id(1));
        if (!dictSecurityKey.parentSecurityKeyId())
        {
            securitySet.access(dictSecurityKey.id(), AccessType::Delete);
        }
    }
    SysSecurityFormSetup::delete(userGroupId, domainId); //Delete setup of form controls
    formSetupMap = new Map(Types::String, Types::Class); //Clear cache
}

如果您正在设置安全性,则有一个“应该”遵循的流程,您可以从收集最终用户执行的流程开始,根据这些流程定义安全角色,然后设置组。我接受过MS Partners的安全培训,我们从未硬编码过任何东西。在管理模块中有一个安全设置区域,您可以在其中定义用户组和其中的权限,然后将用户分配给组,还可以从这里为单个记录设置记录级别的安全性