Hola a todos,
Os cuento, tengo un proceso el cual consiste en digitalizar ciertos documentos que guardo en un espacio "subir_documentos" en formato TIFF, cuando un documento entra en ese espacio salta una regla que lo transforma a través de ABBYYOCR11 en un pdf, se guarda en "subir_documentos", se extraen algunos datos, se guardan como metados y se borra el TIFF. Una vez hecho esto se firma el pdf y se mueve al espacio "revisar".
Ahora el problema. Esto estaba funcionando perfectamente con ABBYOCR9. Pero hemos adquirido una nueva licencia y con ABBYYOCR11 se dan los siguientes casos.
1. Después del proceso OCR sube un pdf vacío (0 KB) al espacio "subir_documentos".
2. Después del proceso OCR no sube nada al espacio "subir_documentos" (O si lo sube no se ejecuta la regla, pero no aparece ningún pdf)
3. En ocasiones realiza todo el proceso correctamente.
Estos casos ocurren aleatoria-mente. ¿Se deberá a algo relacionado con ABBYY y su configuración o más bien con Alfresco?
El comando que envío a ABBYYOCR es el más básico y funciona correctamente por que lo he probado directamente en la máquina.
abbyyocr11 -if test.tiff -rl Spanish -f PDF -of test.pdf
Cuando el proceso falla no salta ningún error en el log.
¿Alguna idea que puede ser lo que está ocurriendo?
Muchas gracias!
Solved! Go to Solution.
Buenos días,
Después de haber intentado todas las opciones y no dar con una solución, para no perder más tiempo hemos optado por migrar de Alfresco 3.0 a Alfresco 4.2, donde ya habíamos hecho pruebas y confirmado que todo funcionaba correctamente.
De todas formas muchas gracias por vuestra ayuda y consejos.
Un saludo.
Supongo que abbyocr11 tendrá algún parámetro para que sea más "verboso": hay algún problema con la ejecución de ese proceso.
Si estáis en Alfresco 5.0 (creo recordar que estabais en 4.2), quizá merezca la pena que te pases nuestro addon GitHub - keensoft/alfresco-simple-ocr: Simple OCR action for Alfresco
No requiere software licenciado y, cuando falla el proceso de OCR, escribe el detalle del error en el log.
En cualquier caso, el código fuente también te puede servir de referencia para 4.2
Muchas gracias Angel,
Le echaré un vistazo al addon que me comentas. De todas formas en seguido peleando un poco con ABBYY y he conseguido sacar por pantalla el proceso y lo realiza correctamente. De lo que no me había dado cuenta es de un error que me estaba saliendo por la consola de Java que imagino que tendrá que ver.
{http://www.alfresco.org/ws/service/content/1.0}ContentFault:<ns1:errorCode>0</ns1:errorCode><ns1:message>Transaction silently rolled back because it has been marked as rollback-only</ns1:message>
{http://xml.apache.org/axis/}exceptionNamerg.alfresco.repo.webservice.content.ContentFault
{http://xml.apache.org/axis/}stackTrace:
at org.alfresco.repo.webservice.content.ContentWebService.write(ContentWebService.java:233)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:397)
at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:186)
at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:454)
at org.apache.axis.server.AxisServer.invoke(AxisServer.java:281)
at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
¿Y no hay un "caused by"?
Obviamente esto es un problema, pero ha sido provocado por otro.
Adjunto el log completo.
¿Entonces estáis utilizando un applet para realizar el escaneo y el OCR?
Parece que lo único relevante es:
java.io.FileNotFoundException: http://52.49.78.232:8080/delagro/applets/META-INF/services/org.apache.xerces.xni.parser.XMLParserCon...
A lo mejor no está encontrando la configuración...
Lo que me extraña es que a veces realice todo el proceso correctamente y otra veces no.
El escaneo lo realizamos con una applet, una vez subido el tiff a Alfresco en el espacio existe una regla que lanza un proceso, y uno de los pasos de ese proceso es transformar el tiff a pdf con ABBYYOCR.
<?xml version='1.0' encoding='UTF-8'?>
<!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'>
<beans>
<bean id="transformer.Ocr.Tiff2Pdf" class="org.alfresco.repo.content.transform.RuntimeExecutableContentTransformer" parent="baseContentTransformer">
<property name="checkCommand">
<bean class="org.alfresco.util.exec.RuntimeExec">
<property name="commandMap">
<map>
<entry key=".*">
<value>/usr/local/bin/abbyyocr11</value>
</entry>
</map>
</property>
<property name="errorCodes">
<value>1,2</value>
</property>
</bean>
</property>
<property name="transformCommand">
<bean class="org.alfresco.util.exec.RuntimeExec">
<property name="commandMap">
<map>
<entry key=".*">
<value>/usr/local/bin/abbyyocr11 -c -pi -if ${source} -f PDF -of ${target}</value>
</entry>
</map>
</property>
<property name="errorCodes">
<value>1,2</value>
</property>
</bean>
</property>
<property name="explicitTransformations">
<list>
<bean class="org.alfresco.repo.content.transform.ExplictTransformationDetails" >
<property name="sourceMimetype"><value>image/tiff</value></property>
<property name="targetMimetype"><value>application/pdf</value></property>
</bean>
</list>
</property>
</bean>
</beans>
Échale un vistazo a esto Developing repo actions in Alfresco 5.1 | Programming and So
Creo que pueden ir por ahí los tiros.
No creo que sea problema del código implementado, ya que con la versión 9 de AbbyyOCR funcionaba correctamente. Sobre lo que comentabas de que igual no está encontrado la configuración, estamos poniendo el archivo donde configuramos la transformación en ".../tomcat/shared/classes/alfresco/extension/ocr-transforms-context.xml", ¿Debería tal vez estar en ".../tomcat/webapps/alfresco/WEB-INF/classes/alfresco/extension/ocr-transforms-context.xml"? Decir que la versión que estamos utilizando para esto es Alfresco 3 ya que es con la que tenemos la integración para el cliente y no la podemos cambiar.
Si estáis en Alfresco 3, todas las respuestas que hay arriba, en efecto, pueden no ser acertadas.
En cuanto a la configuración, las dos rutas que indicas son correctas, pero la primera es la recomendada. Así que yo descartaría también este supuesto.
Content from pre 2016 and from language groups that have been closed.
Content is read-only.
By using this site, you are agreeing to allow us to collect and use cookies as outlined in Alfresco’s Cookie Statement and Terms of Use (and you have a legitimate interest in Alfresco and our products, authorizing us to contact you in such methods). If you are not ok with these terms, please do not use this website.