Наполнение справочников: различия между версиями

Материал из DPA
Перейти к навигации Перейти к поиску
Строка 546: Строка 546:
 
</pre>
 
</pre>
 
Результат: идентификатор технологии
 
Результат: идентификатор технологии
 +
 
'''Редактирование технологии:  
 
'''Редактирование технологии:  
 
<pre>
 
<pre>
Строка 559: Строка 560:
 
</pre>
 
</pre>
 
Результат: идентификатор технологии
 
Результат: идентификатор технологии
 +
 +
'''Добавление версии технологии:
 +
<pre>
 +
[POST] api/technology/createTechnologyVersion/{id},{typeId}
 +
</pre>
 +
Результат:
 +
<pre>
 +
{ - ключ
 +
"id": 9442, - идентификатор версии технологии
 +
"typeId": 333 - идентификатор типа объекта "версия технология"
 +
}
 +
</pre>
 +
 +
'''Редактирование версии технологии:
 +
 +
<pre>
 +
[POST] api/technology/updateTechnologyVersion
 +
 +
{
 +
"key": { - ключ
 +
"id": 9442,
 +
"typeId": 333,
 +
},
 +
"versionDescription": "description here", - описание
 +
"activeFrom": "2022-07-19T00:00:00+05:00", - начало периода активности
 +
"activeTo": "2072-07-19T00:00:00+05:00", - окончание периода активности
 +
"lifeCycleState": 0, - состояние (0-новая, 1-действующая, 2-недействительная, 3-ожидает проверки, 4-редактируемая, 5-устаревшая)
 +
}
 +
</pre>

Версия 23:37, 16 ноября 2022

Опции спискового отображения

