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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 24.09.2007, 15:05   #1  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Конфигуратор продукции (расчет цены)
Доброе время суток!

Возможно, вопрос тривиальный, но после прочитения многих тем и материалов, касающихся модулей Product Builder и Inventory Management, все равно не понял, как реализовать следующуе функции.

Есть спецификация BOM1, состоящая из двух закупаемых номенклатур: Item1 и Item2. Расчет цены продажи BOM1 должен происходить по следующему принципу (к примеру): Цена продажи BOM1 = Цена покупки Item1 * 1,5 + Цена покупки Item2 * 1,2. Каждый раз набор номенклатур будет меняться, т.е. в следующий раз BOM1 будет состоять, а цена считаться исходя из цен Item3, Item4 и т.д.
Как такой расчет цены реализовать (для строки заказа)?

Проделанные шаги:
1. Создал спецификацию BOM1, в строках указал номенклатуры Item1 и Item2 с определенными ценами.
2. Создал модель продукции, в версиях указал номенклатуру BOM1.
3. Далее непонятно - если использовать комбинацию цен, то, как я понимаю, за основу можно брать только цену продажи основной номенклатуры (в данном случае BOM1) и корректировать ее. Если использовать модельное дерево, то можно добавить в нем строку спецификации, тут несколько непонятных моментов: а) какие номенклатуры сюда добавлять (основную BOM1 или входящие Item1 и Item2); б) как сопоставить эти номенклатуры(у) с переменной моделирования; в) как получить цены этих номенклатур?

Заранее спасибо за ответы!

Последний раз редактировалось cherv; 24.09.2007 в 16:02.
Старый 26.09.2007, 15:17   #2  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Так как все еще не нашел ответа, подниму тему .

Стало понятно, как происходит расчет цены номенклатуры через спецификацию, но там вычисляется значение рассчитывается как сумма цен входящих в состав номенклатур, как добавить к ним коэффициенты - непонятно.

Просьба подсказать хотя бы, в каком направлении стоит двигаться для решения проблемы.

Последний раз редактировалось cherv; 26.09.2007 в 16:37.
Старый 26.09.2007, 17:16   #3  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Кратко: в конфигураторе цену можно рассчитать с помощью описанных ниже функций настроек цен и вторым способом - расчётом непосредственно в дереве модели - используя соответствующие переменные.


To determine the sales price of configured items, you can create price
combinations for your product models. Price combinations are an
alternative to the standard BOM price calculation. To use the standard
BOM calculation instead of the price combination system, check the
Product Builder / Setup / Parameters / User dialog tab page / Sales
price calculation
field.
Price combinations are based on the item sales price (from the item table
or from trade agreements), with the addition of one or more price
adjustments that can be made dependent upon what has been selected in
the product model’s user dialog.
To set up price combinations for a product model, select Product Builder
/ Product models / Setup button / Price combinations.

In the Price adjustment field, you can specify an amount or a percentage
that should be added to the standard sales price (positive or negative).
Via the Price/Discount setup button, you can then proceed to define a
rule that decides when this particular price adjustment becomes active.
Price adjustment rules are created in the same way as validation rules –
please refer to the Setting up validation rules section for a description of
this procedure.
In the Percentage / Amount field you can choose between Amount,
Percent and Calculated.
· If you select Amount, the resulting price will be the standard sales price
plus the amount specified in the Percentage / Amount field – and the
adjustment will be active whenever the rule specified via the
Price/Discount setup button evaluates to ‘true’.
· If you select Percent , the resulting price will be the standard sales
price plus the percentage of it that is specified in the Percentage /
Amount field – and like before, the adjustment will be active whenever
the rule specified via the Price/Discount setup button evaluates to
‘true’. The percentage amount is calculated after adding any amountbased
price adjustments. For percentage-based adjustments, the
Price adjustment in currency button will be inactive.
· If you select Calculated, the Price/Discount setup button is used to to
specify a formula for calculating the price adjustment value (instead of a rule that decides when the adjustment should be active). In this case,
the Price adjustment field will always show the value 0.
In each of these three cases, you may choose to write the rule or
calculation expression as X++ code instead, on the Code tab page. This
works exactly as with validation rules: You can build the expression first on
the Overview tab page, and then transfer it to the Code tab page by
clicking the Transfer to program code button.
Note
Remember that the Sales price calculation field under Product Builder /
Setup / Parameters / User dialog
must be left unchecked if you want to use
price combinations with your product models. If this field is checked, the
standard BOM price calculation will be used instead.


