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);
}
}
}
这样就实现了财务维度的合并,哈,太详细了!