5.2.4. Функция getEtityLC: различия между версиями

Материал из SATURN WIKI
Перейти к навигации Перейти к поиску
Метка: замена
Нет описания правки
 
Строка 1: Строка 1:
<span id="функция-getetitylc-1"></span>
 
<span id="функция-getetitylc"></span>
== Функция getEtityLC ==
 
'''Описание:''' Список состояний (фаз) у ЖЦ [mainlc]
 
'''Параметры и пример POST запроса'''
 
com: getEtityLC
 
otype: PatProduct
 
opargs: {}
 
sid: SEAPISID:a91bfe083a71a23a1a3c2193403166dc7f3a1400c2aef98a7ebfc34923c6079c
 
'''Пример ответа сервера:'''
 
{
 
    &quot;transId&quot;: '''null''',
 
    &quot;resCode&quot;: 200,
 
    &quot;reqPerMin&quot;: '''null''',
 
    &quot;resMsg&quot;: '''null''',
 
    &quot;resDescription&quot;: '''null''',
 
    &quot;resData&quot;: {
 
        &quot;targetObjAttr&quot;: '''null''',
 
        &quot;targetClass&quot;: &quot;class fgisppa.statables.LC_BUC.BUC_210_PatProduct.PatProduct&quot;,
 
        &quot;lifeCycleName&quot;: &quot;mainlc&quot;,
 
        &quot;startState&quot;: &quot;draft&quot;,
 
        &quot;states&quot;: [
 
            {
 
                &quot;stateName&quot;: &quot;actual&quot;,
 
                &quot;title&quot;: &quot;актуально&quot;,
 
                &quot;operations&quot;: [
 
                    {
 
                        &quot;operationName&quot;: &quot;actual/undoSetActual()&quot;,
 
                        &quot;title&quot;: &quot;отмена операции принятия к учету&quot;,
 
                        &quot;description&quot;: &quot;перевести карточку в состояние 'черновик' (из актуального).&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: []
 
                    },
 
                    {
 
                        &quot;operationName&quot;: &quot;actual/setArchived()&quot;,
 
                        &quot;title&quot;: &quot;в архив&quot;,
 
                        &quot;description&quot;: &quot;перевести карточку в состояние архив - устаревшая или уже не актуальная информация.&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: []
 
                    }
 
                ]
 
            },
 
            {
 
                &quot;stateName&quot;: &quot;archived&quot;,
 
                &quot;title&quot;: &quot;архив&quot;,
 
                &quot;operations&quot;: []
 
            },
 
            {
 
                &quot;stateName&quot;: &quot;canceled&quot;,
 
                &quot;title&quot;: &quot;архив&quot;,
 
                &quot;operations&quot;: []
 
            },
 
            {
 
                &quot;stateName&quot;: &quot;[static]&quot;,
 
                &quot;title&quot;: &quot;[статические операции]&quot;,
 
                &quot;operations&quot;: [
 
                    {
 
                        &quot;operationName&quot;: &quot;static/getList()&quot;,
 
                        &quot;title&quot;: &quot;просмотреть список&quot;,
 
                        &quot;description&quot;: &quot;отдает перечень заголовокв объектов объектов&quot;,
 
                        &quot;args&quot;: [
 
                            {
 
                                &quot;argName&quot;: &quot;pos&quot;,
 
                                &quot;titlle&quot;: &quot;смещение, начало&quot;,
 
                                &quot;description&quot;: &quot;смещение начала списка, c нуля,\nпо умолчанию 0&quot;,
 
                                &quot;type&quot;: &quot;int&quot;,
 
                                &quot;typeSpecs&quot;: '''null'''
 
                            },
 
                            {
 
                                &quot;argName&quot;: &quot;size&quot;,
 
                                &quot;titlle&quot;: &quot;длина списка&quot;,
 
                                &quot;description&quot;: &quot;длина списка, от единицы. \nпо умолчанию (если не указано)  100, минимум 2, максимум 500&quot;,
 
                                &quot;type&quot;: &quot;int&quot;,
 
                                &quot;typeSpecs&quot;: '''null'''
 
                            },
 
                            {
 
                                &quot;argName&quot;: &quot;getFullCards&quot;,
 
                                &quot;titlle&quot;: &quot;полные карточки?&quot;,
 
                                &quot;description&quot;: &quot;1 - возвращать полносериалихованные карточки в objList, или 0 - только перечень атрибутов, в attrTable \n по умолчанию 1&quot;,
 
                                &quot;type&quot;: &quot;int&quot;,
 
                                &quot;typeSpecs&quot;: '''null'''
 
                            },
 
                            {
 
                                &quot;argName&quot;: &quot;filters&quot;,
 
                                &quot;titlle&quot;: &quot;фильтры&quot;,
 
                                &quot;description&quot;: &quot;Json String, json array объектов описанием условий фильтра. например \&quot;[ {'column':'colName','condition':'=','value':'value'}, {...}, ..., {...}]\&quot;. при этом value может быть числом, строкой, или массивом строк или чисел.  перечисленные условия объединяются по AND.&quot;,
 
                                &quot;type&quot;: &quot;String&quot;,
 
                                &quot;typeSpecs&quot;: '''null'''
 
                            },
 
                            {
 
                                &quot;argName&quot;: &quot;orderBy&quot;,
 
                                &quot;titlle&quot;: &quot;колонки сортировки&quot;,
 
                                &quot;description&quot;: &quot;Json String, json array строк с именами колонок. например \&quot;['colNameA','colNameB', ... , 'colNameZ']\&quot;&quot;,
 
                                &quot;type&quot;: &quot;String&quot;,
 
                                &quot;typeSpecs&quot;: '''null'''
 
                            }
 
                        ],
 
                        &quot;results&quot;: [
 
                            {
 
                                &quot;retName&quot;: &quot;objList&quot;,
 
                                &quot;titlle&quot;: &quot;список объектов&quot;,
 
                                &quot;description&quot;: &quot;'связанный' json-массив HRJSON-объектов (глубокая сериализация сущностей с агрегацией всех ссылочных объектов).\nотдается, если не отдается attrTable&quot;,
 
                                &quot;type&quot;: &quot;String&quot;
 
                            },
 
                            {
 
                                &quot;retName&quot;: &quot;attrTable&quot;,
 
                                &quot;titlle&quot;: &quot;таблица атрибутов&quot;,
 
                                &quot;description&quot;: &quot;JSON массив, 2-мерный. Первая строка - это имена заголовков. в конец добалвются колонки с суффиксами '__NAME' для указания имен ссылочных объектов.\nотдается, если не отдается objList&quot;,
 
                                &quot;type&quot;: &quot;String&quot;
 
                            }
 
                        ]
 
                    },
 
                    {
 
                        &quot;operationName&quot;: &quot;static/createNew()&quot;,
 
                        &quot;title&quot;: &quot;создать объект&quot;,
 
                        &quot;description&quot;: &quot;конструктор нового объекта&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: [
 
                            {
 
                                &quot;retName&quot;: &quot;objList&quot;,
 
                                &quot;titlle&quot;: &quot;список объектов, 1 объект&quot;,
 
                                &quot;description&quot;: &quot;Объект который создан'связанный' json-массив HRJSON-объектов (глубокая сериализация сущностей с агрегацией всех ссылочных объектов).\nотдается, если не отдается attrTable&quot;,
 
                                &quot;type&quot;: &quot;String&quot;
 
                            }
 
                        ]
 
                    }
 
                ]
 
            },
 
            {
 
                &quot;stateName&quot;: &quot;draft&quot;,
 
                &quot;title&quot;: &quot;черновик&quot;,
 
                &quot;operations&quot;: [
 
                    {
 
                        &quot;operationName&quot;: &quot;draft/updateCard()&quot;,
 
                        &quot;title&quot;: &quot;изменить карточку сущности&quot;,
 
                        &quot;description&quot;: &quot;Команда для изменения структуры объекта имеющегося на сервере - обновления полей (в том числе и частичного), \n добавления или удаления строк табличной части и пр. \n Все присылаемые id должны соответствовать тем, что уже есть на сервере.\n&quot;,
 
                        &quot;args&quot;: [
 
                            {
 
                                &quot;argName&quot;: &quot;theCard&quot;,
 
                                &quot;titlle&quot;: &quot;карточка объекта&quot;,
 
                                &quot;description&quot;: &quot;Карточка объекта, сериализованная в HRJSON,\nили простой JSON объект с именами полей равными изменяемым атрибутам объекта,\n\nВо всех json-объектах обязательными являются 2 поля : \n * '_class' с полным именем java-класса (пакеты и имя класса),\n * '_id' c идентификатором объекта в хранилищах бизнес-слоя. \n\nТабличные части передаются в поле '_tparts' - это должен быть json-объект, \nс полями равными именам табличных частей, в которых лежат массивы объектов с даннвми строк табличных частей.\n\nПри разборе значений анализируются значения только первого уровня, \nт.е. их непосредственные значения (а для вложенных hr-json объектов в FK-полях - поле '_id') \nВложенные hr-json объекты не создаются! \n\nДОБАВНИЕ СТРОК ТЧ: Если объект в ТЧ приведен с '_id'='-1' - строка табличной части будет создана.\n\nУДАЛЕНИЕ СТРОК ТЧ: Если объект в ТЧ приведен с существующим '_id', но \nи присутствует спец атрибут '_toDelete' со значением 'true' - значит \nстрока ТЧ будет удалена. \n\nПРОПУСК СТРОК ТЧ: Если строка в ТЧ приведена (есть '_id' и '_class'), \nно не приводятся атриубты - значит объект меняться не будет, и не будет удаляться.\n\nЕсли строка в ТЧ не приведена (объект пропущен), \nстрока в ТЧ не будет обновляться, и не будет удаляться.\n\nТаким образом, имеет смысл приводить только изменяемые/обновляемые строки в ТЧ.\n\nПеречни атрибутов рассматриваются как те которые моно изменять. \nЕсли атрибуты будут пропущены, они не будут изменены.\n\nНа список допустимых для обновления атрибутов и возможность добавлять/убитрать строки табличной части,\nмогут быть наложены ограничения - см .typeSpecs аргумента theCard&quot;,
 
                                &quot;type&quot;: &quot;commons.storages.flatObjects.AMDObject&quot;,
 
                                &quot;typeSpecs&quot;: [
 
                                    &quot;*&quot;,
 
                                    &quot;*[]+-&quot;,
 
                                    &quot;*[].*&quot;
 
                                ]
 
                            },
 
                            {
 
                                &quot;argName&quot;: &quot;comment&quot;,
 
                                &quot;titlle&quot;: &quot;Комментарий к операции&quot;,
 
                                &quot;description&quot;: &quot;заметки оператора, о том, зачем он совершает эту операцию,\n&quot;,
 
                                &quot;type&quot;: &quot;String&quot;,
 
                                &quot;typeSpecs&quot;: '''null'''
 
                            }
 
                        ],
 
                        &quot;results&quot;: []
 
                    },
 
                    {
 
                        &quot;operationName&quot;: &quot;draft/setActual()&quot;,
 
                        &quot;title&quot;: &quot;в работу&quot;,
 
                        &quot;description&quot;: &quot;перевести карточку в состояние 'актуально' - актуальная информация для применения.&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: []
 
                    },
 
                    {
 
                        &quot;operationName&quot;: &quot;draft/setCanceled()&quot;,
 
                        &quot;title&quot;: &quot;отменить черновик&quot;,
 
                        &quot;description&quot;: &quot;перевести карточку в состояние 'отменено' - информация которая не была в работе, или признана ошибочно заведенной.&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: []
 
                    }
 
                ]
 
            },
 
            {
 
                &quot;stateName&quot;: &quot;[any]&quot;,
 
                &quot;title&quot;: &quot;[все состояния]&quot;,
 
                &quot;operations&quot;: [
 
                    {
 
                        &quot;operationName&quot;: &quot;any/getFullCard()&quot;,
 
                        &quot;title&quot;: &quot;получить полную карточку сущности&quot;,
 
                        &quot;description&quot;: &quot;отдает 'глубокую сериализаци' карточки сущности&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: []
 
                    },
 
                    {
 
                        &quot;operationName&quot;: &quot;any/clone()&quot;,
 
                        &quot;title&quot;: &quot;скопировтаь объект&quot;,
 
                        &quot;description&quot;: &quot;создает копию записи, в отношении которой был вызван в состоянии черновик&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: [
 
                            {
 
                                &quot;retName&quot;: &quot;objList&quot;,
 
                                &quot;titlle&quot;: &quot;список объектов, 1 объект&quot;,
 
                                &quot;description&quot;: &quot;Объект который был создан'связанный' json-массив HRJSON-объектов (глубокая сериализация сущностей с агрегацией всех ссылочных объектов).\n&quot;,
 
                                &quot;type&quot;: &quot;HrJson&quot;
 
                            }
 
                        ]
 
                    },
 
                    {
 
                        &quot;operationName&quot;: &quot;any/getPrintForm()&quot;,
 
                        &quot;title&quot;: &quot;получить печатную форму карточки&quot;,
 
                        &quot;description&quot;: &quot;отдает печатную форму карточки в формате excel&quot;,
 
                        &quot;args&quot;: [],
 
                        &quot;results&quot;: []
 
                    }
 
                ]
 
            }
 
        ]
 
    }
 
}