Обращаю внимание, что конфигурирование BOM и Конфигуратор продукции не одно и то же.
Для того чтобы Конфигуратор работал в номенклатуре (спецификация) нужно поставить галку Моделирование возможно и соотвественно должна быть аналитика Конфигурация.
За это сообщение автора поблагодарили: cherv (1).
Старый 26.09.2007, 17:29   #4  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
2. Создал модель продукции, в версиях указал номенклатуру BOM1
КОнфигуратор сам создаёт новую спецификацию или версию специфакации на основании введённых пользователем данных при конфигурировании.
Цитата:
1. Создал спецификацию BOM1, в строках указал номенклатуры Item1 и Item2 с определенными ценами.
Для конфигуратора номенклатуры можно было и не вставлять. Номенклатура подбирается исходя из переменной моделирвоания, которая указана в дереве модели.
Цитата:
3. Далее непонятно - если использовать комбинацию цен, то, как я понимаю, за основу можно брать только цену продажи основной номенклатуры (в данном случае BOM1) и корректировать ее.
Есть несколько вариантов, они описаны выше.
Цитата:
Если использовать модельное дерево, то можно добавить в нем строку спецификации
В модельном дереве вы можете написать своё выражение используя операнд Code
например: расход материала (переменная)* цена материала (переменная) = цена продажи

Цитата:
тут несколько непонятных моментов: а) какие номенклатуры сюда добавлять (основную BOM1 или входящие Item1 и Item2
В модельном дереве указываются переменные (таблица или код) которые представляют номенклатуру.

Цитата:
б) как сопоставить эти номенклатуры(у) с переменной моделирования;
При конфигурировании - пользователь для соответсвующей номенклатуры выбирает переменную.

Цитата:
в) как получить цены этих номенклатур
Точно не отвечу-зависит от модели реализации которую вы изберёте.
Старый 27.09.2007, 18:55   #5  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Vals
Спасибо за ответ!
Путем экспериментов удалось добиться некоего результата. Добавил в модельное дерево узел "Таблица", получил в переменную Var1 значение поля Price определенной номенклатуры. При конфигурировании строки заказа в диалоге появляется значение этой цены, однако в строку заказа не подставляется (ни по кнопке "Рассчитать цену", ни по кнопке "OK"). Мне остается неясно, как значение переменной подставить (скажем, в строке заказа) в цену продажи.
Цитата:
В модельном дереве вы можете написать своё выражение используя операнд Code
например: расход материала (переменная)* цена материала (переменная) = цена продажи
Правильно ли я понимаю, что для этого в модели необходимо ввести переменную для цены продажи? Но как ее сопоставить с полем из строки заказа?
Помогите, пожалуйста, сделать последний шаг!
Старый 27.09.2007, 21:08   #6  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Цитата:
Цена продажи BOM1 = Цена покупки Item1 * 1,5 + Цена покупки Item2 * 1,2.
Посмотрите вообще группы надбавок для спецификации

Если у вас 4.0 - смотрите Номенклатура/ закладка Ссылки/ Группа расчёта.
Там настраивается очень близко к тому что вы хотите без использования конфигуратора.

По конфигуратору, какую таблицу вы добавили?

Последний раз редактировалось Vals; 28.09.2007 в 09:28. Причина: Добавил ссылку на группу расчёта
За это сообщение автора поблагодарили: cherv (1).
Старый 28.09.2007, 11:28   #7  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Vals
Спасибо за наводку по поводу групп расчета - да, это примерно то, что нужно для данной реализации, думаю, что данная функциональность может пригодиться. Извините за назойливость, но хотелось бы до конца выстроить цепочку в Product Builder, так как предполагается использование и более сложных, чем приведенная в примере формула, и наверняка понадобится использовать также и этот модуль.

