Автор Анна Евкова
Преподаватель который помогает студентам и школьникам в учёбе.

Разработка регламента выполнения процесса "Управление документооборотом" (Описание предметной области. Постановка задачи)

Содержание:

Введение

Сейчас с непрерывным развитием экономики и новых отраслей ростом экономики и развитием все новых отраслей, крайне значимых для различного рода организаций является присутствие в собственной области функционирования некоторого конкурентного преимущества. В такой ситуации способность компании трансформировать информацию и знания в нематериальный актив представляет собой ключевое услове ее эффективной деятельности на конкурентном рынке. В основном подобного рода преимущества достигают организации, применяющие в своей деятельности информационные технологии, и, соответственно, управлении бизнес-процессами предприятия.

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

В тех организациях, где существует массивный поток пользовательских обращений, львиная доля времени уходит на обработку документов. Как следствие, возникают простои в деятельности организации, нарастает недовольствие пользователей, они обращаются с этими недовольствами к начальству. В связи с этим актуальным является вопрос реализации управления документооборотом в организации.

Служба сопровождения автоматизированной системы управленческого документооборота в «АйДи – Технологии управления» осуществляет устранение технических неисправностей, проводит техническую поддержку пользователей.

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

Цель курсовой работы – разработать регламент выполнения процесса «Управление документооборотом» для предприятия.

Для достижения поставленной цели необходимо выполнить следующие задачи:

  • дать характеристику предметной области;
  • выбрать задачи для автоматизации;
  • описать бизнес-процессы;
  • выбрать информационное и программное обеспечение.

Предметом исследования курсовой работы является автоматизация процесса управления документооборотом на предприятии.

Объектом исследования курсовой работы является компания «АйДи - Технологии управления».

Структура курсовой работы состоит из введения, двух разделов, заключения и списка использованных источников.

Глава 1. Аналитическая часть

1.1 Описание предметной области. Постановка задачи

ООО «АйДи – Технологии управления» ведет свою деятельность на отечественном ИТ-рынке с 2010 года. ООО «АйДи – Технологии управления» – это системный интегратор и разработчик программных решений в сфере ИТ, специализирующийся на реализации комплексных проектов интеграции современных информационных систем управления, на их сопровождении и совершенствовании.

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

Генеральный директор ООО «АйДи – Технологии управления» - Кущиенко В.П.

Решения компании базируются на прогрессивных программных продуктах от лидеров зарубежного и отечественного ИТ-рынка в сфере управления документооборотом, управления ресурсами организации, управления активами, бизнес-аналитики и внедрения бизнес-приложений – SAP, OpenText (Documentum), 1C, Abbyy, Qlik, ClickSoftware. Помимо всего прочего, ООО «АйДи – Технологии управления» предлагает осуществлять автоматизацию бизнес-процессов на базе свободного ПО.

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

Архитектура ИС ООО «АйДи – Технологии управления» является комплексом серверов, свитчей и маршрутизаторов. Главным брандмауэром в системе является CheckPoint NGX R65, он фильтрует трафик и анализирует контент, вместе с тем он реализует функции инициализации и адаптации VPN-туннелей с дистанционными подразделениями, другими компаниями и пользователями. Соединение удаленных подразделений с центральным осуществляется благодаря услугам интернет-провайдера с помощью VPN-соединения.

Программная архитектура организации изображена на рисунке 1.1. На всех рабочих местах сотрудников имеется ОС MS Windows 10, также применяется MS Office 2016 (основная), защиту ПК от вирусов реализует Symantec, в роли корпоративной почты применяется система Exchange Server 2016 от Microsoft. Наряду с этим, в компании применяются две ИС по направлению ключевой деятельности предприятия.

Бухгалтерия и отдел кадров для отображения и изменения данных по персоналу, а также расчета зарплаты пользуется программой «1С. Бухгалтерия 3.0». Эта версия программы дает возможность применять распределенную по нескольким серверам общую базу и синхронизировать её функционирование с установленной частотой. Помимо всего прочего, такая версия поддерживает тонкий клиент, т.н. web-интерфейс.

1.2. Моделирование бизнес-процесса «Как есть»

Рассмотрим текущую модель «AS-IS», имеющую место быть в процессе функционирования ООО «АйДи – Технологии управления». В качестве примера возьмем процесс управления документооборотом в отделе приема заказов.

Модель «AS-IS» дает возможность систематизировать происходящие в определенный промежуток времени процессы, а также применяемые информационные объекты [15, c. 15]. Учитывая это, выделяются так называемые «узкие места» в компании и сочетании бизнес-процессов, устанавливается необходимость каких-либо изменений в наличествующей структуре.

Рисунок 1.1 - Детализация архитектуры сетей ООО «АйДи – Технологии управления»

Рисунок 1.2 - Программная архитектура ООО «АйДи – Технологии управления»

Построим контекстную диаграмму. В данной ситуации она является общим описанием системы (рис. 1.3).

Рисунок 1.3 – Контекстная диаграмма отдела приема заказов

На рисунке 1.4 изображена декомпозиция модели блока «Работа отдела».

Рисунок 1.4 – Диаграмма декомпозиции блока «Работа отдела приема заказов»

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

Блок «Проверка документов», где происходит процесс анализа и оценки, декомпозирован в DFD-диаграмму для отображения ключевых информационных потоков (рис. 1.5).

Рисунок 1.5 – DFD-модель блока «Проверка документов отдела приема заказов»

По подтвержденным документам осуществляется анализ и оценка того или иного клиента, документы приходят по трем веткам в одинаковый промежуток времени. Также работа с документацией включает проверку накладных от поставщиков, а также сопоставление цены на услуги ООО «АйДи – Технологии управления» с ценами на конкурентном рынке.

Блок «Формулирование эффективных условий деятельности» декомпозирован в IDEF3-диаграмму (рис. 1.6). В данном случае выделяется две стадии: определение маржи и составление схемы оплаты.

Рисунок 1.6 – Формулирование эффективных условий деятельности отдела приема заказов

Блок «Оформление договоров» декомпозирован в IDEF3-диаграмму (рис. 1.7). Выделяется 2 этапа: подготовка договоров и выдача договора клиенту.

Рисунок 1.7 – Оформление договоров в отделе приема заказов

