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

IN Migration Kafka для Системных 011 БО

012 013

Миграция через кафку работает для следующих системных БО:

014 015
    016
  1. Пользователи
  2. 017 018
  3. Рабочая группа
  4. 019 020
  5. Департамент
  6. 021
022 023

Примеры использования:

024 025

Подготовка

026 027
    028
  1. Создадим следующее БО с полями: Текстовое поле и Вложенное БО 029 (Пользователи, Департамент, Рабочая группа):
  2. 031 032
  3. Выберем эти поля с вложенными системными БО в настройках IN 033 Миграции:
  4. 034 035
  5. Создадим пользователя c любым email:
  6. 037
038 039

1. Создание инстанции БО с вложенным полем БО 040 "Пользователи" с добавлением существующего пользователя по 041 уникальному полю "email"

042 043
044  {
045      "externalId": "bfsseVCjGC225bM@",
046      "id": "dgL9~4keReK7Z1qi",
047      "boCode": "BO",
048      "boFields": [
049          {
050              "fieldCode": "Polzovateli",
051              "toFieldCode": "email",
052              "apiValue": "qwe@qwe.qwe"
053          }
054      ],
055      "state": "ACTUAL"
056  }
057  
058  
059  
060  
061 062

063 064

2. Миграция инстанции БО вложенной инстанцией БО 065 "Пользователи" который привязан рекурсивно

066 067
068  {
069      "externalId": "cfsseVCjGC225bM@",
070      "id": "cgL9~4keReK7Z1qi",
071      "boCode": "BO",
072      "boFields": [
073          {
074              "fieldCode": "Polzovateli",
075              "boiInput": {
076                  "id": "~7TZ9zwn9P3Tj7Xx",
077                  "externalId": "fgL9~4keReK7Z1qi",
078                  "boCode": "Person", 
079                  "fields": [
080                      {
081                          "code": "name",
082                          "apiValue": "Temirlan"
083                      },
084                      {
085                          "code": "surname",
086                          "apiValue": "Zhumagulov"
087                      },
088                      {
089                          "code": "email",
090                          "apiValue": "timaz@gmail.com"
091                      },
092                      {
093                          "code": "status",
094                          "apiValue": "ACTIVE"
095                      },
096                      {
097                          "code": "accessLevel",
098                          "apiValue": "ACCESS_ALLOWED"
099                      }
100                  ],
101                  "state": "ACTUAL"
102              }
103          }
104      ],
105      "state": "ACTUAL"
106  }
107  
108  
109  
110  
111 112

113 114

Как видно на примере К БО полю "Пользователи" добавился 115 пользователь, который был создан через миграцию:

116 117

118 119

3. Миграция инстанции рабочей группы

120 121
122     {
123          "externalId": "zfsseVCjGC225bM@",
124          "id": "zgL9~4keReK7Z1qi",
125          "boCode": "PersonGroup",
126          "fields": [
127              {
128                  "code": "name",
129                  "apiValue": "Моя группа #1"
130              }
131          ],
132          "boFields": [
133              {
134                  "fieldCode": "header",
135                  "toFieldCode": "email",
136                  "apiValue": "timaz@gmail.com"
137              },
138              {
139                  "fieldCode": "users",
140                  "toFieldCode": "email",
141                  "apiValue": "qwe@qwe.qwe"
142              }
143          ],
144          "state": "ACTUAL"
145      }
146  
147  
148  
149 150

152 153

4. Миграция инстанции Департамента

154 155
156     {
157          "externalId": "hfsseVCjGC225bM@",
158          "id": "hgL9~4keReK7Z1qi",
159          "boCode": "Department",
160          "fields": [
161              {
162                  "code": "name",
163                  "apiValue": "Мой департамент"
164              }
165          ],
166          "boFields": [
167              {
168                  "fieldCode": "header",
169                  "toFieldCode": "email",
170                  "apiValue": "timaz@gmail.com"
171              },
172              {
173                  "fieldCode": "person",
174                  "toFieldCode": "email",
175                  "apiValue": "qwe@qwe.qwe"
176              }
177          ],
178          "state": "ACTUAL"
179      }
180  
181  
182  
183  
184 185

187 188

5. Миграция инстанции Департамента с родительским 189 подразделением вложенным рекурсивно

190 191
192     {
193          "externalId": "kfsseVCjGC225bM@",
194          "id": "kgL9~4keReK7Z1qi",
195          "boCode": "Department",
196          "fields": [
197              {
198                  "code": "name",
199                  "apiValue": "Вложенный департамент"
200              }
201          ],
202          "boFields": [
203              {
204                  "fieldCode": "header",
205                  "toFieldCode": "email",
206                  "apiValue": "timaz@gmail.com"
207              },
208              {
209                  "fieldCode": "person",
210                  "toFieldCode": "email",
211                  "apiValue": "qwe@qwe.qwe"
212              },
213              {
214                  "fieldCode": "parent",
215                  "boiInput": {
216                      "externalId": "pfsseVCjGC225bM@",
217                      "id": "pgL9~4keReK7Z1qi",
218                      "boCode": "Department",
219                      "fields": [
220                          {
221                              "code": "name",
222                              "apiValue": "Главный департамент"
223                          }
224                      ],
225                      "boFields": [
226                          {
227                              "fieldCode": "header",
228                              "toFieldCode": "email",
229                              "apiValue": "alikhan@gmail.com"
230                          },
231                          {
232                              "fieldCode": "person",
233                              "toFieldCode": "email",
234                              "apiValue": "yerkebulan@gmail.com"
235                          }
236                      ],
237                      "state": "ACTUAL"
238                  }
239              }
240          ],
241          "state": "ACTUAL"
242      }
243  
244  
245  
246  
247 248

251 252

Однако пользователей с email-ами (alikhan@gmail.com, yerkebulan@gmail.com) в 255 системе нет, поэтому мы их добавим через миграцию:

256 257
258  {
259      "id": "~8TZ9zwn9P3Tj7Xx",
260      "externalId": "~gL9~4keReK7Z1qi",
261      "boCode": "Person", 
262      "fields": [
263          {
264              "code": "name",
265              "apiValue": "Alikhan"
266          },
267          {
268              "code": "surname",
269              "apiValue": "MyBPM"
270          },
271          {
272              "code": "email",
273              "apiValue": "alikhan@gmail.com"
274          },
275          {
276              "code": "status",
277              "apiValue": "ACTIVE"
278          },
279          {
280              "code": "accessLevel",
281              "apiValue": "ACCESS_ALLOWED"
282          }
283      ],
284      "state": "ACTUAL"
285  }
286  
287  
288  
289  
290 291

После отправки сообщения, отправляем это сообщение для 292 добавления пользователя (yerkebulan@gmail.com):

294 295
296  {
297      "id": "~9TZ9zwn9P3Tj7Xx",
298      "externalId": "~mL9~4keReK7Z1qi",
299      "boCode": "Person", 
300      "fields": [
301          {
302              "code": "name",
303              "apiValue": "Yerkebulan"
304          },
305          {
306              "code": "surname",
307              "apiValue": "MyBPM"
308          },
309          {
310              "code": "email",
311              "apiValue": "yerkebulan@gmail.com"
312          },
313          {
314              "code": "status",
315              "apiValue": "ACTIVE"
316          },
317          {
318              "code": "accessLevel",
319              "apiValue": "ACCESS_ALLOWED"
320          }
321      ],
322      "state": "ACTUAL"
323  }
324  
325  
326  
327  
328 329

330 331

Особенности

332 333 337
338 339 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