Вопрос

Получение названия на бекенде

Всем добрый день. Версия 7.12.

Подскажите, а есть ли какой-нибудь аналог такой конструкции:

esq.addMacrosColumn(Terrasoft.QueryMacrosType.PRIMARY_DISPLAY_COLUMN, "PrimaryDisplayColumnValue");

на бекенде, для указания в коде задания-сценария бизнес-процесса?

Т.е. получение значения строковой колонки, имеющей отметку как "Отображаемая" при условии, что мы не знаем кода этой колонки?

Нравится

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

Добрый день!

У Entity есть поле PrimaryDisplayColumnValue

Использую вот такую конструкцию:

var esqLookup = new EntitySchemaQuery(UserConnection.EntitySchemaManager, objectId);
var idLookup = esqLookup.AddColumn("Id"); //Id
//var idLookupName = esqLookup.GetPrimaryDisplayColumn();
var lookup= esqLookup.GetEntity(UserConnection, new Guid(guidCode.ToString()));
 
var lookupId = lookup.GetTypedColumnValue<Guid>(idLookup.Name);
var lookupName = lookup.PrimaryDisplayColumnValue;

И получаю в lookupName пустоту. При этом значение id вытаскивается верное.

Можно при помощи GetPrimaryDisplayColumnName:

entitySchemaQuery = new EntitySchemaQuery(typeSchema);
var typePrimaryColumnName = entitySchemaQuery.AddColumn(typeSchema.GetPrimaryColumnName()).Name;
var typeDisplayColumnName = entitySchemaQuery.AddColumn(typeSchema.GetPrimaryDisplayColumnName()).Name;

 

Смородинов Денис,

А Entity Вы получаете?

Попробуйте таким образом:

EntitySchema entitySchema = userConnection.EntitySchemaManager.GetInstanceByName(entityName);
Entity entity = entitySchema.GetEntity(userConnection, idValue);
var primaryColumnValue = entity.PrimaryColumnValue;
var primaryDisplayColumnValue = entity.PrimaryDisplayColumnValue;

 

Зверев Александр пишет:

typeSchema

А можно уточнить вопрос? typeSchema - это то, что у меня в скобках ?

var esqLookup = new EntitySchemaQuery(UserConnection.EntitySchemaManager, objectId);

У ESQ есть несколько разных конструкторов. В моём примере typeSchema — переменная типа EntitySchema. Получить схему по названию можно так:

var manager = UserConnection.EntitySchemaManager;
var schema = manager.GetInstanceByName("Dashboard");

 

Смородинов Денис,

А у вашего объекта установлена колонка для отображения?

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