Текущая версия от 09:13, 15 февраля 2025

Функция getEtityLC

Описание: Список состояний (фаз) у ЖЦ [mainlc]

Параметры и пример POST запроса

com: getEtityLC

otype: PatProduct

opargs: {}

sid: SEAPISID:a91bfe083a71a23a1a3c2193403166dc7f3a1400c2aef98a7ebfc34923c6079c

Пример ответа сервера:

{

    "transId": null,

    "resCode": 200,

    "reqPerMin": null,

    "resMsg": null,

    "resDescription": null,

    "resData": {

        "targetObjAttr": null,

        "targetClass": "class fgisppa.statables.LC_BUC.BUC_210_PatProduct.PatProduct",

        "lifeCycleName": "mainlc",

        "startState": "draft",

        "states": [

            {

                "stateName": "actual",

                "title": "актуально",

                "operations": [

                    {

                        "operationName": "actual/undoSetActual()",

                        "title": "отмена операции принятия к учету",

                        "description": "перевести карточку в состояние 'черновик' (из актуального).",

                        "args": [],

                        "results": []

                    },

                    {

                        "operationName": "actual/setArchived()",

                        "title": "в архив",

                        "description": "перевести карточку в состояние архив - устаревшая или уже не актуальная информация.",

                        "args": [],

                        "results": []

                    }

                ]

            },

            {

                "stateName": "archived",

                "title": "архив",

                "operations": []

            },

            {

                "stateName": "canceled",

                "title": "архив",

                "operations": []

            },

            {

                "stateName": "[static]",

                "title": "[статические операции]",

                "operations": [

                    {

                        "operationName": "static/getList()",

                        "title": "просмотреть список",

                        "description": "отдает перечень заголовокв объектов объектов",

                        "args": [

                            {

                                "argName": "pos",

                                "titlle": "смещение, начало",

                                "description": "смещение начала списка, c нуля,\nпо умолчанию 0",

                                "type": "int",

                                "typeSpecs": null

                            },

                            {

                                "argName": "size",

                                "titlle": "длина списка",

                                "description": "длина списка, от единицы. \nпо умолчанию (если не указано)  100, минимум 2, максимум 500",

                                "type": "int",

                                "typeSpecs": null

                            },

                            {

                                "argName": "getFullCards",

                                "titlle": "полные карточки?",

                                "description": "1 - возвращать полносериалихованные карточки в objList, или 0 - только перечень атрибутов, в attrTable \n по умолчанию 1",

                                "type": "int",

                                "typeSpecs": null

                            },

                            {

                                "argName": "filters",

                                "titlle": "фильтры",

                                "description": "Json String, json array объектов описанием условий фильтра. например \"[ {'column':'colName','condition':'=','value':'value'}, {...}, ..., {...}]\". при этом value может быть числом, строкой, или массивом строк или чисел.  перечисленные условия объединяются по AND.",

                                "type": "String",

                                "typeSpecs": null

                            },

                            {

                                "argName": "orderBy",

                                "titlle": "колонки сортировки",

                                "description": "Json String, json array строк с именами колонок. например \"['colNameA','colNameB', ... , 'colNameZ']\"",

                                "type": "String",

                                "typeSpecs": null

                            }

                        ],

                        "results": [

                            {

                                "retName": "objList",

                                "titlle": "список объектов",

                                "description": "'связанный' json-массив HRJSON-объектов (глубокая сериализация сущностей с агрегацией всех ссылочных объектов).\nотдается, если не отдается attrTable",

                                "type": "String"

                            },

                            {

                                "retName": "attrTable",

                                "titlle": "таблица атрибутов",

                                "description": "JSON массив, 2-мерный. Первая строка - это имена заголовков. в конец добалвются колонки с суффиксами '__NAME' для указания имен ссылочных объектов.\nотдается, если не отдается objList",

                                "type": "String"

                            }

                        ]

                    },

                    {

                        "operationName": "static/createNew()",

                        "title": "создать объект",

                        "description": "конструктор нового объекта",

                        "args": [],

                        "results": [

                            {

                                "retName": "objList",

                                "titlle": "список объектов, 1 объект",

                                "description": "Объект который создан'связанный' json-массив HRJSON-объектов (глубокая сериализация сущностей с агрегацией всех ссылочных объектов).\nотдается, если не отдается attrTable",

                                "type": "String"

                            }

                        ]

                    }

                ]

            },

            {

                "stateName": "draft",

                "title": "черновик",

                "operations": [

                    {

                        "operationName": "draft/updateCard()",

                        "title": "изменить карточку сущности",

                        "description": "Команда для изменения структуры объекта имеющегося на сервере - обновления полей (в том числе и частичного), \n добавления или удаления строк табличной части и пр. \n Все присылаемые id должны соответствовать тем, что уже есть на сервере.\n",

                        "args": [

                            {

                                "argName": "theCard",

                                "titlle": "карточка объекта",

                                "description": "Карточка объекта, сериализованная в HRJSON,\nили простой JSON объект с именами полей равными изменяемым атрибутам объекта,\n\nВо всех json-объектах обязательными являются 2 поля : \n * '_class' с полным именем java-класса (пакеты и имя класса),\n * '_id' c идентификатором объекта в хранилищах бизнес-слоя. \n\nТабличные части передаются в поле '_tparts' - это должен быть json-объект, \nс полями равными именам табличных частей, в которых лежат массивы объектов с даннвми строк табличных частей.\n\nПри разборе значений анализируются значения только первого уровня, \nт.е. их непосредственные значения (а для вложенных hr-json объектов в FK-полях - поле '_id') \nВложенные hr-json объекты не создаются! \n\nДОБАВНИЕ СТРОК ТЧ: Если объект в ТЧ приведен с '_id'='-1' - строка табличной части будет создана.\n\nУДАЛЕНИЕ СТРОК ТЧ: Если объект в ТЧ приведен с существующим '_id', но \nи присутствует спец атрибут '_toDelete' со значением 'true' - значит \nстрока ТЧ будет удалена. \n\nПРОПУСК СТРОК ТЧ: Если строка в ТЧ приведена (есть '_id' и '_class'), \nно не приводятся атриубты - значит объект меняться не будет, и не будет удаляться.\n\nЕсли строка в ТЧ не приведена (объект пропущен), \nстрока в ТЧ не будет обновляться, и не будет удаляться.\n\nТаким образом, имеет смысл приводить только изменяемые/обновляемые строки в ТЧ.\n\nПеречни атрибутов рассматриваются как те которые моно изменять. \nЕсли атрибуты будут пропущены, они не будут изменены.\n\nНа список допустимых для обновления атрибутов и возможность добавлять/убитрать строки табличной части,\nмогут быть наложены ограничения - см .typeSpecs аргумента theCard",

                                "type": "commons.storages.flatObjects.AMDObject",

                                "typeSpecs": [

                                    "*",

                                    "*[]+-",

                                    "*[].*"

                                ]

                            },

                            {

                                "argName": "comment",

                                "titlle": "Комментарий к операции",

                                "description": "заметки оператора, о том, зачем он совершает эту операцию,\n",

                                "type": "String",

                                "typeSpecs": null

                            }

                        ],

                        "results": []

                    },

                    {

                        "operationName": "draft/setActual()",

                        "title": "в работу",

                        "description": "перевести карточку в состояние 'актуально' - актуальная информация для применения.",

                        "args": [],

                        "results": []

                    },

                    {

                        "operationName": "draft/setCanceled()",

                        "title": "отменить черновик",

                        "description": "перевести карточку в состояние 'отменено' - информация которая не была в работе, или признана ошибочно заведенной.",

                        "args": [],

                        "results": []

                    }

                ]

            },

            {

                "stateName": "[any]",

                "title": "[все состояния]",

                "operations": [

                    {

                        "operationName": "any/getFullCard()",

                        "title": "получить полную карточку сущности",

                        "description": "отдает 'глубокую сериализаци' карточки сущности",

                        "args": [],

                        "results": []

                    },

                    {

                        "operationName": "any/clone()",

                        "title": "скопировтаь объект",

                        "description": "создает копию записи, в отношении которой был вызван в состоянии черновик",

                        "args": [],

                        "results": [

                            {

                                "retName": "objList",

                                "titlle": "список объектов, 1 объект",

                                "description": "Объект который был создан'связанный' json-массив HRJSON-объектов (глубокая сериализация сущностей с агрегацией всех ссылочных объектов).\n",

                                "type": "HrJson"

                            }

                        ]

                    },

                    {

                        "operationName": "any/getPrintForm()",

                        "title": "получить печатную форму карточки",

                        "description": "отдает печатную форму карточки в формате excel",

                        "args": [],

                        "results": []

                    }

                ]

            }

        ]

    }

}