AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX Blogs
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.11.2018, 01:13   #1  
Blog bot is offline
Blog bot
Участник
 
21,161 / 725 (67) +++++++
Регистрация: 28.10.2006
sashanazarov: Create LedgerDimension from main account and financial dimensions
Источник: http://sashanazarov.blogspot.com/201...from-main.html
==============

The following code will (hopefully) keep generating valid LedgerDimension values, even after account structures or advanced rule structures are modified.

In the example below, there is an account structure with MainAccount-BusinessUnit-Department segments and an advanced rule with Project segment.

class TestLedgerDim
{
public static DimensionDynamicAccount generateLedgerDimension(
MainAccountNum _mainAccountId,
str _departmentId,
str _businessUnit,
str _projectId)
{
DimensionAttributeValueSetStorage dimensionAttributeValueSetStorage
= new DimensionAttributeValueSetStorage();

void addDimensionAttributeValue(
DimensionAttribute _dimensionAttribute,
str _dimValueStr)
{
DimensionAttributeValue dimensionAttributeValue;

if (_dimValueStr != '')
{
dimensionAttributeValue =
DimensionAttributeValue::findByDimensionAttributeAndValueNoError(
_dimensionAttribute,
_dimValueStr);
}

if (dimensionAttributeValue.RecId != 0)
{
dimensionAttributeValueSetStorage.addItem(dimensionAttributeValue);
}
}

DimensionAttribute dimensionAttribute;

while select dimensionAttribute
where dimensionAttribute.ViewName == tableStr(DimAttributeOMDepartment)
|| dimensionAttribute.ViewName == tableStr(DimAttributeOMBusinessUnit)
|| dimensionAttribute.ViewName == tableStr(DimAttributeProjTable)
{
switch (dimensionAttribute.ViewName)
{
case tableStr(DimAttributeOMDepartment):
addDimensionAttributeValue(dimensionAttribute, _departmentId);
break;

case tableStr(DimAttributeOMBusinessUnit):
addDimensionAttributeValue(dimensionAttribute, _businessUnit);
break;

case tableStr(DimAttributeProjTable):
addDimensionAttributeValue(dimensionAttribute, _projectId);
break;
}
}

RecId defaultDimensionRecId = dimensionAttributeValueSetStorage.save();

return LedgerDimensionFacade::serviceCreateLedgerDimension(
LedgerDefaultAccountHelper::getDefaultAccountFromMainAccountRecId(
MainAccount::findByMainAccountId(_mainAccountId).RecId),
defaultDimensionRecId);
}

///
/// Runs the class with the specified arguments.
///
/// The specified arguments.
public static void main(Args _args)
{
// Prints 110110-001-022-000002
info(
DimensionAttributeValueCombination::find(
TestLedgerDim::generateLedgerDimension(
'110110',
'022',
'001',
'000002')).DisplayValue);
}

}


Источник: http://sashanazarov.blogspot.com/201...from-main.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
За это сообщение автора поблагодарили: trud (1).
Теги
ledgerdimension

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ax_gfm_framework_team: Dimension defaulting in accounting distributions, Part 3 - Splitting and defaulting using Financial dimension default templates and Main account allocation rules Blog bot DAX Blogs 0 18.12.2013 09:11
dynamicsaxtraining: Vendor returns Blog bot DAX Blogs 0 11.10.2012 00:11
dynamicsaxtraining: Purchase Blog bot DAX Blogs 0 11.03.2012 05:25
sumitsaxfactor: Ledger Accounts and Financial Dimensions Blog bot DAX Blogs 0 13.12.2011 22:11
wiki.dynamicsbook: Changes Made in Navision Attain 3.60 Blog bot Dynamics CRM: Blogs 0 02.09.2008 13:23
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:47.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.