Имя лукапной колонки объекта если в этом объекте другие колонки уже ссылаются на тот же объект
Доброго дня!
BPM 7.5. Может глупый вопрос задаю. Как я понял, и поддержка вроде подтвердила, имя лукапной колонки в объекте должно 1 в 1 совпадать с именем того объекта, на который эта колонка ссылается, иначе не будут работать некоторые штуки - например, не будет возможность сделать EntitySchemaQuery запрос - будет ошибка, что таблица не найдена.
А что делать в случае, когда несколько колонок объекта ссылаются на один и тот же объект, как их именовать?
Заранее благодарю!
Нравится
Добрый день!
Вы сами ответили на свой вопрос.
В приложении 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);