Dynamic 365中的财务维度添加相比2012要简单很多,使用维度的模板,省不少事。

假如你需要给某个界面添加财务维度,可按以下两个步骤就可以完成:

1.在所需界面的对应表添加维度字段,此字段继承系统的维度字段InventSiteLinkedDimensionValueSet。

2.在界面添加Tab页签,使用维度的模板,将对应的维度字段添加即可;

合并财务维度的方法与12不同,

12中是DimensionDefaultingService::serviceReplaceAttributeValue(),365中是LedgerDimensionDefaultFacade::serviceReplaceAttributeValue()来实现

假如库存转移日记账头表财务维度与行表合并:

可参考以下代码来实现:

[
    ExtensionOf(tablestr(InventJournalTrans))
]
final class InventJournalTrans_Extension
{
   
    [PostHandlerFor(tableStr(InventJournalTrans), tableMethodStr(InventJournalTrans, initFromInventTable))]
    public static void InventJournalTrans_Post_initFromInventTable(XppPrePostArgs args)
    {
        InventJournalTable      inventJournalTable;
        InventJournalTrans      inventJournalTrans;

        inventJournalTrans = args.getThis();//获取扩展表的当前记录

        if(inventJournalTrans.JournalType == InventJournalType::Movement)
        {
            inventJournalTable  = inventJournalTrans.inventJournalTable();

            inventJournalTrans.MergeDimensionDefault(inventJournalTable.QAX_DefaultDimension);
        }

    }

    public  void MergeDimensionDefault(InventSiteLinkedDimensionValueSet _dimension)
    {
        DimensionAttributeValueSetItemView  dimensionAttributeValueSetItemView;

       while select  dimensionAttributeValueSetItemView
            where dimensionAttributeValueSetItemView.DimensionAttributeValueSet == _dimension
       {
           //将库存日记账头的财务维度与行上的财务维度合并
           this.DefaultDimension = LedgerDimensionDefaultFacade::serviceReplaceAttributeValue(this.DefaultDimension,_dimension,dimensionAttributeValueSetItemView.DimensionAttribute);
       }
        
    }

}

这样就实现了财务维度的合并,哈,太详细了! 

 

posted on 2018-07-18 09:53  Sunny_Li  阅读(630)  评论(0编辑  收藏  举报