У меня есть 2 условия:

					{
						"leftExpression": {
							"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
							"attribute": "Stage"
						},
						"comparisonType": Terrasoft.ComparisonType.NOT_EQUAL,
						"rightExpression": {
							"type": BusinessRuleModule.enums.ValueType.CONSTANT,
							"value": ConfigurationConstants.OpportunityStage.Qualification
						}
					},
					{
						"leftExpression": {
							"type": BusinessRuleModule.enums.ValueType.ATTRIBUTE,
							"attribute": "Stage"
						},
						"comparisonType": Terrasoft.ComparisonType.NOT_EQUAL,
						"rightExpression": {
							"type": BusinessRuleModule.enums.ValueType.CONSTANT,
							"value": ConfigurationConstants.OpportunityStage.CloseLost
						}
					}

 

 

Могу ли объеденить их в одно при помощи CONTAIN

Нравится

2 комментария
Лучший ответ

Нет, contain используется для строк, а Stage guid. И не вижу смысла, это нормально что у вас будет множество сравнений по отдельности, если вы в секции rules описывает бизнес-правила .

Если стадий будет больше 5-10, то тогда надо сравнивать с массивом из стадий и делать это в описании фильтра в секции attributes для атрибута Stage. Секция rules для такого случая плохо подходит, будет десяток правил.

Нет, contain используется для строк, а Stage guid. И не вижу смысла, это нормально что у вас будет множество сравнений по отдельности, если вы в секции rules описывает бизнес-правила .

Если стадий будет больше 5-10, то тогда надо сравнивать с массивом из стадий и делать это в описании фильтра в секции attributes для атрибута Stage. Секция rules для такого случая плохо подходит, будет десяток правил.

Спасибо.

Показать все комментарии

Среди утилит-фильтров, согласноJS API (SDK) присутствует 2 фильтра: createColumnFilterWithParameter( comparisonType, columnPath, paramValue, paramDataType ) и createColumnInFilterWithParameters( columnPath, parameterValues, paramDataType ) для последнего почему-то не предусмотрен аргумент "comparisonType" Хотя если создать фильтр, сохранив его в переменной, такое свойство доступно для заполнения, а самое главное оно работает потому как createColumnNotInFilterWithParameters фильтра не существует, то установить var filter = Terrasoft.createColumnInFilterWithParameters("SameColumn", ["Val1", "Val2"]); filter.comparisonType = Terrasoft.ComparisonType.NOT_EQUAL; Это единственный способ объявить и иcпользовать в системе NotIn фильтр по колонке, не описывая выражение на уровне leftExpression - rightExpression (Это момент кстати нигде в документации не оговаривается, т.е. как сделать NotIn - совсем не очевидно, если ты не успел поработать с фильтрами и не попробуешь поэксперементировать со свойствами объекта) Видится разумным расширить набор параметров для createColumnInFilterWithParameters по аналогии с createColumnFilterWithParameter. Это в первую очередь позволит создавать такие фильтры, как анонимные объекты, не помещая их предварительно в переменные. Ну и "унификация" :)

4 комментария

Завели пожелание по параметру, а так же проблему по доработке sdk.

Плюсую! сегодня как раз понадобился такой фильтер :smile:

Илья, спасибо за фичу с "ComparisonType" !

Всегда пожалуйста :)

Показать все комментарии