Comindware - немного практики выгрузки данных
Дмитрий Гучков |
12 октября 2022
6784

Comindware - немного практики выгрузки данных

Comindware – программный продукт, предназначенный для автоматизации управления бизнес-процессами (BPM - платформа). Бизнес-процессы, построенные в Comindware, легко и просто масштабируются без каких-либо ограничений. Являясь универсальным инструментом, обеспечивает автоматизацию, управление и оптимизацию бизнес-процессов любого уровня сложности.

Вместе с простым и безграничным масштабированием бизнес-процессов, так же возрастает единовременное хранение и потребность переноса в бумажный, или же электронный, вариант большого количества данных. Для подобных целей в Comindware есть довольна простая и понятная интеграция с Aspose. В данной статье пойдет речь как раз про возможности, получаемые благодаря данной интеграции – это построение различных видов и типов отчетов и документов.

Мало отраслей способны прожить без ведения отчетности. При всем этом, увеличение полезного числа данных на производствах, повлекает за собой необходимость создания подобных отчетов в более ускоренном формате и увеличенным в числе – что в переводе на человеческие возможности становиться проблематичным для реализации. Закончив ряд таких проектов, собранных из разных отраслей, можно с уверенностью сказать, что – предоставляемые возможности в создании отчетов, платформой Comindware, довольно универсальны и подойдут для большого числа компаний, а сопутствующие знания языка C# и вовсе могут убрать преграду сомнения о невозможности построения требуемой модели отчетности. И так, перейдем непосредственно к приложению.

В приложении есть возможность создавать отчеты для выгрузки данных. Отчетные документы могут быть сформированы как простыми выгрузками, заранее созданные в приложении, так и разработанные программистами на языке C#, с необходимой структурой документа и возможными вычислениями.

Условно, отчеты в Comindware можно разделить на 3 вида:

  1. Заранее подготовленный разработчиками системы – экспорт списка
  2. Простые подготовленные шаблоны – экспорт записи с подготовленным шаблоном
  3. Разработанные C# выгрузки – C# код с подготовленным шаблоном
Детальнее про №1 - экспорт списка

Самый простой вариант создания отчета по имеющимся данным – это выгрузка табличного представления списка Comindware, при этом все проведенные операции со списком (фильтрация, сортировка, группировка) попадают в конечный вариант отчета:
n1.png

 Данный способ не требует от пользователя дополнительных действий в сборке необходимых данных или же в формировании шаблона выгружаемого отчета. Для использования такой выгрузки достаточно создать новую операцию «Экспорт списка» для списка, который необходимо выгрузить в excel:
n2.png

Детальнее про №2 - экспорт записи с подготовленным шаблоном

Для выгрузки единичных записей можно воспользоваться операцией «Экспорт записи» с заранее подготовленным шаблоном. Данный вид выгрузки отличается от предыдущего только требованием от пользователя небольшого формирования шаблона выгружаемых данных. В данном способе можно задать порядок отображения данных в результирующем документе, а также предустанавливать необходимый формат и стиль документа, заранее наполняя его общей информацией.

Данный вариант подойдет при необходимости формирования промежуточной документации – такими документами могут быть:

  • Бланки отчетности
  • Договоры
  • Заявки
  • Кадровые документы
  • и т.п.

Могут подойти любые типы документов, одинаковые по наполнению, но отличающиеся конечным объектом.

При этом, сложности в создании подобных отчетов не должно возникнуть, так как единственным конфигурированием является указания конкретных атрибутов для выгружаемых полей. Все атрибуты записи выносятся в фигурные скобки с указанием системного имени «{test}», а для получения дочерних атрибутов для типа «запись» достаточно указывать их последовательно как в C# классе, например «{person_entity_obj.fio}»:
 n3.png

Для более сложного типа атрибутов, такого как «коллекция», может использоваться конструкция «{foreach:…}{…}{end:…}». Единственным условием использования данной конструкции является наличие ее в таблице, т.е. если сформировать данный блок за рамками таблицы, то он никак не будет работать.

Разберем ее на конкретном примере: «{foreach: instances_collection_target} {instance_target} {end:instances_collection_target}». Операторы «foreach» «end» отвечают за работу всей конструкции и являются началом и окончанием отображения данных. Элемент instances_collection_target – это системное название атрибута коллекции, из которой будут отображаться данные, а instance_target – системное имя атрибута для записи из коллекции.

В результате выполнения операции «Экспорт записи» получается заполненный шаблон, с имеющимися данными для экспортируемой записи:
n4.png

Детальнее про №3 - C# код с подготовленным шаблоном

Отчеты, разработанные на языке C#, являются самыми сложными в системе, так как требуют от пользователя знаний языка C#, внутренних методов платформы и структуру API приложения, но и самым универсальным и гибким.

К такими документам могут относиться:

  • Проектные документы
  • Бухгалтерская отчетность
  • Итоговые сводные ведомости

При этом сам шаблон документа может быть заполнен только макетом данных или и вовсе быть не заполненным, так как весь процесс заполнения данных будет происходить на этапе написания скрипта.

 Заранее, для выгружаемого документа\отчета, формируется объект (C# класс), который будет наполняться необходимыми данным в процессе их обработки.


//Модель данных
public class MainModelData
{
    public string Fio { get; set; }

    public string Company { get; set; }

    public string CompanyData { get; set; }

    public string StartDate { get; set; }

    public List ListPersonalData { get; set; }
    public List ListTarget { get; set; }
    public List ListMethod { get; set; }
}

public class ItemData
{

    public string Data { get; set; }
}
Все поля из класса записываются в виде конструкции “<<[Название_Поля]>>”, а ранее разобранная конструкция отображения коллекций «foreach» схожа с предыдущей по структуре, но уже может использоваться в любом необходимом месте. Операторами <<foreach…>> и <</foreach>> объявляется начало и конец всей конструкции. При инициировании массива в квадратных скобках «…[in ListTarget]…» указывается поле с типом «List», а все дочерние данные отображаются по стандартной конструкции “<<[Название_Поля_В_Списке]>>”:

n5.png

Подводя итоги, можно с уверенностью сказать, что применение инструмента «Экспорт данных» с любыми комбинациями функционала, позволит выгружать любые данные в любых формах, решая все задачи компании.

Возврат к списку


Комментировать