{
  "sort": [
    {
      "selector": "name",
      "desc": false
    }
  ],
  "filter": [
    [
      "sortOrder",
      "=",
      123
    ],
    "and",
    [
      [
        [
          "reasonCategory",
          "=",
          1
        ]
      ]

Параметры и их описание:

RequireTotalCount' - Возвращать ли общее количество записей, результат в зависимости от значения:
{ data: <массив данных>, totalCount: <число-общее количество записей>} или Skip - сколько сначала записей пропустить (используется для постраничного вывода)
Take - сколько записей вернуть
Sort - параметры сортировки в виде массива:
SearchOperation - принимает значение "contains". на текущий момент другие значения параметра не поддерживаются. Используется совместно с SearchValue и SearchExpr для множественного поиска по вхождению строки в строку по одному или нескольким полям записи. SearchValue - одно или несколько строковых значений для поиска, разделенных знаками пробела, например: "строка1" или "строка1 строка2 строка3" SearchExpr - поле/поля, в которых будет производиться поиск строки/строк по вхождению:

 
     "field" - одно поле
    ["field1", "field2", ...] - несколько полей
    

DataField - не используется

 
        {selector: "category", - наименование поля для сортировки             desc: false - порядок сортировки по возрастанию/убыванию         }, - сортировка №1
        {selector: "name", desc: false} - сортировка №2

Filter - фильтр записей в виде массива фильтров:

    [
        [
         "name", - наименование поля фильтрации
         "contains", - операция фильтра: 
            contains - содержит
            notcontains - не содержит
            startswith - начинается с 
            endswith - заканчивается на
            = - равно
            <> - не рвано
         "программа" - значение фильтра
        ],
        "and", - тип соединения условий фильтра: and/or
        ["category", "startswith", "категория"]]

Справочники

Справочник Наименование справочника в API
1 3D-модели рабочих центров ReferenceBookOfThreeDModel
2 Анализ циклов ReferenceBookOfCycleAnalize
3 Бригады ReferenceBookOfBrigade
4 Группы рабочих центров ReferenceBookOfGroupOfWorkingCenters
5 Диапазоны значений ValueRange
6 Должности ReferenceBookOfPositions
7 Имена смен ShiftName
8 Метатеги УП ReferenceBookOfControlProgramTag
9 Недопроизводство UnderproductionReason
10 Обработки ReferenceBookOfControlProgramProcessingType
11 Отклонения ReferenceBookReasonsOfOvertime
12 Приостановки/Пропуски OperationRunSuspendReason
13 Простои ReferenceBookReasonsOfDowntime
15 Типы изделий ReferenceBookOfProductType
16 Типы причин простоя ReferenceBookOfDowntimeReasonType
17 Типы программ ReferenceBookOfControlProgramType
18 Шаблоны расписаний ScheduleTemplate
19 Шаблоны сообщений MessageTemplate

Другие метаданные

Наименование Наименование справочника в API
1 Изделия (ReferenceBookOfProducts)
2 УП (ReferenceBookOfControlPrograms)
3 Подпрограммы (ReferenceBookOfSubprograms)
4 Группа тикета (TicketGroup)
5 Источник тикета (TicketSource)
6 Тип тикета (TicketType)
7 Фильтр тикета (TicketFilter)
8 Оповещение тикета (TicketNotification)

Работа со структурой предприятия

Получение информации о конкретном предприятии

 api/dpaEnterpriseStrusture/getEnterprise/{id}    api/ManageEnterpriseStructure/getEnterprise/{id} 

Получение информации о конкретном цехе

  api/dpaEnterpriseStrusture/getSite/{id}    api/ManageEnterpriseStructure/getSite/{id}

Получение информации о конкретном подразделении

 api/dpaEnterpriseStrusture/getDepartment/{id}    api/ManageEnterpriseStructure/getDepartment/{id}>

Получение информации о конкретном рабочем центре

 api/dpaEnterpriseStrusture/getEquipment/{id}    api/ManageEnterpriseStructure/getEquipment/{id}

Создание предприятия

 api/dpaEnterpriseStrusture/create    api/ManageEnterpriseStructure/create

POST {         
        "name": "Предприятие", - наименование         
        "description": "Описание строкой", - описание     
           } 

Cохранение информации о предприятии

 api/dpaEnterpriseStrusture/saveEnterprise    api/ManageEnterpriseStructure/saveEnterprise 

POST {         
        "id": 348, - идентификатор         
        "name": "Предприятие", - наименование         
        "description": "Описание строкой", - описание                  // Настройки безопасности общие для всех структурных единиц: Предприятия/Цех/Подразделение/Рабочий центр - поэтому в остальных запросах описание пропущено         
        "inherit": false, - признак наследуемости настроек безопасности (не используется для предприятия)         
        "groupIds": [], - идентификаторы групп безопасности, которым будет доступен просмотр структурной единицы (в случае, если настройки не наследуются)                                         
        "availableToAll": true, - признак доступности всем группам безопасности (в случае, если настройки не наследуются)     
     } 

Создание цеха

   api/dpaEnterpriseStrusture/createSite    api/ManageEnterpriseStructure/createSite 

POST {
        "name": "Цех №1", - наименование         
        "description": "Описание строкой", - описание         
        "enterpriseId": 123456 - идентификатор родительского предприятия     
     } 

Сохранение информации о цехе

api/dpaEnterpriseStrusture/saveSite    api/ManageEnterpriseStructure/saveSite

POST {         
        "id": 21, - идентификатор         
        "name": "Цех №1", - наименование         
        "description": "Описание строкой", - описание                  
        "inherit": true,         
        "groupIds": [],         
        "availableToAll": false,         
     }

Создание подразделения

 api/dpaEnterpriseStrusture/createDepartment    api/ManageEnterpriseStructure/createDepartment 

POST {         
        "name": "Подразделение №1", - наименование         
        "description": "Описание строкой", - описание         
        "siteId": 123456 - идентификатор родительского цеха         
        "ownerDepartmentId": 123456 - идентификатор родительского подразделения (не указывается если родителем является цех)     
      } 

Сохранение информации о подразделении

 api/dpaEnterpriseStrusture/saveDepartment    api/ManageEnterpriseStructure/saveDepartment

POST {         
        "id": 22, - идентификатор         
        "name": "Подразделение Alpha", - наименование         
        "description": "описание", - описание         
        "threeDModelId": 50253885, - идентификатор привязанной 3D-модели подразделения                  
        "inherit": true,         
        "groupIds": [],         
        "availableToAll": false,     
     } 

Cоздание РЦ

 api/dpaEnterpriseStrusture/createEquipment    api/ManageEnterpriseStructure/createEquipment

POST {         
        "departmentId": 56539853, - идентификатор родительского подразделения         
        "name": "Alpha 700-IST-1", - наименование         
        "description": "описание", - описание         
        "equipmentGroupIds": [], - идентификаторы групп РЦ, в которые входи РЦ         
        "driverIdentifier": "68f6e95d-fa95-4dd6-a670-3f4181a693ab", - идентификатор драйвера, к которому привязан РЦ         
        "serverId": 23, - идентификатор сервера DPA, к которому привязан РЦ     
     } 

Cохранение информации о РЦ

 api/dpaEnterpriseStrusture/saveEquipment    api/ManageEnterpriseStructure/saveEquipment

POST {
        "id": 26, - идентификатор
        "name": "Alpha 700-IST-1", - наименование
        "model": "модель рабочего центра", - наименование модели
        "inventoryNumber": "ITX-111", - инвентарный номер
        "description": "", - описание
        "equipmentGroupIds": [], - идентификаторы групп РЦ, в которые входи РЦ
        "driverIdentifier": "68f6e95d-fa95-4dd6-a670-3f4181a693ab", - идентификатор драйвера, к которому привязан РЦ
        "serverId": 23, - идентификатор сервера DPA, к которому привязан РЦ
        "mainChannel": 0, - номер основного канала драйвера
        "channelInfoList": [ - информация о каналах драйвера
           

{                 "channelNumber": 0, - номер канала                 "isUsedInSummaryState": true - учавствует ли канал в формировании состояния РЦ             }
,
           

{                 "channelNumber": 1,                 "isUsedInSummaryState": false             }
        ],
        
        "releaseCountingType": 0, - тип подсчета выпуска (0-по нормам УП; 1-по счётчику; 2-без выпуска)
        "counterIncrementType": 0, - тип инкрементации счетчика (0-инкрементация на разницу значений счетчика; 1-инкрементация на единицу)
        "releaseDiscreteness": 1, - дискретность выпуска по счётчику
        "normativeReleaseDiscreteness": 1, - дискретность выпуска по норме
        "releaseQualityMark": 0, -  отметка качества(0-условно-годные; 1-годные; 2-брак)
        "masterMustComfirmIncompleteJobClose": true, - Мастер должен подтверждать закрытие задания с недопроизводством или перепроизводством
        "masterMustComfirmDisorderedJobStart": true, - Мастер должен подтверждать запуск задания не по порядку и пропуск задания
        "allowMultipleTasksSimultaneously": true, - разрешить запуск нескольких заданий одновременно
        "prohibitedJobStartWhenAnotherJobIsSuspended": false, - Запретить запуск задания, если другое задание стоит на паузе
        "allowMultiplePersonalShifts": true, - Разрешить открытие больше одной смены оператора одновременно
        "useMachineStatisticsOutput": true, - Использовать выпуск по по машинным данным
        
        "parseNcDataType": 1, - тип определения УП (0-отключено; 1-по имени УП; 2-по метатегам УП)
        
        "threeDModelId": 25, - идентификатор 3D-модели        

        "inherit": false,
        "groupIds": [ 5 ],
        "availableToAll": false,
    }

Шаблоны расписаний

[POST] /api/schedule/saveScheduleTemplateRecord пример недельного шаблона расписания: {

 "id": -1, - идентификатор шаблона (-1 для создания нового)
 "name": "наименование шаблона расписания", - наименование
 "templateType": 2, - тип шаблона (1-дневной; 2-недельный)
 "intervals": [ - коллекция интервалов, описывающих расписание
  

{ "shiftId": 641, - идентификатор имени смены "start": "00.00:00:00", - время начала интервала (смещение от начала недели, т.е. от понедельника 00:00) "end": "00.04:10:00" - время окончания интервала // время начала и окончания интервала передается в разрезе дней. В случае если смена переходит из одного дня в другой, необходимо передать два интервала - для первого дня и для второго. // интервалы времени должны передаваться в хронологическом порядке. } ,

   { "shiftId": 642, "start": "00.04:10:00", "end": "00.09:20:00" },
   { "shiftId": 641, "start": "00.09:20:00", "end": "01.00:00:00" },
   { "shiftId": 641, "start": "01.00:00:00", "end": "01.07:30:00" },
   { "shiftId": 643, "start": "01.07:30:00", "end": "01.13:40:00" },
   { "shiftId": 641, "start": "01.13:40:00", "end": "02.00:00:00" },
   { "shiftId": 641, "start": "02.00:00:00", "end": "02.04:30:00" },
   { "shiftId": 644, "start": "02.04:30:00", "end": "02.11:50:00" },
   { "shiftId": 641, "start": "02.11:50:00", "end": "02.14:20:00" },
   { "shiftId": 53144555, "start": "02.14:20:00", "end": "02.21:10:00" },
   { "shiftId": 641, "start": "02.21:10:00", "end": "03.00:00:00" },
   { "shiftId": 641, "start": "03.00:00:00", "end": "04.00:00:00" },
   { "shiftId": 641, "start": "04.00:00:00", "end": "05.00:00:00" },
   { "shiftId": 641, "start": "05.00:00:00", "end": "06.00:00:00" },
   { "shiftId": 641, "start": "06.00:00:00", "end": "07.00:00:00" }
 ]

}

Дополнительно к расписанию

Отвязка структурной единицы от родительского расписания:

 
[POST] api/schedule/detachScheduleFromParent/{scheduleOwnerType}/{scheduleOwnerId} 
где:
    scheduleOwnerType - тип структурной единицы открепляемой от родительского расписания (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
    scheduleOwnerId - идентификатор структурной единицы 

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

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

 [POST] api/schedule/attachScheduleToParent/{scheduleOwnerType}/{scheduleOwnerId}
где:
    scheduleOwnerType - тип структурной единицы прикрепляемой к родительскому расписанию (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
    scheduleOwnerId - идентификатор структурной единицы 

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

Применения шаблона расписания к расписанию структурной единицы:

 [POST] api/schedule/applyScheduleTemplateToSchedule/{scheduleOwnerType}/{scheduleOwnerId}/{scheduleTemplateId}

где:

   scheduleOwnerType - тип структурной единицы (1-РЦ; 2-подразделение; 3-цех; 5-предприятие)
   scheduleOwnerId - идентификатор структурной единицы
   scheduleTemplateId - идентификатор шаблона расписания

тело метода:

{   
       "start": "2022-07-03T19:00:00.000Z", - начало периода, на который применяется шаблон расписания   
       "end": "2022-07-10T19:00:00.000Z" - окончание периода, на который применяется шаблон расписания } 

Получение информации по простоям

Журнал простоев

    [POST] http://dpadev/api/journals/getJournalDatas/DowntimeReason
    Тело:
    {
      "dateTimeFrom": "2022-07-10T21:00:00.000Z", - время начала периода
      "dateTimeUntil": "2022-07-11T20:59:59.999Z", - время окончания периода
      "itemIds": [1, 2, 3], - список идентификаторов оборудования
      "gridOptions": { - опции спискового отображения (описание есть в вопрос №1)
        "requireTotalCount": true,
        "skip": 0,
        "take": 20,
        "sort": [
         

{             "selector": "startDate",             "desc": true           }
        ]
      }
    }
   Возращаемая структура данных:
    [
       
{             
        "downtimeInfo": "Delta  UQ-3",             
        "startDate": "2022-07-11T08:13:49.1990938+00:00", - начало периода причины простоя             
        "endDate": "2022-07-11T08:13:49.6935685+00:00", - окончание периода причины простоя             
        "status": 2, - статус простоя (1-необработанный;2-обработанный)             
        "reason": "Перерыв между сменами", - наименование причины простоя             
        "timeStamp": "2022-07-11T11:13:52.477789+03:00", - время последней классификации периода простоя             
        "operatorComment": null, - комментарий причины простоя             
        "user": "Пользоватль 123", - имя пользователя классифицировашего период простоя             
        "id": 356166430, - идентификатор периода причины простоя             
        "createdOn": "2022-07-11T08:13:52.477789+03:00", - время создания периода причины простоя             
        "createdBy": 1 - идентификатор пользователя создавшего период причины простоя         }
    ]

Работа с пользователями

Добавление/удаление пользователей в/из группы

 [POST] api/securityManagment/subjectInheritance/{userId}
    
    где: userId - идентификатор пользователя 
   тело:
  

{         "added": [1, 2, 3], - список идентификаторов добавляемых пользователю групп         
          "removed": [4, 5, 6] - список идентификаторов удаляемых у пользователя групп     } 

Получение списка пользователей:

       [POST] api/security/userRecords
       тело: 
      

{ - опции спискового отображения (описание есть в вопрос №1) "sort": null, "requireTotalCount": true, "searchOperation": "contains", "searchValue": null, "skip": 0, "take": 20, }

Возращаемая структура данных:

       {
            totalCount: 10,
            data:[
               

{          
          "personnelNumber": "1378698466", - табельный номер                     
          "positionName": null, - наименование занимаемой должности                     
          "positionId": null, - идентификатор занимаемой должности                     
          "isSystemUser": false, - признак того, что пользователь системный                     
          "surname": "Виноградов", - фамилия                     
          "name": "Михаил", - имя                     
          "patronymic": "Сергеевич", - отчество                     
          "language": "ru-RU", - текущая локализация                     
          "blocked": false, - признак заблокированности                     
          "id": 2689, - идентификатор пользователя                     
          "displayName": "Виноградов М.С." - отображаемое имя                 }

Получение списка групп:

 [POST] api/security/groupRecords 

{ - опции спискового отображения             
          "sort": null,             
          "requireTotalCount": true,             
          "searchOperation": "contains",             
          "searchValue": null,             
          "skip": 0,             
          "take": 20,         } 

Возвращаемая структура данных:

        {
            totalCount: 30,
            data:[
               

{                     
           "name": "Операторы", - наименование                     
           "description": null, - описание                     
           "id": 2, - идентификатор                     
           "displayName": "Операторы" - отображаемое наименование                 } 

Работа с заданиями

Получение списка заданий:

 [POST] api/jobs/getJobDatas
{  
    "requireTotalCount": true,
    "skip": 0,
    "take": 20,
    "sort": [ { "selector": "startDate", "desc": true } ]
} 

Результат:

{
            "id": 9347, - идентификатор
            "equipmentId": 899, - идентификатор оборудования, на которое запланировано задание
            "equipment": "WC2", - наименование оборудования, на которое запланировано задание
            "isMaintenance": true, - признак того, что задание является ТОиР
            "productionType": 5, - тип задания (1-производство, 2-Наладка, 3-Внедрение, 4-Производство с наладкой, 5-ТОиР)
            "order": null, - Название задания (в версии 5.7 не используется для ТОиР)
            "productName": null, - наименование производимого изделия (для заданий типа 1-4)
            "productVersion": null, - номер версии производимого изделия (для заданий типа 1-4)
            "plannedCount": null, - плановое количество (для заданий типа 1,3,4)
            "actualCount": null, - фактическое количество (для заданий типа 1,3,4)
            "rejectedCount": null, - количество брака (для заданий типа 1,3,4)
            "technologyVersion": null, - версия технологии, по которой производится изделие (для заданий типа 1-4)
            "stage": null, - наименование этапа технологии  (для заданий типа 1-4)
            "plannedStart": "2022-07-19T12:20:00+05:00", - плановое время начала
            "plannedEnd": "2022-07-19T13:20:00+05:00", - плановое время окончания
            "actualStart": null, - фактическое время начала
            "actualEnd": null, - фактическое время окончания
            "status": 1, - первичный статус задания (0-создани, 1-запланировано, 2-начато, 3-завершено)
            "secondaryStatus": 0, - вторичный статус задания (0-нет, 1-пауза, 2-пропущено, 3- ---, 4-пропущено и скрыто)
            "isImported": false - признак того, что задание получено через импорт
        } 

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

[POST] api/jobs/createAndAssign
            {
                "order": "job/order name", - Название задания
                "lot": null, - партия(не используется)
                "productVersionId": 1424, - идентификатор версии производимого изделия (может не указываться)
                "technologyVersionId": 1455, - идентификатор версии технологии, по которой производится изделие (может не указываться)
                "technologyStageId": 1456, - идентификатор этапа технологии, по которому производится изделие (указываться совместно с technologyVersionId)
                "count": "111", - плановое количество
                "startDate": "2022-07-19T08:16:00.000Z", - плановое время начала (указывается совместно с временем окончания и оборудованием)
                "endDate": "2022-07-19T18:03:00.000Z", - плановое время окончания (указывается совместно с временем начала и оборудованием)
                "productionType": 1, - тип задания (1-производство, 2-Наладка, 3-Внедрение, 4-Производство с наладкой)
                "comment": "some comment here", - комментарий
                "equipmentId": 898 - идентификатор оборудования, на которое запланировано задание (указывается совместно с временем начала и окончания)
            }

Редактировоание задания на производство:

[POST] api/jobs/updateAndAssign/{идентификатор_задания}

            {
                "order": "job/order name", - Название задания
                "lot": null, - партия(не используется)
                "productVersionId": 1424, - идентификатор версии производимого изделия (может не указываться)
                "technologyVersionId": 1455, - идентификатор версии технологии, по которой производится изделие (может не указываться)
                "technologyStageId": 1456, - идентификатор этапа технологии, по которому производится изделие (указывается совместно с technologyVersionId)
                "count": "111", - плановое количество
                "startDate": "2022-07-19T08:16:00.000Z", - плановое время начала (указывается совместно с временем окончания и оборудованием)
                "endDate": "2022-07-19T18:03:00.000Z", - плановое время окончания (указывается совместно с временем начала и оборудованием)
                "productionType": 1, - тип задания (1-производство, 2-Наладка, 3-Внедрение, 4-Производство с наладкой)
                "comment": "some comment here", - комментарий
                "equipmentId": 898 - идентификатор оборудования, на которое запланировано задание (указывается совместно с временем начала и окончания)
            }

Создание и редактирование задания ТОиР:

[POST] api/jobs/saveMaintenanceJob

            {
                "id": 0, - идентификатор задания (0-при создании)
                "equipmentId": 899, - идентификатор оборудования, на которое запланировано задание
                "startTime": "2022-07-19T07:20:00.000Z", - плановое время начала
                "endTime": "2022-07-19T08:20:00.000Z", - плановое время окончания
                "type": 1, - тип ТОиР (1-плановый, 2-внеплановый, 3-авария)
                "cause": "reason", - причина(текст)
                "mode": 2, - всегда=2
                "comment": "comment", - комментарий
            }

Работа с технологиями

Получение списка технологий

[POST] api/technology/getGridRecords

		{ - опции спискового отображения 
			"sort": null,
			"requireTotalCount": true,
			"searchOperation": "contains",
			"searchValue": null,
			"skip": 0,
			"take": 20
		}

Результат:

{
			"rootId": "1454_1455", - ключ
			"displayName": "Подшипник 58.6*10/C12 от 01.04.2021 #1", - наименование версии технологии
			"productVersionId": 1424, - идентификатор вкрсии изделия
			"productVersionName": "Подшипник 58.6*10/C12 #1", - наименование версии изделия
			"technology": { - технология
				"key": {
					"id": 1454, - идентификатор технологии
					"typeId": 326 - идентификатор типа объекта "технология"
				},
				"id": 1454, - идентификатор технологии
				"name": "Подшипник 58.6*10/C12 от 01.04.2021", - наименование технологии
				"description": "", - описание
				"authorName": "SystemUserName", - имя пользователя, создавшего технологию
				"productVersionName": "Подшипник 58.6*10/C12 #1",
			},
			"technologyVersion": { - версия технологии
				"key": { - ключ
					"id": 1455, - идентификатор версии технологии
					"typeId": 333 - идентификатор типа объекта "версия технология"
				},
				"id": 1455,
				"name": "Подшипник 58.6*10/C12 от 01.04.2021 #1", - наименование версии технологии
				"description": null, - описание
				"authorName": "SystemUserName", - имя пользователя, создавшего версию технологии
				"lifeCycleState": 1, - состояние (0-новая, 1-действующая, 2-недействительная, 3-ожидает проверки, 4-редактируемая, 5-устаревшая)
				"stateChangeAuthorName": "SystemUserName", - имя пользователя, установившего состояние
				"activeFrom": "2021-04-01T05:00:00+05:00", - начало периода активности
				"activeTo": "2030-01-01T05:00:00+05:00", - окончание периода активности
			},
			"displayAuthorName": "SystemUserName", - имя пользователя, создавшего версию технологии
		}

Создание технологий: Для созданной технологии сразу создается версия технологии. Версия технологии в свою очередь заполняется демонстрационными данными (этап->операции).

[POST] api/technology/createTechnology

		{
			"name": "Technology Name", - наименование технологии
			"description": "description here", - описание
			"productVersionId": 1424 - идентификатор версии производимого изделия
		}

Результат: идентификатор технологии

Редактирование технологии:

[POST] api/technology/updateTechnology

	{
			"key": { - ключ
				"id": 9378, - идентификатор технологии
				"typeId": 326 - идентификатор типа объекта "технология"
			},
			"description": "description here" - описание
		}

Результат: идентификатор технологии

Добавление версии технологии:

[POST] api/technology/createTechnologyVersion/{id},{typeId}

Результат:

		{ - ключ
			"id": 9442, - идентификатор версии технологии
			"typeId": 333 - идентификатор типа объекта "версия технология"
		}

Редактирование версии технологии:

[POST] api/technology/updateTechnologyVersion

		{
			"key": { - ключ
				"id": 9442,
				"typeId": 333,
			},
			"versionDescription": "description here", - описание
			"activeFrom": "2022-07-19T00:00:00+05:00", - начало периода активности
			"activeTo": "2072-07-19T00:00:00+05:00", - окончание периода активности
			"lifeCycleState": 0, - состояние (0-новая, 1-действующая, 2-недействительная, 3-ожидает проверки, 4-редактируемая, 5-устаревшая)
		}