Теперь проанализируем «узкие места» в ООО «АйДи – Технологии управления».

Существует аксиома, что в каждой программе присутствуют ошибки. Это может случиться и в работе ООО «АйДи – Технологии управления».

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

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

Технологический цикл устанавливает минимально необходимый перечень процессов, осуществляющихся при взаимодействии с пользователем или заказчиком ООО «АйДти – Технологии управления». Такой цикл нужен для оказания качественной услуги. Цикл клиентского сервиса – это цикличный замкнутый процесс, превращающий цель (удовлетворение клиента) в некий результат (товар или услугу).

Процесс документооборота в ООО «АйДи – Технологии управления» включает несколько стадий. Рассмотрим их более подробно.

- прием заявки на заказ от клиента менеджером. В данном случае клиент говорит о своих предпочтениях, о том, что он видит в роли результата. Здесь говорится о стоимости, на которую рассчитывает клиент, а также то, насколько срочно нужна услуга;

- выдача сведений об услуге менеджером клиенту. Менеджер дает все нужные данные об услуге. Старается также помочь клиенту, предоставить различные альтернативные варианты;

- составление договора. Клиент предоставляет свои данные. Менеджер оставляет один договор с подписью клиента у себя, второй экземпляр подкрепляет печатью и подписью, а затем отдает клиенту. В договоре приведены соответствующие условия оказания услуги;

- оплата услуги. Клиент платит наличными или безналичными деньгами, менеджер отдает ему накладную;

- контроль реализации. Менеджер проверяет полноту предоставления услуг и делает необходимые корректировки.

ООО «АйДи – Технологии управления» в связи со спецификой своей деятельности использует клиентоориентированную модель управления взаимоотношениями с клиентами: повышает лояльность старых клиентов и привлекает новых.

ООО «АйДи – Технологии управления» имеет клиентскую базу данных, основанную на учете всех клиентов компании и необходимых данных по ним.

Процесс документооборота в ходе исполнения заказа состоит из следующих компонентов:

  1. Прием заказа (встреча с клиентом, определение его потребностей). Здесь с клиентом ведет деятельность менеджер, устанавливающий требования к заказу [30, c.12]. Сведения о его заказе в лучшем случае фиксируются в установленной программе, иначе просто пишутся в блокнот. На базе таких сведений менеджер начинает оформлять документы. Анкетные сведения не приводятся.
  2. Оформление договора. Договор оформляется на базе созданного шаблона в текстовом редакторе, где фиксируются ФИО, адрес, телефон и вид услуг.
  3. Исполнение заказа клиента. Менеджер, принявший заказ, информирует отдел разработок о заказе. После разработки соответствующего продукта или услуги менеджер оповещает клиента о том, что можно осуществить его интеграцию, о том, что услуга или продукт готовы к эксплуатации.

При следующей клиентской заявке весь алгоритм снова повторяет цикл, что превращается постепенно в рутинные, но необходимые действия.

При установке автоматизированной системы управления документооборотом (АСУД) общая диаграмма декомпозиции значительно облегчается. Кроме очевидных достоинств АСУД, с ее помощью можно также оформлять документацию различного рода. Также, теперь не нужны такие составляющие, как «Заказ материала» и ресурс «Директор», поскольку АСУД дает возможность заранее исследовать необходимые потребности компании в товаре [31].

Внедрение АСУД в ООО «АйДи – Технологии управления» поможет решить данные проблемы. «Бумажная проблема» устраняется при помощи легко настраиваемой панели работы с клиентами. Данные о клиенте, а также все созданные сделки, отображаются на главной панели автоматизированной системы, что дает возможность вносить все сведения сразу в виде электронной формы.

АСУД нужна также для выполнения задач, направленных на увеличение эффективности бизнес-процессов. Система помогает, прежде всего, оптимизировать скорость работы с клиентами, скорость обработки их заявок [17, c.34]. В итоге это делает отношения ООО «АйДи – Технологии управления» и клиента более доверительными и качественными, которые могут принять стабильный характер.

Проблема дублирования информации также решается с помощью АСУД. Как только происходит дублирование данных, система автоматически видит совпадения текущей записи в какой-либо формой из прошлых записей, и сразу же выдает сообщение о том, что сделки необходимо объединить или же удалить данные об одной из них и оставить актуальную. Тем самым, пользователь понимает, что в случае такого сообщения происходит дублирование информации и, следовательно, выполняет какую-либо из возможных операций – объединение или удаление сделки или простой формы записи [36, c.67].

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

Весь процесс формирования, обработки и исполнения заказа клиента и прочей документации показан в схеме документооборота, изображенной на рисунке 1.8. Под первичной неисправностью или запросом понимается заказ и потребность покупателя в каком-либо товаре или услуге.

Рисунок 1.8 - Документооборот обработки заявки клиента ООО «АйДи – Технологии управления»

При имеющейся реализации обмена сведениями между сотрудниками и отделом сервиса уже применяется вычислительная техника.

Необходимые технические средства в процессе обработки заявок, изображенных на рис. 1.8, отражены в таблице 1.1.

Таблица 1.1

Технические средства, применяемые на стадиях обработки заявки

Этап №

Программные и технические средства

A1

Компьютер пользователя, почтовый клиент

A2, А3,А4

Сервер приложений, БД, ПО системы SD, почтовый сервер

A5

Компьютер инженера или администратора

A6

Компьютер администратора, ПО системы SD

Отразим соотношение текущих показателей затрат на реализацию анализа и исполнения заявки (таблица 1.2).

Таблица 1.2

Соотношение показателей затрат на анализ и исполнение заявки

Показатели

Имеется

Планируется

Число потерянных заявок за месяц

5-7 шт

0 шт

Число обрабатываемых заявок ночью

3-5 шт

20-30 шт

Время реакции на какую-либо претензию от клиента

1-20 мин

1-3 мин

Отношение числа обработанных заказов ежедневно в ручную к автоматически обработанным

500\0 шт

500\350 шт

При ручной обработке заявки она фиксируется и назначается ответственному лицу по устной договоренности администраторами.

Глава 2. Проектная часть

2.1. Предлагаемые мероприятия по улучшению бизнес-процесса

Установим стратегические и функциональные характеристики ИС.

