zoukankan      html  css  js  c++  java
  • Validate Finance Dimension on D365FO

    Purpose:

    The purpose of this post is to demonstrate how we can validate individual financial dimension values before writing a customer record.

    Product:

    Dynamics 365 for Finance and Operations

    Description:

    The code below validates some customer fields like Site, Warehouse, Price group and then checks the values for individual financial dimensions in this case which custom dimensions, Channel and Industry.

    Code:

    /// <summary>
    /// ValidatedWrite event handler
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    [DataEventHandler(tableStr(CustTable), DataEventType::ValidatedWrite)]
    public static void CustTable_onValidatedWrite(Common sender, DataEventArgs e)
    {
    	#define.DimAttrNameChannel('Channel')
    	#define.DimAttrNameIndustry('Industry')
    	
    	CustTable custTable = sender as CustTable;
    	ValidateEventArgs event = e as ValidateEventArgs;
    	DimensionAttributeValueSet dimensionAttributeValueSet;
    	DimensionAttributeValueSetItem dimensionAttributeValueSetItem;
    	DimensionAttributeValue dimensionAttributeValue;
    	DimensionAttribute dimensionAttribute;
    	DimensionAttributeValueSetStorage dimAttrValueSetStorage;
    	
    	boolean result = event.parmValidateResult();
    	
    	if (!custTable.InventSiteId)
    	{
    		result = checkFailed(strFmt("Site is required."));
    	}
    
    	if (!custTable.InventLocation)
    	{
    		result = checkFailed(strFmt("Warehouse is required."));
    	}
    
    	if (!custTable.PriceGroup)
    	{
    		result = checkFailed(strFmt("Price is required."));
    	}
    
    	if (!custTable.DefaultDimension)
    	{
    		result = checkFailed(strFmt("Financial dimensions Channel and Industry are required."));
    	}
    	else
    	{
    		dimAttrValueSetStorage = DimensionAttributeValueSetStorage::find(custTable.DefaultDimension);
    		dimensionAttribute = DimensionAttribute::findByName(#DimAttrNameChannel);
    
    		if (!dimAttrValueSetStorage.containsDimensionAttribute(dimensionAttribute.RecId))
    		{
    			result = checkFailed(strFmt("Financial dimensions Channel is required."));
    		}
    
    		dimensionAttribute = DimensionAttribute::findByName(#DimAttrNameIndustry);
    
    		if (!dimAttrValueSetStorage.containsDimensionAttribute(dimensionAttribute.RecId))
    		{
    			result = checkFailed(strFmt("Financial dimensions Industry is required."));
    		}
    	}
    
    	event.parmValidateResult(result);
    }
  • 相关阅读:
    struts2文件上传报错
    简述算法和程序的区别并举例说明
    JAVA中TreeMap集合筛选字母及每一个字符出现的次数
    Myeclipse2014破解步骤
    修改ubuntu的终端提示符
    gcc 引用math.h头文件,编译出现undefined reference to `pow‘等错误时,需要加参数lm.
    几篇文章
    gdb调试gcc出现:Missing separate debuginfos, use: debuginfoinstall glibcx.i686
    【达内C++学习培训学习笔记系列】C语言之三循环语句和数组
    code::block之spell checker配置
  • 原文地址:https://www.cnblogs.com/lingdanglfw/p/13984486.html
Copyright © 2011-2022 走看看