Photo by Kelly Sikkema on Unsplash
How to Add a New Financial Dimension Lookup Field in Dynamics 365 Finance & Operations
Yeni bir finansal boyut alanı eklemek
Bu yazıda, Dynamics 365'te standart boyut alanlarına bağlı kalmadan yeni bir boyut alanı eklemeyi ve bu alanın standart boyutlarla nasıl senkronize çalışabileceğini anlatacağım.
PurchLine’a EDT’si DimensionValue olan string bir alan açıyoruz. İlgili alan için her hangi bir relation oluşturmanıza gerek yok.
Açtığımız alanı PurchTable formuna ekliyoruz.
Açtığımız alan için, DimensionValueLookupHelper::lookupDimensionValues() yöntemi ile standart Dimension alanları gibi bir Form Lookup çıkmasını sağlayabilirsiniz. Ancak, bu işlemi yaparken ilgili boyutun DimensionAttribute kaydını bulup sağlamanız gerektiğini unutmayın.
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
[FormControlEventHandler(formControlStr(PurchTable, PurchLine_ETGDimDepartment), FormControlEventType::Lookup)]
public static void PurchLine_ETGDimDepartment_OnLookup(FormControl sender, FormControlEventArgs e)
{
DimensionValueLookupHelper::lookupDimensionValues(DimensionAttribute::findByName('Department')), sender);
}
Bu eklediğimiz alanın standart boyutlarla uyumlu çalışması için insert, update ve modified methodlarına eklemeler yapmanız gerekiyor.
public void insert(
boolean dropInvent,
boolean findMarkup,
boolean updatePurchTableDistributions,
boolean _skipPurchTableUpdate,
boolean _skipInterCompanyCalcDisc)
{
//Yeni açtığımız boyut alanına ilgili Boyut değeri atanır
this.ETGDimDepartment = ETGBaseDimensionParameters::getDimensionValue(ETGBaseDimensionType::Department, this.DefaultDimension);
next insert(dropInvent,findMarkup,updatePurchTableDistributions,_skipPurchTableUpdate,_skipInterCompanyCalcDisc);
}
public void update(boolean dropInvent,
boolean updateOrderLineOfDeliverySchedule,
boolean updatePurchTableDropShipStatus)
{
//Yeni açtığımız boyut alanına ilgili Boyut değeri atanır
this.ETGDimDepartment = ETGBaseDimensionParameters::getDimensionValue(ETGBaseDimensionType::Department, this.DefaultDimension);
next update(dropInvent,updateOrderLineOfDeliverySchedule,updatePurchTableDropShipStatus);
}
void modifiedField(FieldId _fieldId, boolean _userInput)
{
next modifiedField(_fieldId, _userInput);
switch (_fieldId)
{
case fieldNum(PurchLine, ETGDimDepartment):
//Standart boyutlara yeni açtığımız boyut alanının değeri atanır
this.DefaultDimension = ETGBaseDimensionParameters::setDimensionValue(ETGBaseDimensionType::Department, this.ETGDimDepartment, this.DefaultDimension);
break;
}
}
Sonuç olarak eklediğimiz alan standart boyutlar gibi bir Form Lookup ile çalışacaktır.