Интегрированная ИС автоматизации системы управления документооборотом должна иметь хорошую масштабируемость и высокую надежность хранения информации. Помимо прочего, система должна обладать адаптивностью с программной средой объекта внедрения. После установки, такая ИС должна иметь опцию гибкой доработки, поскольку, вероятно, нужна будет последующая доработка ИС ИТ-отделом. В системе не должны быть встроены различные ненужные функции. Ключевыми функциями системы должны являться: работа как web-приложение, удобный интерфейс пользователя, функциональный интерфейс администратора и опция формирования разнообразных отчетов и обработки документов [18, c.77].

При осуществлении проекта выделяются следующие стадии:

  1. Анализ текущих процессов учёта работы ИТ-отдела фирмы. Состоит в анализ таких показателей, как: число нереализованных заказов, число реализованных заказов в день по сотруднику, среднее время реализации заказа.
  2. Установление полного комплекса функционала, который нужно автоматизировать. Установление факта того, что выполнено в системе уже сейчас и тех функций, которые будут выполняться в ходе установки ИС.
  3. Определение стратегии автоматизации. Анализ текущих типов стратегий автоматизации и определение наилучшей.
  4. Разработка технического задания и графика проведения работ.

Есть 4 варианта стратегии автоматизации: кусочная (хаотичная) автоматизация, автоматизация по зонам, по направлениям и комплексная автоматизация [30, c.55].

Стратегия автоматизации по участкам наиболее целесообразна, поскольку автоматизируются работы отделов, где используется процесс документооборота. Автоматизировав данный процеcс, можно будет сократить штат, не снижая эффективность его работы.

Информационное обеспечение (ИО) состоит из:

- системы классификации и кодирования;

- системы унифицированной документации, применяемой в ИО;

- информационной базы.

Классификатор - это систематизированный свод наименований группировок объектов, признаков и их кодовых обозначений [6, c.39]. Классификаторы являются средством описания сведений, аргументируют единство классификации и кодирования данных и необходимы для выполнения машинного анализа данных в удобной форме пользователям при выполнении разнообразных задач. Исходя из области применения, классификаторы делятся на 3 группы:

- общегосударственные;

- отраслевые;

- локальные [2, c.78].

В данной курсовой работе будет применяться лишь локальный классификатор, поскольку в иных классификаторах нет необходимости. Заказы будут делиться по приоритету, по компании и по зоне ИТ, к которой относится тот или иной заказ.

Весомую часть внемашинного ИО представляет документация. При автоматизации важная роль отводится унификации документации, определяющей общие требования к содержанию и построению документов. Унифицированные формы документов создаются как для всех компаний страны (например, формы бухгалтерской отчетности), так и для определенных фирм (например, формы управленческой отчетности). Унификация состоит в подробном анализе и четком установлении необходимой номенклатуры документов. В данном случае устанавливаются области применения документов и определяются специфические особенности, свойственные соответствующим видам документов, которые бывают унифицированными и локальными.

В данной работе применяются локальные документы: «Заявка на закупку», «Заявка на регистрацию пользователя и доступ к программным ресурсам», «Заявка на устранение неполадок», «Заявка на доступ к сетевым ресурсам». Информационные файлы разрабатываются на базе исходных данных, имеющихся в названных первичных документах - ключевых носителях первичной экономической информации в системах ее машинной обработки [7, c.98]. Помимо всего прочего есть следующие требования, которые к ним устанавливаются:

- необходимая полнота сведений для выполнения задачи;

- исключение избыточных данных;

- достоверность и актуальность данных;

- согласованность форм первичных документов с макета размещения данных на машинном носителе;

- логичность создания документа.

В данной работе оптимальной организацией ИБ является интегрированная, поскольку размер БД будет постоянно наращиваться. И оптимальным выбором будет применение СУБД вместо файлового хранения БД.

Есть 3 модели логической структуры БД (по способу определения связей между данными): иерархическая, сетевая и реляционная.

Достоинства применения реляционных БД следующие:

- простота – есть только одна информационная конструкция, формализующая табличное отображение информации, привычное для пользователей;

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

- независимость данных – когда нужно изменить структуру БД, то это ведет к минимальным изменениям в программе [33, c.15].

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

Исходные данные для выполнения установленной задачи получают из таких документов, как:

- e-mail от работника ООО «АйДи – Технологии управления» с описанием проблемы на неформальном языке в ИТ-области;

- регламент работы службы поддержки;

- ежедневное письмо о нахождении работников ИТ-отдела по всем направлениям;

- письма, определяющие изменения ответственных лиц по установленным инцидентам и новым направлениям [6, c.55].

Результаты выполнения задачи видны в таких отчетах и документах, как:

- отчет по согласованным заказам;

- отчет заказов по местоположению клиента;

- отчет о логике назначения клиента.

Для выполнения определенной задачи применяются такие классификаторы объектов, как города, регионы, улица, код описания проблемы. В таблице 2.1 представлено описание применяемых классификаторов.

Таблица 2.1

Описание применяемых классификаторов

Наименование кодируемого множества объектов

Значимость кода

Система кодирования

Система классифи-кации

Вид классифи-катора

Регион

4

Порядковая

Нет

Локальный

Город

4

Порядковая

Нет

Локальный

Улица

4

Порядковая

Нет

Локальный

Код описания неисправности

4

Порядковая

Нет

Локальный

Программное обеспечение (ПО) - комплекс программ системы обработки информации и программных документов, нужных для работы таких программ. ПО необходимо для придания ИС некоторых свойств, связанных с ростом производительности, достоверности получаемых результатов, надежности работы системы, оптимизации работы пользователя [18, c.35].

Критериями выбора ПО, присутствующего на ПК пользователей, является максимальное сокращение времени описания проблемы пользователей и отправки ее по e-mail. В разрезе корпоративного стандарта в ООО «АйДи – Технологии управления» применяется MS Outlook 2016. Для работы данной программы на ПК нужно установить ОС, которая поддерживает работу такого приложения. Ввиду корпоративного стандарта используется версия ОС MS Windows 10, поскольку это версия ОС, способная функционировать в доменной инфраструктуре. Учитывая все вышесказанное, Windows 10 будет применяться в роли пользовательской ОС. Итог: на рабочих станциях пользователей нужно установить такие программные продукты, как:

