Управление денежными ресурсами происходит на отдельном слое - в процессе «Денежные операции» (Приложение В).
Введем целевую функцию: время задержки платежей с расчетного счета Трс.
Основные управляющие параметры:
1 цена единицы продукции;
2 объем выпускаемой партии;
3 сумма кредита, запрашиваемого в банке.
Зафиксировав все остальные параметры:
4 время выпуска партии;
5 число производственных линий;
6 интервал поступления заказа от покупателей;
7 разброс размеров продаваемой партии;
8 стоимость комплектующих изделий и материалов для выпуска партии;
9 стартовый капитал на расчетном счете;
можно минимизировать Трс для конкретной рыночной ситуации. Минимум Трс достигается при одном из максимумов среднего размера денежной суммы на расчетном счете. Причем вероятность рискового события – неуплаты долгов по кредитам - близка к минимуму (это можно доказать во время статистического эксперимента с моделью).
Первый процесс «Производство» (Приложение А) реализует основные элементарные процессы. Узел 1 имитирует поступления распоряжений на изготовление партий продукции от руководства компании. Узел 2 – попытка получить кредит. В этом узле появляется вспомогательный транзакт – запрос в банк. Узел 3 – ожидание кредита этим запросом. Узел 4 – это администрация банка: если предыдущий кредит возвращен, то предоставляется новый (в противном случае запрос ждет в очереди). Узел 5 осуществляет перечисление кредита на расчетный счет компании. В узле 6 вспомогательный запрос уничтожается, но информация о том, что кредит предоставлен, - это «шлагбаум» на пути следующего запроса на получение другого кредита (операция hold).
Основной транзакт-распоряжение проходит через узел 2 без задержки. В узле 7 производится оплата комплектующих, если на расчетном счете есть достаточная сумма (даже если кредит не получен). В противном случае происходит ожидание либо кредита, либо оплаты продаваемой продукции. В узле 8 транзакт становится в очередь, если все производственные линии заняты. В узле 9 осуществляется изготовление партии продукции. В узле 10 возникает дополнительная заявка на возврат кредита, если ссуда ранее была выделена. Эта заявка поступает в узел 11, где происходит перечисление денег с расчетного счета компании в банк; если денег нет, то заявка ожидает. После возврата кредита эта заявка уничтожается (в узле 12); в банке появилась информация о том, что кредит возвращен, и компании можно выдать следующий кредит (операция rels).
Транзакт-распоряжение проходит узел 10 без задержки, а в узле 13 он уничтожается. Далее считается, что партия изготовлена и поступила на склад готовой продукции.
Второй процесс «Сбыт» (Приложение Б) имитирует основные функции по реализации продукции. Узел 14 - это генератор транзактов-покупателей продукции. Эти транзакты обращаются на склад (узел 15), и если там есть запрашиваемое количество товара, то товар отпускается покупателю; в противном случае покупатель ждет. Узел 16 имитирует отпуск товара и контроль очереди. После получения товара покупатель перечисляет деньги на расчетный счет компании (узел 17). В узле 18 покупатель считается обслуженным; соответствующий ему транзакт больше не нужен и уничтожается.
Третий процесс «Денежные операции» (приложение В) имитирует проводки в бухгалтерии. Запросы на проводки поступают с первого слоя из узлов 5, 7, 11 (процесс «Производство») и из узла 17 (процесс «Сбыт»). Пунктирными линиями показано движение денежных сумм по Счету 51 («Расчетный счет», узел 20), счету 60 («Поставщики, подрядчики», узел 22), счету 62 («Покупатели, заказчики», узел 21) и по счету 90 («Банк», узел 19). Условные номера примерно соответствуют плану счетов бухгалтерского учета.
Узел 23 имитирует работу финансового директора. Обслуженные транзакты после бухгалтерских проводок попадают обратно в те узлы, откуда они поступили; номера этих узлов находятся в параметре транзакта t→updown.
Исходный код модели представлен в Приложении Г. Данный исходный текст строит саму модель, т.е. создает все узлы (представленные в структурной схеме бизнес-процесса) и связи между ними. Код может быть сгенерирован конструктором Pilgrim (Gem), в котором строятся процессы в объектном виде (Приложение Е).
Модель создаётся с помощью Microsoft Developer Studio. Microsoft Developer Studio – пакет программ для разработки приложений, базирующийся на языке С++.
После присоединения к проекту дополнительных библиотек (Pilgrim.lib, comctl32.lib) и файлов ресурсов (Pilgrim.res), компилируем данную модель. После компиляции получаем уже готовую модель.
Автоматически создается файл отчета, в котором хранятся результаты моделирования, полученные после одного запуска модели. Файл отчета представлен в Приложении Д.
3. ВЫВОДЫ ПО БИЗНЕС-МОДЕЛИ «ЭФФЕКТИВНОСТЬ ПРОИЗВОДСТВА»
Из содержания результатного файла (Приложение Д) мы видим, что каждый узел нашей модели характеризуется определенными параметрами.
1) № узла;
2) Наименование узла;
3) Тип узла;
4) Загрузка (%);
5) M(t) среднее время ожидания;
6) Счетчик входов;
7) Осталось транзактов;
8) Состояние узла в этот момент.
Модель состоит из трех независимых процессов: основного производственного процесса (Приложение А) , процесса реализации продукции (Приложение Б) и процесса управления денежными потоками (Приложение В).
Основной производственный процесс.
За период моделирования бизнес-процесса в узле 1 («Заказы») было сформировано 10 заявки на изготовление продукции. Среднее время формирования заказов – 74 дня, вследствие этого, один транзакт не вошел в рамки времени процесса моделирования. Остальные 9 транзактов вошли в узел 2 («Развилка1»), где было создано соответствующее число запросов в банк на получение кредита. Среднее время ожидания – 19 дней, это время моделирования, за которое были удовлетворены все транзакты.
Далее видно, что 8 запросов получили положительный ответ в узле 3 («Разрешение выдачи»). Среднее время получения разрешения – 65 дней. Загрузка данного узла составила в среднем 70,4%. Состояние узла на момент окончания времени моделирования закрытое, это обусловлено тем, что этот узел предоставляет новый кредит только в случае возврата предыдущего, следовательно, кредит на момент окончания моделирования не был погашен (это видно из узла 11).
Узел 5 осуществляет перевод кредита на расчетный счет предприятия. И, как видно из таблицы результатов, банк перевел на счет компании 135000 руб. В узле 6 все 11 запроса на кредит были уничтожены.
В узле 7 («Плата поставщикам») была произведена оплата комплектующих в размере всего полученного ранее кредита (135000 руб.).
В узле 8 мы видим, что 9 транзактов стоят в очереди. Это происходит, когда все производственные линии заняты.
В узле 9 («Выполнение заказа») осуществляется непосредственное изготовление продукции. На изготовление одной партии продукции уходит 74 дня. За период моделирования был выполнен 9 заказов. Загрузка данного узла составила 40%.
В узле 13, заявок на изготовление продукции были уничтожены в количестве 8 шт. с расчетом, что партии изготовлены и поступили на склад. Среднее время изготовления – 78 дней.
В узле 10 («Развилка 2») было создано 0 дополнительных заявок на возврат кредита. Эти заявки поступили в узел 11 («Возврат»), где банку был возвращен кредит в размере 120000 руб. После возврата кредита заявки на возврат были уничтожены в узле 12 в количестве 7 шт. со средним временем –37 дней.
Процесс реализации продукции.
В узле 14 («Клиенты») было порождено 26 транзактов-покупателей продукции со средним временем 28 дней. Один транзакт ожидает в очереди.
Далее 25 транзактов-покупателей «обратились» на склад (узел 15) за товаром. Загрузка склада за период моделирования составила 4,7%. Продукция со склада выдавалась немедленно – без задержек. В результате выдачи продукции покупателям на складе осталось 1077 ед. продукции, в очереди получение товара не ожидается, следовательно, при получении заказа предприятие может выдать нужное количество товара прямо со склада.
Узел 16 имитирует отпуск продукции 25 клиентам (1 транзакт в очереди). После получения товара клиенты без задержки оплатили полученный товар в сумме 119160 руб. В узле 18 все обслуженные транзакты были уничтожены.
Процесса управления денежными потоками.
В этом процессе мы имеем дело со следующими бухгалтерскими проводками (запросы, на выполнение которых поступают из узлов 5, 7, 11 и 17 соответственно):
1 выдан кредит банком – 135000 руб.;
2 оплата поставщикам за комплектующие – 135000 руб.;
3 возврат банковского кредита – 120000 руб.;
4 на расчетный счет поступили средства от продажи продукции – 119160 руб.
В итоге выполнения этих проводок мы получили следующие данные о распределении средств по счетам:
1) Сч. 90: Банк. 9 транзактов было обслужено, один ожидает в очереди.
Остаток средств – 9970000 руб. Требуется – 0 руб.
2) Сч. 51: Р/счет. 17 транзактов обслужено, один ожидает в очереди.
Остаток средств –14260 руб. Требуется - 15000 руб.
Следовательно, при продлении времени моделирования транзакт, находящийся в очереди, сразу обслужен быть не может, вследствие нехватки средств на счете компании.
3) Сч. 61: Клиенты. 25 транзактов обслужено.
Остаток средств – 9880840 руб. Требуется - 0 руб.
4) Сч. 60: Поставщики. 0 транзактов обслужено (процесс «Поставка товаров» не рассматривался в рамках данного эксперимента).