Skip Navigation LinksПрограмування > Програмування в FossLook

Програмування в FossLook


Припустимо, ви створили свою бібліотеку документів і новий тип документа в ній, все працює і тут у вас виникає питання: «А чи можна додати будь-яку логіку?». І в цьому питанні нам допоможе програмування. Нижче ми розглянемо типові приклади, які допоможуть вам отримати уявлення про можливості платформи FossLook і розробки для автоматизації власних     бізнес-процесів на підприємстві.

Для того щоб зрозуміти матеріал, викладений в цій статті, скачайте два файли:

Файл «Моя бібліотека.zip» не потрібно розпаковувати, просто виберіть пункт "Імпорт" в розділі "Бібліотеки документів" програми адміністрування

Імпорт бібліотеки документів до бази даних платформи автоматизації підприємства FossLook

і вкажіть до нього шлях

Майстер імпорту бібліотек документів СЕД платформи FossLook

Після виконання процесу імпорту ви повинні перезапустити програму адміністрування. З'явиться нова бібліотека. В гілці «Папки» створіть папку з будь-яким ім'ям, в ній ми будемо створювати наші документи для налагодження. Результат, який повинен у вас вийти, на малюнку нижче

Набір бібліотек документів в адмініструванні системи колективної роботи FossLook

Для того щоб переконатися що все працює, створіть тестовий документ в ній.

Картка електронного документа на платформі FossLook

Анатомія документів (структура даних)

Всі сутності в системі можуть зберігати різні властивості в собі. Наприклад, папка зберігає в собі ім'я і набір посилань на збережені в ній документи, у співробітника є ім'я, логін, а ваш документ буде зберігати в собі ті дані, які ви вибрали, створюючи поля в ньому.

Як дізнатися, які властивості зберігає в собі даний об'єкт?

Припустимо, у нас є створений документ, відкриємо його з-під адміністрування, і подивимося на вкладку «Об'єкт» (вона недоступна звичайним користувачам, але корисна для адміністрування і розробки)

Властивості електронного документа платформи автоматизації бізнес-процесів FossLook

Як ми бачимо, тут видно наші властивості. Зверніть увагу на опцію «Show tags» - з її допомогою можна включати відображення тегів полів, які нам потрібні пізніше.

Типізація об'єктів

Всі об'єкти мають свою типізацію, і визначаються вони властивістю «Категорія». В окремому випадку це може бути «Тип документа».

Де побачити: на вкладці об'єкт ви можете побачити властивість «Категорія», де знаходиться посилання на категорію, яка описує об'єкт. Ви завжди можете знайти категорію своїх документів в тій бібліотеці, де вони були створені - в гілці «Типи документів»

Тип документа FossLook і його поля

Як бачимо, в категорії знаходяться поля, які описують дані для нашого документа. Одна категорія може успадковуватися від іншої (через «Батьківські категорії»).

Структура категорії

Категорія має псевдонім та унікальне ім'я.

Відображуване ім'я - видно користувачам, тому воно зазвичай називається смисловим ім'ям, наприклад, «Вхідний лист», «Співробітник», «Папка».

Унікальне ім'я - для технічних цілей, воно може бути як російською так і на англ.мові, наприклад «Моя бібліотека.Документ.x56757654». Саме унікальне ім'я ми і бачили в гілці «Типи документів» і на вкладці «Об'єкт» нашого документа.

Категорія включає в себе:

  • поля (атрибути) - описують окремі поля, які можуть бути в об'єкті;
  • батьківські категорії - описують «успадкування» даної категорії від інших, аналогічно як виконано успадкування в програмуванні - об'єкт отримує поля від базових категорій;
  • скрипти - для розширення функціональності, фактично це класи на C#;
  • шаблони - стосовно типу документа це друковані форми, які може використовувати користувач

Поля в категорії

Поле (або атрибут) в категорії описує властивість, яка може зберігати в собі об'єкт даної категорії. Якщо ми подивимося на вкладку «Об'єкт» поля «Зміст» в нашому документі, то побачимо

Властивості поля в типі документа платформи FossLook

Як бачимо, поле саме по собі також складається з безлічі налаштувань, але з точки зору програмного доступу нам цікаві дві властивості: «Ідентифікатор властивості» і «Тип властивості». Разом вони формують так званий «тег поля» - старша частина це ідентифікатор, а молодша описує тип поля. В нашому випадку тег 0x8074001E.

