MapEnumerator mapEnum;
boolean validDim = true;
List _contractList;
Map dimMap = new Map(Types::String, Types::String);
RecId defaultDimension;
DimensionDefaultContract dimensionDefaultContract = DimensionDefaultContract::construct();
dimMap.insert('Client', '003501_036');
dimMap.insert('Purpose', '2016GBG');
dimMap.insert('Division', 'CORP');
dimMap.insert('Department', 'ADMIN');
dimMap.insert('Location', 'LOSANGELES');
dimMap.insert('SubDepartment', 'AP');
dimMap.insert('Employee', '100077');
mapEnum = dimMap.getEnumerator();
while(mapEnum.moveNext())
{
str dimName, dimValue;
boolean dimNameValid;
dimName = mapEnum.currentKey();
dimValue = mapEnum.currentValue();
DimensionAttributeValueContract dimAttrValContract = DimensionAttributeValueContract::construct(dimName, dimValue);
_contractList = dimensionDefaultContract.parmValues();
_contractList.addEnd(dimAttrValContract);
}
if(dimensionDefaultContract && !dimensionDefaultContract.parmValues().empty())
{
DimensionNameValueListServiceProvider dimensionDefaultServiceProvider = DimensionNameValueListServiceProvider::newForDimensionNameValueListContract(dimensionDefaultContract);
DimensionStorageResult dimensionStorageResult = dimensionDefaultServiceProvider.resolve();
switch(dimensionStorageResult.parmStatus())
{
case DimensionStorageResultStatus::Valid:
defaultDimension = dimensionStorageResult.parmSavedRecId();
break;
default:
error(strFmt("Validation Status: %1", dimensionStorageResult.parmStatus()));
break;
}
}
info(strFmt("Default Dimension %1",defaultDimension));
This blog is contains coding reference related to Microsoft AX 2012 and D365 finance and operations and Power platform
Showing posts with label Create. Show all posts
Showing posts with label Create. Show all posts
Monday, April 12, 2021
Create default dimension using X++ in D365fo
Wednesday, April 22, 2020
Add Custom lookup on EP
The trick is to override datasetLookup() on Dataset > data source > field > methods. You will not find this method in the list of override methods so just create this as new method. the table which we are using for lookup should be in the Dataset public void dataSetLookup(SysDataSetLookup sysDataSetLookup) { List list = new List(Types::String); Query query = new Query(); QueryBuildDataSource queryBuildDataSource; QueryBuildRange qbr; // Add the table to the query. queryBuildDataSource = query.addDataSource(tableNum(HcmWorker)); //add the range qbr = queryBuildDataSource.addRange( fieldnum(HcmWorker, PersonnelNumber)); // qbr.value(DirPersonUser::currentWorkerPersonnelNumber()); // qbr.status(RangeStatus::Locked); // Specify the fields to use for the lookup. list.addEnd(fieldStr(HcmWorker,PersonnelNumber)); list.addEnd(fieldStr(HcmWorker,Name())); sysDataSetLookup.parmLookupFields(list); // Specify the field that is returned from the lookup. sysDataSetLookup.parmSelectField('PersonnelNumber'); // Pass the query to the SysDataSetLookup so that the query is used. sysDataSetLookup.parmQuery(query); }
Subscribe to:
Posts (Atom)