- ОС Windows 10;

- почтовый клиент MS Outlook 2016.

Программа-служба (сервис) по обработке e-mail – это программа, созданная на скриптовом языке Python, постоянно анализирующая общий почтовый ящик ИТ-отдела и обрабатывающая входящие письма, формирующая и изменяющая заказы в БД, при этом распределяя их между свободными менеджерами, или ставящая их на поток [31, c.189]. Учитывая ограниченный бюджет и наличие опыта написания скриптов, у администратора ИС, был выбран скриптовый язык Python.

Критериями выбора архитектуры реализации проектируемого программного комплекса являются:

- совместимость с текущей инфраструктурой серверов;

- опция создания резервных копий сведений и просмотра статистика по обработанным заказам.

При определении ОС под это решение был определен MS Windows Server 2016, поскольку такой вид серверных ОС не очень требователен к ресурсам, а также давно применяется в инфраструктуре ООО «АйДи – Технологии управления».

Для серверной части нужно определить СУБД. В таблице 2.2 отображены ключевые современные СУБД.

Таблица 2.2

Варианты СУБД систем

Название СУБД

Характеристики

Microsoft SQL Server

InterBase

Oracle 11.2.0.1

Интегированная аутентификация пользователей

+

+

-

Мониторинг работы БД

+

+

+

Возможность создания временные таблицы

+

+

+

Ведение журнала действий с БД и подключение

+

+

+

СУБД для программы будет являться Oracle 11. Данный выбор сделан не просто так, главная ИС учёта заявок HP OpenView Service Desk строится как раз на этой БД.

Покупать новый сервер не нужно, поскольку БД программного продукта может находиться на уже существующем сервере «SD». При создании нового сервера фирмы заложила примерно половину мощности закупаемого сервера на дальнейшую масштабируемость ИС, но загруженность сервера увеличилась только на 15%, тогда как БД за 3 года непрерывно наращивалась [18, c.77].

В разрезе текущей БД в ней будут образованы дополнительные таблицы, а также установятся между ними связи. Добавленные таблицы не будут иметь прямой связи с ключевыми функциональными таблицами БД, ввиду чего на будут каким-либо образом воздействовать на работу главного функционала ИС HP OpenView ServiceDesk.

Сравним ключевые методы и средства проектирования (таблица 2.3).

Таблица 2.3

Основные средства проектирования

Название

Характеристики

Microsoft Visual C++ (MSVC)

Delphi 2010

Python

Совместимость с ОС Windows 2016

+

+

+

Интегрированный редактор интерфейса

+

+

+

Совместимость с другими языками программирования

+

-

+

Написание программы сервиса, обрабатывающего e-mail, будет реализовано на языке Python. Этот выбор сделан неспроста. Прежде всего, администратор ИС «HP OpenView ServiceDesk» может писать программы на данном языке. Также, Python просто в освоении и среди новичков пользуется популярностью [8, c.11]. Стоимость проектирования ПО на данном языке намного меньше, чем на основе Borland C++ или Microsoft Visual C++. Вместе с тем, Python интенсивно прогрессирует, обладает открытой архитектурой и легко дает возможность создать графический интерфейс в форме HTML-странички (web-интерфейс).

Обеспечение техническое (ТО) - комплекс технических средств, ПК, средств передачи данных, применяемых в АСУТП и ИС [1, c.49].

Для работы программы (службы) по обработке заказов в разрезе дорабатываемой ИС HP OpenView ServiceDesk необходимы такие компоненты ТО, как:

- ПК-сервер – это ключевая ЭВМ, на которой уже создается сама БД в СУБД, а также этот сервер будет являться сервером БД. Здесь также будет расположен служба, которая и будет автоматически фиксировать и обрабатывать заказы;

- почтовый сервер – сервер корпоративной почты, применяется SD-системой для создания заявок и e-mail-рассылки;

- рабочая станция – это пользовательский компьютер, с помощью которого создаются заявки через отправку письма с описанием проблемы на e-mail;

- ПК менеджера – это пользовательский компьютер, где установлена программа-клиент, фиксирующая и распределяющая заказы;

- средства организации ЛВС – сюда включены активные (маршрутизатор, коммутатор, шлюз и пр.) и пассивные (компоненты ЛВС, коммутационные розетки и пр.) элементы ЛВС.

Для каждого компонента определим критерии, максимально критичные при выборе.

Основными критериями выбора сервера являются специфика выполняемых им задач, а также число автоматизированных рабочих мест, объединяющихся в сеть. Далее нужно лишь определиться с производителем.

Для СУБД-сервера в разрезе одного ПК главным критерием выбора является отказоустойчивость и пропускная способность сетевого интерфейса. Учитывая среднее число документов в день и ежеминутный опрос программы БД на присутствие нового документа в базе, а также загруженности сетевой инфраструктуры на 30% и корпоративного сервера БД на 25% закупать высокопроизводительный сервер не нужно, можно ограничиться интерфейсом в 100 Mbps [32, c.43]. Результатом анализа критериев по серверному оборудованию будет применение того же сервера, который был на предприятии ранее. В роли сервера БД применяется сервер, функционирующий на платформе HP ProLiant DL365 G5, он имеет характеристики, отраженные в таблице 2.4.

Таблица 2.4

Характеристики сервера БД

Характеристика

Значение

Процессор

Двуядерный Intel® Xeon® X5260 с тактовой частотой 3,3 Гц.

Число процессоров

2

Оперативная память

16 Гб (можно увеличить до 64 Гб)

Жесткие диски

Тип «SAS» 4 диска 147 Гб и 2 диска 73 Гб

Число жестких дисков

6 (можно увеличить до 8)

Питание

Дополнительно резервный блок питания 800 Вт с горячей заменой

Исследуем выбранную платформу более подробно:

- два процессора дают возможность, при применении SQL-сервера, эффективно распределять задачи, реализуемые на сервере;

- 16 Гб ОЗУ хватит для обработки существенных массивов данных, используемых в БД, а также дальнейшего увеличения вычислительной нагрузки, поскольку сейчас максимальный размер ОЗУ составляет 6 Гб;

- применение шести жестких дисков обосновано следующим:

