Имя лукапной колонки объекта если в этом объекте другие колонки уже ссылаются на тот же объект

Доброго дня!

BPM 7.5. Может глупый вопрос задаю. Как я понял, и поддержка вроде подтвердила, имя лукапной колонки в объекте должно 1 в 1 совпадать с именем того объекта, на который эта колонка ссылается, иначе не будут работать некоторые штуки - например, не будет возможность сделать EntitySchemaQuery запрос - будет ошибка, что таблица не найдена.

А что делать в случае, когда несколько колонок объекта ссылаются на один и тот же объект, как их именовать?

Заранее благодарю!

Нравится

6 комментариев

Добрый день!

Вы сами ответили на свой вопрос.
В приложении bpm'online такая реализация не возможна, когда «несколько колонок объекта ссылаются на один и тот же объект» .
Выход: только через создание нескольких view, но с разными именами или дублирующих справочников.

Приятного дня!

"Вильшанский Дмитрий" написал:

Добрый день!

Вы сами ответили на свой вопрос.

В приложении bpm'online такая реализация не возможна, когда «несколько колонок объекта ссылаются на один и тот же объект» .

Выход: только через создание нескольких view, но с разными именами или дублирующих справочников.

Приятного дня!

Если я правильно понял вопрос, то и поддержке и Вам можно поставить двойку.
Интересно, как Вы объясните наличие и работоспособность полей "Контрагент" и "Поставщик" в карточке "Счет". Они вполне успешно ссылаются на контрагентов.

Спасибо за ответ!

Жаль..
По моему такая возможно должна быть из коробки каким-то образом реализована. Например, есть сущность "Candidate", у него поля "Assigned recruited", "Assigned searcher", оба должны брать значения из объекта "Employees" (или "Contacts"). Получается я должен создавать вьюшки для рекрутёров и сёрчеров, а в "Employees" добавлять признаки "Is recruiter", "Is searcher" ? Как-то не по феншую :(

"Валерий Андрусик" написал:Если я правильно понял вопрос, то и поддержке и Вам можно поставить двойку.
Интересно, как Вы объясните наличие и работоспособность полей "Контрагент" и "Поставщик" в карточке "Счет". Они вполне успешно ссылаются на контрагентов.

Вопрос поняли правильно. И, действительно, возможно создать колонки с произвольными именами, ссылающимися на таблицу с другим именем, и они будут вполне работоспособны.

Однако, я ранее сталкивался с проблемой, когда необходимо было выполнить EntitySchemeQuery запрос из JS такого вида:

var esqCand = this.Ext.create("Terrasoft.EntitySchemaQuery",
{
		rootSchemaName: "UsrVacancyCandidates"
});
esqCand.addAggregationSchemaColumn("UsrCandStat.Value", Terrasoft.AggregationType.MAX, "Value");

При этом колонка UsrCandStat (ссылка на таблицу UsrCandStat ) таблицы UsrVacancyCandidates называлась не так, как таблица, а, например, UsrCandSt. И запрос падал с ошибкой, пока я не переименовал (по совету поддержки) поле 'UsrCandSt' на такое же имя, как таблица, на которую она ссылается ('UsrCandStat').

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

"trickbz" написал:При этом колонка UsrCandStat (ссылка на таблицу UsrCandStat ) таблицы UsrVacancyCandidates называлась не так, как таблица, а, например, UsrCandSt. И запрос падал с ошибкой, пока я не переименовал (по совету поддержки) поле 'UsrCandSt' на такое же имя, как таблица, на которую она ссылается ('UsrCandStat').

Надеюсь это исправят в одном из обновлений бинарников, ибо это скорее проблема платформы, а не Ваша.

"trickbz" написал:
Валерий Андрусик пишет:

Если я правильно понял вопрос, то и поддержке и Вам можно поставить двойку.

Интересно, как Вы объясните наличие и работоспособность полей "Контрагент" и "Поставщик" в карточке "Счет". Они вполне успешно ссылаются на контрагентов.

Вопрос поняли правильно. И, действительно, возможно создать колонки с произвольными именами, ссылающимися на таблицу с другим именем, и они будут вполне работоспособны.

Однако, я ранее сталкивался с проблемой, когда необходимо было выполнить EntitySchemeQuery запрос из JS такого вида:

var esqCand = this.Ext.create("Terrasoft.EntitySchemaQuery",

{

                rootSchemaName: "UsrVacancyCandidates"

});

esqCand.addAggregationSchemaColumn("UsrCandStat.Value", Terrasoft.AggregationType.MAX, "Value");

При этом колонка UsrCandStat (ссылка на таблицу UsrCandStat ) таблицы UsrVacancyCandidates называлась не так, как таблица, а, например, UsrCandSt. И запрос падал с ошибкой, пока я не переименовал (по совету поддержки) поле 'UsrCandSt' на такое же имя, как таблица, на которую она ссылается ('UsrCandStat').

Первоначальный вопрос был не до конца понят.
Ответ:
1. Имя лукапной колонки должно совпадать 1 в 1 со справочником – да
2. Если необходимо, что бы несколько колонок ссылалось на один и тот-же справочник, необходимо в конфигурации добавить новое поле, типа справочник и указать нужную сущность
Как пример действительно подойдет Invoice (поля Account и Supplier).
3. Все используемые имена должны совпадать в конфигурации и на карточке 1:1 c учетом реестра
4. Пример агрегирующего вызова:

var select = Ext.create("Terrasoft.EntitySchemaQuery", {
                rootSchemaName: "Invoice"     
});
select.addAggregationSchemaColumn("Supplier.Name", Terrasoft.AggregationType.COUNT, "Count");
select.filters.add(select.createColumnFilterWithParameter(
                Terrasoft.ComparisonType.EQUAL, "Supplier.Name", "Test"));
select.getEntityCollection(function(result) {
                if (result.success) {
                               var collection = result.collection;
                               collection.each(function(item) {
                                               console.log(item.get("Count"));
                               }, this);
                }
}, this);
Показать все комментарии