Контрольне завдання 2

1. Мета завдання

Виконання цього завдання має на меті:

  • отримати поглиблені практичні знання зі створення бізнес-процесів на Платформі.

2. Завдання

  1. Створіть модель даних на базі представленої таблиці.

    Таблиця 1. Поля та їх опис

    Назва поля на формі та в логічній моделі даних

    Назва поля у фізичній моделі даних

    Формат

    Довідник, що використовується

    Обов’язковість

    Сутність person_profile

    1

    Прізвище

    last_name

    Text

    +

    2

    Ім’я

    first_name

    Text

    +

    3

    По батькові

    second_name

    Text

    -

    4

    Дата народження

    birthday

    Date

    +

    5

    Тип документа, що посвідчує особу дитини (ідентифікатор типів документів, що посвідчує особу дитини)

    doc_type_id

    UUID

    Тип документа (doc_type)

    +

    6

    Серія свідоцтва про народження дитини

    birthday_doc_series

    Text

    -

    7

    Номер свідоцтва про народження дитини

    birthday_doc_number

    Text

    -

    8

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

    document_series_number

    Text

    -

    9

    Стать

    gender

    Enum type="type_gender"

    +

    Сутність unit

    10

    Ідентифікатор ЗЗСО

    edu_organization_id

    UUID

    +

    11

    Назва класу

    name

    Text

    +

    12

    Тип класу (ідентифікатор типів класу)

    unit_type_id

    UUID

    Тип класу (unit_type)

    +

    13

    Паралель

    parallel

    Text

    +

    14

    Навчальний рік

    academic_year

    Text

    +

    15

    Гранична кількість учнів

    students_max_number

    Smallint

    +