Клас C# для програмування картки

Якщо ви подивитеся в гілку «Скрипти» нашого типу документа, то побачите об'єкт «Default form script» і два файлу вихідних кодів в ньому.

Вихідні коди класів на C # для програмування картки СЕД платформи FossLook

Вихідні файли - мовою C#, і в них перебуває реалізація за замовчуванням. Якщо ми хочемо додати функціонал на картку документа, то нам потрібно буде розширити і доопрацювати файл Form.cs - саме в ньому основний вихідний код. Файл FormInfo.cs є фабрикою класу і містить в собі «зв'язок» з тим типом документа (категорією) для якої він має бути використаний.

Можливості клієнтської частини з точки зору програмування досить високі - ви зможете додати нові команди на панель інструментів, автоматично заповнювати поля на картці, регулювати коректність введення даних і т.п.

Проект Visual Studio 2010 для розробки

Ви можете використовувати тестовий проект для власних розробок. Передбачається що на машині, де ви будете його використовувати, встановлений клієнт FossLook (збірки підключені безпосередньо на нього). Ви також можете використовувати клієнт FossDoc (зі складу «Документообіг», просто скоректуйте шляху до зборок).

Тестовий СОЛЮШЕН FossDocTest.sln містить один проект-збірку, до якої включено два файла - Form.cs і FormInfo.cs. Сама збірка нам потрібна для зручності розробки, але результат компіляції (як dll) нам не потрібен - замість цього ви повинні використовувати два файла-исходника Form.cs і FormInfo.cs, які ми будемо поміщати на сервер в об'єкт DefaultFormScript.

При роботі клієнтської частини вихідні коди автоматично завантажуються з сервера і компілюються на льоту на стороні клієнта.

Працювати з об'єктом зручніше через вкладку «Вкладені файли», як показано на малюнку нижче

Вкладка вкладені файли і файли вихідного коду C# для картки FossLook

Налагодження

Для налагодження вам буде потрібно включити властивість «Налагоджувальний режим» (на вкладці Об'єкт у DefaultFormScript), і ви зможете виконати «Attach» отладчиком студії прямо до клієнта

Налаштування отладочного режиму для картки FossLook

Програмуємо автоматичне заповнення полів

Типовий завданням є проблема автоматичного заповнення полів. Наприклад, часто буває потрібно відразу встановити поле «Термін виконання» в задану дату, або задати поле «Хто готував» в поточного користувача, який створює даний документ. У вихідному коді проекту вже знаходиться файл Form.cs, який автоматично заповнює поля і додає кнопку на панель інструментів. Код забезпечений коментарями, і буде корисний для вивчення, щоб ви змогли по аналогії вирішувати подібні завдання. Через пункт меню «View Code» ви можете переглянути вихідний код класу картки, і підправити його під свої завдання.

Visual Studio і вихідні коди класів картки СЕД платформи FossLook

Як ви побачите, всі дії при роботі з полями зводяться до викликів властивості Fields, звертаючись по тегу

C# програма для роботи з карткою документа FossLook Фрагмент вихідного коду C# для роботи з полями картки документа FossLook

Змінна _TagText в прикладі несе тег поля, і ви повинні завжди вказувати правильно теги своїх полів, так як при створенні нових полів теги у них будуть інші. Побачити тег можна на вкладці «Об'єкт» у поля.

Складнішим випадком є ​​установка значень довідкового поля. Тут важливо розуміти, що в значенні довідкового поля знаходиться не текстове ім'я, а ідентифікатор об'єкта довідкової записи.

Результат роботи

У підсумку вам потрібно замінити в об'єкті «Default form script» файл Form.cs на новий файл з проекту-прикладу, щоб ваші зміни вступили в силу.

Заміна файлів Form.cs пов'язаних з типом документа FossLook

Перезапустивши клієнт (або адміністрування), побачите нову кнопку «Моя тест кнопка» на панелі інструментів:

Результат програмування картки FossLook на C#

При натисканні на неї буде видане повідомлення, і заповнені поля. Ви можете робити заповнення полів і не після натискання на кнопку, а автоматично - в цьому випадку функції заповнення полів потрібно викликати з методу ActivateRoutine().

© 2001-2017 ФОСС-Он-Лайн. Всі права захищені.