- для качественной работы ОС сервера создан RAID-массив из двух жестких дисков по 73 ГБ (этого объема хватит для функционирования ОС). ОС специально находится отдельно от файлов БД ввиду безопасности и производительности;

- для эффективного размещения информации в формате SQL создан массив жестких дисков большего объема 147 Гб. Этого объема хватит для интеграции нового функционала. Сейчас объем занятого пространства составляет 53 Гб, но с тем условием, что в БД хранятся записи за три года;

- отдельно нужно хранить инфрмацию в форматах *mdf (файл БД), а также транзакции *ldf (файл транзакций), для этого нужен еще один массив такого же размера, как предыдущий;

- применение дополнительного питания увеличивает отказоустойчивость системы.

Следовательно, для ПК ключевым критерием выбора является определенный список конфигураций ПК (MB Asus P5 CPU: Core2Duo 2.9Ghz Ram:2 Gb).

Для почтового сервера критериями выбора будет отказоустойчивость и быстрая скорость функционирования подсистемы обработки данных. Для него будут применяться высоко производительные жёсткие диски WD RAPTOR и отдельный RAID-контроллер, поддерживающий исполнение массива данных Raid 10, обеспечивающий быструю скорость функционирования. Конфигурация почтового сервера, работающего на предприятии, совпадает с определенными критериями, ввиду чего оставляем то, что имеется [3, c.74]. Упрощенная его конфигурация отражена в таблице 2.5.

Таблица 2.5

Аппаратная конфигурация почтового сервера

Наименование

Тип

Форм-фактор

2U

Код

X5650

Модель

Intel® Xeon®

Число ядер

6

Число процессоров (установлено)

2

Тактовая частота

2660 МГц

Intel Smart Cache

12 Mb

Разъем (сокет)

FCLGA1366

Тип памяти

DDR3 1066 МГц

Объём одного HDD

2 Гб

Общий объём

892 Гб

Число HDD

4 шт

Интерфейс

SAS/SATA

Число сетевых адаптеров

4 шт

Скорость подключения

1 Гб/с

Тип видеокарты

Дискретная

Оптический привод

DVD±R

USB

4 шт

RJ45 (LAN)

2 шт

Monitor port (VGA)

Есть

Мощность блока питания

570 Вт

Количество блоков питания

2 шт

Возможность горячей замены

Есть

Для средств организации ЛВС критерием выбора будет тип кабеля и пропускная способность. Сейчас по анализу сетевого трафика программой Net Send загруженность сети равна 36%. Следовательно, свободная пропускная способность равна 64% от общей пропускной способности СКС. Обрабатываемые сервисом документы и ежеминутный опрос почтового сервера увеличит загруженность сети на 3-5%, что никак не скажется на ее пропускной способности и возникновении коллизий [36, c.88]. Из типа кабеля по скоростным характеристикам лучше всего взять витую пару вместо устаревшего коаксиала ввиду ограничения по максимальной пропускной способности коаксиала в 10 Mbps. При применении свитчей и коммутаторов класса CISCO сеть функционирует на скорости 100 Mbps, а на определенных участках и 1 Gbps.

2.2. Моделирование бизнес-процесса "Как должно быть"

Чтобы более наглядно увидеть схему предложенного процесса «Как должно быть» построим диаграмму дерева узлов [1].

Таблица 2.6

Описание предложенной функции процесса «Управление документооборотом»

Наименование функции

1

Репозиционирование товара на сегментах потребительского рынка

Наименование процесса

А0

Продавать продукт

Исполнитель

Наименование подразделения

1

Руководство

2

Отдел приема заказов

Наименование должности

1

Офис-менеджер

2

Менеджеры по работе с клиентами

Ф. И.О.

1. Вишнева Мария Викторовна

Ф. И.О.

2. Иванов Виктор Владимирович

Смирнов Алексей Иванович

Шилов Геннадий Максимович

Текстовое

Описание функции

Оптимизация управления документооборотом;

Оценка возможностей АСУД и требования по ее финансированию;

Идентифицирование выделенных (особенных) целевых потребителей и их потребности;

Стимулирование продаж;

Разрабатывание прогноза продаж;

Ведение переговоров об условиях поставки.

События, инициирующие выполнение функции

Наименование события

Описание события

1

Нужная информация

Менеджеры компании просматривают различную документацию, имеющую место в компании

События, завершающие выполнение функции

Наименование события

Описание события

1

Обработанная информация

Обработанная информация поступает в функцию «Отслеживание документов и их распределение»

2

Информация для реализации заказа клиента

На основе полученной информации делается прогноз, руководитель или офис-менеджер делают соответствующие выводы касательно планирования реализации заказа клиента ООО «АйДи – Технологии управления»

В качестве критериев оценки предложенной функции применяем (табл. 2.7).

Таблица 2.7

Критерии оценки предложенной функции процесса

Наименование критерия оценки

Численное значение критериев оценки

1

Среднее время выполнения функции

2 часа

2

Среднее время ожидания события, инициирующего выполнение функции (время «простоя»)

2 раб. /часа

3

Периодичность выполнения функции (ежедневно, еженедельно, ежемесячно, ежегодно)

Ежедневно

4

Трудоемкость выполнения функции в человеко-часах

8 чел. /час

5