За детальною інформацією щодо створення Enum type зверніться до розділу Тег створення перелічувального типу даних (ENUM) відповідного документа.
  1. Створіть наступний перелік Search condition:

    1. Створіть endpoint (за типом Search condition) для заповнення поля Назва ЗЗСО, який я представляю та Назва ЗЗСО для зарахування з підтримкою EQUALS (edu_organization_edrpou_equals).

      SEARCH BY EQUALS
      • Вхідні параметри:

        SELECT edu_organization_id, full_name FROM edu_organization WHERE edrpou ='23804735 '
        Parameters:  edrpou
        Constants: none
      • Вихідні параметри:

        6731fad5-8c80-4965-9fc6-c2cebd508f24, Галицький ліцей імені Ярослава Осмомисла
    2. Створіть endpoint (за типом Search condition) для перевірки наявності в ЗЗСО класу з відповідною назвою і паралеллю з підтримкою EQUALS (unit_name_parallel_equals).

      SEARCH BY EQUALS
      • Вхідні параметри:

        SELECT unit_id, parallel, name, edu_organization_id  FROM unit WHERE parallel =’1’ and name ='A ' and edu_organization_id=’UUID’
        Parameters:  parallel, name, edu_organization_id
        Constants: none
      • Вихідні параметри:

        6731fad5-8c80-4965-9fc6-c2cebd508f24, 1, A, 5731fad5-8c80-4965-9fc6-c2cebd508f25
        Or
        NULL
    3. Створіть endpoint (за типом Search condition) для заповнення поля Тип класу з підтримкою LIKE та READ ALL (unit_type_name_contains).

      READ ALL
      • Вхідні параметри:

        SELECT unit_type_id, name, constant_code  FROM unit_type ORDER BY name ASC  ;
        Parameters: none
        Constants:  none
      • Вихідні параметри:

        UUID, Загального типу, GENERAL_TYPE
        UUID, Інклюзивний, INCLUSIVE_TYPE
        UUID, Спеціальний, SPECIAL_TYPE
      SEARCH BY LIKE
      • Вхідні параметри:

        Input: SELECT unit_type_id, name, constant_code FROM unit_type WHERE name LIKE '%Спе%' ORDER BY name ASC ;
        Parameters: name
        Constants: none
      • Вихідні параметри:

        UUID, Спеціальний, SPECIAL_TYPE
    4. Створіть endpoint (за типом Search condition) для заповнення поля Тип документа з підтримкою LIKE та READ ALL (doc_type_contains).

      READ ALL
      • Вхідні параметри:

        SELECT doc_type_id, name, constant_code FROM doc_type ORDER BY name;
        Parameters: none
        Constants: none
      • Вихідні параметри:

        UUID, Свідоцтво про народження громадянина України, BIRTH_CERT_UKRAINE
        UUID, Свідоцтво про народження іноземного громадянина, BIRTH_CERT_FOREIGN
        UUID, Паспорт іноземного громадянина, PASSPORT_FOREIGN
        При відображенні значень з таблиці doc_type, значення "Свідоцтво про народження громадянина України" (BIRTH_CERT_UKRAINE) повинно відображатися поверх всіх інших значень.
      SEARCH BY LIKE
      • Вхідні параметри:

        SELECT doc_type_id, name, constant_code FROM doc_type WHERE name LIKE '%сві%' ORDER BY name ASC ;
        Parameters: name
        Constants: none
      • Вихідні параметри:

        UUID, Свідоцтво про народження громадянина України, BIRTH_CERT_UKRAINE
        UUID, Свідоцтво про народження іноземного громадянина, BIRTH_CERT_FOREIGN
    5. Створіть endpoint (за типом Search condition) для заповнення поля ПІБ дитини та Дата народження дитини (для громадян України) з підтримкою EQUALS (person_profile_equal_doc_type_birthday_ua).

      SEARCH BY EQUALS
      • Вхідні параметри:

        SELECT person_profile_id , last_name , first_name, second_name (не обов'язкове), birthday FROM  person_profile  WHERE doc_type =' Свідоцтво про народження громадянина України ' AND  birthday_doc_series  ='I-ОЛ'  AND  birthday_doc_number ='214722'  AND   birthday ='01.01.2012'
        Parameters:  doc_type ,  birthday_doc_series, birthday_doc_number , birthday
        Constants: none
      • Вихідні параметри:

        UUID, Іванов, Іван, Іванович, 01.01.2012
        Якщо запису не існує Output:null
    6. Створіть endpoint (за типом Search condition) для заповнення поля ПІБ дитини та Дата народження дитини (для іноземних громадян) з підтримкою EQUALS (person_profile_equal_doc_type_birthday_foreigner).

      SEARCH BY EQUALS
      • Вхідні параметри:

        SELECT person_profile_id , last_name , first_name, second_name (не обов'язкове), birthday FROM  person_profile  WHERE doc_type  =' Свідоцтво про народження  іноземного громадянина ' OR 'Паспорт іноземного громадянина' AND document_series_number  ='5577675'  AND   birthday ='18.07.2013'
        Parameters:  doc_type , document_series_number , birthday
        Constants: none
      • Вихідні параметри:

        UUID, Магомаєв, Дмитро, Ібрагимович, 18.07.2013
        
        Якщо запису не існує
        Output:
        null
  2. Створіть наступний перелік форм:

    1. Форма для додавання інформації про клас (стартова форма).

    2. Форма для підписання внесених даних про клас.

    3. Форма для додавання інформації про дитину (стартова форма).

    4. Інформаційна форма про те, що дані провалідовані у ДРАЦС та можуть відрізнятися від введених.

    5. Форма для підписання внесених даних про дитину.

  3. Створіть наступні бізнес-процеси:

    1. Розробіть бізнес-процес створення класу, де businessKey —  "паралель + назва класу". Додайте формування валідаційної помилки у разі якщо клас з такою назвою вже було створено й відобразіть це у повідомленні. Додайте динамічне формування назви задачі, щоб у повідомленні про виконання задачі відображалася інформація: "Підписати дані про клас "паралель + назва класу" за допомогою КЕП". Перед завершенням бізнес-процесу необхідно визначати статусу цього бізнес-процесу.

    2. Розробіть бізнес-процесс створення профілю дитини, де businessKey - ФІО дитини. Додайте формування валідаційної помилки у разі якщо профіль дитини з таким документом вже було створено й відобразіть це у повідомленні. У разі якщо дитина має українське свідоцтво про народження необхідно здійснити пошук дитини у ДРАЦС. Наразі можливі два варіанти пошуку:

      • серія, номер свідоцтва та дата народження дитини;

      • серія, номер свідоцтва та ПІБ дитини.

      Перед завершенням бізнес-процесу необхідно визначати статус цього бізнес-процесу.

3. Очікуваний результат завдання

Змодельовано бізнес-процес створення класу і профілю дитини у тестовому реєстрі. Бізнес-процес доступний у вигляді послуги в Кабінеті користувача.