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;
}
}