Вопрос
BPM5: Как получить названия и заголовки всех полей сущности
21 ноября 2013 12:02
Стоит задача: Есть задача (активность в bpm), нужно послать письмо ответственному и автору какие поля были изменены. С отправлением письма разберусь, а как в bpm5 получить список всех полей сущности, и как по названию поля получить его заголовок. Думаю понятно объясню в коде
Entity CurrentEntity = this.Entity; //Текущая запись - задача
string[] arFieldsNames = ;//как получить в массив строк полей по сущности?
string[] arFieldsTitles = ;//как получить массив заголовков полей либо ниже, как по названию поля, получить его заголовок?
var emailBody = "Измененные значения:
";//тело для письма
for(var i=0;iarFieldsNames.Length;i++) {
//Сравниваем старое и новое значение
if (CurrentEntity.GetColumnOldValue(arFieldsNames[i]) != CurrentEntity.GetColumnValue(arFieldsNames[i])) {
var fieldTitle = ;//как получить сроку "Ответственный" по строке "Owner" или "OwnerId"?
emailBody += fieldTitle + ": " + CurrentEntity.GetColumnDisplayValue() + "
";//Записываем в тело письма
}
}
string[] arFieldsNames = ;//как получить в массив строк полей по сущности?
string[] arFieldsTitles = ;//как получить массив заголовков полей либо ниже, как по названию поля, получить его заголовок?
var emailBody = "Измененные значения:
";//тело для письма
for(var i=0;iarFieldsNames.Length;i++) {
//Сравниваем старое и новое значение
if (CurrentEntity.GetColumnOldValue(arFieldsNames[i]) != CurrentEntity.GetColumnValue(arFieldsNames[i])) {
var fieldTitle = ;//как получить сроку "Ответственный" по строке "Owner" или "OwnerId"?
emailBody += fieldTitle + ": " + CurrentEntity.GetColumnDisplayValue() + "
";//Записываем в тело письма
}
}
Грубо говоря хотелось бы получить такое
Измененные значения:
Ответственный: Пользователь2
Состояние: В работе
Можно конечно тупо в массивы забить названия и заголовки полей Активности, но вдруг это понадобится для Документов, Продаж и т.д. Постоянно вбивать как-то не очень хочется, а хочется универсальности.
Нравится
3 комментария
21 ноября 2013 16:19
Здравствуйте!
Доступ к колонкам можно получить так:
var columns = this.Entity.Schema.Columns; //коллекция колонок //затем можно их перебрать foreach (var column in columns) { //своя логика //column.Caption - подпись колонки, например }
Если делать в БП, то можно получить схему из элемента "Чтение данных" так:
var schema = ReadDataUserTask1.ResultEntity.Schema;
Показать все комментарии
Войдите или зарегистрируйтесь, что бы комментировать