Tuesday, February 4, 2025

User License

 using Microsoft.Dynamics.AX.Security.Management;

using Microsoft.Dynamics.AX.Security.Management.Querying;

using Microsoft.Dynamics.AX.Security.Management.UI;


class test

{


    public static Str getDefaultDimName(DimensionDefault _dimensionDefault)

    {

        DefaultDimensionView    dimensionView;

        str                     dimensionValue;



        while select dimensionView

            where dimensionView.DefaultDimension == _dimensionDefault

        {

            dimensionValue += dimensionView.DisplayValue + '~';

        }


        return dimensionValue;

    }


    public static DimensionDefault createDefaultDim(Name _dimensionName, str _dimValue ,  DimensionDefault _oldDefaultDimenion = 0)

    {

        DimensionAttributeValueSetStorage   valueSetStorage = new DimensionAttributeValueSetStorage();

        DimensionDefault                    result;


        int                                 i;

        DimensionAttribute                  dimensionAttribute;

        DimensionAttributeValue             dimensionAttributeValue;

        DimensionDefault                    newDefaultDimension;

   

        dimensionAttribute = dimensionAttribute::findByName(_dimensionName);


        if (dimensionAttribute.RecId != 0 && _dimValue)

        {

            dimensionAttributeValue = DimensionAttributeValue::findByDimensionAttributeAndValueNoError(dimensionAttribute, _dimValue, false, true);

            valueSetStorage.addItem(dimensionAttributeValue);

        }

        result = valueSetStorage.save();

        newDefaultDimension   = LedgerDimensionDefaultFacade::serviceMergeDefaultDimensions(result,_oldDefaultDimenion);


        return newDefaultDimension;

    }


    public static LedgerJournalTable createLedgerJournal(LedgerJournalNameId    _journalName, CurrencyCode  _currencyCode = "")

    {

        LedgerJournalTable      ledgerJournalTable;

        LedgerJournalTableData  jourTableData;

        ;


        jourTableData = JournalTableData::newTable(ledgerJournalTable);


        ledgerJournalTable.JournalNum  = jourTableData.nextJournalId();

        ledgerJournalTable.JournalName = _journalName;

        ledgerJournalTable.initFromLedgerJournalName(_journalName);


        if(_currencyCode)

        {

            ledgerJournalTable.CurrencyCode = _currencyCode;

        }

        ledgerJournalTable.insert();


        return ledgerJournalTable;

    }


    public static boolean  checkUserLicence(UserLicenseType _userLlicenceType, UserId _userId = curUserId())

    {

        SecurityLicenseRole SecurityLicenseRole;

        SecurityRole        role;

        SecurityUserRole    userRole;

        UserInfo            userInfo;

        boolean             ret = false;


        DialogService::PopulateSysSecurityRolesWithAggregateLicense(SecurityLicenseRole.getPhysicalTableName(), SysSecurity::GetSecurityRepository());


        while select role

            exists join userRole

                where userRole.User == _userId

                   && userRole.SecurityRole == role.RecId

        {

            select firstonly SecurityLicenseRole

                where SecurityLicenseRole.SecurityRole == role.recId;

            

            if(SecurityLicenseRole.RecId)

            {

                List strlist = new List(Types::String);

                strlist = strSplit(SecurityLicenseRole.License, ',');

                ListIterator iterator = new ListIterator(strlist);

                str licenseString;

                boolean isFirst = true;

                while (iterator.more())

                {

                    UserLicenseType license = any2Enum(iterator.value());

                    if( license == _userLlicenceType )

                    {

                        ret = true;

                        break;

                    }

                    iterator.next();

                }

            }

        }

       

        return ret;

}


}

Delete TFS Workspace Through command prompt D365 FO

Requirement: where I have situation need to configure the TFS in my Development machine but getting error when we map metadata.  cause of t...