public class APIFormsService
extends java.lang.Object
Constructor and Description |
---|
APIFormsService() |
Modifier and Type | Method and Description |
---|---|
Response |
advancedSearch(ASFSearchParameters params)
Метод для расширенного поиска данных по форме или записям реестра, получения записей реестра
URL rest/api/asforms/search/advanced
Method POST "Content-type" запроса должен быть "application/json; charset=utf-8" и в теле запроса JSON в следующем формате { "query": "where `цвет фона.TEXT` like 'бел%' and `сложность` like 'очень%'", "parameters": [ "цвет фона.TEXT", "сложность" ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true" "registryRecordStatus" : ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE", "STATE_UNSUCCESSFUL"] } , где query - строка SQL-подобного поискового запроса Строку надо составлять из преположения, что она добавится к sql-запросу для примерно такой таблицы: uuid цвет фона.TEXT сложность uuid1 белый сложно uuid2 черный легко uuid3 желтый просто Столбцы таблицы определяются содержимым параметра 'parameters' из запроса. |
java.lang.String |
asErrorToJson(ServerResult result,
ObjectMapper mapper)
Возвращает результат в json, включая поля кода ошибки и сообщения
|
Response |
collateOut(java.lang.String srcDataId,
java.lang.String srcDataStr,
java.lang.String collationGroup,
java.lang.String destFormId,
java.lang.String destRegistryId) |
Response |
getDefaultDataContent(java.lang.String formID,
java.lang.String formCode)
получение данных файла по форме по умолчанию (заполняются преднастроенные значения)
Тип:GET
URL:rest/api/asforms/getDefaultContent
|
byte[] |
getDefaultDocumentContent(java.lang.String formID)
Получение старой формы для dt-int
ДУБЛИРОВАННЫЙ КОД - из-за авторизации ИЗ
|
java.lang.String |
getFormData(java.util.List<java.lang.String> dataUUIDs,
java.lang.String locale)
Возвращает данные формы по идентификатору данных (может быть использован для получения данных одновременно по несольким формам)
URL rest/api/asforms/data/get
Method GET request parameters: locale - optional user locale |
java.lang.String |
getFormData(java.lang.String dataUUID,
int version,
java.lang.String locale)
Возвращает данные формы по идентификатору данных
URL rest/api/asforms/data/{dataUUID}
Method GET request parameters: locale - optional user locale |
java.lang.String |
getFormDefinition(java.lang.String formID,
boolean isMobile,
java.lang.String locale)
Метод возвращает описание формы
URL rest/api/asforms/form/{formID}
Method GET |
Response |
getFormDefinitionExt(java.lang.String formID,
java.lang.String formCode,
int version)
Метод возвращает описание формы
URL rest/api/asforms/form_ext
Method GET |
java.lang.String |
getPrintable(java.lang.String dataUUID,
java.lang.String locale) |
Response |
getRegistryAndDocumentIds(java.util.List<java.lang.String> dataUUIDs)
Получение идентификаторов документов по идентификаторам данных.
|
java.lang.String |
getUserID() |
java.lang.String |
list(java.lang.String formUUID)
Получение списка UUID данных по форме по UUID формы
URL rest/api/asforms/data/list/{formUUID}
Method GET |
java.lang.String |
loadCollatedDate(java.lang.String regID,
java.lang.String collationGroup,
java.lang.String dataUUID)
Получение данных используемых при сопоставлении
Тип:GET
URL:rest/api/asforms/form/collatedData
|
java.lang.String |
loadCollatedDate(java.lang.String registryDocumentId,
java.lang.String collationGroup,
java.lang.String dataUUID,
java.lang.String formId)
Получение данных используемых при сопоставлении
Тип:GET
URL:rest/api/asforms/form/collatedData
|
Response |
printWithMixin(PrintTemplateJson request)
Печать данных формы на основе ее представления
URL rest/api/asforms/data/print
Method POST Входные параметры:
|
byte[] |
printWithTemplate(java.lang.String dataUUID,
java.lang.String format,
java.lang.String locale)
Печать формы на основе ее представления
|
Response |
save(java.lang.String formUUID,
java.lang.String formCode,
java.lang.String uuid,
java.lang.String parentID,
java.lang.String data,
java.lang.String eventProperties)
Метод сохраняет данные по форме
URL rest/api/asforms/data/save
Method POST Поле data с данными должно иметь формат: "data": [{"id":"field1_id", "value": "field1_value", "type":"widgetType1"}, ..., {{"id":"fieldN_id", "value": "fieldN_value", "type":"widgetType1"}}] Отдельные поля кроме id и value могут так же иметь параметр label Поля обязательно должны содержать тип компонента формы. |
Response |
search(java.lang.String locale)
Метод для поиска данных по форме или записям реестра, получения записей реестра
URL rest/api/asforms/search
Method GET Параметры поиска включают: formUUID идентификатор формы (может быть передано несколько значений) formCode code формы (может быть передано несколько значений) search поисковая строка (может быть передано несколько значений, может отсутствовать) field названия компонентов (может быть передано несколько значений, может отсутствовать) type тип сравнения (может отсутствовать), может принимать значения: exact - точное совпадение поискового запроса и значения компоненита. |
Response |
searchIndex(java.lang.String locale)
Метод для поиска данных по форме или записям реестра, получения записей реестра
URL rest/api/asforms/search_index
Method GET Параметры поиска включают: formUUID идентификатор формы (может быть передано несколько значений) formCode code формы (может быть передано несколько значений) search поисковая строка (может быть передано несколько значений, может отсутствовать) field названия компонентов (может быть передано несколько значений, может отсутствовать) type тип сравнения (может отсутствовать), может принимать значения: exact - точное совпадение поискового запроса и значения компоненита. |
public java.lang.String getFormData(java.lang.String dataUUID, int version, java.lang.String locale)
Возвращает данные формы по идентификатору данных
URL rest/api/asforms/data/{dataUUID}dataUUID
- - идентификатор данных по формеlocale
- - user localepublic java.lang.String getFormData(java.util.List<java.lang.String> dataUUIDs, java.lang.String locale)
Возвращает данные формы по идентификатору данных (может быть использован для получения данных одновременно по несольким формам)
URL rest/api/asforms/data/getdataUUIDs-
- идентификатор данных по форме (может быть передано несколько значений).
Например, dataUUID=uuid1&dataUUID=uuid2&dataUUID=uuid3locale
- - user localepublic java.lang.String getFormDefinition(java.lang.String formID, boolean isMobile, java.lang.String locale)
Метод возвращает описание формы
URL rest/api/asforms/form/{formID}formID
- идентификатор формы (asf_definition.uuid)isMobile
- true - работаем с формой которая имеет мобильное представлениеlocale
- локаль пользователяpublic Response getFormDefinitionExt(java.lang.String formID, java.lang.String formCode, int version)
Метод возвращает описание формы
URL rest/api/asforms/form_extformID
- идентификатор формы (asf_definition.uuid)formCode
- код формы (asf_definition.code)version
- номер версии формы. Если в качестве значения передать "0", то вернется последняя (актуальная) версия формы.public Response search(java.lang.String locale)
Метод для поиска данных по форме или записям реестра, получения записей реестра
URL rest/api/asforms/searchpublic Response searchIndex(java.lang.String locale)
Метод для поиска данных по форме или записям реестра, получения записей реестра
URL rest/api/asforms/search_indexpublic Response advancedSearch(ASFSearchParameters params)
Метод для расширенного поиска данных по форме или записям реестра, получения записей реестра
URL rest/api/asforms/search/advanced{ "query": "where `цвет фона.TEXT` like 'бел%' and `сложность` like 'очень%'", "parameters": [ "цвет фона.TEXT", "сложность" ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true" "registryRecordStatus" : ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE", "STATE_UNSUCCESSFUL"] }, где
uuid | цвет фона.TEXT | сложность |
---|---|---|
uuid1 | белый | сложно |
uuid2 | черный | легко |
uuid3 | желтый | просто |
В запрос query можно добавлять условие для поиска по идентификатору (uuid) либо коду (code) формы, например
{ "query": "where `цвет фона.TEXT` like 'бел%' and `сложность` like 'очень%' and uuid = 'идентификатор_формы'", "parameters": [ "цвет фона.TEXT", "сложность" ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true" "registryRecordStatus" : ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE", "STATE_UNSUCCESSFUL"] } { "query": "where `цвет фона.TEXT` like 'бел%' and `сложность` like 'очень%' and code = 'код_формы'", "parameters": [ "цвет фона.TEXT", "сложность" ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true" "registryRecordStatus" : ["STATE_SUCCESSFUL", "STATE_NOT_FINISHED", "NO_ROUTE", "STATE_UNSUCCESSFUL"] }Запрос не должен ограничивать размер, т.е. не должно быть LIMIT clause, эта информация передается в параметрах startRecord и recordsCount. Примеры запросов:
Выбрать все элементы с uuid1 или uuid2, у которых поле 'field1' равно 'value1' и поле 'field two' содержит 'value2':
query : "where uuid = ('uuid1' or uuid = 'uuid2') and field1 = 'value1' and `field two` like '%value2%'
params: ["field1", "field two"]
Выбрать все элементы с полем `количество наград` > 10
query: `количество наград.INT` > 10
params: ["количество наград.INT"]
В запросе надо добавить кавычки (backtick) вокруг названия "количество наград", потому что там есть пробел.
Выбрать все элементы, у которых есть поле `количество наград` и отсортировать результаты по этому полю в порядке возрастания
query: `количество наград.INT` is not null order by `количество наград.INT` asc
params: ["количество наград.INT"]
Выбрать все элементы, у которых есть поле `количество наград` и отсортировать результаты по этому полю в порядке убывания
query: `количество наград.INT` is not null order by `количество наград.INT` desc
params: ["количество наград.INT"]
Выбрать все записи с датой, которая входит в последние 30 дней:
query: WHERE TO_DAYS(NOW()) - TO_DAYS(`date_col.DATE`) <= 30
params: ["date_col.DATE"]
Выбрать все записи с датой, ранее 15 ноября 2015 года
query: WHERE `date_col.DATE` < '2015-11-15 00:00:00'
params: ["date_col.DATE"]
Выбрать все записи с датой, позднее 15 ноября 2015 года
query: WHERE date(`date_col.DATE`) > '2015-11-15'
params: ["date_col.DATE"]
Пример запроса с компонентами одной динамической таблицы:
{ "query": " where ( `user1.TEXT` = 'Иванов%' or `user1.TEXT` = 'Петров%' and ( `startdate1.DATE` > '2016-09-01 00:00:00' and `finishdate1.DATE` < '2016-10-01 00:00:00') ) ", "parameters": [], "dynParams" : [ [ "user1.TEXT", "startdate1.DATE", "finishdate1.DATE" ] ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true", "registryRecordStatus": ["STATE_SUCCESSFUL"] }
Пример запроса с компонентами нескольких динамических таблиц
{ "query": " where ( ( `startdate1.DATE` > '2016-09-01 00:00:00' and `finishdate1.DATE` < '2016-10-01 00:00:00') or (`startdate2.DATE` > '2016-09-01 00:00:00' and `finishdate2.DATE` < '2016-10-01 00:00:00') ) ", "parameters": [], "dynParams" : [ [ "startdate1.DATE", "finishdate1.DATE" ], [ "startdate2.DATE", "finishdate2.DATE" ] ], "startRecord": 0, "recordsCount": 50, "showDeleted": "true", "searchInRegistry": "true", "registryRecordStatus": ["STATE_SUCCESSFUL"] }
Компоненты динамической таблицы должны быть указаны в виде названия компонента без имени самой динамической таблицы. dynParams задействованы те же суффиксы, что и в параметре parameters. Они обозначают тип данных, который содержит компонент динамической таблицы: TEXT - текст INT - число DATE - дата При отсутствии суффикса по умолчанию используется суффикс TEXT. При указании параметра в массиве dynParams с одним из данных суффиксов поиск должен производиться по всему столбцу всех динамических таблиц, в которых находится указанный в запросе компонент
params
- параметры поиска в JSONRegistryRecordStatus
public java.lang.String getPrintable(java.lang.String dataUUID, java.lang.String locale)
public java.lang.String list(java.lang.String formUUID)
formUUID
- UUID формыpublic Response save(java.lang.String formUUID, java.lang.String formCode, java.lang.String uuid, java.lang.String parentID, java.lang.String data, java.lang.String eventProperties)
Метод сохраняет данные по форме
URL rest/api/asforms/data/save
Method POST
Поле data с данными должно иметь формат:
"data": [{"id":"field1_id", "value": "field1_value", "type":"widgetType1"}, ...,
{{"id":"fieldN_id", "value": "fieldN_value", "type":"widgetType1"}}]
Отдельные поля кроме id и value могут так же иметь параметр label
Поля обязательно должны содержать тип компонента формы. Типы компонентов содержаться можно посмотреть по
ссылке
Поле eventProperties должно иметь формат ключ - значение, ключ должен соответствовать регулярному выражению [a-zA-Z_][a-zA-Z_0-9]*
Ключи formID, dataUUID зарезервированы, при передаче подобных ключей значения будут перезаписаны параметрами события
{
"paramA": "paramA value",
"paramB": "paramB value"
}
formUUID
- UUID формы (параметр запроса). В случае если идентификатор формы не указан либо указан невалидный, он будет получен по идентификатору данных.
Отсутствие идентификатор формы приводит к повышенной нагрузки при сохранении данных по форме.formCode
- код формыuuid
- UUID данных по форме (параметр запроса)parentID
- идентификатор папки в хранилище, в которой должен быть создан файл по форме (обязателен, если не передан uuid)data
- усеченный json с данными по форме (параметр формы). Смотри пример данныхeventProperties
- @FormParam json с параметрами для отправки в событие изменения данных по форме (необязательный параметр)public byte[] getDefaultDocumentContent(java.lang.String formID) throws java.lang.Exception
java.lang.Exception
kz.arta.synergy.ejb.forms.rest.ASFService#getDefaultDocumentContent(java.lang.String)
public byte[] printWithTemplate(java.lang.String dataUUID, java.lang.String format, java.lang.String locale) throws java.lang.Exception
dataUUID
- - идентификатор данных по формеformat
- - формат получаемого файлаjava.lang.Exception
public Response printWithMixin(PrintTemplateJson request) throws java.lang.Exception
Печать данных формы на основе ее представления
URL rest/api/asforms/data/print
Method POST
Входные параметры:
Метод возвращает файл с заполненным печатным представлением в указанном формате.
Пример запроса
{ "dataUUID" : "957d39a0-e3b0-11e6-9f62-525400d0e1cb", "format" : "PDF" }
java.lang.Exception
public Response getRegistryAndDocumentIds(java.util.List<java.lang.String> dataUUIDs) throws java.io.IOException
Получение идентификаторов документов по идентификаторам данных.
Метод учитывает данные только по тем формам, которые используются в функциональности реестров.
Тип:GET
URL:rest/api/asforms/data/document
dataUUIDs
- идентификатор данных по форме (обяз.), может быть передано несколько значений
Пример: dataUUID=uuid1&dataUUID=uuid2В случае успешного выполнения, метод возвращает json-строку в виде объектов с ключами по dataUUID:
Пример:
{
"7ce1feff-a3f0-4f4e-8bf6-59e37caf553f": {
"documentID": "0f3a99ac-a712-40ea-98fe-3642af96b860"
"registryID": "3a170735-4fa3-4e2b-87ae-f346ace3487f"
},
"7b953be8-bddb-4ce4-bbfd-ae9548f69c7f": {
"documentID": "212af63f-597b-41a8-bbaf-6987d84651ac",
"registryID": "3a170735-4fa3-4e2b-87ae-f346ace3487f"
}
}
java.io.IOException
public java.lang.String loadCollatedDate(java.lang.String regID, java.lang.String collationGroup, java.lang.String dataUUID)
Получение данных используемых при сопоставлении
Тип:GET
URL:rest/api/asforms/form/collatedData
regID
- - UUID документа, из которого будут браться данные (обяз.)dataUUID
- - UUID данных, в которые будет происходить сопоставление (обяз.)collationGroup
- - UUID, по которому будет происходить сопоставление (обяз.)version
- -версия данных по форме (обяз.)
Правила передачи запроса:
rest/api/asforms/form/collatedData/regID/dataUUID/collationGroup/?version=0Пример: rest/api/asforms/form/collatedData/7fb464cc-f303-4f40-880f-37d3b5879581/f40b665c-f1f4-40b3-bdc5-291911def539/ff94d282-5da1-42fe-95f3-a3db09597ee1/?version=0
В случае успешного выполнения метод возвращает массив объектов JSON, состоящий из следующих полей:/p>
В случае же неуспешного выполнения (например, не переданы либо переданы некорректные входные идентификаторы) метод возвращает `null`.
Пример:
[
{
"collatedFormID":"9b077c41-4efa-48ce-8ce9-af2fe6145e96",
"name":"PROCESS",
"uuid":"dfb986ca-6dd2-415f-9304-bfab19d6d4af",
"collationGroup":"ff94d282-5da1-42fe-95f3-a3db09597ee1",
"fields": [
{
"inField": "date1",
"outField": "date2",
"label": "Дата",
"uuid": "dfb986ca-6dd2-415f-9304-bfab19d6d4af",
"collationType": "EQUAL"
},
{
"inField": "text1",
"outField": "text2",
"label": "Текст",
"uuid": "dfb986ca-6dd2-415f-9304-bfab19d6d4af",
"collationType": "EQUAL"
}
]
}
]
public java.lang.String loadCollatedDate(java.lang.String registryDocumentId, java.lang.String collationGroup, java.lang.String dataUUID, java.lang.String formId)
Получение данных используемых при сопоставлении
Тип:GET
URL:rest/api/asforms/form/collatedData
registryDocumentId
- - UUID документа, из которого будут браться данные (обяз.)dataUUID
- - UUID данных, в которые будет происходить сопоставление (обяз.)formId
- - UUID данных, в которые будет происходить сопоставление (обяз.)collationGroup
- - UUID, по которому будет происходить сопоставление (обяз.)formId
- - UUID формы (необязательный параметр)
Правила передачи запроса:
В случае успешного выполнения метод возвращает массив объектов JSON, состоящий из следующих полей:/p>
В случае же неуспешного выполнения (например, не переданы либо переданы некорректные входные идентификаторы) метод возвращает `null`.
Пример:
[
{
"collatedFormID":"9b077c41-4efa-48ce-8ce9-af2fe6145e96",
"name":"PROCESS",
"uuid":"dfb986ca-6dd2-415f-9304-bfab19d6d4af",
"collationGroup":"ff94d282-5da1-42fe-95f3-a3db09597ee1",
"fields": [
{
"inField": "date1",
"outField": "date2",
"label": "Дата",
"uuid": "dfb986ca-6dd2-415f-9304-bfab19d6d4af",
"collationType": "EQUAL"
},
{
"inField": "text1",
"outField": "text2",
"label": "Текст",
"uuid": "dfb986ca-6dd2-415f-9304-bfab19d6d4af",
"collationType": "EQUAL"
}
]
}
]
public Response collateOut(java.lang.String srcDataId, java.lang.String srcDataStr, java.lang.String collationGroup, java.lang.String destFormId, java.lang.String destRegistryId)
public java.lang.String asErrorToJson(ServerResult result, ObjectMapper mapper) throws java.io.IOException
mapper
- маппер для jsonjava.io.IOException
public Response getDefaultDataContent(java.lang.String formID, java.lang.String formCode)
получение данных файла по форме по умолчанию (заполняются преднастроенные значения)
Тип:GET
URL:rest/api/asforms/getDefaultContent
formID
- идентификатор формыformCode
- код формыpublic java.lang.String getUserID()