Стоимость функции (количество человеко-часов, умноженное на почасовую ставку оплаты труда исполнителя функции

465 р.

6

Отношение среднего времени ожидания к среднему времени выполнения

1

7

Качество информационного обеспечения (бумажные документы, электронные файлы)

Различная литература, Интернет

8

Возможность автоматизировать (да/нет)

да

При применении автоматизированной системы управления документооборотом оптимизированная диаграмма декомпозиции («TO-BE» – как должно быть) приведены на рисунке 2.1.

Рисунок 2.1 – Модель «TO-BE»

Необходимо автоматизировать процесс управления документооборотом в ООО «АйДи – Технологии управления» прежде всего для того, чтобы выстроить эффективную систему работу с клиентами. Каждая сделка не должна быть потеряна, должна сопровождаться определенной задачей. Автоматизация способствует сокращению временных затрат, а также постепенному наращиванию клиентской базы [18, c.61].

ИС можно классифицировать по разнообразным признакам. По типу хранимых сведений их можно разделить на фактографические и документальные. Первые необходимы для хранения и анализа структурированных сведений в форме чисел и текстов. Наша система является фактографической ввиду того, что основой данных будут являться цифры, а конечным результатом будет определенная отчетность.

Заключение

В настоящее время процесс управления документооборотом начинает играть все более важную роль в развитии бизнеса любых направлений. Помимо всего прочего, данное обстоятельство поспособствовало возникновению разнообразных программных продуктов, упрощающих этот процесс.

В проекте исследуются все стадии внедрения доработки ИС, от аналитической разработки проекта, до внедрения проекта в компании ООО «АйДи – Технологии управления».

Проект исследует задачи управления документооборотом в ООО «АйДи – Технологии управления».

Результатом проекта является оптимизация процесса управления документооборотом благодаря верному и ориентированному выполнению задачи распределения и реализации заказов клиентов в ООО «АйДи – Технологии управления».

В проекте выполнены задачи автоматизации процесса обработки документов ООО «АйДи – Технологии управления», а именно:

- введена автоматическая регистрация заказов, которые приходят по электронной почте;

- введена автоматическая обработка заказов, пересланных после согласования по электронной почте и пр.

Список использованных источников

Нормативно-правовые акты

1. Гражданский кодекс РФ. Часть первая [Текст]: принята Федеральным законом от 30 ноября 1994 г. № 51-ФЗ (с изм. и доп.). - М.: ИНФРА-М, 2013. - 385 с.

2. Гражданский кодекс РФ. Часть вторая [Текст]: принята Федеральным законом от 26 января 1996 г. № 14-ФЗ (с изм. и доп.). - М.: ИНФРА-М, 2013. - 415 с.

Специальная литература

3. Абрютина М.С., Грачев А.В. Анализ финансово-экономической деятельности предприятия: учебно-практическое пособие / М.С. Абрютина. - 2-е изд., испр. - М.: Дело и сервис, 2014. - 256с.

4. Архипов, А.И., Сенчагов, В.К. Финансы. Денежное обращение и кредит: учебник / под ред. В.К. Сенчагова, А.И. Архипова. - М.: Проспект, 2013. - 496 с.

5. Чернышев, Ю.Г., Чернышев, Э.А. Анализ финансово-хозяйственной деятельности предприятия: учебное пособие / под ред. Чернышева Ю.Г. - М.: МарТ, 2014. - 304с.

6. Артеменко, В.Т., Белендир, М.В. Финансовый анализ: учебное пособие / под ред. Артеменко В.Т. - 2-е изд. - М.: Дело и сервис, 2017. - 190 с.

7. Баканов, М.И., Шеремет, А.Д. Теория экономического анализа: учебное пособие / под ред. Шеремета А.Д. - М.: Финансы и статистика, 2015. - 200 с.;

8. Балабанов, И.Т. Финансовый анализ и планирование хозяйствующего субъекта: учебное пособие / И.Т. Балабанов. - 2-е изд. доп. - М.: Финансы и статистика, 2014. - 208с.

9. Барановский, Н.Т. Автоматизированная обработка информации: учебник / Н.Т. Барановский. - М.: Финансы и статистика, 2014. - 94 с.

10. Бочаров, В.В. Финансовый анализ: учеб. пособие / В.В. Бочаров - СПб.: Питер, 2015. - 219с.

11. Васин, Ю.В., Лаврентьев, Л.Г., Самсонов, А.В. Эффективные программы лояльности: учебное пособие / под ред. Лаврентьева Л.Г. - М.: Альпина, 2013. - 340с.

12. Грузинов, В.П. Экономика предприятия: учебник / В.П. Грузинов - М.: Финансы и статистика, 2013. - 203с.

13. Захарьин, В.Р. Учет финансовых результатов: учебник / В.Р. Захарьин - М.: Финансы и статистика, 2014. - 139с.

14. Караваев В.С. Оцифровка архивных документов, 2014 – 243с.

15. Цуканова О. А. Методология и инструментарий моделирования бизнес-

процессов: учебное пособие – СПб.: Университет ИТМО, 2015 – 100 с.

16. Рацкий, К.А. Экономика предприятия: учебное пособие / К.А. Рацкий. - М.: Маркетинг, 2014. - 696с.

17. Рекхэм, Н. SPIN: Стратегия работ с клиентами: учебное пособие / Н. Рэкхэм. - М.: Маркетинг, 2013. - 314 с.

18. Рысев, Н.Ю. Как завоевать клиента: учебное пособие / Н.Ю. Рысев. - М.: Альпина, 2013. - 242с.

19. Снегирева, В.И. Категорийный менеджмент: учебное пособие / В.И. Снегирева. - СПб.: Питер, 2015. - 411 с.

20. Терещенко, В.М. Маркетинг: новые технологии в России: учебное пособие / В.М. Терещенко. - СПб.: Питер, 2017. - 415с.

21. Трубочкина, М. И. Управление затратами предприятия: учебное пособие / М.И. Трубочкина. - М.: ИНФРА-М, 2014 - 340с.

22. Уитмор, Дж. Новый стиль менеджмента: учебное пособие / Дж. Уитмор. - М.: Финансы и статистика, 2014. - 420 с.

23. Фокс, Джеффри Дж. Правила привлечения и удержания клиентов: учебное пособие / Дж. Фокс Джеффри. - М.: Альпина Бизнес Букс, 2015. - 170с.

24. Хопкинс, Т. Искусство торговать: учебное пособие / Т. Хопкинс. - Перевод с английского. - М.: Фаир-пресс, 2016. - 463 с.

25. Шелдрейк, Дж. Теория менеджмента: учебное пособие / Дж. Шелдрейк. - СПб.: Питер, 2017. - 352с.

26. Шеремет, А.Д., Сайфуллин Р.С. Методика финансового анализа: учебное пособие / под ред. Шеремета А.Д. - М.: ИНФРА-М, 2016. - 208с.

27. Якубова, Э.В. Розничная торговля. Состояние и перспективы: учебное пособие / Э.В. Якубова. - Ставрополь: 2016. - 290с.

Периодические издания

28. Албитов, А.Е., Соломатин, Е.О. Всё о CRM: [Customer Relationship Management] / А.Е. Албитов // Информация и бизнес. - 2017. №2. - С. 29-31.

29. Донцова, Л.В. Анализ эффективности производственно-хозяйственной деятельности / Л.В. Донцова // Менеджмент в России и за рубежом. - 2017. №5. С. 16-22.

30. Ермолаева, Н.А. CRM: ориентация на клиента / Н.А. Ермолаева // БОСС. Бизнес, организация, стратегия, системы. - 2017. № 2. С. 19-25.

31. Кадыков, М.Н. Особенности внедрения CRM / М.Н. Кадыков // Sales business. - 2017. №4. С. 122.

32. Картышов, С.В., Кульчицкая, И.А., Поташников Н.М. Управление комплексом маркетинга предприятия на основе CRM-технологий // С. В. Картышов. // Маркетинг в России и за рубежом. - 2017. №2. С 64-67.

33. Катков, В.М. Как повернуть предприятие лицом к потребителю? / В.М. Катков // Консультант директора. - 2017. №6. С 15-18.

34. Кузнецов, С.А. Введение в информационные системы / С.А. Кузнецов // Системы управления базами данных. - 2014. - №2. - с. 7-22.

35. Мальков, А.Е. Оценка экономической эффективности внедрения автоматизированной CRM-системы / А.Е. Мальков // Международный маркетинг. - 2016 № 34. С. 25-29.

36. Рамзаев, М.С. CRМ - управление отношениями с клиентами / М.С. Рамзаев //Маркетинг в России. - 2017, № 1. С. 33-36.

37. Тихомирова Н.В. Управлять качеством системно / Н.В. Тихомирова // Стандарты и качество. - 2013. № 9. С.82-84.

Приложение

Листинг программы

<?php

$settings = array(

'baseDir' => '../',

'charSet' => 'utf-8',

'debug' => true,

'gzip' => true,

'compressionLevel' => 9,

'gzipExceptions' => array('gif','jpeg','jpg','png','swf'),

'minify' => true,

'concatenate' => true,

'separator' => ',',

'embed' => true,

'embedMaxSize' => 5120,

'embedExceptions' => array('htc'),

'serverCache' => true,

'serverCacheCheck' => false,

'cacheDir' => 'cache/',

'cachePrefix' => 'so_',

'clientCache' => true,

'clientCacheCheck' => false,

);

//mime types

$mimeTypes = array(

"js" => "text/javascript",

"css" => "text/css",

"htm" => "text/html",

"html" => "text/html",

"xml" => "text/xml",

"txt" => "text/plain",

"jpg" => "image/jpeg",

"jpeg" => "image/jpeg",

"png" => "image/png",

"gif" => "image/gif",

"swf" => "application/x-shockwave-flash",

);

function headerExit($status) {

header("HTTP/1.0 $status");

exit();

}

function headerNoCache() {

// already expired

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");

// always modified

header("Last-Modified: " . gmdatestr());

// HTTP/1.1

header("Cache-Control: no-store, no-cache, must-revalidate");

header("Cache-Control: post-check=0, pre-check=0", false);

header("Cache-Control: max-age=0", false);

// HTTP/1.0

header("Pragma: no-cache");

//generate a unique Etag each time

header('Etag: '.microtime());

}

function headerNeverExpire(){

header("Expires: " . gmdatestr(time() + 315360000));

header("Cache-Control: max-age=315360000");

}

function debugExit($msg){

global $settings;

if (!$settings['debug']) {

headerExit('404 Not Found');

}

headerNoCache();

header('Content-Type: text/html; charset='.$settings['charSet']);

header("Content-Encoding: none");

echo "//<script>\n";

echo "alert('SmartOptimizer Error: ".str_replace("\n", "\\n", addslashes($msg))."');\n";

echo "//</script>\n";

exit();

}

function gmdatestr($time = null) {

if (is_null($time)) $time = time();

return gmdate("D, d M Y H:i:s", $time) . " GMT";

}

function filesmtime() {

global $files, $fileType;

static $filesmtime;

if ($filesmtime) return $filesmtime;

$filesmtime = max(@filemtime("minifiers/$fileType.php"), filemtime('index.php'), filemtime('config.php'));

foreach ($files as $file) {

if (!file_exists($file)) debugExit("File not found ($file).");

$filesmtime = max(filemtime($file), $filesmtime);

}

return $filesmtime;

}

@include('config.php');

list($query) = explode('?', urldecode($_SERVER['QUERY_STRING']));

if (preg_match('/^\/?(.+\/)?(.+)$/', $query, $matchResult)) {

$fileNames = $matchResult[2];

$fileDir = $settings['baseDir'].$matchResult[1];

} else debugExit("Invalid file name ($query)");

if (strpos(realpath($fileDir), realpath($settings['baseDir'])) !== 0) debugExit("File is out of base directory.");

if ($settings['concatenate']) {

$files = explode($settings['separator'], $fileNames);

$settings['concatenate'] = count($files) > 1;

} else $files = array($fileNames);

foreach ($files as $key => $file) {

if (preg_match('/\.([a-z0-9]+)$/i', $file, $matchResult)) {

$fileTypes[] = strtolower($matchResult[1]);

} else debugExit("Unsupported file ($file)");

$files[$key] = $fileDir.$file;

}

if ($settings['concatenate']) {

if (count(array_unique($fileTypes)) > 1) debugExit("Files must be of the same type.");

}

$fileType = $fileTypes[0];

if (!isset($mimeTypes[$fileType])) debugExit("Unsupported file type ($fileType)");

header("Content-Type: {$mimeTypes[$fileType]}; charset=".$settings['charSet']);

$settings['gzip'] =

($settings['gzip'] &&

!in_array($fileType, $settings['gzipExceptions']) &&

in_array('gzip', array_map('trim', explode(',' , @$_SERVER['HTTP_ACCEPT_ENCODING']))) &&

function_exists('gzencode'));

if ($settings['gzip']) header("Content-Encoding: gzip");

$settings['minify'] = $settings['minify'] && file_exists('minifiers/'.$fileType.'.php');

$settings['embed'] = $settings['embed'] && $fileType == 'css' && (!preg_match('/msie/i', $_SERVER['HTTP_USER_AGENT']) || preg_match('/msie 8|opera/i', $_SERVER['HTTP_USER_AGENT']));

$settings['serverCache'] = $settings['serverCache'] && ($settings['minify'] || $settings['gzip'] || $settings['concatenate'] || $settings['embed']);

if ($settings['serverCache']) {

$cachedFile = $settings['cacheDir'].$settings['cachePrefix'].md5($query.($settings['embed']?'1':'0')).'.'.$fileType.($settings['gzip'] ? '.gz' : '');

}

$generateContent = ((!$settings['serverCache'] && (!$settings['clientCache'] || !$settings['clientCacheCheck'] || !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || $_SERVER['HTTP_IF_MODIFIED_SINCE'] != gmdatestr(filesmtime()))) ||

($settings['serverCache'] && (!file_exists($cachedFile) || ($settings['serverCacheCheck'] && filesmtime() > filemtime($cachedFile)))));

if ($settings['clientCache'] && $settings['clientCacheCheck']) {

if ($settings['serverCache'] && !$generateContent) $mtime = filemtime($cachedFile);

elseif ($settings['serverCache']) $mtime = time();

else $mtime = filesmtime();

$mtimestr = gmdatestr($mtime);

}

if (!$settings['clientCache'] || !$settings['clientCacheCheck'] || !isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) || $_SERVER['HTTP_IF_MODIFIED_SINCE'] != $mtimestr) {

if ($settings['clientCache'] && $settings['clientCacheCheck']) {

header("Last-Modified: " . $mtimestr);

header("Cache-Control: must-revalidate");

} elseif ($settings['clientCache']) {

headerNeverExpire();

} else headerNoCache();

if ($generateContent) {

if ($settings['minify']) include('minifiers/'.$fileType.'.php');

$content = array();

foreach ($files as $file) (($content[] = @file_get_contents($file)) !== false) || debugExit("File not found ($file).");

$content = implode("\n", $content);

if ($settings['minify']) $content = call_user_func('minify_' . $fileType, $content);

if ($settings['gzip']) $content = gzencode($content, $settings['compressionLevel']);

if ($settings['serverCache']) {

$handle = @fopen($cachedFile, 'w') or debugExit("Could not create cache file($cachedFile).");

fwrite($handle, $content);

fclose($handle);

}

header('Content-Length: ' . strlen($content));

echo $content;

} else {

header('Content-Length: ' . filesize($cachedFile));

readfile($cachedFile);

}

} else headerExit('304 Not Modified');