В дереве я добавил таблицу InventTableModule, указал искомое знаения поля ItemId и ModuleType (тип цены), для получения знаения поля Price указал переменную Var1. Также добавил в дерево Простой узел, где указал, что для Var1 = Var1 * 1.5. Далее создаю заказ, строку с номенклатурой BOM1, конфигурирую строку, появляется окно с выбором модели продукции, выбираю, далее появляется окно с рассчитанной переменной Var1 (значение рассчитывается верно). Собственно, на последнем шаге и затык: как это значение перенести в цену продажи BOM1? Мне кажется, вопрос вообще более общий: как использовать результат расчета, произведенный в модельном дереве? Должен ли он перенесится в номенклатуру/заказ или еще куда-либо и каким образом?
Старый 28.09.2007, 12:48   #8  
Михаил Андреев is offline
Михаил Андреев
Участник
Компания АМАНД
Лучший по профессии 2009
 
1,295 / 239 (10) ++++++
Регистрация: 09.11.2001
Адрес: Химки, Московская область
Цитата:
Сообщение от cherv Посмотреть сообщение
Собственно, на последнем шаге и затык: как это значение перенести в цену продажи BOM1? Мне кажется, вопрос вообще более общий: как использовать результат расчета, произведенный в модельном дереве? Должен ли он перенесится в номенклатуру/заказ или еще куда-либо и каким образом?
Могу ошибаться - давно с этим модулем не работал. Насколько я помню, есть системная переменная Номер лота. По ней можно найти строку заказа и обновить, например.
__________________
Михаил Андреев
https://www.amand.ru
За это сообщение автора поблагодарили: cherv (1).
Старый 28.09.2007, 13:51   #9  
raz is offline
raz
NavAx
Аватар для raz
NavAx Club
Лучший по профессии 2014
Лучший по профессии 2009
 
1,494 / 1065 (38) ++++++++
Регистрация: 22.07.2003
Адрес: МО
Цитата:
Сообщение от Михаил Андреев Посмотреть сообщение
Могу ошибаться - давно с этим модулем не работал. Насколько я помню, есть системная переменная Номер лота. По ней можно найти строку заказа и обновить, например.
100% есть такая переменная. Кажется и называееться inventTransId.
Старый 28.09.2007, 14:36   #10  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Михаил Андреев
Спасибо большое, теперь вроде все получилось!
Старый 28.09.2007, 19:46   #11  
Vals is offline
Vals
Аманд
Аватар для Vals
Компания АМАНД
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2009
 
1,766 / 507 (20) +++++++
Регистрация: 27.02.2002
Адрес: Pass partout, Москва
Есть ещё момент - вы перенесли цену в справочник номенклатуры, а не в SalesLine.
Старый 01.10.2007, 10:27   #12  
cherv is offline
cherv
MCTS
MCBMSS
1C
 
88 / 25 (1) +++
Регистрация: 24.05.2006
Vals
Цитата:
Есть ещё момент - вы перенесли цену в справочник номенклатуры, а не в SalesLine.
Вы имеете в виду, что я указал использование таблицы InventTableModule? Да вроде все хорошо, я проверил созданный при компилаяции модели класс. Из таблицы InventTableModule получается цена, умножается на 1.5. Далле я добавил в дерево узел "Код", в котором прописал:
X++:
select firstonly forupdate SalesLine
where SalesLine.InventTransID == lotId;
SalesLine.SalesPrice = Var1;
SalesLine.update();
Теги
ax4.0

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Модуль "Конфигуратор продукции" demID DAX: Функционал 17 15.06.2012 16:54
Конфигуратор продукции. Ингар DAX: Функционал 1 05.04.2005 12:31
Конфигуратор продукции - номенклатура EreminIgor DAX: Функционал 0 10.11.2004 11:28
Конфигуратор продукции Dimitry DAX: Программирование 0 07.04.2003 15:27
Конфигуратор продукции Dimitry DAX: Функционал 1 13.02.2003 17:25

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 21:05.