java.lang.RuntimeException: wXb6Vnl31u :: Ошибка для HTML= 001 003 004 005 006 007 008 009
010

Создание или изменение инстанции бизнес-объекта (БО) по 011 идентификатору

012 013

Предусловие: У вас должно иметься БО (Что это такое и как 015 создать?)

016 017

Запрос (Request):

018 019
020  POST /api/v1/boi/upsert-with-id
021  Content-Type: application/json
022  API-TOKEN/TOKEN: your_token 
023  
024  
025 026 047 048

Входные данные:

049 050
051  {
052    "boCode": "код бизнес-объекта",
053    "boiId": "Идентификатор инстанции бизнес-объекта",
054    "fieldValues": {
055      "код поля 1": "новое значение 1",
056      "код поля 2": "новое значение 2",
057      "код поля 3": "новое значение 3"
058    },
059    "removeAfter": true,
060    "fieldRefAdd": [{
061      "fieldCode": "код поля 4",
062      "boCode": "код БО который содержит в себе поле с кодом поля 4",
063      "fieldRefUniqCode": "код уникального поля 1",
064      "apiValues": [
065        "значение 1 уникального поля 1",
066        "значение 2 уникального поля 1"
067      ]
068    }, ...],
069    "fieldRefRemove": [{
070      "fieldCode": "код поля 4",
071      "boCode": "код БО который содержит в себе поле с кодом поля 4",
072      "fieldRefUniqCode": "код уникального поля 1",
073      "apiValues": [
074        "значение 3 уникального поля 1",
075        "значение 4 уникального поля 1"
076      ]
077    }, ...]
078  }
079  
080  
081 082

ВНИМАНИЕ! Поле boiId можно не 083 указывать, однако если вы укажите, то отработает как UPDATE и если 084 такого boiId не будет, то выйдет ошибка. Поэтому у 085 бизнес-объекта должно быть уникальное поле, тогда введенное 086 значение если будет существовать обновиться, если нет добавиться. 087 Дополнительно, если у вас нет уникального поля в БО, то будет 088 отрабатывать как CREATE.

089 090 094 095 096 097 098 099 100 101 102 103 104 105 106 108 109 110 111 112 115 116 117 118 119 122 123 124 125 126 129 130 131 132 133 136 137 138 139 140 142 143 144 145 146 148 149 150 151 152 154 155 156 157 158 162 163 164 165 166 169 170 171 172 173 175 176 177
Атрибут входного JSONОписание
boId(String): Идентификатор бизнес-объекта. 107 Как получить идентификаторы БО?
boiId(String): Идентификатор инстанции 113 бизнес-объекта. Как получить 114 boiId?
fieldValues.key(String): Код определенного поля внутри 120 БО. Как получить идентификаторы 121 полей?
fieldValues.value(String): Значение определенного поля 127 внутри БО. Какие значения для 128 каких полей надо вводить?
removeAfter(Boolean): Указывает что будет раньше 134 добавление или удаление новых инстанции в поле БО. По умолчанию 135 false значит удаление потом добавление.
fieldRefAdd(Массив объектов): Для добавления 141 ссылок в поле БО по значениям уникальных полей вложенного БО
fieldRefRemove(Массив объектов): Для удаления ссылок 147 из поля БО по значениям уникальных полей вложенного БО
fieldRefAdd.fieldCode(String): Код поля БО. Смотрите 153 выше как получить код поля?
fieldRefAdd.boCode(String): Если поле с 159 fieldCode находится внутри СО, то данное поле 160 обязательное к заполнению, так как она будет 161 показывать к какому БО относится ваше поле.
fieldRefAdd.fieldRefUniqCode(String): Код уникального поля БО на 167 которое ссылается ваше поле. Смотрите выше как получить код 168 поля?
fieldRefAdd.apiValues(Массив String): Значения уникальных 174 полей которы надо добавить. Если в fieldRefRemove, то удалить.
178 179

Примечание: Вы можете указывать несколько 180 уникальных полей одного и того же БО.

181 182

Пример:

183 184

Если указывать boiId, то будет работать как Update (Если указать не существующий boiId 186 выйдет ошибка):

187 188
189  {
190    "boId": "gWmNg9ec3yI0wv4V",
191    "boiId": "jJY02CrDmAQw1OMz",
192    "fieldValues": {
193      "UweuNeV8aG3~Tuvf": "14",
194      "CV~4boDWzp2SpQ@U": "ASd",
195      "84uP6Ml@gq87Fs2u": "123.0123",
196      "eK3Owd6xaY7YCODc": "2023-12-23T14:30:45.123Z",
197      "DybDzyYFS9csQLoJ": "cOtDX2KPeLv3nrjS" // идентификатор значения из выборки
198    }
199  }
200  
201  
202 203

Если не указывать boiId, то в зависимости от значения 204 уникального поля в вашем БО будет либо Update 205 (если значение существует) либо Create (если не 206 существует):

207 208
209  {
210    "boId": "gWmNg9ec3yI0wv4V",
211    "fieldValues": {
212      "UweuNeV8aG3~Tuvf": "222",
213      "CV~4boDWzp2SpQ@U": "AsdqQwe",
214      "84uP6Ml@gq87Fs2u": "123.0123",
215      "eK3Owd6xaY7YCODc": "2023-12-23T14:30:45.123Z",
216      "DybDzyYFS9csQLoJ": "cOtDX2KPeLv3nrjS" // идентификатор значения из выборки
217    }
218  }
219  
220  
221 222

Ответ (Response):

223 224
225  {
226    "boiId": "Идентификатор инстанции БО",
227    "boId": "Идентификатор БО",
228    "state": "Одно из значений: ALL, REMOVED, ARCHIVED, DEV",
229    "isTouched": "Прочитано ли текущим пользователем данная инстанция? (true/false)",
230    "fieldValues": {
231      "идентификатор поля 1": {
232        "apiValue": "значение поля 1",
233        "displayValue": "значение поля для отабражения 1",
234        "type": "Тип поля" // Подробнее о типах поля можете узнать по ссылке ниже
235      },
236      "идентификатор поля 2": {
237        "apiValue": "значение поля 2",
238        "displayValue": "значение поля для отабражения 2",
239        "type": "Тип поля" // Подробнее о типах поля можете узнать по ссылке ниже
240      },
241      "идентификатор поля 3": {
242        "apiValue": "значение поля 3",
243        "displayValue": "значение поля для отабражения 3",
244        "type": "Тип поля" // Подробнее о типах поля можете узнать по ссылке ниже
245      }
246    }
247  }
248  
249  
250 251 255 256

Значения поля state:

257 258

1) ALL - Рабочее состояние записи

259 260

2) REMOVED - Запись удалена

261 262

3) ARCHIVED - Запись в архиве

263 264

4) DEV - Запись используется для тестирования 265 процессов

266 267

Пример:

268 269
270  {
271      "boiId": "qgFMuNL8tRYyIX1W",
272      "boId": "gWmNg9ec3yI0wv4V",
273      "state": "ALL",
274      "isTouched": false,
275      "fieldValues": {
276          "UweuNeV8aG3~Tuvf": {
277              "apiValue": "222",
278              "displayValue": "222",
279              "type": "INPUT_NUMBER"
280          },
281          "DybDzyYFS9csQLoJ": {
282              "apiValue": "cOtDX2KPeLv3nrjS",
283              "displayValue": "New",
284              "type": "RADIO_BUTTON_GROUP"
285          },
286          "eK3Owd6xaY7YCODc": {
287              "apiValue": "2023-12-23T20:30:45.123+06",
288              "displayValue": "2023-12-23 20:30",
289              "type": "FULL_DATE"
290          },
291          "84uP6Ml@gq87Fs2u": {
292              "apiValue": "123.0123",
293              "displayValue": "123.0123",
294              "type": "INPUT_NUMBER"
295          },
296          "CV~4boDWzp2SpQ@U": {
297              "apiValue": "AsdqQwe",
298              "displayValue": "AsdqQwe",
299              "type": "INPUT_TEXT"
300          }
301      }
302  }
303  
304  
305
306 307 at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:80) at kz.greetgo.md_reader.core.MdConverter.prepareHtmlFileFrom(MdConverter.java:136) at kz.greetgo.md_reader.core.MdConverter.convert(MdConverter.java:208) at kz.greetgo.md_reader.controller.RenderController.downloadToc(RenderController.java:360) at kz.greetgo.md_reader.controller.RenderController.request(RenderController.java:108) at jdk.internal.reflect.GeneratedMethodAccessor3.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:207) at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:152) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:118) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:884) at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:797) at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1081) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:205) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at kz.greetgo.md_reader.interceptors.TextReplaceFilter.doFilter(TextReplaceFilter.java:36) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:116) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:174) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:149) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:166) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:90) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:482) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:115) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:93) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:341) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:390) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:63) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:894) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1741) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:52) at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191) at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.base/java.lang.Thread.run(Thread.java:833) Caused by: java.io.IOException: Server returned HTTP response code: 429 for URL: http://www.w3.org/TR/xhtml1/DTD/xhtml-lat1.ent at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream0(HttpURLConnection.java:2000) at java.base/sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1589) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:677) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1397) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1333) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.startPE(XMLDTDScannerImpl.java:732) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.skipSeparator(XMLDTDScannerImpl.java:2101) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDecls(XMLDTDScannerImpl.java:2064) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.scanDTDExternalSubset(XMLDTDScannerImpl.java:299) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1165) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1040) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:943) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:542) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:889) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:825) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:247) at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:342) at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) at kz.greetgo.md_reader.util.MdUtil.xmlTextToDoc(MdUtil.java:71) ... 48 more