Формулировка проблемы: в имеющихся методах API указание на формы производится по их идентификаторам, однако при экспорте/импорте форм между различными экземплярами Synergy идентификатор одной и той же формы изменяется, а код - нет (если этого не сделали специально вручную). Таким образом, для написания портабельных внешних модулей требуется обращаться к формам по их кодам.
Решение: необходимо добавить во все имеющиеся методы API, где используются идентификаторы форм, поддержку указания кодов форм. Ниже перечислены методы, которые нужно изменить, а также указано, какие изменения требуется проделать.
Важное замечание
Для всех перечисленных методов API по умолчанию справедливо следующее: если одновременно указан и код формы, и её идентификатор, обращение к форме производится по её коду. Если требуется иное поведение, оно особо оговаривается.
В тех методах, где идентификатор формы - обязательный параметр, допускается его не указывать, при условии, что указан код формы.
URL метода: rest/api/asforms/form_ext
Необходимо добавить входной параметр formCode -
код формы.
URL метода: rest/api/asforms/search
Необходимо добавить входной параметр formCode -
код формы, может быть передано несколько значений, также
разрешается указывать в названии порядковые номера, аналогично
formUUID (см.
документацию).
Допускается смешивать в одном запросе указание и
formUUID, и formCode - поиск
при этом должен осуществляться по всем
указанным формам, как определённым по formUUID,
так и по formCode.
URL метода: rest/api/asforms/search/advanced.
Необходимо добавить code в список передаваемых
параметров для выборки расширенного поиска (аналогично
uuid, см. задачу
документацию
на этот метод). При этом в качестве его значения
необходимо будет использовать код нужной формы.
URL метода: rest/api/asforms/data/save.
Необходимо добавить необязательный входной параметр
formCode - код формы.
URL метода: rest/api/asforms/getDefaultContent.
Необходимо добавить входной параметр formCode -
код формы.
URL метода:
rest/api/addressbook/get_addressbook_item.
Необходимо добавить выходной параметр formCode
- код формы:
{
"type": "person",
"lastName": "Иванов",
"firstName": "Иван",
"patronymic": "Иванович",
"birthDate": "1993-10-12",
"isPublic": "false",
"photoUrl": "contact_photo?itemID=6de27bc6-1da0-4fec-b03f-5d917c3f3413",
"note": "Пример примечания",
"tags": "Ключевое слово1, Ключевое слово2",
"formUUID": "null",
"formCode": ""
"phone": [
"230101"
],
"im": [
"i.ivanov@jabber.arta.kz"
],
"mail": [
"ivanov_ivan@ivan.ru"
],
"mobile": [
"87022301010",
"87012301010"
],
"url": [
"http://ww.kz"
]
}
URL метода: rest/api/departments/get_cards.
В каждый возвращаемый объект с информацией о карточке пользователя
необходимо добавить поле formCode - код формы.
URL метода:
rest/api/departments/get_by_field_value.
Необходимо добавить входной параметр formCode -
код формы карточки, по которой осуществляется поиск.
URL метода: rest/api/docflow/doc/document_info.
В каждый возвращаемый объект с информацией о документе нужно
добавить поле formCode - код формы реестра, к
которому принадлежит документ. Если документ не принадлежит ни к
какому реестру, поле не добавляется.
URL метода
rest/api/personalrecord/forms/{userID}.
В каждый возвращаемый объект с информацией о личной карточке
пользователя нужно добавить поле formCode - код
формы.
URL метода:
/rest/api/positions/getPositionsWithCards
Необходимо добавить входной параметр
positionFormCode - код формы, может быть
передано несколько значений, также разрешается указывать в
названии порядковые номера, аналогично
positionFormID (см.
документацию).
Допускается смешивать в одном запросе указание и
positionFormUUID, и
positionFormCode (с разными порядковыми
номерами). Если positionFormUUID и
positionFormCode указаны с одним порядковым
номером, то поиск осуществляется по
positionFormCode.
Кроме этого, в каждый возвращаемый объект с информацией о
должности нужно добавить поле formCode - код
формы.
Для данного метода необходимо обновить альтернативный поток №2(0414):
Альтернативный поток №2. Параметру
cmpIsNeeded присвоено значение
true, не переданы параметры
positionFormID,
positionFormCode,
cmpID. Сервер возвращает ошибку HTTP
400 с сообщением:
{
"errorCode": 13,
"errorMessage":
"Не переданы параметры positionFormID|positionFormCode, cmpID"
}
действие не выполняется.
URL метода: rest/api/positions/get_cards.
В каждый возвращаемый объект с информацией о карточке должности
нужно добавить поле formCode - код формы
карточки.
URL метода:
rest/api/positions/get_by_field_value.
Необходимо добавить входной параметр formCode -
код формы.
URL метода:
rest/api/filecabinet/get_by_field_value.
Необходимо добавить входной параметр formCode -
код формы.