010
Структура
011
012
Общая часть
013
014
Используя ЭИС можно перенести структуру БО, СО, Панелей,
015 Справочников и Процессов.
016
017
1 этап - подготовка экспорта
018
019
Валидация
020
021
При подготовке экспорта происходит валидации выбранных БО, на
022 возможность экспорта. Для структуры происходит проверка на наличие
023 кодов в:
024
025
026 - самом БО
027
028 - печатных формах
029
030 - динамических полях
031
032 - виджетах
033
034 - табах
035
036 - в опциях выпадающего списка (dropdown single) и одиночного
037 выбора (radio button group)
038
039 - в пунктах опросника
040
041
042
Зависимости
043
044
На данный момент существуют 3 виде структурных зависимостей
045
046
047 - БО являющийся частью Составного объекта (СО)
048
049 - Вложенные БО (2 уровня)
050
051 - Справочник, на который ссылается выпадающий список
052
053
054
2 этап - экспорт
055
056
Основной класс
057
058
059 StructureRegister
060
061
062
063
064
065
Основной метод
066
067
068 BoStruct exportBoStructure(String boId, ExportStructRefManager refManager, AuthUserInfo authInfo)
069
070
071
072
073
074
Основные модели
075
076
077 BoStruct
078 BoFieldStruct
079
080
081
082
083
084
Во время 2 этапа происходит формирование структур, в качестве
085 идентификаторов используются коды.
086
087
3 этап - подготовка импорта (анализ импорта)
088
089
Основные классы
090
091
092 StructureImportAnalyzer
093
094
095
096
097
098
Потенциальные ошибки анализа импорта
099
100
101 - _Несоответствие типов БО_
102
103 - Если во время анализа был найден БО по коду, но с другим типом,
104 то возникает эта ошибка.
105 Пример возникновения, из тестового сервера был выгружен СО с кодом
106 "Client", а на прод-среде был найден Справочник с таким же
107 кодом.
108
109
110
111
112 - _Несоответствие типов бизнес-полей_
113
114 - Если во время анализа был найден БО по коду с идентичным типом,
115 происходит проверка совместимости бизнес-полей, если было найдено
116 поле по коду, но с иным типом то выйдет эта ошибка
117 Пример возникновения: из тестового сервера был выгружен БО с полем
118 Текстовое поле с кодом "name", а на прод среде по этому коду был
119 найдено поле с типом Почта
120
121
122
123
124 - _Изменения уникальности поля_
125
126 - Если во время анализа был найден БО по коду с идентичным типом,
127 происходит проверка совместимости бизнес-полей, если было найдено
128 поле по коду c таким же типом, но с разными настройками
129 уникальности, то возникает эта ошибка.
130
131
132
133
134 - _Отсутствие БО для СО_
135
136 - Эта ошибка возникает, если для импортируемого СО не был найден
137 составной БО ни в системе, ни в импорте.
138
139
140
141
142 - _Отсутствие нужного БО для бизнес-поля с типом "Вложенный
143 объект"_
144
145 - Эта ошибка возникает, если для бизнес-поля импортируемого БO не
146 был найден БО ни в системе, ни в импорте.
147
148
149
150
151
152
В ходе анализа помимо валидации собираются данные для
153 отображения на клиенте. Для структуры это
154
155
156 - Новое название БО
157
158 - Новые поля
159
160 - Измененные поля
161
162 - Новые вкладки в контекстном меню
163
164 - Новые виджеты
165
166 - Измененные виджеты
167
168
169
Идентификаторы
170
171
Во время 3 этапа собираются идентификаторы для сохранения в 4
172 этапе. Так например, если импортируемый БО не был найден в системе
173 то он будет сохранен с идентификатором с поля id класса BoStruct.
174 Если же БО был найден в системе по коду, то произойдет слияние
175 структуры из импорта и системы.
176
177
178
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