У цій статті ми покажемо, як визначати схеми бізнес-об'єктів
підприємства та ієрархічну структуру ідентифікаторів ланцюжків
цих об'єктів. Це визначає консольну взаємодію користувача
та інформаційної системи.
Типові специфікації
Схема включає у себе всю типову інформацію про бізнес-об'єкти.
Схема ERP модуля визначає базові об'єкти організаційної структури,
об'єкти платіжної системи PAY та систему обліку співробітників ACC.
ERP SPEC — Таблиці организаційної структури
PAY SPEC — Таблиці системи управління платежами
Гроші зберігаються у форматі {N,M}, де N — кількість знаків після коми,
а M — усі значущі цифри. Таким чином числа кодуються багатьма способами,
наприклад одиниця: 1 = {0,1} = {1,10} = {2,100}. Операція множення у такій системі
виглядає просто mul({A,B},{C,D}) -> {A+C,B*D}.
PLM SPEC — Таблиці системи управління життєвим циклом
Створення кореневих ланцюжків
ERP BOOT або пусконаладка підприємства — це процес заповнення первинних
словників та таблиць фундаментальною інформацією. Головним чином це відображення
ієрархічної, організаційної структури підприємства.
Від працівника підприємства, його рабочого місця,
його локального офісу, його локальної компанії, і далі, до
группи міжнародних компанії з офісами в різних країнах світу,
та можливо, навіть до синдикатів транснаціональних корпорацій.
ERP BOOT — Організаційна структура підприємства
Розглянемо приклад: компанія Quanterall, головний підрядник Aeternity, має офіси в
Софії, Варні (головний офіс компанії) та Пловдіві. Сама компанія здійснює операції
тільки в Болгарії, тому группа складається из однієї компанії.
Добавляємо, зараз та надалі, дані за допомогою list комбінаторів:
PAY BOOT — Звітність CashFlow
Управління звітністю аутсорс підприємства доволі просте:
1) ми приймаємо оплати по інвойсам, виставленим клієнтам, з періодом раз на місяць;
2) ми виплачуємо зарплати раз на місяць. Тому згортки групуються календарно
та зіпуються помісячно.
PLM BOOT — Бюджетування проектів
Іниціалізація погодинна для кожного співробітника по проекту.
Цей список буде використовуватись в майбутньому для розподілення
виплат по опціонах.
Виплати за процентами на субконто попроектно:
За работу з даними відповідає біблиотека KVS, як працювати з нею читайте в минулих
випусках журналу:
Увесь код, який потрібен для створення фідів, зазвичай виносять в додаток
з назвою ERP. Для кожного конкретного підприємства ми використовуємо свою
Github організацію, можна навіть інше ім'я репозиторію, але ім'я
Erlang/OTP додатку — завжди залишається ERP:
У цьому репозиторії завжди будуть якісь реальні дані якоїсь компанії,
яку ми автоматизуємо, якщо вони дозволять нам опублікувати свою
організаційну структуру, первинні дані та словники. В інших випадках цей репозиторій
робимо приватним. Самі додатки здатні працювати з довільними структурами ERP.
Приклади запитів до сховища
Elixir прелюдія:
Зміст кореневої директорії БД підприємства:
Список компаній, які входять в групу підприємства:
Список бренч-офісів головної (та єдиної) компанії групи: