Adapter : Indiquer que l'import est KO

Bonjour,

J’ai un adapteur (extends LineBasedAdapter) dans lequel je rejette des lignes en fonction de critères. C’est ligne sont ajoutées au fichiers erreur de la supervision.

Comment puis-je indiquer dans le supervision des imports que le traitement est KO. J’ai tenté un setStatus(XMLSupervisor.STATUS_LOAD_ERROR);
Il ne semble pas être pris en compte.

Bonjour,

setStatus(SystemXML.SUPERVISOR_STATUS_IMPORT_ERROR);

PI CSV Adapter Example

Bonjour Sébastien,

Comme dans l’exemple proposé par Nathalie, il faut faire attention aux comportements par défaut de preprocess et postprocess, susceptibles de renvoyer les tags <simplicite></simplicite>, XML qui renverra le statut “OK”

Merci, mais ça met mon import au statut “A Importer”

Tu es en quelle version ?
https://docs.simplicite.io/4.0/javadoc/com/simplicite/util/integration/SystemXML.html

Simplicité version4.0 patch level P24Built on2020-07-01 16:42 (revision ca0a90ddbcc304cf5649bcbcda1bba00f665a37b)

Cela fonctionne mais à chaque import, j’ai la stacktrace suivante : il manque la balise de fermeture simplicite dans le flow

2020-07-07 08:37:12,726 ERROR [com.simplicite.util.integration.SAXImportXML] SIMPLICITE|http://partenor.simplicite.io:10968||ERROR|designer|com.simplicite.util.integration.SAXImportXML|process||Evénement: Error during XML processing
org.xml.sax.SAXParseException; lineNumber: 4; columnNumber: 1; XML document structures must start and end within the same entity.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityManager.endEntity(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.load(Unknown Source)
at org.apache.xerces.impl.XMLEntityScanner.scanContent(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at java.xml/javax.xml.parsers.SAXParser.parse(SAXParser.java:197)
at com.simplicite.util.integration.SAXParserAdapter.process(SAXParserAdapter.java:58)
at com.simplicite.util.integration.SimpleSAXParserAdapter.process(SimpleSAXParserAdapter.java:122)
at com.simplicite.util.engine.Interface.importSAX(Interface.java:954)
at com.simplicite.util.engine.Interface.importSAX(Interface.java:1051)
at com.simplicite.util.engine.Interface.importData(Interface.java:645)
at com.simplicite.util.engine.Interface.importData(Interface.java:522)
at com.simplicite.util.engine.Interface.importADP(Interface.java:439)
at com.simplicite.util.IntegrationDirect.importADP(IntegrationDirect.java:186)
at com.simplicite.util.Integration.importADP(Integration.java:385)
at com.simplicite.webapp.servlets.AbstractIOServlet.doPost(AbstractIOServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.simplicite.webapp.filters.AuthMethodFilter.doFilter(AuthMethodFilter.java:137)
at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at com.simplicite.webapp.filters.RewriteFilter.doFilter(RewriteFilter.java:77)
at com.simplicite.webapp.filters.AbstractFilter.doFilter(AbstractFilter.java:37)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:188)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at com.simplicite.tomcat.valves.APISessionValve.invoke(APISessionValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:690)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:373)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:832)

Bonjour,

Je n’ai pas tout compris du cas d’usage, ni sur votre implémentation d’un adapter spécifique.
Si je comprends bien le flux XML final est tronqué ce qui génère une erreur ?
Quel est le flux en question ?

  • Est-ce un simple warning sans incidence sur le traitement global ?
  • Est ce que l’adapter transforme le flux d’entrée en ObjectXML ou fait directement de mise à jour en base sans passer par le langage XML pivot ?
  • L’adapter doit-il terminer en erreur globalement sans rien importer = KO de type LOADING qui ne processera pas le XML, ou alors doit-il uniquement rejeter certaines lignes = loading ok mais IMPORT KO / partiel ?

Le flux XML s’il est créé avec les objets/helpers Simplicité ObjectXML DataXML… ne peut pas être tronqué car ce sont des objets java dont les toXML() sont forcement corrects (auto fermés).