Поделиться через


Часто задаваемые вопросы по расчетам моделей конфигураций продуктов

В этой статье описываются расчеты для моделей конфигурации продуктов и объясняется, как использовать расчеты вместе с ограничениями.

Вычисления можно использовать для арифметических или логически операций. Они дополняют ограничения по выражениям в моделях конфигурации продукта. Вы можете определить вычисления на странице Сведения о модели конфигурации продукта на основе ограничений и после этого построить выражения для вычислений в редакторе выражений. Дополнительные сведения см. в разделе "Создать расчеты".

Что такое расчет?

Расчет — это элемент, который можно использовать в модели конфигурации продукта. Расчеты дополняют ограничения, давая возможность рассчитывать значения с помощью десятичных чисел при настройке продукта. Кроме того, расчеты имеют более широкий набор доступных операторов по сравнению с ограничениями.

Как и ограничения, расчеты связаны с определенным компонентом в модели конфигурации продукта, и их нельзя использовать повторно или совместно с другим компонентом. Одна важная разница между вычислениями и ограничениями заключается в том, что вычисления императивны (однонаправленные), тогда как ограничения декларативны (двухнаправленные). Дополнительные сведения об ограничениях см. в разделе Ограничения выражений и ограничения таблиц в моделях конфигурации продукта.

Расчет состоит из целевого атрибута и выражения расчета.

Что такое целевой атрибут?

Целевой атрибут — это атрибут, который будет получать результат расчета в выражении.

В следующем выражении целевой атрибут является размером скатерти:

Выражение: If[decimalAttribute1 <= decimalAttribute2, True, False]

decimalAttribute1 — длина стола, а decimalAttribute2 — длина скатерти. Выражение возвращает целевому атрибуту значение True, если значение decimalAttribute2 больше или равно decimalAttribute1. В противном случае выражение возвращает значение False. Поэтому размер скатерти приемлем, если длина скатерти равна длине стола или превышает ее.

Какие типы атрибутов можно устанавливать в качестве целевых атрибутов?

Все типы атрибутов, поддерживаемых конфигуратором продукции, можно установить в качестве целевых атрибутов, за исключением текста без фиксированного списка.

Может ли значение целевого атрибута ограничивать значения входных атрибутов в расчете?

Нет, значение целевого атрибута не может ограничивать значения входных атрибутов, поскольку расчеты однонаправленны. Поэтому значение целевого атрибута устанавливается на основе изменений в значении входных атрибутов, но изменение значения целевого атрибута не влияет на значение входных атрибутов. Это поведение отличается от поведения для ограничений. Ограничения происходят в обоих направлениях.

Пример

В следующем выражении целью для расчета является длина шнура питания, а входное значение задает цвет.

Выражение: [If Color == "Green", 1.5, 1.0]

При настройке номенклатуры для длины шнура питания задается значение 1,5, если выбрано значение атрибута цвета Green. Если указать любой другой цвет, длина будет равна 1,0. Однако поскольку расчеты однонаправленны, расчет не устанавливает атрибут цвета равным Green при указании длины 1,5.

Что происходит, если расчет имеет целевой атрибут в виде целого числа, а расчет возвращает десятичное число?

Если целевой атрибут имеет целый тип, а при расчете получается десятичное число, возвращается только целая часть высчитанного результата. Десятичная часть удаляется, а результат не округляется. Например, результат 12,70 отображается как 12.

Когда выполняются расчеты?

Расчеты выполняются, когда значения предоставлены для всех входных атрибутов.

Можно ли перезаписать значение, которое рассчитывается для целевого атрибута?

Можно переопределить значение, которое рассчитывается для целевого атрибута, если только целевой атрибут не задан как скрытый или доступный только для чтения.

Как установить целевой атрибут в качестве скрытого или доступного только для чтения?

Чтобы настроить атрибут как скрытый или доступный только для чтения, выполните следующие действия.

  1. Щелкните Управление сведениями о продукте>Продукты>Модели конфигурации продукта.
  2. Выберите модель конфигурации продукта, затем на панели действий нажмите Правка.
  3. На странице Сведения о модели конфигурации продукта на основе ограничений выберите атрибут для использования как целевой атрибут.
  4. На экспресс-вкладке Атрибуты выберите Скрыто или Только для чтения.

Может ли расчет перезаписать установленные пользователем значения?

Нет. Используются значения, которые задаются при настройке продукта. Расчет, которые происходит при изменении входные значения не может переопределить значения, введенные для определенного атрибута пользователем.

Что происходит, если я удалить входное значение из расчета?

При удалении входного значения из расчета значение целевого атрибута также удаляется.

Почему появляется сообщение об ошибке, которое показывает, что модель не согласована?

Это сообщение отображается, когда расчет содержит ошибку или когда имеется рассогласованность с одним или несколькими ограничениями. Дополнительные сведения о противоречиях в ограничениях см. в разделе Ограничения выражений и ограничения таблиц в моделях конфигурации продукта. Вот некоторые ситуации, в которых в расчетах могут произойти ошибки:

  • Значение делится на 0 (нуль).
  • Имеется конфликт между следующими двумя элементами:
    • Значения, доступные для атрибута и ограниченные ограничением
    • Значение, которое создается при расчете
  • Значения, которые возвращаются расчетом находятся за пределами домена атрибута. Пример целого числа из [1..10], которое вычисляется как 0.

Почему появляется сообщение об ошибке, даже если модель продукта успешно прошла проверку?

Расчеты не включаются в проверку. Необходимо проверить модель конфигурации продукта, чтобы найти ошибки в расчетах. Чтобы проверить модель конфигурации продукта, выполните следующие шаги.

  1. Щелкните Управление сведениями о продукте>Продукты>Модели конфигурации продукта.
  2. Выберите модель конфигурации продукта, затем на панели действий в группе Выполнить нажмите Тест.