?>

<?php

/*

* SmartOptimizer CSS Minifier

*/

function convertUrl($url, $count)

{

global $settings, $mimeTypes, $fileDir;

static $baseUrl = '';

$url = trim($url);

if (preg_match('@^[^/]+:@', $url)) return $url;

$fileType = substr(strrchr($url, '.'), 1);

if (isset($mimeTypes[$fileType])) $mimeType = $mimeTypes[$fileType];

elseif (function_exists('mime_content_type')) $mimeType = mime_content_type($url);

else $mimeType = null;

if (!$settings['embed'] ||

!file_exists($fileDir.$url) ||

($settings['embedMaxSize'] > 0 && filesize($fileDir.$url) > $settings['embedMaxSize']) ||

!$fileType ||

in_array($fileType, $settings['embedExceptions']) ||

!$mimeType ||

$count > 1) {

if (strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'].'?') === 0 ||

strpos($_SERVER['REQUEST_URI'], rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/').'/?') === 0) {

if (!$baseUrl) return $fileDir . $url;

}

return $baseUrl . $url;

}

$contents = file_get_contents($fileDir.$url);

if ($fileType == 'css') {

$oldFileDir = $fileDir;

$fileDir = rtrim(dirname($fileDir.$url), '\/').'/';

$oldBaseUrl = $baseUrl;

$baseUrl = 'http'.(@$_SERVER['HTTPS']?'s':'').'://'.$_SERVER['HTTP_HOST'].rtrim(dirname($_SERVER['SCRIPT_NAME']), '\/').'/'.$fileDir;

$contents = minify_css($contents);

$fileDir = $oldFileDir;

$baseUrl = $oldBaseUrl;

}

$base64 = base64_encode($contents);

return 'data:' . $mimeType . ';base64,' . $base64;

}

function minify_css($str) {

$res = '';

$i=0;

$inside_block = false;

$current_char = '';

while ($i+1<strlen($str)) {

if ($str[$i]=='"' || $str[$i]=="'") {//quoted string detected

$res .= $quote = $str[$i++];

$url = '';

while ($i<strlen($str) && $str[$i]!=$quote) {

if ($str[$i] == '\\') {

$url .= $str[$i++];

}

$url .= $str[$i++];

}

if (strtolower(substr($res, -5, 4))=='url(' || strtolower(substr($res, -9, 8)) == '@import ') {

$url = convertUrl($url, substr_count($str, $url));

}

$res .= $url;

$res .= $str[$i++];

continue;

} elseif (strtolower(substr($res, -4))=='url(') {//url detected

$url = '';

do {

if ($str[$i] == '\\') {

$url .= $str[$i++];

}

$url .= $str[$i++];

} while ($i<strlen($str) && $str[$i]!=')');

$url = convertUrl($url, substr_count($str, $url));

$res .= $url;

$res .= $str[$i++];

continue;

} elseif ($str[$i].$str[$i+1]=='/*') {//css comment detected

$i+=3;

while ($i<strlen($str) && $str[$i-1].$str[$i]!='*/') $i++;

if ($current_char == "\n") $str[$i] = "\n";

else $str[$i] = ' ';

}

if (strlen($str) <= $i+1) break;

$current_char = $str[$i];

if ($inside_block && $current_char == '}') {

$inside_block = false;

}

if ($current_char == '{') {

$inside_block = true;

}

if (preg_match('/[\n\r\t ]/', $current_char)) $current_char = " ";

if ($current_char == " ") {

$pattern = $inside_block?'/^[^{};,:\n\r\t ]{2}$/':'/^[^{};,>+\n\r\t ]{2}$/';

if (strlen($res) && preg_match($pattern, $res[strlen($res)-1].$str[$i+1]))

$res .= $current_char;

} else $res .= $current_char;

$i++;

}

if ($i<strlen($str) && preg_match('/[^\n\r\t ]/', $str[$i])) $res .= $str[$i];

return $res;

}

?>