I wrote this code from one of Eyüp Tezar's code:
DimensionDefault DefDim;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue newValue;
DimensionAttributeValueSetStorage dimensionStorage;
DefDim = mytable.Defaultdimension;
dimensionAttribute = DimensionAttribute::find(myDimRecid);
newValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,
myDimValue,false,true);
dimensionStorage = DimensionAttributeValueSetStorage::find(DefDim);
dimensionStorage.addItem(newValue);
DefDim = dimensionStorage.save();
//------------------- another dimension ------------------------
dimensionAttribute = DimensionAttribute::findbyName("Project");
newValue = DimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,
myDimValue2,false,true);
dimensionStorage = DimensionAttributeValueSetStorage::find(DefDim);
dimensionStorage.addItem(newValue);
DefDim = dimensionStorage.save();
default dimension etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
default dimension etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
10 Eylül 2014 Çarşamba
24 Haziran 2014 Salı
AX 2012 - Default dimension
//http://axvuongbao.blogspot.com.tr/2013/08/how-to-create-default-dimension-from-x.html
public static DimensionDefault CreateDefaultDim(Container _a,Container _v)
{
DimensionAttributeValueSetStorage valueSetStorage = new DimensionAttributeValueSetStorage();
DimensionDefault result;
int i;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
//_attr is dimension name in table DimensionAttribute
container conAttr = _a;
container conValue = _v;
boolean _createIfNotFound = true;
str dimValue;
for (i = 1; i <= conLen(conAttr); i++)
{
dimensionAttribute = dimensionAttribute::findByName(conPeek(conAttr,i));
if (dimensionAttribute.RecId == 0)
{
continue;
}
dimValue = conPeek(conValue,i);
if (dimValue != "")
{
// _createIfNotFound is "true". A dimensionAttributeValue record will be created if not found.
dimensionAttributeValue=
dimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,dimValue,false,_createIfNotFound);
// Add the dimensionAttibuteValue to the default dimension
valueSetStorage.addItem(dimensionAttributeValue);
}
}
result = valueSetStorage.save();
return result;
}
Sample usage:
LedgerJournalTrans.DefaultDimension = MyUtility::CreateDefaultDim("[Contract],[Project]","[0001],[MyBigProject]")
If you get Unable to return DimensionAttributeValue record for ... error than you try create a dimension combination values unavailable in system.
public static DimensionDefault CreateDefaultDim(Container _a,Container _v)
{
DimensionAttributeValueSetStorage valueSetStorage = new DimensionAttributeValueSetStorage();
DimensionDefault result;
int i;
DimensionAttribute dimensionAttribute;
DimensionAttributeValue dimensionAttributeValue;
//_attr is dimension name in table DimensionAttribute
container conAttr = _a;
container conValue = _v;
boolean _createIfNotFound = true;
str dimValue;
for (i = 1; i <= conLen(conAttr); i++)
{
dimensionAttribute = dimensionAttribute::findByName(conPeek(conAttr,i));
if (dimensionAttribute.RecId == 0)
{
continue;
}
dimValue = conPeek(conValue,i);
if (dimValue != "")
{
// _createIfNotFound is "true". A dimensionAttributeValue record will be created if not found.
dimensionAttributeValue=
dimensionAttributeValue::findByDimensionAttributeAndValue(dimensionAttribute,dimValue,false,_createIfNotFound);
// Add the dimensionAttibuteValue to the default dimension
valueSetStorage.addItem(dimensionAttributeValue);
}
}
result = valueSetStorage.save();
return result;
}
Sample usage:
LedgerJournalTrans.DefaultDimension = MyUtility::CreateDefaultDim("[Contract],[Project]","[0001],[MyBigProject]")
If you get Unable to return DimensionAttributeValue record for ... error than you try create a dimension combination values unavailable in system.
Etiketler:
AX,
ax 2012,
AXAPTA,
default dimension,
defaultdimension
Kaydol:
Kayıtlar (Atom)